sl = self.GetSlices(slice_filter= slice_hrn, filter_type = 'slice_hrn')
- if len(slices) is 0:
+ if len(sl) is 0:
raise SliverDoesNotExist("%s slice_hrn" % (slice_hrn))
- #sl = slices[0]
- print >>sys.stderr, "\r\n \r\n_____________ Sliver status urn %s hrn %s slices %s \r\n " %(slice_urn,slice_hrn,slices)
+
+ print >>sys.stderr, "\r\n \r\n_____________ Sliver status urn %s hrn %s sl %s \r\n " %(slice_urn,slice_hrn,sl)
if sl['oar_job_id'] is not -1:
# report about the local nodes only
- nodes = self.GetNodes({'hostname':sl['node_ids']},
- ['node_id', 'hostname','site_login_base','boot_state'])
+ nodes_all = self.GetNodes({'hostname':sl['node_ids']},
+ ['node_id', 'hostname','site','boot_state'])
+ nodeall_byhostname = dict([(n['hostname'], n) for n in nodes_all])
+ nodes = sl['node_ids']
if len(nodes) is 0:
raise SliverDoesNotExist("No slivers allocated ")
- site_logins = [node['site_login_base'] for node in nodes]
+
result = {}
top_level_status = 'unknown'
if nodes:
top_level_status = 'ready'
result['geni_urn'] = slice_urn
- result['slab_login'] = sl['job_user']
+ result['pl_login'] = sl['job_user']
+ #result['slab_login'] = sl['job_user']
- timestamp = float(sl['startTime']) + float(sl['walltime'])
- result['slab_expires'] = strftime(self.time_format, gmtime(float(timestamp)))
+ timestamp = float(sl['startTime']) + float(sl['walltime'])
+ result['pl_expires'] = strftime(self.time_format, gmtime(float(timestamp)))
+ #result['slab_expires'] = strftime(self.time_format, gmtime(float(timestamp)))
resources = []
for node in nodes:
res = {}
- res['slab_hostname'] = node['hostname']
- res['slab_boot_state'] = node['boot_state']
+ #res['slab_hostname'] = node['hostname']
+ #res['slab_boot_state'] = node['boot_state']
- sliver_id = urn_to_sliver_id(slice_urn, sl['record_id_slice'], node['node_id'])
- res['geni_urn'] = sliver_id
- if node['boot_state'] == 'Alive':
+ res['pl_hostname'] = nodeall_byhostname[node]['hostname']
+ res['pl_boot_state'] = nodeall_byhostname[node]['boot_state']
+ res['pl_last_contact'] = strftime(self.time_format, gmtime(float(timestamp)))
+ sliver_id = urn_to_sliver_id(slice_urn, sl['record_id_slice'],nodeall_byhostname[node]['node_id'] )
+ res['geni_urn'] = sliver_id
+ if nodeall_byhostname[node]['boot_state'] == 'Alive':
+ #if node['boot_state'] == 'Alive':
res['geni_status'] = 'ready'
else:
res['geni_status'] = 'failed'
node_hostname_list.append(node['hostname'])
node_dict = dict(zip(node_hostname_list,node_list))
- #print>>sys.stderr, "\r\n \r\n \r\n \r\n \r\n \t\t GetJobs GetNODES %s " %(node_list)
+
try :
-
- #for n in job_info[node_list]:
- #n = str(self.root_auth) + str(n)
+
liste =job_info[node_list_k]
print>>sys.stderr, "\r\n \r\n \t\t GetJobs resources job_info liste%s" %(liste)
job_info[node_list_k][k] = node_dict[job_info[node_list_k][k]]['hostname']
print>>sys.stderr, "\r\n \r\n \t\t YYYYYYYYYYYYGetJobs resources job_info %s" %(job_info)
+ #Replaces the previous entry "assigned_network_address" / "reserved_resources"
+ #with "node_ids"
job_info.update({'node_ids':job_info[node_list_k]})
del job_info[node_list_k]
return job_info
def GetSlices(self,slice_filter = None, filter_type = None, return_fields=None):
return_slice_list = []
slicerec = {}
+ rec = {}
ftypes = ['slice_hrn', 'record_id_user']
if filter_type and filter_type in ftypes:
if filter_type == 'slice_hrn':
slicerec = slab_dbsession.query(SliceSenslab).filter_by(slice_hrn = slice_filter).first()
if filter_type == 'record_id_user':
slicerec = slab_dbsession.query(SliceSenslab).filter_by(record_id_user = slice_filter).first()
+
if slicerec:
rec = slicerec.dumpquerytodict()
login = slicerec.slice_hrn.split(".")[1].split("_")[0]
#If GetJobs is empty, this means the job is now in the 'Terminated' state
#Update the slice record
else :
- self.db.update_job(slice_filter, job_id = '-1')
- rec['oar_job_id'] = '-1'
+ self.db.update_job(slice_filter, job_id = -1)
+ rec['oar_job_id'] = -1
rec.update({'hrn':str(rec['slice_hrn'])})
- print >>sys.stderr, " \r\n \r\n \tSLABDRIVER.PY GetSlices rec %s" %(rec)
+ print >>sys.stderr, " \r\n \r\n \tSLABDRIVER.PY GetSlices rec %s" %(rec)
+
return rec