X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fiotlab%2Fiotlabaggregate.py;h=9cc600fcc8393feb95f3d62676f67891ec3a2652;hb=38a7962724193be4a258f01471ba981e2ac7e032;hp=51646382322cef94e86a5c90865b1d7be9f5f3f3;hpb=34e0fc7e6e45bdfb9d9c044b1729e6b32516ec54;p=sfa.git diff --git a/sfa/iotlab/iotlabaggregate.py b/sfa/iotlab/iotlabaggregate.py index 51646382..9cc600fc 100644 --- a/sfa/iotlab/iotlabaggregate.py +++ b/sfa/iotlab/iotlabaggregate.py @@ -103,8 +103,8 @@ class IotlabAggregate: login=login) logger.debug("IotlabAggregate api \tget_slice_and_slivers \ - sfa_slice %s \r\n slices %s self.driver.hrn %s" - % (sfa_slice, slices, self.driver.hrn)) + slice_hrn %s \r\n slices %s self.driver.hrn %s" + % (slice_hrn, slices, self.driver.hrn)) if slices == []: return (sfa_slice, slivers) @@ -117,6 +117,7 @@ class IotlabAggregate: logger.log_exc("IOTLABAGGREGATE \t \ get_slice_and_slivers No nodes in the slice \ - KeyError ") + node_ids_list = [] continue for node in node_ids_list: @@ -279,13 +280,16 @@ class IotlabAggregate: return (rspec_nodes) - def get_all_leases(self): + def get_all_leases(self, ldap_username): """ Get list of lease dictionaries which all have the mandatory keys ('lease_id', 'hostname', 'site_id', 'name', 'start_time', 'duration'). All the leases running or scheduled are returned. + :param ldap_username: if ldap uid is not None, looks for the leases + belonging to this user. + :type ldap_username: string :returns: rspec lease dictionary with keys lease_id, component_id, slice_id, start_time, duration. :rtype: dict @@ -304,7 +308,10 @@ class IotlabAggregate: #lease_filter.update({'name': slice_record['name']}) #leases = self.driver.iotlab_api.GetLeases(lease_filter) - leases = self.driver.iotlab_api.GetLeases() + + logger.debug("IOTLABAGGREGATE get_all_leases ldap_username %s " + % (ldap_username)) + leases = self.driver.iotlab_api.GetLeases(login=ldap_username) grain = self.driver.iotlab_api.GetLeaseGranularity() # site_ids = [] rspec_leases = [] @@ -326,7 +333,7 @@ class IotlabAggregate: pass rspec_lease['start_time'] = lease['t_from'] rspec_lease['duration'] = (lease['t_until'] - lease['t_from']) \ - / grain + / grain rspec_leases.append(rspec_lease) return rspec_leases @@ -356,6 +363,7 @@ class IotlabAggregate: """ + ldap_username= None rspec = None version_manager = VersionManager() version = version_manager.get_version(version) @@ -372,6 +380,16 @@ class IotlabAggregate: version.type, version.version, 'manifest') slices, slivers = self.get_slice_and_slivers(slice_xrn, login) + if slice_xrn and slices is not None: + #Get user associated with this slice + #for one_slice in slices : + ldap_username = slices[0]['reg_researchers'][0].__dict__['hrn'] + # ldap_username = slices[0]['user'] + tmp = ldap_username.split('.') + ldap_username = tmp[1] + logger.debug("IotlabAggregate \tget_rspec **** \ + LDAP USERNAME %s \r\n" \ + % (ldap_username)) #at this point sliver may be empty if no iotlab job #is running for this user/slice. rspec = RSpec(version=rspec_version, user_options=options) @@ -402,13 +420,17 @@ class IotlabAggregate: #In case creating a job, slice_xrn is not set to None rspec.version.add_nodes(nodes) if slice_xrn and slices is not None: - #Get user associated with this slice - #for one_slice in slices : - ldap_username = slices[0]['hrn'] - tmp = ldap_username.split('.') - ldap_username = tmp[1].split('_')[0] + # #Get user associated with this slice + # #for one_slice in slices : + # ldap_username = slices[0]['reg_researchers'] + # # ldap_username = slices[0]['user'] + # tmp = ldap_username.split('.') + # ldap_username = tmp[1] + # # ldap_username = tmp[1].split('_')[0] + logger.debug("IotlabAggregate \tget_rspec **** \ - version type %s \r\n" % (version.type)) + version type %s ldap_ user %s \r\n" \ + % (version.type, ldap_username)) if version.type == "Iotlab": rspec.version.add_connection_information( ldap_username, sites_set) @@ -423,7 +445,7 @@ class IotlabAggregate: attrib, default_sliver[attrib]) if lease_option in ['all','leases']: - leases = self.get_all_leases() + leases = self.get_all_leases(ldap_username) rspec.version.add_leases(leases) logger.debug("IotlabAggregate \tget_rspec **** \ FINAL RSPEC %s \r\n" % (rspec.toxml()))