Put all schemas in the same module.

This commit is contained in:
grossmj committed 2020-10-31 16:02:21 +10:30
1 parent 81439c750a
commit eeaf10b418
99 files changed
+228 -5187

No files matched your search

+5 -6
View File
@@ -25,22 +25,21 @@ from typing import List, Union
from uuid import UUID
from gns3server.controller import Controller
from gns3server.endpoints.schemas.common import ErrorMessage
from gns3server.endpoints import schemas
from gns3server import schemas
router = APIRouter()
responses = {
404: {"model": ErrorMessage, "description": "Compute not found"}
404: {"model": schemas.ErrorMessage, "description": "Compute not found"}
}
@router.post("",
status_code=status.HTTP_201_CREATED,
response_model=schemas.Compute,
responses={404: {"model": ErrorMessage, "description": "Could not connect to compute"},
409: {"model": ErrorMessage, "description": "Could not create compute"},
401: {"model": ErrorMessage, "description": "Invalid authentication for compute"}})
responses={404: {"model": schemas.ErrorMessage, "description": "Could not connect to compute"},
409: {"model": schemas.ErrorMessage, "description": "Could not create compute"},
401: {"model": schemas.ErrorMessage, "description": "Invalid authentication for compute"}})
async def create_compute(compute_data: schemas.ComputeCreate):
"""
Create a new compute on the controller.
@@ -26,8 +26,7 @@ from gns3server.config import Config
from gns3server.controller import Controller
from gns3server.version import __version__
from gns3server.controller.controller_error import ControllerError, ControllerForbiddenError
from gns3server.endpoints.schemas.common import ErrorMessage
from gns3server.endpoints import schemas
from gns3server import schemas
import logging
@@ -38,7 +37,7 @@ router = APIRouter()
@router.post("/shutdown",
status_code=status.HTTP_204_NO_CONTENT,
responses={403: {"model": ErrorMessage, "description": "Server shutdown not allowed"}})
responses={403: {"model": schemas.ErrorMessage, "description": "Server shutdown not allowed"}})
async def shutdown():
"""
Shutdown the local server
@@ -85,7 +84,7 @@ def version():
@router.post("/version",
response_model=schemas.Version,
response_model_exclude_defaults=True,
responses={409: {"model": ErrorMessage, "description": "Invalid version"}})
responses={409: {"model": schemas.ErrorMessage, "description": "Invalid version"}})
def check_version(version: schemas.Version):
"""
Check if version is the same as the server.
+8 -9
View File
@@ -25,18 +25,17 @@ from typing import List
from uuid import UUID
from gns3server.controller import Controller
from gns3server.endpoints.schemas.common import ErrorMessage
from gns3server.endpoints.schemas.drawings import Drawing
from gns3server import schemas
router = APIRouter()
responses = {
404: {"model": ErrorMessage, "description": "Project or drawing not found"}
404: {"model": schemas.ErrorMessage, "description": "Project or drawing not found"}
}
@router.get("",
response_model=List[Drawing],
response_model=List[schemas.Drawing],
response_model_exclude_unset=True)
async def get_drawings(project_id: UUID):
"""
@@ -49,9 +48,9 @@ async def get_drawings(project_id: UUID):
@router.post("",
status_code=status.HTTP_201_CREATED,
response_model=Drawing,
response_model=schemas.Drawing,
responses=responses)
async def create_drawing(project_id: UUID, drawing_data: Drawing):
async def create_drawing(project_id: UUID, drawing_data: schemas.Drawing):
"""
Create a new drawing.
"""
@@ -62,7 +61,7 @@ async def create_drawing(project_id: UUID, drawing_data: Drawing):
@router.get("/{drawing_id}",
response_model=Drawing,
response_model=schemas.Drawing,
response_model_exclude_unset=True,
responses=responses)
async def get_drawing(project_id: UUID, drawing_id: UUID):
@@ -76,10 +75,10 @@ async def get_drawing(project_id: UUID, drawing_id: UUID):
@router.put("/{drawing_id}",
response_model=Drawing,
response_model=schemas.Drawing,
response_model_exclude_unset=True,
responses=responses)
async def update_drawing(project_id: UUID, drawing_id: UUID, drawing_data: Drawing):
async def update_drawing(project_id: UUID, drawing_id: UUID, drawing_data: schemas.Drawing):
"""
Update a drawing.
"""
+4 -4
View File
@@ -23,7 +23,7 @@ from fastapi import APIRouter
from fastapi.encoders import jsonable_encoder
from gns3server.controller import Controller
from gns3server.endpoints.schemas.gns3vm import GNS3VM
from gns3server import schemas
router = APIRouter()
@@ -48,7 +48,7 @@ async def get_vms(engine: str):
return vms
@router.get("", response_model=GNS3VM)
@router.get("", response_model=schemas.GNS3VM)
async def get_gns3vm_settings():
"""
Return the GNS3 VM settings.
@@ -57,8 +57,8 @@ async def get_gns3vm_settings():
return Controller.instance().gns3vm.__json__()
@router.put("", response_model=GNS3VM, response_model_exclude_unset=True)
async def update_gns3vm_settings(gns3vm_data: GNS3VM):
@router.put("", response_model=schemas.GNS3VM, response_model_exclude_unset=True)
async def update_gns3vm_settings(gns3vm_data: schemas.GNS3VM):
"""
Update the GNS3 VM settings.
"""
+4 -5
View File
@@ -32,8 +32,7 @@ from gns3server.controller import Controller
from gns3server.controller.controller_error import ControllerError
from gns3server.controller.link import Link
from gns3server.utils.http_client import HTTPClient
from gns3server.endpoints.schemas.common import ErrorMessage
from gns3server.endpoints import schemas
from gns3server import schemas
import logging
log = logging.getLogger(__name__)
@@ -41,7 +40,7 @@ log = logging.getLogger(__name__)
router = APIRouter()
responses = {
404: {"model": ErrorMessage, "description": "Could not find project or link"}
404: {"model": schemas.ErrorMessage, "description": "Could not find project or link"}
}
@@ -70,8 +69,8 @@ async def get_links(project_id: UUID):
@router.post("",
status_code=status.HTTP_201_CREATED,
response_model=schemas.Link,
responses={404: {"model": ErrorMessage, "description": "Could not find project"},
409: {"model": ErrorMessage, "description": "Could not create link"}})
responses={404: {"model": schemas.ErrorMessage, "description": "Could not find project"},
409: {"model": schemas.ErrorMessage, "description": "Could not create link"}})
async def create_link(project_id: UUID, link_data: schemas.Link):
"""
Create a new link.
+5 -6
View File
@@ -34,8 +34,7 @@ from gns3server.controller.project import Project
from gns3server.utils import force_unix_path
from gns3server.utils.http_client import HTTPClient
from gns3server.controller.controller_error import ControllerForbiddenError
from gns3server.endpoints.schemas.common import ErrorMessage
from gns3server.endpoints import schemas
from gns3server import schemas
import logging
log = logging.getLogger(__name__)
@@ -80,7 +79,7 @@ class NodeConcurrency(APIRoute):
router = APIRouter(route_class=NodeConcurrency)
responses = {
404: {"model": ErrorMessage, "description": "Could not find project or node"}
404: {"model": schemas.ErrorMessage, "description": "Could not find project or node"}
}
@@ -105,8 +104,8 @@ async def dep_node(node_id: UUID, project: Project = Depends(dep_project)):
@router.post("",
status_code=status.HTTP_201_CREATED,
response_model=schemas.Node,
responses={404: {"model": ErrorMessage, "description": "Could not find project"},
409: {"model": ErrorMessage, "description": "Could not create node"}})
responses={404: {"model": schemas.ErrorMessage, "description": "Could not find project"},
409: {"model": schemas.ErrorMessage, "description": "Could not create node"}})
async def create_node(node_data: schemas.Node, project: Project = Depends(dep_project)):
"""
Create a new node.
@@ -212,7 +211,7 @@ async def update_node(node_data: schemas.NodeUpdate, node: Node = Depends(dep_no
@router.delete("/{node_id}",
status_code=status.HTTP_204_NO_CONTENT,
responses={**responses,
409: {"model": ErrorMessage, "description": "Cannot delete node"}})
409: {"model": schemas.ErrorMessage, "description": "Cannot delete node"}})
async def delete_node(node_id: UUID, project: Project = Depends(dep_project)):
"""
Delete a node from a project.
+7 -8
View File
@@ -37,8 +37,7 @@ from typing import List, Optional
from uuid import UUID
from pathlib import Path
from gns3server.endpoints.schemas.common import ErrorMessage
from gns3server.endpoints import schemas
from gns3server import schemas
from gns3server.controller import Controller
from gns3server.controller.project import Project
from gns3server.controller.controller_error import ControllerError, ControllerForbiddenError
@@ -51,7 +50,7 @@ from gns3server.config import Config
router = APIRouter()
responses = {
404: {"model": ErrorMessage, "description": "Could not find project"}
404: {"model": schemas.ErrorMessage, "description": "Could not find project"}
}
@@ -83,7 +82,7 @@ def get_projects():
status_code=status.HTTP_201_CREATED,
response_model=schemas.Project,
response_model_exclude_unset=True,
responses={409: {"model": ErrorMessage, "description": "Could not create project"}})
responses={409: {"model": schemas.ErrorMessage, "description": "Could not create project"}})
async def create_project(project_data: schemas.ProjectCreate):
"""
Create a new project.
@@ -145,7 +144,7 @@ def get_project_stats(project: Project = Depends(dep_project)):
status_code=status.HTTP_204_NO_CONTENT,
responses={
**responses,
409: {"model": ErrorMessage, "description": "Could not close project"}
409: {"model": schemas.ErrorMessage, "description": "Could not close project"}
})
async def close_project(project: Project = Depends(dep_project)):
"""
@@ -160,7 +159,7 @@ async def close_project(project: Project = Depends(dep_project)):
response_model=schemas.Project,
responses={
**responses,
409: {"model": ErrorMessage, "description": "Could not open project"}
409: {"model": schemas.ErrorMessage, "description": "Could not open project"}
})
async def open_project(project: Project = Depends(dep_project)):
"""
@@ -176,7 +175,7 @@ async def open_project(project: Project = Depends(dep_project)):
response_model=schemas.Project,
responses={
**responses,
409: {"model": ErrorMessage, "description": "Could not load project"}
409: {"model": schemas.ErrorMessage, "description": "Could not load project"}
})
async def load_project(path: str = Body(..., embed=True)):
"""
@@ -346,7 +345,7 @@ async def import_project(project_id: UUID, request: Request, path: Optional[Path
response_model=schemas.Project,
responses={
**responses,
409: {"model": ErrorMessage, "description": "Could not duplicate project"}
409: {"model": schemas.ErrorMessage, "description": "Could not duplicate project"}
})
async def duplicate(project_data: schemas.ProjectDuplicate, project: Project = Depends(dep_project)):
"""
+2 -3
View File
@@ -27,14 +27,13 @@ from typing import List
from uuid import UUID
from gns3server.controller.project import Project
from gns3server.endpoints.schemas.common import ErrorMessage
from gns3server.endpoints import schemas
from gns3server import schemas
from gns3server.controller import Controller
router = APIRouter()
responses = {
404: {"model": ErrorMessage, "description": "Could not find project or snapshot"}
404: {"model": schemas.ErrorMessage, "description": "Could not find project or snapshot"}
}
+2 -2
View File
@@ -25,7 +25,7 @@ from fastapi import APIRouter, Request, status
from fastapi.responses import FileResponse
from gns3server.controller import Controller
from gns3server.endpoints.schemas.common import ErrorMessage
from gns3server import schemas
from gns3server.controller.controller_error import ControllerError, ControllerNotFoundError
import logging
@@ -43,7 +43,7 @@ def get_symbols():
@router.get("/{symbol_id:path}/raw",
responses={404: {"model": ErrorMessage, "description": "Could not find symbol"}})
responses={404: {"model": schemas.ErrorMessage, "description": "Could not find symbol"}})
async def get_symbol(symbol_id: str):
"""
Download a symbol file.
+3 -4
View File
@@ -30,15 +30,14 @@ from fastapi.encoders import jsonable_encoder
from typing import List
from uuid import UUID
from gns3server.endpoints.schemas.common import ErrorMessage
from gns3server.endpoints import schemas
from gns3server import schemas
from gns3server.controller import Controller
router = APIRouter()
responses = {
404: {"model": ErrorMessage, "description": "Could not find template"}
404: {"model": schemas.ErrorMessage, "description": "Could not find template"}
}
@@ -134,7 +133,7 @@ async def duplicate_template(template_id: UUID):
@router.post("/projects/{project_id}/templates/{template_id}",
response_model=schemas.Node,
status_code=status.HTTP_201_CREATED,
responses={404: {"model": ErrorMessage, "description": "Could not find project or template"}})
responses={404: {"model": schemas.ErrorMessage, "description": "Could not find project or template"}})
async def create_node_from_template(project_id: UUID, template_id: UUID, template_usage: schemas.TemplateUsage):
"""
Create a new node from a template.