mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-24 17:28:08 +00:00
parent
cf723962af
commit
7255754fef
@ -41,13 +41,10 @@ class Cloud(BaseNode):
|
|||||||
:param project: Project instance
|
:param project: Project instance
|
||||||
:param manager: Parent VM Manager
|
:param manager: Parent VM Manager
|
||||||
"""
|
"""
|
||||||
_cloud_id = 0
|
|
||||||
|
|
||||||
def __init__(self, name, node_id, project, manager, ports=[]):
|
def __init__(self, name, node_id, project, manager, ports=[]):
|
||||||
|
|
||||||
super().__init__(name, node_id, project, manager)
|
super().__init__(name, node_id, project, manager)
|
||||||
Cloud._cloud_id += 1
|
|
||||||
|
|
||||||
self._nios = {}
|
self._nios = {}
|
||||||
# If the cloud is not configured we fill it with host interfaces
|
# If the cloud is not configured we fill it with host interfaces
|
||||||
if not ports or len(ports) == 0:
|
if not ports or len(ports) == 0:
|
||||||
@ -240,7 +237,15 @@ class Cloud(BaseNode):
|
|||||||
"""
|
"""
|
||||||
interface = port_info["interface"]
|
interface = port_info["interface"]
|
||||||
if gns3server.utils.interfaces.is_interface_bridge(interface):
|
if gns3server.utils.interfaces.is_interface_bridge(interface):
|
||||||
tap = "gns3tap{}-{}".format(Cloud._cloud_id, port_info["port_number"])
|
|
||||||
|
network_interfaces = [interface["name"] for interface in self._interfaces()]
|
||||||
|
i = 0
|
||||||
|
while True:
|
||||||
|
tap = "gns3tap{}-{}".format(i, port_info["port_number"])
|
||||||
|
if tap not in network_interfaces:
|
||||||
|
break
|
||||||
|
i += 1
|
||||||
|
|
||||||
yield from self._ubridge_send('bridge add_nio_tap "{name}" "{interface}"'.format(name=bridge_name, interface=tap))
|
yield from self._ubridge_send('bridge add_nio_tap "{name}" "{interface}"'.format(name=bridge_name, interface=tap))
|
||||||
yield from self._ubridge_send('brctl addif "{interface}" "{tap}"'.format(tap=tap, interface=interface))
|
yield from self._ubridge_send('brctl addif "{interface}" "{tap}"'.format(tap=tap, interface=interface))
|
||||||
else:
|
else:
|
||||||
|
@ -173,7 +173,7 @@ def test_linux_ethernet_raw_add_nio_bridge(linux_platform, project, async_run, n
|
|||||||
with patch("gns3server.utils.interfaces.is_interface_bridge", return_value=True):
|
with patch("gns3server.utils.interfaces.is_interface_bridge", return_value=True):
|
||||||
async_run(cloud.add_nio(nio, 0))
|
async_run(cloud.add_nio(nio, 0))
|
||||||
|
|
||||||
tap = "gns3tap{}-0".format(cloud._cloud_id)
|
tap = "gns3tap0-0"
|
||||||
ubridge_mock.assert_has_calls([
|
ubridge_mock.assert_has_calls([
|
||||||
call("bridge create {}-0".format(cloud._id)),
|
call("bridge create {}-0".format(cloud._id)),
|
||||||
call("bridge add_nio_udp {}-0 4242 127.0.0.1 4343".format(cloud._id)),
|
call("bridge add_nio_udp {}-0 4242 127.0.0.1 4343".format(cloud._id)),
|
||||||
|
Loading…
Reference in New Issue
Block a user