mirror of
https://github.com/GNS3/gns3-server
synced 2025-01-11 08:30:57 +00:00
Return correct status codes and fix tests.
This commit is contained in:
parent
368d1ff70b
commit
7ce1cf3f84
@ -44,7 +44,9 @@ class VirtualBoxHandler:
|
||||
vm = yield from vbox_manager.create_vm(request.json["name"],
|
||||
request.json["project_uuid"],
|
||||
request.json.get("uuid"),
|
||||
vmname=request.json["vmname"])
|
||||
request.json["vmname"],
|
||||
request.json.get("linked_clone", False))
|
||||
response.set_status(201)
|
||||
response.json({"name": vm.name,
|
||||
"uuid": vm.uuid,
|
||||
"project_uuid": vm.project.uuid})
|
||||
@ -65,7 +67,7 @@ class VirtualBoxHandler:
|
||||
|
||||
vbox_manager = VirtualBox.instance()
|
||||
yield from vbox_manager.start_vm(request.match_info["uuid"])
|
||||
response.json({})
|
||||
response.set_status(204)
|
||||
|
||||
@classmethod
|
||||
@Route.post(
|
||||
@ -83,4 +85,4 @@ class VirtualBoxHandler:
|
||||
|
||||
vbox_manager = VirtualBox.instance()
|
||||
yield from vbox_manager.stop_vm(request.match_info["uuid"])
|
||||
response.json({})
|
||||
response.set_status(204)
|
||||
|
@ -49,6 +49,7 @@ class VPCSHandler:
|
||||
console=request.json.get("console"),
|
||||
script_file=request.json.get("script_file"),
|
||||
startup_script=request.json.get("startup_script"))
|
||||
response.set_status(201)
|
||||
response.json(vm)
|
||||
|
||||
@classmethod
|
||||
@ -58,7 +59,7 @@ class VPCSHandler:
|
||||
"uuid": "VPCS instance UUID"
|
||||
},
|
||||
status_codes={
|
||||
200: "VPCS instance started",
|
||||
200: "Success",
|
||||
404: "VPCS instance doesn't exist"
|
||||
},
|
||||
description="Get a VPCS instance")
|
||||
@ -105,7 +106,7 @@ class VPCSHandler:
|
||||
|
||||
vpcs_manager = VPCS.instance()
|
||||
yield from vpcs_manager.start_vm(request.match_info["uuid"])
|
||||
response.json({})
|
||||
response.set_status(204)
|
||||
|
||||
@classmethod
|
||||
@Route.post(
|
||||
@ -123,7 +124,7 @@ class VPCSHandler:
|
||||
|
||||
vpcs_manager = VPCS.instance()
|
||||
yield from vpcs_manager.stop_vm(request.match_info["uuid"])
|
||||
response.json({})
|
||||
response.set_status(204)
|
||||
|
||||
@Route.post(
|
||||
r"/vpcs/{uuid}/ports/{port_id}/nio",
|
||||
@ -144,6 +145,7 @@ class VPCSHandler:
|
||||
vpcs_manager = VPCS.instance()
|
||||
vm = vpcs_manager.get_vm(request.match_info["uuid"])
|
||||
nio = vm.port_add_nio_binding(int(request.match_info["port_id"]), request.json)
|
||||
response.set_status(201)
|
||||
response.json(nio)
|
||||
|
||||
@classmethod
|
||||
@ -154,7 +156,7 @@ class VPCSHandler:
|
||||
"port_id": "ID of the port where the nio should be removed"
|
||||
},
|
||||
status_codes={
|
||||
200: "NIO deleted",
|
||||
204: "NIO deleted",
|
||||
400: "Invalid VPCS instance UUID",
|
||||
404: "VPCS instance doesn't exist"
|
||||
},
|
||||
@ -164,4 +166,5 @@ class VPCSHandler:
|
||||
vpcs_manager = VPCS.instance()
|
||||
vm = vpcs_manager.get_vm(request.match_info["uuid"])
|
||||
nio = vm.port_remove_nio_binding(int(request.match_info["port_id"]))
|
||||
response.json({})
|
||||
response.set_status(204)
|
||||
|
||||
|
@ -118,8 +118,9 @@ class Query:
|
||||
value = "Thu, 08 Jan 2015 16:09:15 GMT"
|
||||
f.write("{}: {}\n".format(header, value))
|
||||
f.write("\n")
|
||||
f.write(json.dumps(json.loads(response.body.decode('utf-8')), sort_keys=True, indent=4))
|
||||
f.write("\n")
|
||||
if response.body:
|
||||
f.write(json.dumps(json.loads(response.body.decode('utf-8')), sort_keys=True, indent=4))
|
||||
f.write("\n")
|
||||
|
||||
def _example_file_path(self, method, path):
|
||||
path = re.sub('[^a-z0-9]', '', path)
|
||||
|
@ -22,20 +22,20 @@ from gns3server.modules.virtualbox.virtualbox_vm import VirtualBoxVM
|
||||
|
||||
def test_vbox_create(server, project):
|
||||
response = server.post("/virtualbox", {"name": "VM1", "vmname": "VM1", "project_uuid": project.uuid}, example=True)
|
||||
assert response.status == 200
|
||||
assert response.status == 201
|
||||
assert response.route == "/virtualbox"
|
||||
assert response.json["name"] == "VM1"
|
||||
|
||||
|
||||
def test_vbox_start(server):
|
||||
with asyncio_patch("gns3server.modules.VirtualBox.start_vm", return_value=True):
|
||||
with asyncio_patch("gns3server.modules.VirtualBox.start_vm", return_value=True) as mock:
|
||||
response = server.post("/virtualbox/61d61bdd-aa7d-4912-817f-65a9eb54d3ab/start", {}, example=True)
|
||||
assert response.status == 200
|
||||
assert response.route == "/virtualbox/{uuid}/start"
|
||||
assert mock.called
|
||||
assert response.status == 204
|
||||
|
||||
|
||||
def test_vbox_stop(server):
|
||||
with asyncio_patch("gns3server.modules.VirtualBox.stop_vm", return_value=True):
|
||||
with asyncio_patch("gns3server.modules.VirtualBox.stop_vm", return_value=True) as mock:
|
||||
response = server.post("/virtualbox/61d61bdd-aa7d-4912-817f-65a9eb54d3ab/stop", {}, example=True)
|
||||
assert response.status == 200
|
||||
assert response.route == "/virtualbox/{uuid}/stop"
|
||||
assert mock.called
|
||||
assert response.status == 204
|
||||
|
@ -26,13 +26,13 @@ from gns3server.modules.vpcs.vpcs_vm import VPCSVM
|
||||
@pytest.fixture(scope="module")
|
||||
def vm(server, project):
|
||||
response = server.post("/vpcs", {"name": "PC TEST 1", "project_uuid": project.uuid})
|
||||
assert response.status == 200
|
||||
assert response.status == 201
|
||||
return response.json
|
||||
|
||||
|
||||
def test_vpcs_create(server, project):
|
||||
response = server.post("/vpcs", {"name": "PC TEST 1", "project_uuid": project.uuid}, example=True)
|
||||
assert response.status == 200
|
||||
assert response.status == 201
|
||||
assert response.route == "/vpcs"
|
||||
assert response.json["name"] == "PC TEST 1"
|
||||
assert response.json["project_uuid"] == project.uuid
|
||||
@ -52,7 +52,7 @@ def test_vpcs_create_script_file(server, project, tmpdir):
|
||||
with open(path, 'w+') as f:
|
||||
f.write("ip 192.168.1.2")
|
||||
response = server.post("/vpcs", {"name": "PC TEST 1", "project_uuid": project.uuid, "script_file": path})
|
||||
assert response.status == 200
|
||||
assert response.status == 201
|
||||
assert response.route == "/vpcs"
|
||||
assert response.json["name"] == "PC TEST 1"
|
||||
assert response.json["project_uuid"] == project.uuid
|
||||
@ -61,7 +61,7 @@ def test_vpcs_create_script_file(server, project, tmpdir):
|
||||
|
||||
def test_vpcs_create_startup_script(server, project):
|
||||
response = server.post("/vpcs", {"name": "PC TEST 1", "project_uuid": project.uuid, "startup_script": "ip 192.168.1.2\necho TEST"})
|
||||
assert response.status == 200
|
||||
assert response.status == 201
|
||||
assert response.route == "/vpcs"
|
||||
assert response.json["name"] == "PC TEST 1"
|
||||
assert response.json["project_uuid"] == project.uuid
|
||||
@ -70,7 +70,7 @@ def test_vpcs_create_startup_script(server, project):
|
||||
|
||||
def test_vpcs_create_port(server, project, free_console_port):
|
||||
response = server.post("/vpcs", {"name": "PC TEST 1", "project_uuid": project.uuid, "console": free_console_port})
|
||||
assert response.status == 200
|
||||
assert response.status == 201
|
||||
assert response.route == "/vpcs"
|
||||
assert response.json["name"] == "PC TEST 1"
|
||||
assert response.json["project_uuid"] == project.uuid
|
||||
@ -83,7 +83,7 @@ def test_vpcs_nio_create_udp(server, vm):
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"},
|
||||
example=True)
|
||||
assert response.status == 200
|
||||
assert response.status == 201
|
||||
assert response.route == "/vpcs/{uuid}/ports/{port_id}/nio"
|
||||
assert response.json["type"] == "nio_udp"
|
||||
|
||||
@ -92,7 +92,7 @@ def test_vpcs_nio_create_udp(server, vm):
|
||||
def test_vpcs_nio_create_tap(mock, server, vm):
|
||||
response = server.post("/vpcs/{}/ports/0/nio".format(vm["uuid"]), {"type": "nio_tap",
|
||||
"tap_device": "test"})
|
||||
assert response.status == 200
|
||||
assert response.status == 201
|
||||
assert response.route == "/vpcs/{uuid}/ports/{port_id}/nio"
|
||||
assert response.json["type"] == "nio_tap"
|
||||
|
||||
@ -103,7 +103,7 @@ def test_vpcs_delete_nio(server, vm):
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"})
|
||||
response = server.delete("/vpcs/{}/ports/0/nio".format(vm["uuid"]), example=True)
|
||||
assert response.status == 200
|
||||
assert response.status == 204
|
||||
assert response.route == "/vpcs/{uuid}/ports/{port_id}/nio"
|
||||
|
||||
|
||||
@ -111,14 +111,14 @@ def test_vpcs_start(server, vm):
|
||||
with asyncio_patch("gns3server.modules.vpcs.vpcs_vm.VPCSVM.start", return_value=True) as mock:
|
||||
response = server.post("/vpcs/{}/start".format(vm["uuid"]))
|
||||
assert mock.called
|
||||
assert response.status == 200
|
||||
assert response.status == 204
|
||||
|
||||
|
||||
def test_vpcs_stop(server, vm):
|
||||
with asyncio_patch("gns3server.modules.vpcs.vpcs_vm.VPCSVM.stop", return_value=True) as mock:
|
||||
response = server.post("/vpcs/{}/stop".format(vm["uuid"]))
|
||||
assert mock.called
|
||||
assert response.status == 200
|
||||
assert response.status == 204
|
||||
|
||||
|
||||
def test_vpcs_update(server, vm, tmpdir, free_console_port):
|
||||
|
Loading…
Reference in New Issue
Block a user