X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Fsliceresourceview.py;h=e887ff7afd71ed44a5353132713e5f8d2a971852;hb=754158ae8e3a6b8e1d5cfeed23de32e4ad941a29;hp=498bdd282d59446c6e45e6a2127248b0a2cf7ec2;hpb=6eb1d8c9d03d2b10b514c317b6fff11172097346;p=unfold.git diff --git a/portal/sliceresourceview.py b/portal/sliceresourceview.py index 498bdd28..e887ff7a 100644 --- a/portal/sliceresourceview.py +++ b/portal/sliceresourceview.py @@ -1,8 +1,9 @@ from django.template import RequestContext from django.shortcuts import render_to_response -from manifold.core.query import Query, AnalyzedQuery -from manifoldapi.manifoldapi import execute_query +from manifold.core.query import Query, AnalyzedQuery +from manifoldapi.manifoldapi import execute_query +import json from django.views.generic.base import TemplateView @@ -17,7 +18,7 @@ from myslice.configengine import ConfigEngine from plugins.apply import ApplyPlugin from plugins.querytable import QueryTable from plugins.googlemap import GoogleMap -#from plugins.queryupdater import QueryUpdater +# from plugins.queryupdater import QueryUpdaterPlugin from plugins.filter_status import FilterStatusPlugin from plugins.testbeds import TestbedsPlugin from plugins.scheduler2 import Scheduler2 @@ -53,12 +54,13 @@ class SliceResourceView (LoginRequiredView, ThemeView): main_query.select( 'slice_urn', # XXX We need the key otherwise the storage of records bugs ! 'slice_hrn', - 'resource.urn', + 'resource.urn', 'resource.hostname', 'resource.type', 'resource.network_hrn', 'lease.resource', 'lease.start_time', 'lease.end_time', + 'lease.lease_id', # Important for NITOS identify already existing leases #'user.user_hrn', #'application.measurement_point.counter' ) @@ -74,11 +76,11 @@ class SliceResourceView (LoginRequiredView, ThemeView): #page.enqueue_query(query_resource_all) # leases query - lease_md = metadata.details_by_object('lease') - lease_fields = [column['name'] for column in lease_md['column']] + #lease_md = metadata.details_by_object('lease') + #lease_fields = [column['name'] for column in lease_md['column']] - query_lease_all = Query.get('lease').select(lease_fields) - page.enqueue_query(query_lease_all) + #query_lease_all = Query.get('lease').select(lease_fields) + #page.enqueue_query(query_lease_all) # -------------------------------------------------------------------------- # ALL RESOURCES LIST @@ -157,16 +159,16 @@ class SliceResourceView (LoginRequiredView, ThemeView): # tab's sons preferably turn this off togglable = False, query = sq_resource, - query_all = query_resource_all, # this key is the one issued by google googlemap_api_key = ConfigEngine().googlemap_api_key(), # the key to use at init-time init_key = main_query_init_key, checkboxes = True, - # center on Paris - latitude = 49., - longitude = 9, - zoom = 8, + + # To center around Europe : 53,9 / 3 + latitude = 53., + longitude = 9., + zoom = 3, ) # -------------------------------------------------------------------------- @@ -180,24 +182,22 @@ class SliceResourceView (LoginRequiredView, ThemeView): # this is the query at the core of the slice list query = sq_resource, query_lease = sq_lease, - query_all_resources = query_resource_all, - query_all_leases = query_lease_all, ) # -------------------------------------------------------------------------- # QueryUpdater (Pending Operations) -#DEPRECATED| pending_resources = QueryUpdater( -#DEPRECATED| page = page, -#DEPRECATED| title = 'Pending operations', -#DEPRECATED| query = main_query, -#DEPRECATED| togglable = False, -#DEPRECATED| # start turned off, it will open up itself when stuff comes in -#DEPRECATED| toggled = False, -#DEPRECATED| domid = 'pending', -#DEPRECATED| outline_complete = True, -#DEPRECATED| username = request.user, -#DEPRECATED| ) +# pending_resources = QueryUpdaterPlugin( +# page = page, +# title = 'Pending operations', +# query = main_query, +# togglable = False, +# # start turned off, it will open up itself when stuff comes in +# toggled = False, +# domid = 'pending', +# outline_complete = True, +# username = request.user, +# ) # -------------------------------------------------------------------------- # NETWORKS @@ -206,15 +206,15 @@ class SliceResourceView (LoginRequiredView, ThemeView): network_md = metadata.details_by_object('network') network_fields = [column['name'] for column in network_md['column']] - #query_network = Query.get('network').select(network_fields) - #page.enqueue_query(query_network) + query_networks = Query.get('network').select(network_fields) + page.enqueue_query(query_networks) filter_testbeds = TestbedsPlugin( page = page, domid = 'testbeds-filter', title = 'Filter by testbeds', query = sq_resource, - #query_network = query_network, + query_networks = query_networks, init_key = "network_hrn", checkboxes = True, datatables_options = { @@ -232,7 +232,8 @@ class SliceResourceView (LoginRequiredView, ThemeView): apply = ApplyPlugin( page = page, domid = "apply", - query = sq_resource, + query = main_query, + username = request.user, ) @@ -250,7 +251,27 @@ class SliceResourceView (LoginRequiredView, ThemeView): outline_complete = True, username = request.user, ) - + + ## check user is pi or not + platform_query = Query().get('local:platform').select('platform_id','platform','gateway_type','disabled') + account_query = Query().get('local:account').select('user_id','platform_id','auth_type','config') + platform_details = execute_query(self.request, platform_query) + account_details = execute_query(self.request, account_query) + + # XXX When session has expired, this is None and thus not iterable + for platform_detail in platform_details: + for account_detail in account_details: + if platform_detail['platform_id'] == account_detail['platform_id']: + if 'config' in account_detail and account_detail['config'] is not '': + account_config = json.loads(account_detail['config']) + if 'myslice' in platform_detail['platform']: + acc_auth_cred = account_config.get('delegated_authority_credentials','N/A') + # assigning values + if acc_auth_cred == {} or acc_auth_cred == 'N/A': + pi = "is_not_pi" + else: + pi = "is_pi" + template_env = {} template_env['list_resources'] = list_resources.render(self.request) template_env['list_reserved_resources'] = list_reserved_resources.render(self.request) @@ -265,9 +286,10 @@ class SliceResourceView (LoginRequiredView, ThemeView): template_env['map_resources'] = map_resources.render(self.request) template_env['scheduler'] = resources_as_scheduler2.render(self.request) # template_env['pending_resources'] = pending_resources.render(self.request) - template_env['sla_dialog'] = sla_dialog.render(self.request) + template_env['sla_dialog'] = '' # sla_dialog.render(self.request) template_env["theme"] = self.theme template_env["username"] = request.user + template_env["pi"] = pi template_env["slice"] = slicename template_env["section"] = "resources" template_env["msg"] = msg