Merge branch 'master' of ssh://git.onelab.eu/git/myslice
authorCiro Scognamiglio <ciro.scognamiglio@cslash.net>
Fri, 25 Oct 2013 17:22:40 +0000 (19:22 +0200)
committerCiro Scognamiglio <ciro.scognamiglio@cslash.net>
Fri, 25 Oct 2013 17:22:40 +0000 (19:22 +0200)
Conflicts:
portal/sliceview.py

plugins/slicestat/__init__.py
plugins/slicestat/static/css/slicestat.css
plugins/slicestat/static/js/slicestat.js
plugins/slicestat/templates/slicestat.html
portal/sliceview.py

index dadebd0..d5990a8 100644 (file)
@@ -23,7 +23,7 @@ class SliceStat(Plugin):
         return reqs
 
     def json_settings_list (self):
-        return ['plugin_uuid', 'domid', 'query_uuid']
+        return ['plugin_uuid', 'domid', 'query_uuid', 'slicename', 'o']
 
     def export_json_settings (self):
         return True
index 9962c83..49ee844 100644 (file)
@@ -1,4 +1,4 @@
-iframe#slicestat_resource {
+iframe.slicestat-iframe {
     width:100%;
     height:400px;
     border:0;
index a815e7f..0e3dc53 100644 (file)
@@ -26,7 +26,7 @@
             // Call the parent constructor, see FAQ when forgotten
             this._super(options, element);                      
                        
-
+                       
             /* Member variables */
 
             /* Plugin events */
             // What happens when we don't define some events ?
             // Some can be less efficient
             this.listen_query(options.query_uuid);
-
+                       
             /* GUI setup and event binding */
             // call function
-
+                       if (typeof options.slicename != 'undefined') {
+                       options.slicename = options.slicename.replace("ple.","").replace(".","_");
+               }
+               if (typeof options.o == 'undefined') {
+                       //options.o = 'cpu';
+               }
+               
+               this.elmt().on('show', options, this.on_show);
         },
 
         /* PLUGIN EVENTS */
             // this.id, this.el, this.cl, this.elts
             // same output as a jquery selector with some guarantees
         },
-
+               
+               on_show: function(ev) 
+               {
+                       $('iframe#' + ev.target.id + '-iframe').attr('src','http://plestats.planet-lab.eu/nodes.php?slice='+ev.data.slicename+'&order='+ev.data.o);
+               },
         /* TEMPLATES */
 
         // see in the html template
         /* RECORD HANDLERS */
         on_new_record: function(record)
         {
-            console.log(record);
-            
-            $('iframe#slicestat_resource').attr('src','http://plestats.planet-lab.eu/node.php?node='+record.hostname);
-            
+               $('iframe#' + this.elmt().attr('id') + '-iframe').attr('src','http://plestats.planet-lab.eu/node.php?node='+record.hostname);            
         },
 
         /* INTERNAL FUNCTIONS */
index c97cd9e..15a8755 100644 (file)
@@ -1,3 +1,3 @@
 <div id={{ domid }}>
-<iframe id="slicestat_resource" src=""></iframe> 
+<iframe class="slicestat-iframe" id="{{ domid }}-iframe" src=""></iframe> 
 </div>
index 15a5e51..44effc9 100644 (file)
@@ -20,6 +20,7 @@ from plugins.query_editor            import QueryEditor
 from plugins.active_filters          import ActiveFilters
 from plugins.quickfilter             import QuickFilter
 from plugins.messages                import Messages
+from plugins.slicestat               import Slicestat
 
 from myslice.config                  import Config
 
@@ -174,6 +175,50 @@ class SliceView (LoginRequiredAutoLogoutView):
                 },
             )
 
