def ParseJobsIds(self):
- job_resources =[ 'assigned_resources','Job_Id', 'scheduledStart','state','job_user', 'startTime','walltime','message']
+ job_resources =['assigned_network_address', 'assigned_resources','Job_Id', 'scheduledStart','state','job_user', 'startTime','walltime','message']
job_resources_full = ['Job_Id', 'scheduledStart', 'resubmit_job_id', 'owner', 'submissionTime', 'message', 'id', 'jobType', 'queue', 'launchingDirectory', 'exit_code', 'state', 'array_index', 'events', 'assigned_network_address', 'cpuset_name', 'initial_request', 'job_user', 'assigned_resources', 'array_id', 'job_id', 'resources_uri', 'dependencies', 'api_timestamp', 'startTime', 'reservation', 'properties', 'types', 'walltime', 'name', 'uri', 'wanted_resources', 'project', 'command']
job_info = self.raw_json
return (slice, slivers)
slice = slices[0]
- # sort slivers by node id
- try:
-
- for node_id in slice['assigned_network_address']:
- node_id = self.driver.root_auth + '.' + node_id
- sliver = Sliver({'sliver_id': urn_to_sliver_id(slice_urn, slice['record_id_slice'], node_id),
- 'name': slice['slice_hrn'],
- 'type': 'slab-vm',
- 'tags': []})
- slivers[node_id]= sliver
- except KeyError:
- print>>sys.stderr, " \r\n \t\t get_slice_and_slivers KeyError "
+ # sort slivers by node id , if there is a job
+ #and therfore, node allocated to this slice
+ if slice['oar_job_id'] is not -1:
+ try:
+
+ for node_id in slice['assigned_network_address']:
+ node_id = self.driver.root_auth + '.' + node_id
+ sliver = Sliver({'sliver_id': urn_to_sliver_id(slice_urn, slice['record_id_slice'], node_id),
+ 'name': slice['slice_hrn'],
+ 'type': 'slab-vm',
+ 'tags': []})
+ slivers[node_id]= sliver
+ except KeyError:
+ print>>sys.stderr, " \r\n \t\t get_slice_and_slivers KeyError "
## sort sliver attributes by node id
##tags = self.driver.GetSliceTags({'slice_tag_id': slice['slice_tag_ids']})
##for tag in tags:
if job_id and resources is False:
job_info = self.oar.parser.SendRequest("GET_jobs_id", job_id)
- print>>sys.stderr, "\r\n \r\n \t\t GetJobs resources is False job_info %s" %(job_info)
-
+ try :
+ for n in job_info['assigned_network_address']:
+ n = str(self.root_auth) + str(n)
+ print>>sys.stderr, "\r\n \r\n \t\t GetJobs resources is False job_info %s" %(job_info)
+ except KeyError:
+ print>>sys.stderr, "\r\n \r\n \t\t GetJobs KEYERROR "
+
if job_id and resources :
- job_info = self.oar.parser.SendRequest("GET_jobs_id_resources", job_id)
- print>>sys.stderr, "\r\n \r\n \t\t GetJobs job_info %s" %(job_info)
+ job_info = self.oar.parser.SendRequest("GET_jobs_id_resources", job_id)
+ try :
+ for n in job_info['reserverd_resources']:
+ n = str(self.root_auth) + str(n)
+ print>>sys.stderr, "\r\n \r\n \t\t GetJobs job_info %s" %(job_info)
+ except KeyError:
+ print>>sys.stderr, "\r\n \r\n \t\t GetJobs KEYERROR "
+
if job_info['state'] == 'Terminated':
print>>sys.stderr, "\r\n \r\n \t\t GetJobs TERMINELEBOUSIN "
return_node_list= parse_filter(node_dict.values(),node_filter ,'node', return_fields)
return return_node_list
- #def GetSites(self, auth, site_filter = None, return_fields=None):
- #self.oar.parser.SendRequest("GET_resources_full")
- #site_dict = self.oar.parser.GetSitesFromOARParse()
- #return_site_list = []
- #site = site_dict.values()[0]
- #if not (site_filter or return_fields):
- #return_site_list = site_dict.values()
- #return return_site_list
-
- #return_site_list = parse_filter(site_dict.values(),site_filter ,'site', return_fields)
- #return return_site_list
+
def GetSlices(self,slice_filter = None, return_fields=None):
print >>sys.stderr, " \r\n \r\n \tSLABDRIVER.PY GetSlices return_slice_list %s" %(return_slice_list)
return return_slice_list
+
-
-
-
-
- return return_slice_list
def testbed_name (self): return "senslab2"