From: Sandrine Avakian Date: Wed, 25 Jan 2012 14:33:21 +0000 (+0100) Subject: Modification of get_slice_and_slivers to have the full hrn of the node. X-Git-Tag: sfa-2.1-24~3^2~226 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=bad5495e0c6febe233df2a6fcec0fb7e782775b3;p=sfa.git Modification of get_slice_and_slivers to have the full hrn of the node. --- diff --git a/sfa/senslab/OARrestapi.py b/sfa/senslab/OARrestapi.py index 655d799c..758f0b75 100644 --- a/sfa/senslab/OARrestapi.py +++ b/sfa/senslab/OARrestapi.py @@ -207,7 +207,7 @@ class OARGETParser: 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 diff --git a/sfa/senslab/slabaggregate.py b/sfa/senslab/slabaggregate.py index f33eef4b..48790435 100644 --- a/sfa/senslab/slabaggregate.py +++ b/sfa/senslab/slabaggregate.py @@ -72,18 +72,20 @@ class SlabAggregate: 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: diff --git a/sfa/senslab/slabdriver.py b/sfa/senslab/slabdriver.py index 435899aa..efa62382 100644 --- a/sfa/senslab/slabdriver.py +++ b/sfa/senslab/slabdriver.py @@ -369,11 +369,22 @@ class SlabDriver(Driver): 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 " @@ -395,17 +406,7 @@ class SlabDriver(Driver): 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): @@ -435,12 +436,8 @@ class SlabDriver(Driver): 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"