Skip to content

Commit

Permalink
port name format is a settings for all nodes even if not use all the …
Browse files Browse the repository at this point in the history
…time

Ref #676
  • Loading branch information
julien-duponchelle committed Sep 14, 2016
1 parent f06c00f commit 00d8d7b
Show file tree
Hide file tree
Showing 23 changed files with 122 additions and 191 deletions.
27 changes: 0 additions & 27 deletions gns3server/compute/qemu/qemu_vm.py
Expand Up @@ -114,9 +114,6 @@ def __init__(self, name, node_id, project, manager, linked_clone=True, qemu_path
self._acpi_shutdown = False
self._cpu_throttling = 0 # means no CPU throttling
self._process_priority = "low"
self._first_port_name = ""
self._port_segment_size = 0
self._port_name_format = "Ethernet{0}"

self.mac_address = "" # this will generate a MAC address
self.adapters = 1 # creates 1 adapter by default
Expand Down Expand Up @@ -756,30 +753,6 @@ def kernel_command_line(self, kernel_command_line):
kernel_command_line=kernel_command_line))
self._kernel_command_line = kernel_command_line

@property
def port_name_format(self):
return self._port_name_format

@port_name_format.setter
def port_name_format(self, val):
self._port_name_format = val

@property
def port_segment_size(self):
return self._port_segment_size

@port_segment_size.setter
def port_segment_size(self, val):
self._port_segment_size = val

@property
def first_port_name(self):
return self._first_port_name

@first_port_name.setter
def first_port_name(self, val):
self._first_port_name = val

@asyncio.coroutine
def _set_process_priority(self):
"""
Expand Down
32 changes: 1 addition & 31 deletions gns3server/compute/virtualbox/virtualbox_vm.py
Expand Up @@ -71,9 +71,6 @@ def __init__(self, name, node_id, project, manager, vmname, linked_clone, consol
self._use_any_adapter = False
self._ram = 0
self._adapter_type = "Intel PRO/1000 MT Desktop (82540EM)"
self._port_name_format = "Ethernet{0}"
self._port_segment_size = 0
self._first_port_name = None

def __json__(self):

Expand All @@ -90,10 +87,7 @@ def __json__(self):
"ram": self.ram,
"status": self.status,
"use_any_adapter": self.use_any_adapter,
"linked_clone": self._linked_clone,
"port_name_format": self._port_name_format,
"port_segment_size": self._port_segment_size,
"first_port_name": self._first_port_name}
"linked_clone": self._linked_clone}
if self._linked_clone:
json["node_directory"] = self.working_dir
else:
Expand Down Expand Up @@ -684,30 +678,6 @@ def adapter_type(self, adapter_type):
id=self.id,
adapter_type=adapter_type))

@property
def port_name_format(self):
return self._port_name_format

@port_name_format.setter
def port_name_format(self, val):
self._port_name_format = val

@property
def port_segment_size(self):
return self._port_segment_size

@port_segment_size.setter
def port_segment_size(self, val):
self._port_segment_size = val

@property
def first_port_name(self):
return self._first_port_name

@first_port_name.setter
def first_port_name(self, val):
self._first_port_name = val

@asyncio.coroutine
def _get_vm_info(self):
"""
Expand Down
32 changes: 1 addition & 31 deletions gns3server/compute/vmware/vmware_vm.py
Expand Up @@ -70,9 +70,6 @@ def __init__(self, name, node_id, project, manager, vmx_path, linked_clone, cons
self._ethernet_adapters = {}
self._adapter_type = "e1000"
self._use_any_adapter = False
self._port_name_format = "Ethernet{0}"
self._port_segment_size = 0
self._first_port_name = None

if not os.path.exists(vmx_path):
raise VMwareError('VMware VM "{name}" [{id}]: could not find VMX file "{vmx_path}"'.format(name=name, id=node_id, vmx_path=vmx_path))
Expand All @@ -92,10 +89,7 @@ def __json__(self):
"use_any_adapter": self.use_any_adapter,
"status": self.status,
"node_directory": self.working_dir,
"linked_clone": self._linked_clone,
"port_name_format": self._port_name_format,
"port_segment_size": self._port_segment_size,
"first_port_name": self._first_port_name}
"linked_clone": self._linked_clone}
return json

@property
Expand Down Expand Up @@ -738,30 +732,6 @@ def use_any_adapter(self, use_any_adapter):
log.info("VMware VM '{name}' [{id}] is not allowed to use any adapter".format(name=self.name, id=self.id))
self._use_any_adapter = use_any_adapter

@property
def port_name_format(self):
return self._port_name_format

@port_name_format.setter
def port_name_format(self, val):
self._port_name_format = val

@property
def port_segment_size(self):
return self._port_segment_size

@port_segment_size.setter
def port_segment_size(self, val):
self._port_segment_size = val

@property
def first_port_name(self):
return self._first_port_name

@first_port_name.setter
def first_port_name(self, val):
self._first_port_name = val

