1 from unfold.plugin import Plugin
\r
3 from datetime import timedelta
\r
5 class Scheduler2 (Plugin):
\r
8 def __init__ (self, query, query_lease, query_all_resources, query_all_leases, **settings):
\r
9 Plugin.__init__ (self, **settings)
\r
12 self.query_all_resources = query_all_resources
\r
13 self.query_all_resources_uuid = query_all_resources.query_uuid
\r
15 self.query_all_leases = query_all_leases
\r
16 self.query_all_leases_uuid = query_all_leases.query_uuid
\r
18 self.query_lease = query_lease
\r
19 self.query_lease_uuid = query_lease.query_uuid
\r
21 #query_lease.query_uuid if query_lease else None
\r
23 #granularity in minutes
\r
25 #self.time_slots = []
\r
26 self.time_slots = self.createTimeSlots(granularity)
\r
28 ['Grid Nodes' , ['node016', 'node017', 'node018', 'node019', 'node020', 'node021', 'node029', 'node030', 'node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031','node031',]],
\r
29 ['Other Nodes' , ['node022', 'node023', 'node024','node025', 'node026', 'node027', 'node028',]]
\r
32 def template_file (self):
\r
33 return "scheduler.html"
\r
35 def requirements (self):
\r
38 'js/angular/angular.min.js',
\r
40 'js/scheduler-SchedulerCtrl.js',
\r
41 #'js/slider/jquery-ui-1.10.3.slider.min.js',
\r
42 'js/scheduler-helpers.js',
\r
43 'js/scheduler-table-selector.js',
\r
46 'css/scheduler2.css',
\r
47 #'css/slider/jquery-ui-1.10.3.slider.min.css',
\r
52 # the list of things passed to the js plugin
\r
53 def json_settings_list (self):
\r
54 # query_uuid will pass self.query results to the javascript
\r
55 # and will be available as "record" in :
\r
56 # on_new_record: function(record)
\r
57 return ['plugin_uuid', 'domid', 'query_uuid', 'time_slots', 'nodes', 'query_lease_uuid', 'query_all_resources_uuid', 'query_all_leases_uuid']
\r
60 def export_json_settings (self):
\r
63 #Creates an Array with the timespans depending on granularity
\r
64 def createTimeSlots (this, granularity):
\r
68 time_s = datetime.time(0,00)
\r
69 time_f = datetime.time(23,59)
\r
70 now = datetime.datetime.now()
\r
72 dt_s = datetime.datetime.combine(now,time_s)
\r
73 dt_f = datetime.datetime.combine(now,time_f)
\r
75 while (dt_s < dt_f):
\r
77 dt_s = dt_s + datetime.timedelta(minutes=granularity)
\r
78 ts = str(tmp.hour).zfill(2) + ':' + str(tmp.minute).zfill(2) + '<span>-</span>' + str(dt_s.hour).zfill(2) + ':' + str(dt_s.minute).zfill(2)
\r
79 time_slots.append(ts)
\r