summaryrefslogtreecommitdiffstats
path: root/framework/src/onos/tools/test/scenarios/bin/find-flow.py
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/tools/test/scenarios/bin/find-flow.py')
-rwxr-xr-xframework/src/onos/tools/test/scenarios/bin/find-flow.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/framework/src/onos/tools/test/scenarios/bin/find-flow.py b/framework/src/onos/tools/test/scenarios/bin/find-flow.py
new file mode 100755
index 00000000..a2f2e4d1
--- /dev/null
+++ b/framework/src/onos/tools/test/scenarios/bin/find-flow.py
@@ -0,0 +1,40 @@
+#! /usr/bin/env python
+
+import requests
+import sys
+
+from requests.auth import HTTPBasicAuth
+
+if len(sys.argv) != 4:
+ print "usage: find-flow onos-node name device-id"
+ sys.exit(1)
+
+node = sys.argv[1]
+name = sys.argv[2]
+deviceId = sys.argv[3]
+
+flowsRequest = requests.get('http://' + node + ':8181/onos/v1/flows/' + deviceId,
+ auth=HTTPBasicAuth('onos', 'rocks'))
+
+if flowsRequest.status_code != 200:
+ print flowsRequest.text
+ sys.exit(1)
+
+flowsJson = flowsRequest.json()
+
+for flow in flowsJson["flows"]:
+ if deviceId == flow["deviceId"]:
+ for criterion in flow["selector"]["criteria"]:
+ if criterion["type"] == 'IN_PORT' and criterion["port"] > 0:
+ for instruction in flow["treatment"]["instructions"]:
+ if instruction["port"] > 0 and instruction["type"] == 'OUTPUT':
+ print "@stc " + name + "FlowState=" + flow["state"]
+ print "@stc " + name + "FlowId=" + flow["id"]
+ print "@stc " + name + "FlowPort=" + str(instruction["port"])
+ sys.exit(0)
+
+sys.exit(1)
+
+
+
+