+        resources_stats_cpu = Slicestat(
+            title = "CPU Usage",
+            domid = 'resources-stats-cpu',
+            page  = page,
+            stats = 'slice',
+            key   = 'hrn',
+            query = 'none',
+            slicename = slicename,
+            o = 'cpu'
+        )
+        
+        resources_stats_mem = Slicestat(
+            title = "Memory Usage",
+            domid = 'resources-stats-mem',
+            page  = page,
+            stats = 'slice',
+            key   = 'hrn',
+            query = 'none',
+            slicename = slicename,
+            o = 'mem'
+        )
+        
+        resources_stats_asb = Slicestat(
+            title = "Traffic Sent",
+            domid = 'resources-stats-asb',
+            page  = page,
+            stats = 'slice',
+            key   = 'hrn',
+            query = 'none',
+            slicename = slicename,
+            o = 'asb'
+        )
+        
+        resources_stats_arb = Slicestat(
+            title = "Traffic Received",
+            domid = 'resources-stats-arb',
+            page  = page,
+            stats = 'slice',
+            key   = 'hrn',
+            query = 'none',
+            slicename = slicename,
+            o = 'arb'
+        )
+        
         # with the new 'Filter' stuff on top, no need for anything but the hazelnut
         resources_as_list_area = resources_as_list 
 
@@ -182,42 +227,73 @@ class SliceView (LoginRequiredAutoLogoutView):
                                 togglable=True,
                                 title="Resources",
                                 outline_complete=True,
-                                sons=[ resources_as_map, resources_as_list_area, ],
+                                sons=[ resources_as_map, resources_as_list_area, resources_stats_cpu, resources_stats_mem, resources_stats_asb, resources_stats_arb ],
                                 active_domid = 'resources-map',
                                 )
         main_stack.insert (resources_area)
 
-
         # --------------------------------------------------------------------------
         # USERS
     
-#        if do_query_users:
-#            tab_users = Tabs(
-#                page                = page,
-#                domid               = 'users',
-#                outline_complete    = True,
-#                togglable           = True,
-#                title               = 'Users',
-#                active_domid        = 'users-list',
-#                )
-#            main_stack.insert(tab_users)
-#    
-#            tab_users.insert(Hazelnut( 
-#                page        = page,
-#                title       = 'Users List',
-#                domid       = 'users-list',
-#                # tab's sons preferably turn this off
-#                togglable   = False,
-#                # this is the query at the core of the slice list
-#                query       = sq_user,
-#                query_all  = query_user_all,
-#                checkboxes  = True,
-#                datatables_options = { 
-#                    'iDisplayLength' : 25,
-#                    'bLengthChange'  : True,
-#                    'bAutoWidth'     : True,
-#                },
-#            ))
+<<<<<<< HEAD
+        if do_query_users:
+            tab_users = Tabs(
+                page                = page,
+                domid               = 'users',
+                outline_complete    = True,
+                togglable           = True,
+                title               = 'Users',
+                active_domid        = 'users-list',
+                )
+            main_stack.insert(tab_users)
+    
+            tab_users.insert(Hazelnut( 
+                page        = page,
+                title       = 'Users List',
+                domid       = 'users-list',
+                # tab's sons preferably turn this off
+                togglable   = False,
+                # this is the query at the core of the slice list
+                query       = sq_user,
+                query_all  = query_user_all,
+                checkboxes  = True,
+                datatables_options = { 
+                    'iDisplayLength' : 25,
+                    'bLengthChange'  : True,
+                    'bAutoWidth'     : True,
+                },
+            ))
+            
+        
+=======
+        if do_query_users:
+            tab_users = Tabs(
+                page                = page,
+                domid               = 'users',
+                outline_complete    = True,
+                togglable           = True,
+                title               = 'Users',
+                active_domid        = 'users-list',
+                )
+            main_stack.insert(tab_users)
+    
+            tab_users.insert(Hazelnut( 
+                page        = page,
+                title       = 'Users List',
+                domid       = 'users-list',
+                # tab's sons preferably turn this off
+                togglable   = False,
+                # this is the query at the core of the slice list
+                query       = sq_user,
+                query_all  = query_user_all,
+                checkboxes  = True,
+                datatables_options = { 
+                    'iDisplayLength' : 25,
+                    'bLengthChange'  : True,
+                    'bAutoWidth'     : True,
+                },
+            ))
+>>>>>>> 0c8a634162f3271018102e75a3934c5db5e48f59
 # DEMO    
         # --------------------------------------------------------------------------
         # MEASUREMENTS