Add a python script for testing CLI renderer. 45/30545/1
authortianran zhou <zhoutianran@huawei.com>
Thu, 3 Dec 2015 11:15:00 +0000 (19:15 +0800)
committertianran zhou <zhoutianran@huawei.com>
Thu, 3 Dec 2015 11:20:56 +0000 (19:20 +0800)
Change-Id: I9e9a9ec63665f23a46a07c46e39bcab456780c54
Signed-off-by: tianran zhou <zhoutianran@huawei.com>
nemo-impl/src/test/resources/vpn.py [new file with mode: 0644]

diff --git a/nemo-impl/src/test/resources/vpn.py b/nemo-impl/src/test/resources/vpn.py
new file mode 100644 (file)
index 0000000..3c28d93
--- /dev/null
@@ -0,0 +1,372 @@
+#!/usr/bin/python\r
+#Filename:vpn.py\r
+import requests,json\r
+import argparse, sys\r
+from requests.auth import HTTPBasicAuth\r
+\r
+USERNAME='admin'\r
+PASSWORD='admin'\r
+\r
+TRANSACTION_BEGIN="http://%s:8181/restconf/operations/nemo-intent:begin-transaction"\r
+TRANSACTION_END="http://%s:8181/restconf/operations/nemo-intent:end-transaction"\r
+REGISTER_USER="http://%s:8181/restconf/operations/nemo-intent:register-user"\r
+STRUCTURE_UPDATE_USERS="http://%s:8181/restconf/operations/nemo-intent:structure-style-nemo-update"\r
+\r
+def register_user(contHost):\r
+       data={\r
+                       "input":{\r
+                                       "user-id":"14ce424a-3e50-4a2a-ad5c-b29845158c8b",\r
+                                       "user-name":"user2",\r
+                                       "user-password":"abc",\r
+                                       "user-role":"tenant"\r
+                                       }\r
+               }\r
+       post(REGISTER_USER % contHost, data)\r
+\r
+\r
+def transaction_begin(contHost):\r
+       data={\r
+                       "input":{\r
+                                       "user-id":"14ce424a-3e50-4a2a-ad5c-b29845158c8b",\r
+                                       "user-name":"user2",\r
+                                       "user-password":"abc",\r
+                                       "user-role":"tenant"\r
+                                       }\r
+               }\r
+       post(TRANSACTION_BEGIN % contHost, data)\r
+\r
+       \r
+def transaction_end(contHost):\r
+       data={\r
+                       "input":{\r
+                                       "user-id":"14ce424a-3e50-4a2a-ad5c-b29845158c8b",\r
+                                       "user-name":"user2",\r
+                                       "user-password":"abc",\r
+                                       "user-role":"tenant"\r
+                                       }\r
+               }\r
+       post(TRANSACTION_END % contHost, data)\r
+\r
+       \r
+def add_branch1_node(contHost):\r
+       data={\r
+                 "input":{\r
+                         "user-name": "user2",\r
+                         "user-role": "tenant",\r
+                         "user-password": "abc",\r
+                         "user-id": "14ce424a-3e50-4a2a-ad5c-b29845158c8b",\r
+                         "objects":{\r
+                         "node":[\r
+                                         {\r
+                                                       "node-name": "bank-branch1",\r
+                                                       "node-type": "ext-group",\r
+                                                       "property": [\r
+                                                                                 {\r
+                                                                                       "property-name": "location",\r
+                                                                                       "property-values": {\r
+                                                                                                         "string-value": [\r
+                                                                                                                       {\r
+                                                                                                                         "order": "0",\r
+                                                                                                                         "value": "HW:NE40E:CE1:GE1/0/0"\r
+                                                                                                                       }\r
+                                                                                                               ]\r
+                                                                                                       }\r
+                                                                                 },\r
+                                                                                 {\r
+                                                                                       "property-name": "ac-info-network",\r
+                                                                                       "property-values": {\r
+                                                                                                         "string-value": [\r
+                                                                                                                       {\r
+                                                                                                                         "order": "0",\r
+                                                                                                                         "value": "layer3"\r
+                                                                                                                       }\r
+                                                                                                               ]\r
+                                                                                                       }\r
+                                                                                 },\r
+                                                                                 {\r
+                                                                                       "property-name": "ac-info-protocol",\r
+                                                                                       "property-values": {\r
+                                                                                                         "string-value": [\r
+                                                                                                                       {\r
+                                                                                                                         "order": "0",\r
+                                                                                                                         "value": "static"\r
+                                                                                                                       }\r
+                                                                                                               ]\r
+                                                                                                       }\r
+                                                                                 },\r
+                                                                                 {\r
+                                                                                       "property-name": "ip-prefix",\r
+                                                                                       "property-values": {\r
+                                                                                                         "string-value": [\r
+                                                                                                                       {\r
+                                                                                                                         "order": "0",\r
+                                                                                                                         "value": "160.1.1.0/24"\r
+                                                                                                                       }\r
+                                                                                                               ]\r
+                                                                                                       }\r
+                                                                                 }\r
+                                                                               ],\r
+                                                       "node-id": "94a6fb90-b425-4ffd-9515-c0684aa4c37f"\r
+                                                 }\r
+                                       ]\r
+                         }\r
+                 }\r
+               }\r
+       post(STRUCTURE_UPDATE_USERS % contHost, data)\r
+       \r
+\r
+def add_branch2_node(contHost):\r
+       data={\r
+                 "input":{\r
+                         "user-name": "user2",\r
+                         "user-role": "tenant",\r
+                         "user-password": "abc",\r
+                         "user-id": "14ce424a-3e50-4a2a-ad5c-b29845158c8b",\r
+                         "objects":{\r
+                         "node":[\r
+                                         {\r
+                                                       "node-name": "bank-branch2",\r
+                                                       "node-type": "ext-group",\r
+                                                       "property": [\r
+                                                                                 {\r
+                                                                                       "property-name": "location",\r
+                                                                                       "property-values": {\r
+                                                                                                         "string-value": [\r
+                                                                                                                       {\r
+                                                                                                                         "order": "0",\r
+                                                                                                                         "value": "HW:NE40E:CE2:GE3/0/2"\r
+                                                                                                                       }\r
+                                                                                                               ]\r
+                                                                                                       }\r
+                                                                                 },\r
+                                                                                 {\r
+                                                                                       "property-name": "ac-info-network",\r
+                                                                                       "property-values": {\r
+                                                                                                         "string-value": [\r
+                                                                                                                       {\r
+                                                                                                                         "order": "0",\r
+                                                                                                                         "value": "layer3"\r
+                                                                                                                       }\r
+                                                                                                               ]\r
+                                                                                                       }\r
+                                                                                 },\r
+                                                                                 {\r
+                                                                                       "property-name": "ac-info-protocol",\r
+                                                                                       "property-values": {\r
+                                                                                                         "string-value": [\r
+                                                                                                                       {\r
+                                                                                                                         "order": "0",\r
+                                                                                                                         "value": "static"\r
+                                                                                                                       }\r
+                                                                                                               ]\r
+                                                                                                       }\r
+                                                                                 },\r
+                                                                                 {\r
+                                                                                       "property-name": "ip-prefix",\r
+                                                                                       "property-values": {\r
+                                                                                                         "string-value": [\r
+                                                                                                                       {\r
+                                                                                                                         "order": "0",\r
+                                                                                                                         "value": "169.1.1.0/24"\r
+                                                                                                                       }\r
+                                                                                                               ]\r
+                                                                                                       }\r
+                                                                                 }\r
+                                                                               ],\r
+                                                       "node-id": "d463232f-363f-491c-a6f5-097ed0a794d3"\r
+                                                 }\r
+                                       ]\r
+                         }\r
+                 }\r
+               }\r
+       post(STRUCTURE_UPDATE_USERS % contHost, data)\r
+       \r
+def add_DC_node(contHost):\r
+       data={\r
+                 "input":{\r
+                         "user-name": "user2",\r
+                         "user-role": "tenant",\r
+                         "user-password": "abc",\r
+                         "user-id": "14ce424a-3e50-4a2a-ad5c-b29845158c8b",\r
+                         "objects":{\r
+                         "node":[\r
+                                         {\r
+                                                       "node-name": "bank-DC",\r
+                                                       "node-type": "ext-group",\r
+                                                       "property": [\r
+                                                                                 {\r
+                                                                                       "property-name": "location",\r
+                                                                                       "property-values": {\r
+                                                                                                         "string-value": [\r
+                                                                                                                       {\r
+                                                                                                                         "order": "0",\r
+                                                                                                                         "value": "HW:NE40E:CE3:GE1/0/0"\r
+                                                                                                                       }\r
+                                                                                                               ]\r
+                                                                                                       }\r
+                                                                                 },\r
+                                                                                 {\r
+                                                                                       "property-name": "ac-info-network",\r
+                                                                                       "property-values": {\r
+                                                                                                         "string-value": [\r
+                                                                                                                       {\r
+                                                                                                                         "order": "0",\r
+                                                                                                                         "value": "layer3"\r
+                                                                                                                       }\r
+                                                                                                               ]\r
+                                                                                                       }\r
+                                                                                 },\r
+                                                                                 {\r
+                                                                                       "property-name": "ac-info-protocol",\r
+                                                                                       "property-values": {\r
+                                                                                                         "string-value": [\r
+                                                                                                                       {\r
+                                                                                                                         "order": "0",\r
+                                                                                                                         "value": "static"\r
+                                                                                                                       }\r
+                                                                                                               ]\r
+                                                                                                       }\r
+                                                                                 },\r
+                                                                                 {\r
+                                                                                       "property-name": "ip-prefix",\r
+                                                                                       "property-values": {\r
+                                                                                                         "string-value": [\r
+                                                                                                                       {\r
+                                                                                                                         "order": "0",\r
+                                                                                                                         "value": "164.1.1.0/24"\r
+                                                                                                                       }\r
+                                                                                                               ]\r
+                                                                                                       }\r
+                                                                                 }\r
+                                                                               ],\r
+                                                       "node-id": "b46cfa7f-93a3-43f4-ac20-09307c75feca"\r
+                                                 }\r
+                                       ]\r
+                         }\r
+                 }\r
+               }\r
+       post(STRUCTURE_UPDATE_USERS % contHost, data)\r
+       \r
+       \r
+       \r
+def add_branch1_branch2_connection(contHost):\r
+       data={\r
+                "input": {\r
+                         "user-name": "user2",\r
+                         "user-role": "tenant",\r
+                         "user-password": "abc",\r
+                         "user-id": "14ce424a-3e50-4a2a-ad5c-b29845158c8b",\r
+                         "objects":{\r
+                                 "connection": [\r
+                                                 {\r
+                                                       "connection-name": "c1",\r
+                                                       "connection-id": "30da6667-608e-4d2f-bb50-79e5cabcc523",\r
+                                                       "end-node": [\r
+                                                         {\r
+                                                               "order": "0",\r
+                                                               "node-id": "94a6fb90-b425-4ffd-9515-c0684aa4c37f"\r
+                                                         },\r
+                                                         {\r
+                                                               "order": "0",\r
+                                                               "node-id": "d463232f-363f-491c-a6f5-097ed0a794d3"\r
+                                                         }\r
+                                                       ],\r
+                                                       "connection-type": "p2p",\r
+                                               }\r
+                                       ]\r
+                               }\r
+                 }\r
+       }\r
+       post(STRUCTURE_UPDATE_USERS % contHost, data)\r
+\r
+def add_branch1_DC_connection(contHost):\r
+       data={\r
+                "input": {\r
+                         "user-name": "user2",\r
+                         "user-role": "tenant",\r
+                         "user-password": "abc",\r
+                         "user-id": "14ce424a-3e50-4a2a-ad5c-b29845158c8b",\r
+                         "objects":{\r
+                                 "connection": [\r
+                                                 {\r
+                                                       "connection-name": "c2",\r
+                                                       "connection-id": "b49e3960-c08d-4fff-b9fc-08b65ebcde2c",\r
+                                                       "end-node": [\r
+                                                         {\r
+                                                               "order": "0",\r
+                                                               "node-id": "94a6fb90-b425-4ffd-9515-c0684aa4c37f"\r
+                                                         },\r
+                                                         {\r
+                                                               "order": "0",\r
+                                                               "node-id": "b46cfa7f-93a3-43f4-ac20-09307c75feca"\r
+                                                         }\r
+                                                       ],\r
+                                                       "connection-type": "p2p",\r
+                                               }\r
+                                       ]\r
+                               }\r
+                 }\r
+       }\r
+       post(STRUCTURE_UPDATE_USERS % contHost, data)\r
+       \r
+\r
+def add_branch2_DC_connection(contHost):\r
+       data={\r
+                "input": {\r
+                         "user-name": "user2",\r
+                         "user-role": "tenant",\r
+                         "user-password": "abc",\r
+                         "user-id": "14ce424a-3e50-4a2a-ad5c-b29845158c8b",\r
+                         "objects":{\r
+                                 "connection": [\r
+                                                 {\r
+                                                       "connection-name": "c3",\r
+                                                       "connection-id": "e0d56fee-7235-4748-a2a1-eb5e3733d866",\r
+                                                       "end-node": [\r
+                                                         {\r
+                                                               "order": "0",\r
+                                                               "node-id": "d463232f-363f-491c-a6f5-097ed0a794d3"\r
+                                                         },\r
+                                                         {\r
+                                                               "order": "0",\r
+                                                               "node-id": "b46cfa7f-93a3-43f4-ac20-09307c75feca"\r
+                                                         }\r
+                                                       ],\r
+                                                       "connection-type": "p2p",\r
+                                               }\r
+                                       ]\r
+                               }\r
+                 }\r
+       }\r
+       post(STRUCTURE_UPDATE_USERS % contHost, data)\r
+       \r
+\r
+def post(url, data):\r
+    headers = {'Content-type': 'application/yang.data+json',\r
+               'Accept': 'application/yang.data+json'}\r
+    print "POST %s" % url\r
+    print json.dumps(data, indent=4, sort_keys=True)\r
+    r = requests.post(url, data=json.dumps(data), headers=headers, auth=HTTPBasicAuth(USERNAME, PASSWORD))\r
+    print r.text\r
+    r.raise_for_status()\r
+       \r
+if __name__ == '__main__':\r
+\r
+       parser = argparse.ArgumentParser()\r
+       parser.add_argument('--controller', default='127.0.0.1', help='controller IP')\r
+       args=parser.parse_args()\r
+\r
+       # CREATE User;\r
+       register_user(args.controller)\r
+\r
+       transaction_begin(args.controller)\r
+       \r
+       add_branch1_node(args.controller)\r
+       add_branch2_node(args.controller)\r
+       add_DC_node(args.controller)\r
+       \r
+       add_branch1_branch2_connection(args.controller)\r
+       add_branch1_DC_connection(args.controller)\r
+       add_branch2_DC_connection(args.controller)\r
+       \r
+       transaction_end(args.controller)
\ No newline at end of file