mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-28 11:18:11 +00:00
Add isolate and unisolate endpoints. Ref https://github.com/GNS3/gns3-gui/issues/3190
This commit is contained in:
parent
898af32cd1
commit
c8ed96d91b
@ -260,6 +260,28 @@ async def reload_node(node: Node = Depends(dep_node)) -> Response:
|
|||||||
return Response(status_code=status.HTTP_204_NO_CONTENT)
|
return Response(status_code=status.HTTP_204_NO_CONTENT)
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/{node_id}/isolate", status_code=status.HTTP_204_NO_CONTENT)
|
||||||
|
async def isolate_node(node: Node = Depends(dep_node)) -> Response:
|
||||||
|
"""
|
||||||
|
Isolate a node (suspend all attached links).
|
||||||
|
"""
|
||||||
|
|
||||||
|
for link in node.links:
|
||||||
|
await link.update_suspend(True)
|
||||||
|
return Response(status_code=status.HTTP_204_NO_CONTENT)
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/{node_id}/unisolate", status_code=status.HTTP_204_NO_CONTENT)
|
||||||
|
async def unisolate_node(node: Node = Depends(dep_node)) -> Response:
|
||||||
|
"""
|
||||||
|
Un-isolate a node (resume all attached suspended links).
|
||||||
|
"""
|
||||||
|
|
||||||
|
for link in node.links:
|
||||||
|
await link.update_suspend(False)
|
||||||
|
return Response(status_code=status.HTTP_204_NO_CONTENT)
|
||||||
|
|
||||||
|
|
||||||
@router.get("/{node_id}/links", response_model=List[schemas.Link], response_model_exclude_unset=True)
|
@router.get("/{node_id}/links", response_model=List[schemas.Link], response_model_exclude_unset=True)
|
||||||
async def get_node_links(node: Node = Depends(dep_node)) -> List[schemas.Link]:
|
async def get_node_links(node: Node = Depends(dep_node)) -> List[schemas.Link]:
|
||||||
"""
|
"""
|
||||||
|
@ -181,6 +181,20 @@ async def test_reload_node(app: FastAPI, client: AsyncClient, project: Project,
|
|||||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||||
|
|
||||||
|
|
||||||
|
async def test_isolate_node(app: FastAPI, client: AsyncClient, project: Project, compute: Compute, node: Node):
|
||||||
|
|
||||||
|
compute.post = AsyncioMagicMock()
|
||||||
|
response = await client.post(app.url_path_for("isolate_node", project_id=project.id, node_id=node.id))
|
||||||
|
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||||
|
|
||||||
|
|
||||||
|
async def test_unisolate_node(app: FastAPI, client: AsyncClient, project: Project, compute: Compute, node: Node):
|
||||||
|
|
||||||
|
compute.post = AsyncioMagicMock()
|
||||||
|
response = await client.post(app.url_path_for("unisolate_node", project_id=project.id, node_id=node.id))
|
||||||
|
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||||
|
|
||||||
|
|
||||||
async def test_duplicate_node(
|
async def test_duplicate_node(
|
||||||
app: FastAPI,
|
app: FastAPI,
|
||||||
client: AsyncClient,
|
client: AsyncClient,
|
||||||
|
Loading…
Reference in New Issue
Block a user