mirror of
https://github.com/GNS3/gns3-server.git
synced 2025-06-20 00:03:56 +00:00
Ethernet hub and Ethernet switch almost fully migrated to the new API.
This commit is contained in:
@ -35,22 +35,53 @@ class EthernetHub(Bridge):
|
||||
Dynamips Ethernet hub (based on Bridge)
|
||||
|
||||
:param name: name for this hub
|
||||
:param device_id: Device instance identifier
|
||||
:param node_id: Node instance identifier
|
||||
:param project: Project instance
|
||||
:param manager: Parent VM Manager
|
||||
:param ports: initial hub ports
|
||||
:param hypervisor: Dynamips hypervisor instance
|
||||
"""
|
||||
|
||||
def __init__(self, name, device_id, project, manager, hypervisor=None):
|
||||
def __init__(self, name, node_id, project, manager, ports=None, hypervisor=None):
|
||||
|
||||
super().__init__(name, device_id, project, manager, hypervisor)
|
||||
super().__init__(name, node_id, project, manager, hypervisor)
|
||||
self._mappings = {}
|
||||
if ports is None:
|
||||
# create 8 ports by default
|
||||
self._ports = []
|
||||
for port_number in range(1, 9):
|
||||
self._ports.append({"port_number": port_number,
|
||||
"name": "Ethernet{}".format(port_number)})
|
||||
else:
|
||||
self._ports = ports
|
||||
|
||||
def __json__(self):
|
||||
|
||||
return {"name": self.name,
|
||||
"node_id": self.id,
|
||||
"project_id": self.project.id}
|
||||
"project_id": self.project.id,
|
||||
"ports": self._ports,
|
||||
"status": "started"}
|
||||
|
||||
@property
|
||||
def ports(self):
|
||||
"""
|
||||
Ports on this hub
|
||||
|
||||
:returns: ports info
|
||||
"""
|
||||
|
||||
return self._ports
|
||||
|
||||
@ports.setter
|
||||
def ports(self, ports):
|
||||
"""
|
||||
Set the ports on this hub
|
||||
|
||||
:param ports: ports info
|
||||
"""
|
||||
|
||||
self._ports = ports
|
||||
|
||||
@asyncio.coroutine
|
||||
def create(self):
|
||||
@ -95,6 +126,9 @@ class EthernetHub(Bridge):
|
||||
:param port_number: port to allocate for the NIO
|
||||
"""
|
||||
|
||||
if port_number not in [port["port_number"] for port in self._ports]:
|
||||
raise DynamipsError("Port {} doesn't exist".format(port_number))
|
||||
|
||||
if port_number in self._mappings:
|
||||
raise DynamipsError("Port {} isn't free".format(port_number))
|
||||
|
||||
|
Reference in New Issue
Block a user