1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-12-23 23:38:21 +00:00

Initial config path for IOU

This commit is contained in:
Julien Duponchelle 2015-02-17 18:12:43 +01:00
parent dd1833c4f0
commit 03b6563864
4 changed files with 17 additions and 10 deletions

View File

@ -62,7 +62,7 @@ class IOUHandler:
ram=request.json.get("ram"),
nvram=request.json.get("nvram"),
l1_keepalives=request.json.get("l1_keepalives"),
initial_config=request.json.get("initial_config")
initial_config=request.json.get("initial_config_content")
)
vm.path = request.json.get("path", vm.path)
response.set_status(201)
@ -116,7 +116,7 @@ class IOUHandler:
vm.ram = request.json.get("ram", vm.ram)
vm.nvram = request.json.get("nvram", vm.nvram)
vm.l1_keepalives = request.json.get("l1_keepalives", vm.l1_keepalives)
vm.initial_config = request.json.get("initial_config", vm.initial_config)
vm.initial_config = request.json.get("initial_config_content", vm.initial_config)
response.json(vm)

View File

@ -200,6 +200,7 @@ class IOUVM(BaseVM):
"ram": self._ram,
"nvram": self._nvram,
"l1_keepalives": self._l1_keepalives,
"initial_config": self.relative_initial_config_file
}
@property
@ -890,7 +891,7 @@ class IOUVM(BaseVM):
path = os.path.join(self.working_dir, 'initial-config.cfg')
if os.path.exists(path):
return path.replace(self.project.path, "")[1:]
return 'initial-config.cfg'
else:
return None

View File

@ -66,7 +66,7 @@ IOU_CREATE_SCHEMA = {
"description": "Always up ethernet interface",
"type": ["boolean", "null"]
},
"initial_config": {
"initial_config_content": {
"description": "Initial configuration of the IOU",
"type": ["string", "null"]
}
@ -115,7 +115,7 @@ IOU_UPDATE_SCHEMA = {
"description": "Always up ethernet interface",
"type": ["boolean", "null"]
},
"initial_config": {
"initial_config_content": {
"description": "Initial configuration of the IOU",
"type": ["string", "null"]
}
@ -177,9 +177,13 @@ IOU_OBJECT_SCHEMA = {
"description": "Always up ethernet interface",
"type": "boolean"
},
"initial_config": {
"description": "Path of the initial config content relative to project directory",
"type": ["string", "null"]
}
},
"additionalProperties": False,
"required": ["name", "vm_id", "console", "project_id", "path", "serial_adapters", "ethernet_adapters", "ram", "nvram", "l1_keepalives"]
"required": ["name", "vm_id", "console", "project_id", "path", "serial_adapters", "ethernet_adapters", "ram", "nvram", "l1_keepalives", "initial_config"]
}
IOU_NIO_SCHEMA = {

View File

@ -72,7 +72,7 @@ def test_iou_create_with_params(server, project, base_params):
params["serial_adapters"] = 4
params["ethernet_adapters"] = 0
params["l1_keepalives"] = True
params["initial_config"] = "hostname test"
params["initial_config_content"] = "hostname test"
response = server.post("/projects/{project_id}/iou/vms".format(project_id=project.id), params, example=True)
assert response.status == 201
@ -84,8 +84,9 @@ def test_iou_create_with_params(server, project, base_params):
assert response.json["ram"] == 1024
assert response.json["nvram"] == 512
assert response.json["l1_keepalives"] is True
assert "initial-config.cfg" in response.json["initial_config"]
with open(initial_config_file(project, response.json)) as f:
assert f.read() == params["initial_config"]
assert f.read() == params["initial_config_content"]
def test_iou_get(server, project, vm):
@ -138,7 +139,7 @@ def test_iou_update(server, vm, tmpdir, free_console_port, project):
"ethernet_adapters": 4,
"serial_adapters": 0,
"l1_keepalives": True,
"initial_config": "hostname test"
"initial_config_content": "hostname test"
}
response = server.put("/projects/{project_id}/iou/vms/{vm_id}".format(project_id=vm["project_id"], vm_id=vm["vm_id"]), params)
assert response.status == 200
@ -149,6 +150,7 @@ def test_iou_update(server, vm, tmpdir, free_console_port, project):
assert response.json["ram"] == 512
assert response.json["nvram"] == 2048
assert response.json["l1_keepalives"] is True
assert "initial-config.cfg" in response.json["initial_config"]
with open(initial_config_file(project, response.json)) as f:
assert f.read() == "hostname test"
@ -244,4 +246,4 @@ def test_get_initial_config_with_config_file(server, project, vm):
response = server.get("/projects/{project_id}/iou/vms/{vm_id}/initial_config".format(project_id=vm["project_id"], vm_id=vm["vm_id"]), example=True)
assert response.status == 200
assert response.json["content"] == "TEST"
assert response.json["path"] == "project-files/iou/{vm_id}/initial-config.cfg".format(vm_id=vm["vm_id"])
assert response.json["path"] == "initial-config.cfg"