mirror of
https://github.com/GNS3/gns3-server.git
synced 2025-01-30 21:03:49 +02:00
Use project_id instead of project_uuid for the API.
This commit is contained in:
parent
d2699f051d
commit
59c82e26df
@ -44,7 +44,7 @@ class VPCSHandler:
|
|||||||
|
|
||||||
vpcs = VPCS.instance()
|
vpcs = VPCS.instance()
|
||||||
vm = yield from vpcs.create_vm(request.json["name"],
|
vm = yield from vpcs.create_vm(request.json["name"],
|
||||||
request.json["project_uuid"],
|
request.json["project_id"],
|
||||||
request.json.get("uuid"),
|
request.json.get("uuid"),
|
||||||
console=request.json.get("console"),
|
console=request.json.get("console"),
|
||||||
startup_script=request.json.get("startup_script"))
|
startup_script=request.json.get("startup_script"))
|
||||||
|
@ -42,23 +42,23 @@ class ProjectManager:
|
|||||||
cls._instance = cls()
|
cls._instance = cls()
|
||||||
return cls._instance
|
return cls._instance
|
||||||
|
|
||||||
def get_project(self, project_uuid):
|
def get_project(self, uuid):
|
||||||
"""
|
"""
|
||||||
Returns a Project instance.
|
Returns a Project instance.
|
||||||
|
|
||||||
:param project_uuid: Project UUID
|
:param uuid: Project UUID
|
||||||
|
|
||||||
:returns: Project instance
|
:returns: Project instance
|
||||||
"""
|
"""
|
||||||
|
|
||||||
try:
|
try:
|
||||||
UUID(project_uuid, version=4)
|
UUID(uuid, version=4)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise aiohttp.web.HTTPBadRequest(text="{} is not a valid UUID".format(project_uuid))
|
raise aiohttp.web.HTTPBadRequest(text="{} is not a valid UUID".format(uuid))
|
||||||
|
|
||||||
if project_uuid not in self._projects:
|
if uuid not in self._projects:
|
||||||
raise aiohttp.web.HTTPNotFound(text="Project UUID {} doesn't exist".format(project_uuid))
|
raise aiohttp.web.HTTPNotFound(text="Project UUID {} doesn't exist".format(uuid))
|
||||||
return self._projects[project_uuid]
|
return self._projects[uuid]
|
||||||
|
|
||||||
def create_project(self, **kwargs):
|
def create_project(self, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
@ -79,7 +79,7 @@ class VirtualBoxVM(BaseVM):
|
|||||||
return {"name": self.name,
|
return {"name": self.name,
|
||||||
"uuid": self.uuid,
|
"uuid": self.uuid,
|
||||||
"console": self.console,
|
"console": self.console,
|
||||||
"project_uuid": self.project.uuid,
|
"project_id": self.project.uuid,
|
||||||
"vmname": self.vmname,
|
"vmname": self.vmname,
|
||||||
"headless": self.headless,
|
"headless": self.headless,
|
||||||
"enable_remote_console": self.enable_remote_console,
|
"enable_remote_console": self.enable_remote_console,
|
||||||
|
@ -107,7 +107,7 @@ class VPCSVM(BaseVM):
|
|||||||
return {"name": self.name,
|
return {"name": self.name,
|
||||||
"uuid": self.uuid,
|
"uuid": self.uuid,
|
||||||
"console": self._console,
|
"console": self._console,
|
||||||
"project_uuid": self.project.uuid,
|
"project_id": self.project.uuid,
|
||||||
"script_file": self.script_file,
|
"script_file": self.script_file,
|
||||||
"startup_script": self.startup_script}
|
"startup_script": self.startup_script}
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ VBOX_CREATE_SCHEMA = {
|
|||||||
"description": "VirtualBox VM instance ID (for project created before GNS3 1.3)",
|
"description": "VirtualBox VM instance ID (for project created before GNS3 1.3)",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
},
|
},
|
||||||
"project_uuid": {
|
"project_id": {
|
||||||
"description": "Project UUID",
|
"description": "Project UUID",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"minLength": 36,
|
"minLength": 36,
|
||||||
@ -86,7 +86,7 @@ VBOX_CREATE_SCHEMA = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
"additionalProperties": False,
|
"additionalProperties": False,
|
||||||
"required": ["name", "vmname", "linked_clone", "project_uuid"],
|
"required": ["name", "vmname", "linked_clone", "project_id"],
|
||||||
}
|
}
|
||||||
|
|
||||||
VBOX_UPDATE_SCHEMA = {
|
VBOX_UPDATE_SCHEMA = {
|
||||||
@ -211,7 +211,7 @@ VBOX_OBJECT_SCHEMA = {
|
|||||||
"maxLength": 36,
|
"maxLength": 36,
|
||||||
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
|
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
|
||||||
},
|
},
|
||||||
"project_uuid": {
|
"project_id": {
|
||||||
"description": "Project UUID",
|
"description": "Project UUID",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"minLength": 36,
|
"minLength": 36,
|
||||||
@ -256,5 +256,5 @@ VBOX_OBJECT_SCHEMA = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
"additionalProperties": False,
|
"additionalProperties": False,
|
||||||
"required": ["name", "uuid", "project_uuid"]
|
"required": ["name", "uuid", "project_id"]
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,7 @@ VPCS_CREATE_SCHEMA = {
|
|||||||
"maxLength": 36,
|
"maxLength": 36,
|
||||||
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
|
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
|
||||||
},
|
},
|
||||||
"project_uuid": {
|
"project_id": {
|
||||||
"description": "Project UUID",
|
"description": "Project UUID",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"minLength": 36,
|
"minLength": 36,
|
||||||
@ -56,7 +56,7 @@ VPCS_CREATE_SCHEMA = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
"additionalProperties": False,
|
"additionalProperties": False,
|
||||||
"required": ["name", "project_uuid"]
|
"required": ["name", "project_id"]
|
||||||
}
|
}
|
||||||
|
|
||||||
VPCS_UPDATE_SCHEMA = {
|
VPCS_UPDATE_SCHEMA = {
|
||||||
@ -162,7 +162,7 @@ VPCS_OBJECT_SCHEMA = {
|
|||||||
"maximum": 65535,
|
"maximum": 65535,
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
},
|
},
|
||||||
"project_uuid": {
|
"project_id": {
|
||||||
"description": "Project UUID",
|
"description": "Project UUID",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"minLength": 36,
|
"minLength": 36,
|
||||||
@ -179,5 +179,5 @@ VPCS_OBJECT_SCHEMA = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
"additionalProperties": False,
|
"additionalProperties": False,
|
||||||
"required": ["name", "uuid", "console", "project_uuid"]
|
"required": ["name", "uuid", "console", "project_id"]
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ def vm(server, project):
|
|||||||
response = server.post("/virtualbox", {"name": "VMTEST",
|
response = server.post("/virtualbox", {"name": "VMTEST",
|
||||||
"vmname": "VMTEST",
|
"vmname": "VMTEST",
|
||||||
"linked_clone": False,
|
"linked_clone": False,
|
||||||
"project_uuid": project.uuid})
|
"project_id": project.uuid})
|
||||||
assert mock.called
|
assert mock.called
|
||||||
assert response.status == 201
|
assert response.status == 201
|
||||||
return response.json
|
return response.json
|
||||||
@ -37,11 +37,11 @@ def test_vbox_create(server, project):
|
|||||||
response = server.post("/virtualbox", {"name": "VM1",
|
response = server.post("/virtualbox", {"name": "VM1",
|
||||||
"vmname": "VM1",
|
"vmname": "VM1",
|
||||||
"linked_clone": False,
|
"linked_clone": False,
|
||||||
"project_uuid": project.uuid},
|
"project_id": project.uuid},
|
||||||
example=True)
|
example=True)
|
||||||
assert response.status == 201
|
assert response.status == 201
|
||||||
assert response.json["name"] == "VM1"
|
assert response.json["name"] == "VM1"
|
||||||
assert response.json["project_uuid"] == project.uuid
|
assert response.json["project_id"] == project.uuid
|
||||||
|
|
||||||
|
|
||||||
def test_vbox_get(server, project, vm):
|
def test_vbox_get(server, project, vm):
|
||||||
@ -49,7 +49,7 @@ def test_vbox_get(server, project, vm):
|
|||||||
assert response.status == 200
|
assert response.status == 200
|
||||||
assert response.route == "/virtualbox/{uuid}"
|
assert response.route == "/virtualbox/{uuid}"
|
||||||
assert response.json["name"] == "VMTEST"
|
assert response.json["name"] == "VMTEST"
|
||||||
assert response.json["project_uuid"] == project.uuid
|
assert response.json["project_id"] == project.uuid
|
||||||
|
|
||||||
|
|
||||||
def test_vbox_start(server, vm):
|
def test_vbox_start(server, vm):
|
||||||
|
@ -23,17 +23,17 @@ from unittest.mock import patch
|
|||||||
|
|
||||||
@pytest.fixture(scope="module")
|
@pytest.fixture(scope="module")
|
||||||
def vm(server, project):
|
def vm(server, project):
|
||||||
response = server.post("/vpcs", {"name": "PC TEST 1", "project_uuid": project.uuid})
|
response = server.post("/vpcs", {"name": "PC TEST 1", "project_id": project.uuid})
|
||||||
assert response.status == 201
|
assert response.status == 201
|
||||||
return response.json
|
return response.json
|
||||||
|
|
||||||
|
|
||||||
def test_vpcs_create(server, project):
|
def test_vpcs_create(server, project):
|
||||||
response = server.post("/vpcs", {"name": "PC TEST 1", "project_uuid": project.uuid}, example=True)
|
response = server.post("/vpcs", {"name": "PC TEST 1", "project_id": project.uuid}, example=True)
|
||||||
assert response.status == 201
|
assert response.status == 201
|
||||||
assert response.route == "/vpcs"
|
assert response.route == "/vpcs"
|
||||||
assert response.json["name"] == "PC TEST 1"
|
assert response.json["name"] == "PC TEST 1"
|
||||||
assert response.json["project_uuid"] == project.uuid
|
assert response.json["project_id"] == project.uuid
|
||||||
assert response.json["script_file"] is None
|
assert response.json["script_file"] is None
|
||||||
|
|
||||||
|
|
||||||
@ -42,24 +42,24 @@ def test_vpcs_get(server, project, vm):
|
|||||||
assert response.status == 200
|
assert response.status == 200
|
||||||
assert response.route == "/vpcs/{uuid}"
|
assert response.route == "/vpcs/{uuid}"
|
||||||
assert response.json["name"] == "PC TEST 1"
|
assert response.json["name"] == "PC TEST 1"
|
||||||
assert response.json["project_uuid"] == project.uuid
|
assert response.json["project_id"] == project.uuid
|
||||||
|
|
||||||
|
|
||||||
def test_vpcs_create_startup_script(server, project):
|
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"})
|
response = server.post("/vpcs", {"name": "PC TEST 1", "project_id": project.uuid, "startup_script": "ip 192.168.1.2\necho TEST"})
|
||||||
assert response.status == 201
|
assert response.status == 201
|
||||||
assert response.route == "/vpcs"
|
assert response.route == "/vpcs"
|
||||||
assert response.json["name"] == "PC TEST 1"
|
assert response.json["name"] == "PC TEST 1"
|
||||||
assert response.json["project_uuid"] == project.uuid
|
assert response.json["project_id"] == project.uuid
|
||||||
assert response.json["startup_script"] == "ip 192.168.1.2\necho TEST"
|
assert response.json["startup_script"] == "ip 192.168.1.2\necho TEST"
|
||||||
|
|
||||||
|
|
||||||
def test_vpcs_create_port(server, project, free_console_port):
|
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})
|
response = server.post("/vpcs", {"name": "PC TEST 1", "project_id": project.uuid, "console": free_console_port})
|
||||||
assert response.status == 201
|
assert response.status == 201
|
||||||
assert response.route == "/vpcs"
|
assert response.route == "/vpcs"
|
||||||
assert response.json["name"] == "PC TEST 1"
|
assert response.json["name"] == "PC TEST 1"
|
||||||
assert response.json["project_uuid"] == project.uuid
|
assert response.json["project_id"] == project.uuid
|
||||||
assert response.json["console"] == free_console_port
|
assert response.json["console"] == free_console_port
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user