Optimized slice Query with all metadata fields, allows to have the same query in...
authorLoic Baron <loic.baron@lip6.fr>
Wed, 17 Dec 2014 16:20:16 +0000 (17:20 +0100)
committerLoic Baron <loic.baron@lip6.fr>
Wed, 17 Dec 2014 16:20:16 +0000 (17:20 +0100)
manifoldapi/static/js/manifold.js
plugins/querytable/static/js/querytable.js
portal/sliceresourceview.py
portal/templates/base.html
portal/templates/fed4fire/fed4fire_home-view.html

index fe493cd..b25647b 100644 (file)
@@ -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);
             });
 
index 3c1aab2..8d931d5 100644 (file)
@@ -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("<div style='display:inline-block;height:27px;width:27px;padding-left:6px;padding-top:4px;'><span class='glyphicon glyphicon-search'></span></div>");
             $(".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';
index 75ede2a..85bd368 100644 (file)
@@ -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
index df8fd9c..9bc52dd 100644 (file)
@@ -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( "<li><a href=\"/resources/"+val+"\">" + val + "</a></li>" );
             /*
-            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($( "<ul/>", { html: items.join( "" ) }));
         $("ul#dropdown-slice-list").append(items.join( "" ));
index e5ce3f0..fed82dc 100644 (file)
         // myslice.user is in LocalStorage
         if(myslice.user.slices.length>0){
             $.each( myslice.user.slices, function(i, 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
                 $.post("/rest/slice/", { 'filters': { 'slice_hrn' : val } }, function(data) {
                 });
             });