1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-12-25 16:28:11 +00:00

Merge remote-tracking branch 'origin/2.2' into 2.2

This commit is contained in:
grossmj 2018-11-11 20:08:37 +08:00
commit 887b32c4bc
3 changed files with 60 additions and 56 deletions

View File

@ -108,6 +108,23 @@ class NodeHandler:
response.set_status(200) response.set_status(200)
response.json(node) response.json(node)
@Route.delete(
r"/projects/{project_id}/nodes/{node_id}",
parameters={
"project_id": "Project UUID",
"node_id": "Node UUID"
},
status_codes={
204: "Instance deleted",
400: "Invalid request",
404: "Instance doesn't exist"
},
description="Delete a node instance")
async def delete(request, response):
project = await Controller.instance().get_loaded_project(request.match_info["project_id"])
await project.delete_node(request.match_info["node_id"])
response.set_status(204)
@Route.post( @Route.post(
r"/projects/{project_id}/nodes/start", r"/projects/{project_id}/nodes/start",
parameters={ parameters={
@ -291,23 +308,6 @@ class NodeHandler:
response.json(node) response.json(node)
response.set_status(200) response.set_status(200)
@Route.delete(
r"/projects/{project_id}/nodes/{node_id}",
parameters={
"project_id": "Project UUID",
"node_id": "Node UUID"
},
status_codes={
204: "Instance deleted",
400: "Invalid request",
404: "Instance doesn't exist"
},
description="Delete a node instance")
async def delete(request, response):
project = await Controller.instance().get_loaded_project(request.match_info["project_id"])
await project.delete_node(request.match_info["node_id"])
response.set_status(204)
@Route.get( @Route.get(
r"/projects/{project_id}/nodes/{node_id}/links", r"/projects/{project_id}/nodes/{node_id}/links",
parameters={ parameters={

View File

@ -92,21 +92,6 @@ class ProjectHandler:
project = controller.get_project(request.match_info["project_id"]) project = controller.get_project(request.match_info["project_id"])
response.json(project) response.json(project)
@Route.get(
r"/projects/{project_id}/stats",
description="Get a project statistics",
parameters={
"project_id": "Project UUID",
},
status_codes={
200: "Project statistics returned",
404: "The project doesn't exist"
})
def get(request, response):
controller = Controller.instance()
project = controller.get_project(request.match_info["project_id"])
response.json(project.stats())
@Route.put( @Route.put(
r"/projects/{project_id}", r"/projects/{project_id}",
status_codes={ status_codes={
@ -127,6 +112,39 @@ class ProjectHandler:
response.set_status(200) response.set_status(200)
response.json(project) response.json(project)
@Route.delete(
r"/projects/{project_id}",
description="Delete a project from disk",
parameters={
"project_id": "Project UUID",
},
status_codes={
204: "Changes have been written on disk",
404: "The project doesn't exist"
})
async def delete(request, response):
controller = Controller.instance()
project = controller.get_project(request.match_info["project_id"])
await project.delete()
controller.remove_project(project)
response.set_status(204)
@Route.get(
r"/projects/{project_id}/stats",
description="Get a project statistics",
parameters={
"project_id": "Project UUID",
},
status_codes={
200: "Project statistics returned",
404: "The project doesn't exist"
})
def get(request, response):
controller = Controller.instance()
project = controller.get_project(request.match_info["project_id"])
response.json(project.stats())
@Route.post( @Route.post(
r"/projects/{project_id}/close", r"/projects/{project_id}/close",
description="Close a project", description="Close a project",
@ -189,24 +207,6 @@ class ProjectHandler:
response.set_status(201) response.set_status(201)
response.json(project) response.json(project)
@Route.delete(
r"/projects/{project_id}",
description="Delete a project from disk",
parameters={
"project_id": "Project UUID",
},
status_codes={
204: "Changes have been written on disk",
404: "The project doesn't exist"
})
async def delete(request, response):
controller = Controller.instance()
project = controller.get_project(request.match_info["project_id"])
await project.delete()
controller.remove_project(project)
response.set_status(204)
@Route.get( @Route.get(
r"/projects/{project_id}/notifications", r"/projects/{project_id}/notifications",
description="Receive notifications about projects", description="Receive notifications about projects",

View File

@ -261,15 +261,19 @@ class WebServer:
# Background task started with the server # Background task started with the server
self._app.on_startup.append(self._on_startup) self._app.on_startup.append(self._on_startup)
resource_options = aiohttp_cors.ResourceOptions(
expose_headers="*", allow_headers="*", max_age=0
)
# Allow CORS for this domains # Allow CORS for this domains
cors = aiohttp_cors.setup(self._app, defaults={ cors = aiohttp_cors.setup(self._app, defaults={
# Default web server for web gui dev # Default web server for web gui dev
"http://127.0.0.1:8080": aiohttp_cors.ResourceOptions(expose_headers="*", allow_headers="*"), "http://127.0.0.1:8080": resource_options,
"http://localhost:8080": aiohttp_cors.ResourceOptions(expose_headers="*", allow_headers="*"), "http://localhost:8080": resource_options,
"http://127.0.0.1:4200": aiohttp_cors.ResourceOptions(expose_headers="*", allow_headers="*"), "http://127.0.0.1:4200": resource_options,
"http://localhost:4200": aiohttp_cors.ResourceOptions(expose_headers="*", allow_headers="*"), "http://localhost:4200": resource_options,
"http://gns3.github.io": aiohttp_cors.ResourceOptions(expose_headers="*", allow_headers="*"), "http://gns3.github.io": resource_options,
"https://gns3.github.io": aiohttp_cors.ResourceOptions(expose_headers="*", allow_headers="*") "https://gns3.github.io": resource_options
}) })
PortManager.instance().console_host = self._host PortManager.instance().console_host = self._host