1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-11-28 03:08:14 +00:00

Drop NAT port from cloud from old topologies

It was almost not used (only one occurrence in the whole
beta test).

Fix #844
This commit is contained in:
Julien Duponchelle 2017-01-11 19:20:12 +01:00
parent 1bf54bcaeb
commit b1ae884bf0
No known key found for this signature in database
GPG Key ID: CE8B29639E07F5E8
3 changed files with 176 additions and 2 deletions

View File

@ -295,9 +295,9 @@ def _convert_1_3_later(topo, topo_path):
elif old_node["type"] == "IOUDevice": elif old_node["type"] == "IOUDevice":
node["node_type"] = "iou" node["node_type"] = "iou"
elif old_node["type"] == "Cloud": elif old_node["type"] == "Cloud":
_create_cloud(node, old_node, ":/symbols/cloud.svg") old_node["ports"] = _create_cloud(node, old_node, ":/symbols/cloud.svg")
elif old_node["type"] == "Host": elif old_node["type"] == "Host":
_create_cloud(node, old_node, ":/symbols/computer.svg") old_node["ports"] = _create_cloud(node, old_node, ":/symbols/computer.svg")
else: else:
raise NotImplementedError("Conversion of {} is not supported".format(old_node["type"])) raise NotImplementedError("Conversion of {} is not supported".format(old_node["type"]))
@ -483,6 +483,7 @@ def _create_cloud(node, old_node, icon):
del old_node["properties"]["nios"] del old_node["properties"]["nios"]
ports = [] ports = []
keep_ports = []
for old_port in old_node.get("ports", []): for old_port in old_node.get("ports", []):
if old_port["name"].startswith("nio_gen_eth"): if old_port["name"].startswith("nio_gen_eth"):
port_type = "ethernet" port_type = "ethernet"
@ -492,6 +493,8 @@ def _create_cloud(node, old_node, icon):
port_type = "tap" port_type = "tap"
elif old_port["name"].startswith("nio_udp"): elif old_port["name"].startswith("nio_udp"):
port_type = "udp" port_type = "udp"
elif old_port["name"].startswith("nio_nat"):
continue
else: else:
raise NotImplementedError("The conversion of cloud with {} is not supported".format(old_port["name"])) raise NotImplementedError("The conversion of cloud with {} is not supported".format(old_port["name"]))
@ -512,10 +515,12 @@ def _create_cloud(node, old_node, icon):
"port_number": len(ports) + 1, "port_number": len(ports) + 1,
"type": port_type "type": port_type
} }
keep_ports.append(old_port)
ports.append(port) ports.append(port)
node["properties"]["ports_mapping"] = ports node["properties"]["ports_mapping"] = ports
node["properties"]["interfaces"] = [] node["properties"]["interfaces"] = []
return keep_ports
def _convert_snapshots(topo_dir): def _convert_snapshots(topo_dir):

View File

@ -0,0 +1,53 @@
{
"auto_start": false,
"name": "untitled",
"project_id": "ANYSTR",
"revision": 6,
"topology": {
"computes": [
{
"compute_id": "local",
"host": "127.0.0.1",
"name": "Local",
"port": 3080,
"protocol": "http"
}
],
"drawings": [],
"links": [
],
"nodes": [
{
"compute_id": "local",
"console": null,
"console_type": null,
"first_port_name": null,
"label": {
"rotation": 0,
"style": "font-family: TypeWriter;font-size: 10;font-weight: bold;fill: #000000;fill-opacity: 1.0;",
"text": "Cloud 2",
"x": 55,
"y": -25
},
"name": "Cloud 2",
"node_id": "ANYSTR",
"node_type": "cloud",
"port_name_format": "Ethernet{0}",
"port_segment_size": 0,
"properties": {
"interfaces": [
],
"ports_mapping": [
]
},
"symbol": ":/symbols/cloud.svg",
"x": -144,
"y": -135,
"z": 1
},
{"name": "core-1", "first_port_name": null, "symbol": ":/symbols/cloud.svg", "node_type": "nat", "label": {"style": "font-family: TypeWriter;font-size: 10;font-weight: bold;fill: #000000;fill-opacity: 1.0;", "rotation": 0, "y": -25, "x": 10, "text": "core-1"}, "console_type": null, "port_name_format": "Ethernet{0}", "node_id": "c6de0f4e-101d-4c4f-b5a0-47df57e8a893", "y": 0, "z": 1, "compute_id": "local", "properties": {"ports": [{"name": "nat0", "type": "ethernet", "interface": "eth1", "port_number": 0}]}, "port_segment_size": 0, "console": null, "x": 72}
]
},
"type": "topology",
"version": "ANYSTR"
}

View File

@ -0,0 +1,116 @@
{
"auto_start": false,
"name": "untitled",
"project_id": "63c75180-b540-4389-94cd-62f4bc6a5e2b",
"revision": 4,
"topology": {
"links": [
{
"description": "Link from core-1 port Ethernet0 to Cloud 2 port nio_nat:42",
"destination_node_id": 3,
"destination_port_id": 3,
"id": 3,
"source_node_id": 7,
"source_port_id": 21
}
],
"nodes": [
{
"description": "Cloud",
"id": 3,
"label": {
"color": "#ff000000",
"font": "TypeWriter,10,-1,5,75,0,0,0,0,0",
"text": "Cloud 2",
"x": 55.6015625,
"y": -25.0
},
"ports": [
{
"description": "connected to core-1 on port Ethernet0",
"id": 3,
"link_id": 3,
"name": "nio_nat:42",
"nio": "NIO_NAT",
"stub": true
}
],
"properties": {
"name": "Cloud 2",
"nios": [
"nio_nat:42"
]
},
"server_id": 1,
"type": "Cloud",
"x": -144.5,
"y": -135.0
},
{
"description": "QEMU VM",
"id": 7,
"label": {
"color": "#ff000000",
"font": "TypeWriter,10,-1,5,75,0,0,0,0,0",
"text": "core-1",
"x": 10.9765625,
"y": -25.0
},
"linked_clone": true,
"port_name_format": "Ethernet{0}",
"ports": [
{
"adapter_number": 0,
"description": "connected to Cloud 2 on port nio_nat:42",
"id": 21,
"link_id": 3,
"name": "Ethernet0",
"nio": "NIO_NAT",
"port_number": 0
}
],
"properties": {
"acpi_shutdown": false,
"adapter_type": "e1000",
"adapters": 1,
"boot_priority": "c",
"console": 5000,
"console_type": "telnet",
"cpu_throttling": 0,
"cpus": 1,
"hda_disk_image": "core-linux-6.4-internet-0.1.img",
"hda_disk_image_md5sum": "8ebc5a6ec53a1c05b7aa101b5ceefe31",
"hda_disk_interface": "ide",
"hdb_disk_interface": "ide",
"hdc_disk_interface": "ide",
"hdd_disk_interface": "ide",
"legacy_networking": false,
"mac_address": "00:5e:2b:a8:93:00",
"name": "core-1",
"options": "-nographic",
"platform": "x86_64",
"process_priority": "normal",
"qemu_path": "/usr/local/bin/qemu-system-x86_64",
"ram": 256
},
"server_id": 1,
"type": "QemuVM",
"vm_id": "c6de0f4e-101d-4c4f-b5a0-47df57e8a893",
"x": 72.5,
"y": -0.5
}
],
"servers": [
{
"host": "127.0.0.1",
"id": 1,
"local": true,
"port": 3080,
"protocol": "http",
"vm": false
}
]
},
"type": "topology",
"version": "1.5.3dev2"
}