@asyncio.coroutine
def adapter_add_nio_binding(self, adapter_number, nio):
"""
Expand Down
43 changes: 38 additions & 5 deletions gns3server/controller/node.py
Expand Up @@ -33,7 +33,8 @@

class Node:
# This properties are used only on controller and are not forwarded to the compute
CONTROLLER_ONLY_PROPERTIES = ["x", "y", "z", "width", "height", "symbol", "label", "console_host"]
CONTROLLER_ONLY_PROPERTIES = ["x", "y", "z", "width", "height", "symbol", "label", "console_host",
"port_name_format", "first_port_name", "port_segment_size"]

def __init__(self, project, compute, name, node_id=None, node_type=None, **kwargs):
"""
Expand Down Expand Up @@ -69,12 +70,14 @@ def __init__(self, project, compute, name, node_id=None, node_type=None, **kwarg
self._y = 0
self._z = 0
self._symbol = None

# Update node properties with additional elements
self._port_name_format = "Ethernet{0}"
self._port_segment_size = 0
self._first_port_name = None

# This properties will be recompute
ignore_properties = ("width", "height")

# Update node properties with additional elements
for prop in kwargs:
if prop not in ignore_properties:
try:
Expand Down Expand Up @@ -220,6 +223,30 @@ def label(self, val):
val["text"] = self._name
self._label = val

@property
def port_name_format(self):
return self._port_name_format

@port_name_format.setter
def port_name_format(self, val):
self._port_name_format = val

@property
def port_segment_size(self):
return self._port_segment_size

@port_segment_size.setter
def port_segment_size(self, val):
self._port_segment_size = val

@property
def first_port_name(self):
return self._first_port_name

@first_port_name.setter
def first_port_name(self, val):
self._first_port_name = val

@asyncio.coroutine
def create(self):
"""
Expand Down Expand Up @@ -450,7 +477,10 @@ def __json__(self, topology_dump=False):
"z": self._z,
"width": self._width,
"height": self._height,
"symbol": self._symbol
"symbol": self._symbol,
"port_name_format": self._port_name_format,
"port_segment_size": self._port_segment_size,
"first_port_name": self._first_port_name
}
return {
"compute_id": str(self._compute.id),
Expand All @@ -471,5 +501,8 @@ def __json__(self, topology_dump=False):
"z": self._z,
"width": self._width,
"height": self._height,
"symbol": self._symbol
"symbol": self._symbol,
"port_name_format": self._port_name_format,
"port_segment_size": self._port_segment_size,
"first_port_name": self._first_port_name
}
3 changes: 3 additions & 0 deletions gns3server/controller/topology.py
Expand Up @@ -179,6 +179,9 @@ def _convert_1_3_later(topo, topo_path):
node["x"] = int(old_node["x"])
node["y"] = int(old_node["y"])
node["z"] = int(old_node.get("z", 1))
node["port_name_format"] = old_node.get("port_name_format", "Ethernet{0}")
node["port_segment_size"] = int(old_node.get("port_segment_size", "0"))
node["first_port_name"] = old_node.get("first_port_name")

node["properties"] = {}

Expand Down
13 changes: 13 additions & 0 deletions gns3server/schemas/node.py
Expand Up @@ -168,6 +168,19 @@
"z": {
"description": "Z position of the node",
"type": "integer"
},
"port_name_format": {
"description": "Formating for port name {0} will be replace by port number",
"type": "string"
},
"port_segment_size": {
"description": "Size of the port segment",
"type": "integer",
"minimum": 0
},
"first_port_name": {
"description": "Name of the first port",
"type": ["string", "null"],
}
},
"additionalProperties": False,
Expand Down
44 changes: 1 addition & 43 deletions gns3server/schemas/qemu.py
Expand Up @@ -199,19 +199,6 @@
"options": {
"description": "Additional QEMU options",
"type": ["string", "null"],
},
"port_name_format": {
"description": "Formating for port name {0} will be replace by port number",
"type": "string"
},
"port_segment_size": {
"description": "Size of the port segment",
"type": "integer",
"minimum": 0
},
"first_port_name": {
"description": "Name of the first port",
"type": ["string", "null"],
}
},
"additionalProperties": False,
Expand Down Expand Up @@ -389,19 +376,6 @@
"options": {
"description": "Additional QEMU options",
"type": ["string", "null"],
},
"port_name_format": {
"description": "Formating for port name {0} will be replace by port number",
"type": "string"
},
"port_segment_size": {
"description": "Size of the port segment",
"type": "integer",
"minimum": 0
},
"first_port_name": {
"description": "Name of the first port",
"type": ["string", "null"],
}
},
"additionalProperties": False,
Expand Down Expand Up @@ -595,19 +569,6 @@
"command_line": {
"description": "Last command line used by GNS3 to start QEMU",
"type": "string"
},
"port_name_format": {
"description": "Formating for port name {0} will be replace by port number",
"type": "string"
},
"port_segment_size": {
"description": "Size of the port segment",
"type": "integer",
"minimum": 0
},
"first_port_name": {
"description": "Name of the first port",
"type": "string",
}
},
"additionalProperties": False,
Expand Down Expand Up @@ -651,10 +612,7 @@
"options",
"node_directory",
"command_line",
"status",
"port_name_format",
"first_port_name",
"port_segment_size"]
"status"]
}

QEMU_BINARY_FILTER_SCHEMA = {
Expand Down
26 changes: 0 additions & 26 deletions gns3server/schemas/virtualbox.py
Expand Up @@ -83,19 +83,6 @@
"acpi_shutdown": {
"description": "ACPI shutdown",
"type": "boolean"
},
"port_name_format": {
"description": "Formating for port name {0} will be replace by port number",
"type": "string"
},
"port_segment_size": {
"description": "Size of the port segment",
"type": "integer",
"minimum": 0
},
"first_port_name": {
"description": "Name of the first port",
"type": ["string", "null"]
}
},
"additionalProperties": False,
Expand Down Expand Up @@ -182,19 +169,6 @@
"linked_clone": {
"description": "Whether the VM is a linked clone or not",
"type": "boolean"
},
"port_name_format": {
"description": "Formating for port name {0} will be replace by port number",
"type": "string"
},
"port_segment_size": {
"description": "Size of the port segment",
"type": "integer",
"minimum": 0
},
"first_port_name": {
"description": "Name of the first port",
"type": ["string", "null"]
}
},
"additionalProperties": False,
Expand Down

0 comments on commit 00d8d7b

Please sign in to comment.