From: Loic Baron Date: Wed, 17 Dec 2014 16:20:16 +0000 (+0100) Subject: Optimized slice Query with all metadata fields, allows to have the same query in... X-Git-Tag: myslice-1.1~13^2^2~1 X-Git-Url: http://git.onelab.eu/?p=myslice.git;a=commitdiff_plain;h=7bd68468a99af3699d2565447bb067f0d9708f75 Optimized slice Query with all metadata fields, allows to have the same query in rest homeview and slice page --- diff --git a/manifoldapi/static/js/manifold.js b/manifoldapi/static/js/manifold.js index fe493cdc..b25647b7 100644 --- a/manifoldapi/static/js/manifold.js +++ b/manifoldapi/static/js/manifold.js @@ -1092,7 +1092,11 @@ var manifold = { // Has it a domain query, and has it completed ? $.each(records, function(i, record) { var key = manifold.metadata.get_key(query.object); - var record_key = manifold.record_get_value(record, key); + if ( typeof record === "string" ){ + var record_key = record; + }else{ + var record_key = manifold.record_get_value(record, key); + } manifold.query_store.set_record_state(query.query_uuid, record_key, STATE_SET, STATE_SET_IN); }); diff --git a/plugins/querytable/static/js/querytable.js b/plugins/querytable/static/js/querytable.js index 3c1aab2a..8d931d59 100644 --- a/plugins/querytable/static/js/querytable.js +++ b/plugins/querytable/static/js/querytable.js @@ -158,8 +158,13 @@ QUERYTABLE_BGCOLOR_REMOVED = 2; }); /* Processing hidden_columns */ + arr = []; + arr = $.map(Object.keys(QUERYTABLE_MAP), function(x, i) { return QUERYTABLE_MAP[x]; }); $.each(this.options.hidden_columns, function(i, field) { - self.hide_column(field); + is_inarray = $.inArray(field,arr); + if(is_inarray==-1){ + self.hide_column(field); + } }); $(".dataTables_filter").append("
"); $(".dataTables_filter input").css("width","100%"); @@ -182,7 +187,6 @@ QUERYTABLE_BGCOLOR_REMOVED = 2; }; - console.log(network_hrn); //Greece: 37.6687092,22.2282404 if (network_hrn == 'omf.nitos') { var logo = 'nitos'; diff --git a/portal/sliceresourceview.py b/portal/sliceresourceview.py index 75ede2a7..85bd368a 100644 --- a/portal/sliceresourceview.py +++ b/portal/sliceresourceview.py @@ -59,41 +59,54 @@ class SliceResourceView (LoginRequiredView, ThemeView): user_md = metadata.details_by_object('user') user_fields = ['user_hrn'] # [column['name'] for column in user_md['column']] + query_resource_all = Query.get('resource').select(resource_fields) + 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']] + + #query_lease_all = Query.get('lease').select(lease_fields) + #page.enqueue_query(query_lease_all) + + slice_md = metadata.details_by_object('slice') + slice_fields = [column['name'] for column in slice_md['column']] + print "SLICE RES VIEW fields = %s" % slice_fields # TODO The query to run is embedded in the URL # Example: select slice_hrn, resource.urn, lease.resource, lease.start_time, lease.end_time from slice where slice_hrn == "ple.upmc.myslicedemo" main_query = Query.get('slice').filter_by('slice_hrn', '=', slicename) - main_query.select( - # SLICE - 'slice_hrn', - # - The record key is needed otherwise the storage of records - # bugs ! - 'slice_urn', - # RESOURCES - 'resource', - 'lease', - 'resource.urn', - 'resource.hostname', 'resource.type', - # - The facility_name and testbed_name are required for the - # testbeds plugin to properly work. - 'resource.facility_name', - 'resource.testbed_name', - # LEASES - 'lease.resource', - 'lease.start_time', - 'lease.end_time', - # - The lease_id is important for NITOS identify already existing - # leases - 'lease.lease_id', - - # FLOWSPACE - #'flowspace', - # VMS - #'vms', - - - #'user.user_hrn', - #'application.measurement_point.counter' - ) + main_query.select(slice_fields) + # # SLICE + # 'slice_hrn', + # # - The record key is needed otherwise the storage of records + # # bugs ! + # 'slice_urn', + # # RESOURCES + # 'resource', + # 'lease', + # 'resource.urn', + # 'resource.hostname', 'resource.type', + # # - The facility_name and testbed_name are required for the + # # testbeds plugin to properly work. + # 'resource.facility_name', + # 'resource.testbed_name', + # # LEASES + # 'lease.resource', + # 'lease.start_time', + # 'lease.end_time', + # # - The lease_id is important for NITOS identify already existing + # # leases + # 'lease.lease_id', + + # # FLOWSPACE + # #'flowspace', + # # VMS + # #'vms', + + + # #'user.user_hrn', + # #'application.measurement_point.counter' + #) # for internal use in the querytable plugin; # needs to be a unique column present for each returned record main_query_init_key = 'urn' @@ -104,16 +117,6 @@ class SliceResourceView (LoginRequiredView, ThemeView): #sq_flowspace = aq.subquery('flowspace') #sq_vms = aq.subquery('vms') - query_resource_all = Query.get('resource').select(resource_fields) - 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']] - - #query_lease_all = Query.get('lease').select(lease_fields) - #page.enqueue_query(query_lease_all) - # -------------------------------------------------------------------------- # ALL RESOURCES LIST # resources as a list using datatable plugin diff --git a/portal/templates/base.html b/portal/templates/base.html index df8fd9c1..9bc52dd1 100644 --- a/portal/templates/base.html +++ b/portal/templates/base.html @@ -74,22 +74,17 @@ $(document).ready(function() { Launch queries to get the resources and leases in Manifold Cache */ - $.post("/rest/resource/", function( data ) { - }); - $.post("/rest/lease/", function( data ) { - }); - - function drawSlices(slices){ var items = []; $.each( slices, function(i, val) { items.push( "
  • " + val + "
  • " ); /* - Launch a Query for each slice to get resources and leases in Manifold Cache - */ + // Launch a Query for each slice to get resources and leases in Manifold Cache + // Now only done in Homeview to speed up the other pages $.post("/rest/slice/", { 'filters': { 'slice_hrn' : val } }, function(data) { }); + */ }); $("div#home-slice-list").html($( "