diff --git a/gns3server/handlers/api/controller/compute_handler.py b/gns3server/handlers/api/controller/compute_handler.py index 46f2fe91..46aaaff3 100644 --- a/gns3server/handlers/api/controller/compute_handler.py +++ b/gns3server/handlers/api/controller/compute_handler.py @@ -60,6 +60,20 @@ class ComputeHandler: controller = Controller.instance() response.json([c for c in controller.computes.values()]) + @classmethod + @Route.get( + r"/computes/{compute_id}", + description="Get a compute node informations", + status_codes={ + 200: "Compute list" + }, + output=COMPUTE_OBJECT_SCHEMA) + def get(request, response): + + controller = Controller.instance() + compute = controller.get_compute(request.match_info["compute_id"]) + response.json(compute) + @classmethod @Route.post( r"/computes/shutdown", diff --git a/tests/handlers/api/controller/test_compute.py b/tests/handlers/api/controller/test_compute.py index 0eb3b358..3c49a698 100644 --- a/tests/handlers/api/controller/test_compute.py +++ b/tests/handlers/api/controller/test_compute.py @@ -36,6 +36,24 @@ def test_compute_create(http_controller, controller): assert controller.computes["my_compute_id"].host == "example.com" +def test_compute_get(http_controller, controller): + + params = { + "compute_id": "my_compute_id", + "protocol": "http", + "host": "example.com", + "port": 84, + "user": "julien", + "password": "secure" + } + response = http_controller.post("/computes", params) + assert response.status == 201 + + response = http_controller.get("/computes/my_compute_id", example=True) + assert response.status == 200 + assert response.json["protocol"] == "http" + + def test_compute_list(http_controller, controller): params = {