Raise an error if we use nat and eth1 doesn't exists

Fix #657
This commit is contained in:
Julien Duponchelle 2016-08-30 18:27:04 +02:00
parent 5fdd33fe3b
commit 7065988087
No known key found for this signature in database
GPG Key ID: CE8B29639E07F5E8
2 changed files with 8 additions and 2 deletions

View File

@ -19,6 +19,8 @@ import socket
from .cloud import Cloud
from ...error import NodeError
import gns3server.utils.interfaces
class Nat(Cloud):
"""
@ -32,6 +34,9 @@ class Nat(Cloud):
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")
self.ports = [
{
"name": "nat0",

View File

@ -322,5 +322,6 @@ def on_gns3vm():
"""
Mock the hostname to emulate the GNS3 VM
"""
with patch("socket.gethostname", return_value="gns3vm"):
yield
with patch("gns3server.utils.interfaces.interfaces", return_value=[{"name": "eth0"}, {"name": "eth1"}]):
with patch("socket.gethostname", return_value="gns3vm"):
yield