Update project API

This commit is contained in:
Julien Duponchelle committed 2016-08-15 16:44:09 +02:00
1 parent 431bd789cb
commit 3ca4edef93
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",