mirror of
https://github.com/GNS3/gns3-server.git
synced 2024-12-21 05:43:12 +00:00
IOURC is a text box instead of a file path
Fix https://github.com/GNS3/gns3-gui/issues/1662
This commit is contained in:
parent
9be293909e
commit
a853e87fa5
@ -224,6 +224,10 @@ class IOUVM(BaseNode):
|
|||||||
|
|
||||||
iourc_path = self._config().get("iourc_path")
|
iourc_path = self._config().get("iourc_path")
|
||||||
if not iourc_path:
|
if not iourc_path:
|
||||||
|
# look for the iourc file in the temporary dir.
|
||||||
|
path = os.path.join(self.temporary_directory, "iourc")
|
||||||
|
if os.path.exists(path):
|
||||||
|
return path
|
||||||
# look for the iourc file in the user home dir.
|
# look for the iourc file in the user home dir.
|
||||||
path = os.path.join(os.path.expanduser("~/"), ".iourc")
|
path = os.path.join(os.path.expanduser("~/"), ".iourc")
|
||||||
if os.path.exists(path):
|
if os.path.exists(path):
|
||||||
@ -232,10 +236,6 @@ class IOUVM(BaseNode):
|
|||||||
path = os.path.join(self.working_dir, "iourc")
|
path = os.path.join(self.working_dir, "iourc")
|
||||||
if os.path.exists(path):
|
if os.path.exists(path):
|
||||||
return path
|
return path
|
||||||
# look for the iourc file in the temporary dir.
|
|
||||||
path = os.path.join(self.temporary_directory, "iourc")
|
|
||||||
if os.path.exists(path):
|
|
||||||
return path
|
|
||||||
return iourc_path
|
return iourc_path
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -387,7 +387,15 @@ class Node:
|
|||||||
Start a node
|
Start a node
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
yield from self.post("/start", timeout=240)
|
# For IOU we need to send the licence everytime
|
||||||
|
if self.node_type == "iou":
|
||||||
|
try:
|
||||||
|
licence = self._project.controller.settings["IOU"]["iourc_content"]
|
||||||
|
except KeyError:
|
||||||
|
raise aiohttp.web.HTTPConflict(text="IOU licence is not configured")
|
||||||
|
yield from self.post("/start", timeout=240, data={"iourc_content": licence})
|
||||||
|
else:
|
||||||
|
yield from self.post("/start", timeout=240)
|
||||||
except asyncio.TimeoutError:
|
except asyncio.TimeoutError:
|
||||||
raise aiohttp.web.HTTPRequestTimeout(text="Timeout when starting {}".format(self._name))
|
raise aiohttp.web.HTTPRequestTimeout(text="Timeout when starting {}".format(self._name))
|
||||||
|
|
||||||
|
@ -346,6 +346,21 @@ def test_start(node, compute, project, async_run):
|
|||||||
compute.post.assert_called_with("/projects/{}/vpcs/nodes/{}/start".format(node.project.id, node.id), timeout=240)
|
compute.post.assert_called_with("/projects/{}/vpcs/nodes/{}/start".format(node.project.id, node.id), timeout=240)
|
||||||
|
|
||||||
|
|
||||||
|
def test_start_iou(compute, project, async_run, controller):
|
||||||
|
node = Node(project, compute, "demo",
|
||||||
|
node_id=str(uuid.uuid4()),
|
||||||
|
node_type="iou")
|
||||||
|
compute.post = AsyncioMagicMock()
|
||||||
|
|
||||||
|
# Without licence configured it should raise an error
|
||||||
|
with pytest.raises(aiohttp.web.HTTPConflict):
|
||||||
|
async_run(node.start())
|
||||||
|
|
||||||
|
controller.settings["IOU"] = {"iourc_content": "aa"}
|
||||||
|
async_run(node.start())
|
||||||
|
compute.post.assert_called_with("/projects/{}/iou/nodes/{}/start".format(node.project.id, node.id), timeout=240, data={"iourc_content": "aa"})
|
||||||
|
|
||||||
|
|
||||||
def test_stop(node, compute, project, async_run):
|
def test_stop(node, compute, project, async_run):
|
||||||
|
|
||||||
compute.post = AsyncioMagicMock()
|
compute.post = AsyncioMagicMock()
|
||||||
|
Loading…
Reference in New Issue
Block a user