mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-11-04 22:41:12 +02:00
Update project API
This commit is contained in:
9 files changed
+74
-54
No files matched your search
@@ -95,32 +95,6 @@ class ProjectHandler:
|
||||
project = pm.get_project(request.match_info["project_id"])
|
||||
response.json(project)
|
||||
|
||||
@Route.put(
|
||||
r"/projects/{project_id}",
|
||||
description="Update a project",
|
||||
parameters={
|
||||
"project_id": "Project UUID",
|
||||
},
|
||||
status_codes={
|
||||
200: "Project updated",
|
||||
403: "Forbidden to update this project",
|
||||
404: "The project doesn't exist"
|
||||
},
|
||||
output=PROJECT_OBJECT_SCHEMA,
|
||||
input=PROJECT_UPDATE_SCHEMA)
|
||||
def update(request, response):
|
||||
|
||||
pm = ProjectManager.instance()
|
||||
project = pm.get_project(request.match_info["project_id"])
|
||||
project.name = request.json.get("name", project.name)
|
||||
project_path = request.json.get("path", project.path)
|
||||
if project_path != project.path:
|
||||
old_path = project.path
|
||||
project.path = project_path
|
||||
for module in MODULES:
|
||||
yield from module.instance().project_moved(project)
|
||||
response.json(project)
|
||||
|
||||
@Route.post(
|
||||
r"/projects/{project_id}/close",
|
||||
description="Close a project",
|
||||
|
||||
@@ -30,6 +30,7 @@ from gns3server.config import Config
|
||||
|
||||
from gns3server.schemas.project import (
|
||||
PROJECT_OBJECT_SCHEMA,
|
||||
PROJECT_UPDATE_SCHEMA,
|
||||
PROJECT_LOAD_SCHEMA,
|
||||
PROJECT_CREATE_SCHEMA
|
||||
)
|
||||
@@ -83,6 +84,26 @@ class ProjectHandler:
|
||||
project = controller.get_project(request.match_info["project_id"])
|
||||
response.json(project)
|
||||
|
||||
@Route.put(
|
||||
r"/projects/{project_id}",
|
||||
status_codes={
|
||||
200: "Node updated",
|
||||
400: "Invalid request",
|
||||
404: "Instance doesn't exist"
|
||||
},
|
||||
description="Update a project instance",
|
||||
input=PROJECT_UPDATE_SCHEMA,
|
||||
output=PROJECT_OBJECT_SCHEMA)
|
||||
def update(request, response):
|
||||
project = Controller.instance().get_project(request.match_info["project_id"])
|
||||
|
||||
# Ignore these because we only use them when creating a project
|
||||
request.json.pop("project_id", None)
|
||||
|
||||
yield from project.update(**request.json)
|
||||
response.set_status(200)
|
||||
response.json(project)
|
||||
|
||||
@Route.post(
|
||||
r"/projects/{project_id}/close",
|
||||
description="Close a project",
|
||||
|
||||
Reference in new issue
Block a user