mirror of
https://github.com/GNS3/gns3-server
synced 2024-12-25 00:08:11 +00:00
parent
4b891070d2
commit
d772b6fbd7
@ -15,7 +15,7 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import socket
|
||||
import sys
|
||||
from .cloud import Cloud
|
||||
from ...error import NodeError
|
||||
|
||||
@ -31,24 +31,21 @@ class Nat(Cloud):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
if socket.gethostname() != "gns3vm":
|
||||
raise NodeError("NAT node is supported only on GNS3 VM")
|
||||
|
||||
if "eth1" not in [interface["name"] for interface in gns3server.utils.interfaces.interfaces()]:
|
||||
raise NodeError("eth1 is missing on the GNS3 VM. You need to provide a nat interface as eth1")
|
||||
if "virbr0" not in [interface["name"] for interface in gns3server.utils.interfaces.interfaces()]:
|
||||
raise NodeError("virbr0 is missing. You need to install libvirt")
|
||||
|
||||
self.ports = [
|
||||
{
|
||||
"name": "nat0",
|
||||
"name": "virbr0",
|
||||
"type": "ethernet",
|
||||
"interface": "eth1",
|
||||
"interface": "virbr0",
|
||||
"port_number": 0
|
||||
}
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def is_supported(self):
|
||||
return socket.gethostname() == "gns3vm"
|
||||
return sys.platform.startswith("linux")
|
||||
|
||||
def __json__(self):
|
||||
return {
|
||||
|
@ -31,8 +31,8 @@ def test_json(on_gns3vm, project):
|
||||
"status": "started",
|
||||
"ports": [
|
||||
{
|
||||
"interface": "eth1",
|
||||
"name": "nat0",
|
||||
"interface": "virbr0",
|
||||
"name": "virbr0",
|
||||
"port_number": 0,
|
||||
"type": "ethernet"
|
||||
}
|
||||
|
@ -315,10 +315,10 @@ def async_run(loop):
|
||||
|
||||
|
||||
@pytest.yield_fixture
|
||||
def on_gns3vm():
|
||||
def on_gns3vm(linux_platform):
|
||||
"""
|
||||
Mock the hostname to emulate the GNS3 VM
|
||||
"""
|
||||
with patch("gns3server.utils.interfaces.interfaces", return_value=[{"name": "eth0"}, {"name": "eth1"}]):
|
||||
with patch("gns3server.utils.interfaces.interfaces", return_value=[{"name": "eth0"}, {"name": "eth1", "name": "virbr0"}]):
|
||||
with patch("socket.gethostname", return_value="gns3vm"):
|
||||
yield
|
||||
|
Loading…
Reference in New Issue
Block a user