diff --git a/server/__pycache__/gns3.cpython-36.pyc b/server/__pycache__/gns3.cpython-36.pyc index 60c294e139eb5b633cdd194379ed1346e10c692a..831746fdb16ac66a4887be3ff14d626c4cabec4e 100644 Binary files a/server/__pycache__/gns3.cpython-36.pyc and b/server/__pycache__/gns3.cpython-36.pyc differ diff --git a/server/__pycache__/gns3_helper.cpython-36.pyc b/server/__pycache__/gns3_helper.cpython-36.pyc index 6ef50ba8fbf95320a75d28f08d5124ac9b89bef4..93c158385994ab07c6b047b218cabab279d79d3d 100644 Binary files a/server/__pycache__/gns3_helper.cpython-36.pyc and b/server/__pycache__/gns3_helper.cpython-36.pyc differ diff --git a/server/gns3.py b/server/gns3.py index 8b8c1119712e5088f58199506f43ad331fb1e202..d60d7f84c7c87408aabc3e8163b7ed2769f8c810 100644 --- a/server/gns3.py +++ b/server/gns3.py @@ -164,11 +164,10 @@ def links_information(project_id): r = requests.get('{0}/{1}'.format(GNS3_ADDR, url), auth=GNS3_AUTH) return r.json() -def node_create(project_id, name): - para = '{"compute_id": "local", "name": "'+str(name)+'", "node_type": "vpcs"}' +def node_create(project_id, name, para): url = GNS3_URLS['nodes'].format(project_id=project_id) r = requests.post('{0}/{1}'.format(GNS3_ADDR, url), auth=GNS3_AUTH, data=para) - return r.json() + return r def node_delete(project_id, node_id): url = GNS3_URLS['node_instance'].format(project_id=project_id, node_id=node_id) @@ -219,6 +218,7 @@ def node_suspend(project_id, node_id): #Testing +# node_create(project_id, 10 ,0) # print(get_version()) # get_settings() # print(shutdown_server()) diff --git a/server/gns3_helper.py b/server/gns3_helper.py index 3f980d858f35f38e996d7af58ad6ddc899f6b8f4..534d7be66b918a862ca93ababc2df4f5b73034c6 100644 --- a/server/gns3_helper.py +++ b/server/gns3_helper.py @@ -3,6 +3,7 @@ import getpass import sys import telnetlib import gc +import ast project_id ='83b40958-ede6-4dec-9cff-e11bdf38bbcc' HOST = "127.0.0.1" @@ -47,6 +48,20 @@ def update_links_info(): print('link updated') return links_info +def create_node(project_id, name, node_type): + final_para = None + if node_type==0: + final_para = '{"compute_id": "local", "name": "'+str(name)+'", "node_type": "vpcs"}' + if node_type==1: + f = open("property_7200.txt", "r") + para = f.read() + f.close() + word = '"dynamips_id": ' + start_index = para.find(word) + end_index = start_index + len(word) + final_para = '{"compute_id": "local", "name": "'+'R'+str(name)+'", "node_type": "dynamips", "symbol": ":/symbols/router.svg", '+para[:end_index]+str(name)+para[end_index:]+'}' + return gns3.node_create(project_id, name, final_para) + def connect_console(PORT, name): tn = telnetlib.Telnet(HOST, PORT) @@ -66,6 +81,7 @@ def close_console(tn): tn.close() print('closed') +#TESTING # tn = connect_console(5000, "R1") # console_command(tn, "R1", "show int sum") # console_command(tn, "R1", "show ip int bri") diff --git a/server/property_7200.txt b/server/property_7200.txt new file mode 100644 index 0000000000000000000000000000000000000000..04fece08d9f690e8fc6fbfb1948f74c36fe84d78 --- /dev/null +++ b/server/property_7200.txt @@ -0,0 +1,40 @@ +"properties": { + "auto_delete_disks": true, + "aux": null, + "clock_divisor": 4, + "disk0": 0, + "disk1": 0, + "dynamips_id": , + "exec_area": 64, + "idlemax": 500, + "idlepc": "0x606384b0", + "idlesleep": 30, + "image": "c7200-adventerprisek9-mz.150-1.M.image", + "image_md5sum": "e45960476d55bba653bbe63a9b85c492", + "mac_addr": "ca01.72e9.0000", + "midplane": "vxr", + "mmap": true, + "npe": "npe-400", + "nvram": 512, + "platform": "c7200", + "power_supplies": [ + 1, + 1 + ], + "ram": 512, + "sensors": [ + 22, + 22, + 22, + 22 + ], + "slot0": "C7200-IO-FE", + "slot1": "PA-A1", + "slot2": "PA-FE-TX", + "slot3": "PA-2FE-TX", + "slot4": null, + "slot5": null, + "slot6": null, + "sparsemem": true, + "system_id": "FTX0945W0MY" +} \ No newline at end of file diff --git a/server/server.py b/server/server.py index d0a45062dc2aeed8889c4543b427b716f5324d56..488a0130a0d04f81b0c3f5f0af35b10fdea7a0d8 100644 --- a/server/server.py +++ b/server/server.py @@ -52,11 +52,11 @@ while 1: links_info = gn.update_links_info() data = str(links_info)+str('END') - elif index == '03': + elif index[0:2] == '03': nodes_info = gn.update_nodes_info() + node_type = int(index[2:4]) name = len(nodes_info)+1 - gns3.node_create(project_id, name) - data = str('ok')+str('END') + data = str(gn.create_node(project_id, name, node_type))+str('END') elif index == '04': nodes_info = gn.update_nodes_info() diff --git a/server/test1.txt b/server/test1.txt new file mode 100644 index 0000000000000000000000000000000000000000..7cde1e138d79bfe3f77c20070eeb0a9bf5e538a4 --- /dev/null +++ b/server/test1.txt @@ -0,0 +1,121 @@ + + "command_line": null, + "compute_id": "local", + "console": 5002, + "console_host": "127.0.0.1", + "console_type": "telnet", + "first_port_name": null, + "height": 45, + "label": { + "rotation": 0, + "style": "font-family: TypeWriter;font-size: 10.0;font-weight: bold;fill: #000000;fill-opacity: 1.0;", + "text": "3", + "x": 25, + "y": -25 + }, + "name": "3", + "node_directory": "/Users/mac/GNS3/projects/test/project-files/dynamips/9649ec23-0187-4ca5-af05-5a8f87e40c35", + "node_id": "9649ec23-0187-4ca5-af05-5a8f87e40c35", + "node_type": "dynamips", + "port_name_format": "Ethernet{0}", + "port_segment_size": 0, + "ports": [ + { + "adapter_number": 0, + "data_link_types": { + "Ethernet": "DLT_EN10MB" + }, + "link_type": "ethernet", + "name": "FastEthernet0/0", + "port_number": 0, + "short_name": "f0/0" + }, + { + "adapter_number": 1, + "data_link_types": { + "ATM": "DLT_ATM_RFC1483" + }, + "link_type": "serial", + "name": "ATM1/0", + "port_number": 0, + "short_name": "a1/0" + }, + { + "adapter_number": 2, + "data_link_types": { + "Ethernet": "DLT_EN10MB" + }, + "link_type": "ethernet", + "name": "FastEthernet2/0", + "port_number": 0, + "short_name": "f2/0" + }, + { + "adapter_number": 3, + "data_link_types": { + "Ethernet": "DLT_EN10MB" + }, + "link_type": "ethernet", + "name": "FastEthernet3/0", + "port_number": 0, + "short_name": "f3/0" + }, + { + "adapter_number": 3, + "data_link_types": { + "Ethernet": "DLT_EN10MB" + }, + "link_type": "ethernet", + "name": "FastEthernet3/1", + "port_number": 1, + "short_name": "f3/1" + } + ], + "project_id": "83b40958-ede6-4dec-9cff-e11bdf38bbcc", + "properties": { + "auto_delete_disks": true, + "aux": null, + "clock_divisor": 4, + "disk0": 0, + "disk1": 0, + "dynamips_id": 3, + "exec_area": 64, + "idlemax": 500, + "idlepc": "0x606384b0", + "idlesleep": 30, + "image": "c7200-adventerprisek9-mz.150-1.M.image", + "image_md5sum": "e45960476d55bba653bbe63a9b85c492", + "mac_addr": "ca01.72e9.0000", + "midplane": "vxr", + "mmap": true, + "npe": "npe-400", + "nvram": 512, + "platform": "c7200", + "power_supplies": [ + 1, + 1 + ], + "ram": 512, + "sensors": [ + 22, + 22, + 22, + 22 + ], + "slot0": "C7200-IO-FE", + "slot1": "PA-A1", + "slot2": "PA-FE-TX", + "slot3": "PA-2FE-TX", + "slot4": null, + "slot5": null, + "slot6": null, + "sparsemem": true, + "system_id": "FTX0945W0MY" + }, + "status": "started", + "symbol": ":/symbols/router.svg", + "width": 66, + "x": 0, + "y": 0, + "z": 0 + \ No newline at end of file diff --git a/server/test2.txt b/server/test2.txt new file mode 100644 index 0000000000000000000000000000000000000000..d4e97730cdbd71309d076b2207dc8f5460fe2c3d --- /dev/null +++ b/server/test2.txt @@ -0,0 +1,121 @@ + + "command_line": null, + "compute_id": "local", + "console": 5000, + "console_host": "127.0.0.1", + "console_type": "telnet", + "first_port_name": null, + "height": 45, + "label": { + "rotation": 0, + "style": "font-family: TypeWriter;font-size: 10.0;font-weight: bold;fill: #000000;fill-opacity: 1.0;", + "text": "R1", + "x": 22, + "y": -25 + }, + "name": "R1", + "node_directory": "/Users/mac/GNS3/projects/test/project-files/dynamips/8d27cd88-3a96-4a72-8281-0d0f991f4017", + "node_id": "8d27cd88-3a96-4a72-8281-0d0f991f4017", + "node_type": "dynamips", + "port_name_format": "Ethernet{0}", + "port_segment_size": 0, + "ports": [ + { + "adapter_number": 0, + "data_link_types": { + "Ethernet": "DLT_EN10MB" + }, + "link_type": "ethernet", + "name": "FastEthernet0/0", + "port_number": 0, + "short_name": "f0/0" + }, + { + "adapter_number": 1, + "data_link_types": { + "ATM": "DLT_ATM_RFC1483" + }, + "link_type": "serial", + "name": "ATM1/0", + "port_number": 0, + "short_name": "a1/0" + }, + { + "adapter_number": 2, + "data_link_types": { + "Ethernet": "DLT_EN10MB" + }, + "link_type": "ethernet", + "name": "FastEthernet2/0", + "port_number": 0, + "short_name": "f2/0" + }, + { + "adapter_number": 3, + "data_link_types": { + "Ethernet": "DLT_EN10MB" + }, + "link_type": "ethernet", + "name": "FastEthernet3/0", + "port_number": 0, + "short_name": "f3/0" + }, + { + "adapter_number": 3, + "data_link_types": { + "Ethernet": "DLT_EN10MB" + }, + "link_type": "ethernet", + "name": "FastEthernet3/1", + "port_number": 1, + "short_name": "f3/1" + } + ], + "project_id": "83b40958-ede6-4dec-9cff-e11bdf38bbcc", + "properties": { + "auto_delete_disks": true, + "aux": null, + "clock_divisor": 4, + "disk0": 0, + "disk1": 0, + "dynamips_id": 1, + "exec_area": 64, + "idlemax": 500, + "idlepc": "0x606384b0", + "idlesleep": 30, + "image": "c7200-adventerprisek9-mz.150-1.M.image", + "image_md5sum": "e45960476d55bba653bbe63a9b85c492", + "mac_addr": "ca01.72e9.0000", + "midplane": "vxr", + "mmap": true, + "npe": "npe-400", + "nvram": 512, + "platform": "c7200", + "power_supplies": [ + 1, + 1 + ], + "ram": 512, + "sensors": [ + 22, + 22, + 22, + 22 + ], + "slot0": "C7200-IO-FE", + "slot1": "PA-A1", + "slot2": "PA-FE-TX", + "slot3": "PA-2FE-TX", + "slot4": null, + "slot5": null, + "slot6": null, + "sparsemem": true, + "system_id": "FTX0945W0MY" + }, + "status": "started", + "symbol": ":/symbols/router.svg", + "width": 66, + "x": -185, + "y": -183, + "z": 0 + \ No newline at end of file