#! /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)