aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/tools/test/scenarios/bin/create-flow.py
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/tools/test/scenarios/bin/create-flow.py')
-rwxr-xr-xframework/src/onos/tools/test/scenarios/bin/create-flow.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/framework/src/onos/tools/test/scenarios/bin/create-flow.py b/framework/src/onos/tools/test/scenarios/bin/create-flow.py
new file mode 100755
index 00000000..4e9b452b
--- /dev/null
+++ b/framework/src/onos/tools/test/scenarios/bin/create-flow.py
@@ -0,0 +1,56 @@
+#! /usr/bin/env python
+
+import requests
+
+from requests.auth import HTTPBasicAuth
+import sys
+
+
+
+if len(sys.argv) != 6:
+ print "usage: create-flow onos-node name device in-port out-port"
+ sys.exit(1)
+
+node = sys.argv[1]
+name = sys.argv[2]
+device = sys.argv[3]
+inPort = sys.argv[4]
+outPort = sys.argv[5]
+
+flowJsonTemplate = \
+ '{{' + \
+ '"priority": 1,' + \
+ '"isPermanent": true,' + \
+ '"treatment": {{' + \
+ '"instructions": [' + \
+ '{{' + \
+ '"type": "OUTPUT",' + \
+ '"port": {}' + \
+ '}}' + \
+ ']' + \
+ '}},' + \
+ '"selector": {{' + \
+ '"criteria": [' + \
+ '{{' + \
+ '"type": "IN_PORT",' + \
+ '"port": {}' + \
+ '}}' + \
+ ']' + \
+ '}}' + \
+ '}}'
+
+flowJson = flowJsonTemplate.format(inPort, outPort)
+intentRequest = requests.post('http://' + node + ':8181/onos/v1/flows/' + device,
+ auth=HTTPBasicAuth('onos', 'rocks'),
+ data=flowJson)
+
+if intentRequest.status_code != 201:
+ print intentRequest.text
+ sys.exit(1)
+
+location = intentRequest.headers["location"]
+print "@stc " + name + "Location=" + location
+sys.exit(0)
+
+
+