diff options
Diffstat (limited to 'src/resource_inventory')
-rw-r--r-- | src/resource_inventory/urls.py | 10 | ||||
-rw-r--r-- | src/resource_inventory/views.py | 47 |
2 files changed, 57 insertions, 0 deletions
diff --git a/src/resource_inventory/urls.py b/src/resource_inventory/urls.py index f9bd07e..f230509 100644 --- a/src/resource_inventory/urls.py +++ b/src/resource_inventory/urls.py @@ -7,3 +7,13 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## + +from django.conf.urls import url +from django.urls import path + +from resource_inventory.views import host_list_view, profile_view +app_name = 'resource' +urlpatterns = [ + url(r'^list/$', host_list_view, name='host-list'), + path('profile/<str:resource_id>', profile_view), +]
\ No newline at end of file diff --git a/src/resource_inventory/views.py b/src/resource_inventory/views.py index f903394..837cc73 100644 --- a/src/resource_inventory/views.py +++ b/src/resource_inventory/views.py @@ -6,3 +6,50 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## + +import json +from django.shortcuts import render +from django.http import HttpResponse +from api.views import list_hosts, list_flavors + + +def host_list_view(request): + if request.method == "GET": + host_list = json.loads(list_hosts(request).content) + flavor_list = json.loads(list_flavors(request).content) + flavor_map = {} + for flavor in flavor_list: + flavor_map[flavor['flavor_id']] = flavor['name'] + + # Apparently Django Templating lacks many features that regular Jinja offers, so I need to get creative + for host in host_list: + id = host["flavor"] + name = flavor_map[id] + host["flavor"] = {"id": id, "name": name} + + template = "resource/hosts.html" + context = { + "hosts": host_list, + "flavor_map": flavor_map + } + return render(request, template, context) + + return HttpResponse(status=405) + + +def profile_view(request, resource_id): + if request.method == "GET": + flavor_list = json.loads(list_flavors(request).content) + selected_flavor = {} + for flavor in flavor_list: + if flavor["flavor_id"] == resource_id: + selected_flavor = flavor + break + + template = "resource/hostprofile_detail.html" + context = { + "flavor": selected_flavor + } + return render(request, template, context) + + return HttpResponse(status=405)
\ No newline at end of file |