From e351c0a555cb2ae89e21c3a5634214ae25ee2f8b Mon Sep 17 00:00:00 2001 From: Soufiane Jounaid Date: Fri, 29 Mar 2024 14:51:22 -0400 Subject: [PATCH] Added more fields and missing API file --- chameleon/edge_hw_discovery_api.py | 18 ++++++++++++++++++ chameleon/settings.py | 2 +- .../templates/edge-hw-discovery/resources.html | 10 ++++++++++ chameleon/views.py | 2 +- 4 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 chameleon/edge_hw_discovery_api.py diff --git a/chameleon/edge_hw_discovery_api.py b/chameleon/edge_hw_discovery_api.py new file mode 100644 index 00000000..a005cf26 --- /dev/null +++ b/chameleon/edge_hw_discovery_api.py @@ -0,0 +1,18 @@ +import requests +import json +from django.conf import settings +import logging + +logger = logging.getLogger("default") + + +class EDGE_HW_API: + def get_devices(self): + url = self.make_url("devices") + logger.info("Requesting %s from Edge HW API ...", url) + resp = requests.get(url) + logger.info("Response received. Parsing to json ...") + return resp.json() + + def make_url(self, endpoint): + return "{0}/{1}".format(settings.EDGE_HW_ROOT, endpoint) diff --git a/chameleon/settings.py b/chameleon/settings.py index 0a56de06..c2b5261e 100644 --- a/chameleon/settings.py +++ b/chameleon/settings.py @@ -693,7 +693,7 @@ # Edge HW Discovery API # ##### -EDGE_HW_ROOT = "http://host.docker.internal:5000" +EDGE_HW_ROOT = "http://edgehwdiscovery:5000" ##### # diff --git a/chameleon/templates/edge-hw-discovery/resources.html b/chameleon/templates/edge-hw-discovery/resources.html index 804f70b6..1c21565f 100644 --- a/chameleon/templates/edge-hw-discovery/resources.html +++ b/chameleon/templates/edge-hw-discovery/resources.html @@ -8,13 +8,16 @@

CHI@Edge Hardware Discovery

+ + {% for device in devices %} + + {% endfor %}
NameUUID Type Owning project Device profilesAuthorized projects
{{ device.device_name }}{{ device.uuid }} {{ device.device_type }} {{ device.owning_project }} @@ -24,6 +27,13 @@

CHI@Edge Hardware Discovery

{% endfor %}
+
    + {% for project in device.authorized_projects %} +
  • {{ project }}
  • + {% endfor %} +
+
diff --git a/chameleon/views.py b/chameleon/views.py index 6e00b715..5a5d8fed 100644 --- a/chameleon/views.py +++ b/chameleon/views.py @@ -74,9 +74,9 @@ def __init__(self, *args, **kwargs): super(OIDCRegisterView, self).__init__(*args, **kwargs) self.OIDC_OP_AUTH_ENDPOINT = self.get_settings("OIDC_OP_REGISTRATION_ENDPOINT") + def edge_hardware_discovery(request): """Hardware resource discovery page for CHI@Edge.""" - # devices = {device['device_name']: device for device in edge_api.get_devices()} devices = {'devices': edge_api.get_devices()} return render(request, "edge-hw-discovery/resources.html", devices)