create-intent.py 1.16 KB
#! /usr/bin/env python

import requests

from requests.auth import HTTPBasicAuth
import sys



if len(sys.argv) != 7:
    print "usage: create-intent onos-node name ingressDevice ingressPort egressDevice egressPort"
    sys.exit(1)

node = sys.argv[1]
name = sys.argv[2]
ingress = sys.argv[3]
ingressPort = sys.argv[4]
egress = sys.argv[5]
egressPort = sys.argv[6]

intentJsonTemplate = \
    '{{' + \
        '"type": "PointToPointIntent",' + \
        '"appId": "org.onosproject.cli",' + \
        '"ingressPoint": {{' + \
        '    "device": "{}",' + \
        '    "port": "{}"' + \
        '}},' + \
        '"egressPoint": {{' + \
        '    "device": "{}",' + \
        '    "port": "{}"' + \
        '}}' + \
    '}}'

intentJson = intentJsonTemplate.format(ingress, ingressPort, egress, egressPort)
intentRequest = requests.post('http://' + node + ':8181/onos/v1/intents/',
                              auth=HTTPBasicAuth('onos', 'rocks'),
                              data=intentJson)

if intentRequest.status_code != 201:
    print intentRequest.text
    sys.exit(1)

location = intentRequest.headers["location"]
print "@stc " + name + "Location=" + location
sys.exit(0)