diff --git a/gns3server/handlers/api/compute/capabilities_handler.py b/gns3server/handlers/api/compute/capabilities_handler.py index f88e7478..e5f28c9c 100644 --- a/gns3server/handlers/api/compute/capabilities_handler.py +++ b/gns3server/handlers/api/compute/capabilities_handler.py @@ -15,6 +15,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +import sys + from gns3server.web.route import Route from gns3server.config import Config from gns3server.schemas.capabilities import CAPABILITIES_SCHEMA @@ -37,5 +39,6 @@ class CapabilitiesHandler: response.json({ "version": __version__, + "platform": sys.platform, "node_types": node_types }) diff --git a/gns3server/schemas/capabilities.py b/gns3server/schemas/capabilities.py index dddbda0b..2c9896ae 100644 --- a/gns3server/schemas/capabilities.py +++ b/gns3server/schemas/capabilities.py @@ -30,7 +30,12 @@ CAPABILITIES_SCHEMA = { }, "node_types": { "type": "array", - "items": NODE_TYPE_SCHEMA + "items": NODE_TYPE_SCHEMA, + "description": "Node type supported by the compute" + }, + "platform": { + "type": "string", + "description": "Platform where the compute is running" } }, "additionalProperties": False diff --git a/tests/handlers/api/compute/test_capabilities.py b/tests/handlers/api/compute/test_capabilities.py index e9595291..dc90b616 100644 --- a/tests/handlers/api/compute/test_capabilities.py +++ b/tests/handlers/api/compute/test_capabilities.py @@ -26,6 +26,7 @@ from gns3server.config import Config from gns3server.version import __version__ + @pytest.mark.skipif(sys.platform.startswith("win"), reason="Not supported on Windows") def test_get(http_compute, windows_platform): """ @@ -33,11 +34,11 @@ def test_get(http_compute, windows_platform): """ response = http_compute.get('/capabilities', example=True) assert response.status == 200 - assert response.json == {'node_types': ['cloud', 'ethernet_hub', 'ethernet_switch', 'vpcs', 'virtualbox', 'dynamips', 'frame_relay_switch', 'atm_switch', 'qemu', 'vmware', 'docker', 'iou'], 'version': __version__} + assert response.json == {'node_types': ['cloud', 'ethernet_hub', 'ethernet_switch', 'vpcs', 'virtualbox', 'dynamips', 'frame_relay_switch', 'atm_switch', 'qemu', 'vmware', 'docker', 'iou'], 'version': __version__, 'platform': sys.platform} @pytest.mark.skipif(sys.platform.startswith("win"), reason="Not supported on Windows") def test_get_on_gns3vm(http_compute, on_gns3vm): response = http_compute.get('/capabilities', example=True) assert response.status == 200 - assert response.json == {'node_types': ['cloud', 'ethernet_hub', 'ethernet_switch', 'nat', 'vpcs', 'virtualbox', 'dynamips', 'frame_relay_switch', 'atm_switch', 'qemu', 'vmware', 'docker', 'iou'], 'version': __version__} + assert response.json == {'node_types': ['cloud', 'ethernet_hub', 'ethernet_switch', 'nat', 'vpcs', 'virtualbox', 'dynamips', 'frame_relay_switch', 'atm_switch', 'qemu', 'vmware', 'docker', 'iou'], 'version': __version__, 'platform': sys.platform}