Move error responses to API routers.

This commit is contained in:
grossmj
2021-04-13 16:19:56 +09:30
parent 6b0d0de1bc
commit a9eb035b7d
18 changed files with 263 additions and 487 deletions

View File

@ -31,12 +31,12 @@ from gns3server import schemas
from gns3server.compute.builtin import Builtin
from gns3server.compute.builtin.nodes.nat import Nat
router = APIRouter()
responses = {
404: {"model": schemas.ErrorMessage, "description": "Could not find project or NAT node"}
}
router = APIRouter(responses=responses)
def dep_node(project_id: UUID, node_id: UUID):
"""
@ -70,8 +70,7 @@ async def create_nat_node(project_id: UUID, node_data: schemas.NATCreate):
@router.get("/{node_id}",
response_model=schemas.NAT,
responses=responses)
response_model=schemas.NAT)
def get_nat_node(node: Nat = Depends(dep_node)):
"""
Return a NAT node.
@ -81,8 +80,7 @@ def get_nat_node(node: Nat = Depends(dep_node)):
@router.put("/{node_id}",
response_model=schemas.NAT,
responses=responses)
response_model=schemas.NAT)
def update_nat_node(node_data: schemas.NATUpdate, node: Nat = Depends(dep_node)):
"""
Update a NAT node.
@ -97,8 +95,7 @@ def update_nat_node(node_data: schemas.NATUpdate, node: Nat = Depends(dep_node))
@router.delete("/{node_id}",
status_code=status.HTTP_204_NO_CONTENT,
responses=responses)
status_code=status.HTTP_204_NO_CONTENT)
async def delete_nat_node(node: Nat = Depends(dep_node)):
"""
Delete a cloud node.
@ -108,8 +105,7 @@ async def delete_nat_node(node: Nat = Depends(dep_node)):
@router.post("/{node_id}/start",
status_code=status.HTTP_204_NO_CONTENT,
responses=responses)
status_code=status.HTTP_204_NO_CONTENT)
async def start_nat_node(node: Nat = Depends(dep_node)):
"""
Start a NAT node.
@ -119,8 +115,7 @@ async def start_nat_node(node: Nat = Depends(dep_node)):
@router.post("/{node_id}/stop",
status_code=status.HTTP_204_NO_CONTENT,
responses=responses)
status_code=status.HTTP_204_NO_CONTENT)
async def stop_nat_node(node: Nat = Depends(dep_node)):
"""
Stop a NAT node.
@ -131,8 +126,7 @@ async def stop_nat_node(node: Nat = Depends(dep_node)):
@router.post("/{node_id}/suspend",
status_code=status.HTTP_204_NO_CONTENT,
responses=responses)
status_code=status.HTTP_204_NO_CONTENT)
async def suspend_nat_node(node: Nat = Depends(dep_node)):
"""
Suspend a NAT node.
@ -144,8 +138,7 @@ async def suspend_nat_node(node: Nat = Depends(dep_node)):
@router.post("/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio",
status_code=status.HTTP_201_CREATED,
response_model=Union[schemas.EthernetNIO, schemas.TAPNIO, schemas.UDPNIO],
responses=responses)
response_model=Union[schemas.EthernetNIO, schemas.TAPNIO, schemas.UDPNIO])
async def create_nat_node_nio(adapter_number: int,
port_number: int,
nio_data: Union[schemas.EthernetNIO, schemas.TAPNIO, schemas.UDPNIO],
@ -162,8 +155,7 @@ async def create_nat_node_nio(adapter_number: int,
@router.put("/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio",
status_code=status.HTTP_201_CREATED,
response_model=Union[schemas.EthernetNIO, schemas.TAPNIO, schemas.UDPNIO],
responses=responses)
response_model=Union[schemas.EthernetNIO, schemas.TAPNIO, schemas.UDPNIO])
async def update_nat_node_nio(adapter_number: int,
port_number: int,
nio_data: Union[schemas.EthernetNIO, schemas.TAPNIO, schemas.UDPNIO],
@ -181,8 +173,7 @@ async def update_nat_node_nio(adapter_number: int,
@router.delete("/{node_id}/adapters/{adapter_number}/ports/{port_number}/nio",
status_code=status.HTTP_204_NO_CONTENT,
responses=responses)
status_code=status.HTTP_204_NO_CONTENT)
async def delete_nat_node_nio(adapter_number: int, port_number: int, node: Nat = Depends(dep_node)):
"""
Remove a NIO (Network Input/Output) from the node.
@ -192,8 +183,7 @@ async def delete_nat_node_nio(adapter_number: int, port_number: int, node: Nat =
await node.remove_nio(port_number)
@router.post("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/start",
responses=responses)
@router.post("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/start")
async def start_nat_node_capture(adapter_number: int,
port_number: int,
node_capture_data: schemas.NodeCapture,
@ -209,8 +199,7 @@ async def start_nat_node_capture(adapter_number: int,
@router.post("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stop",
status_code=status.HTTP_204_NO_CONTENT,
responses=responses)
status_code=status.HTTP_204_NO_CONTENT)
async def stop_nat_node_capture(adapter_number: int, port_number: int, node: Nat = Depends(dep_node)):
"""
Stop a packet capture on the node.
@ -220,8 +209,7 @@ async def stop_nat_node_capture(adapter_number: int, port_number: int, node: Nat
await node.stop_capture(port_number)
@router.get("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream",
responses=responses)
@router.get("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream")
async def stream_pcap_file(adapter_number: int, port_number: int, node: Nat = Depends(dep_node)):
"""
Stream the pcap capture file.