This file defines the IotlabSlices class by which all the slice checkings
upon lease creation are done.
"""
-from sfa.util.xrn import get_authority, urn_to_hrn
+from sfa.util.xrn import get_authority, urn_to_hrn, hrn_to_urn
from sfa.util.sfalogging import logger
MAXINT = 2L**31-1
"%( start_time))
if start_time in current_nodes_reserved_by_start_time:
+ # JORDAN : if we request the same nodes: do nothing
if requested_nodes_by_start_time[start_time] == \
current_nodes_reserved_by_start_time[start_time]:
continue
job['hostname'],
sfa_slice, int(job['start_time']),
int(job['duration']))
- if job_id is not None:
- new_leases = self.driver.GetLeases(login=
- sfa_slice['login'])
- for new_lease in new_leases:
- leases.append(new_lease)
+
+ # Removed by jordan
+ #if job_id is not None:
+ # new_leases = self.driver.GetLeases(login=
+ # sfa_slice['login'])
+ # for new_lease in new_leases:
+ # leases.append(new_lease)
#Deleted leases are the ones with lease id not declared in the Rspec
if deleted_leases:
job['hostname'],
sfa_slice, int(job['start_time']),
int(job['duration']))
- return leases
+
+ # Added by Jordan: until we find a better solution, always update the list of leases
+ return self.driver.GetLeases(login= sfa_slice['login'])
+ #return leases
def verify_slice_nodes(self, sfa_slice, requested_slivers, peer):
"""Check for wanted and unwanted nodes in the slice.
"""
slicename = slice_hrn
+ sfa_slice = None
+
# check if slice belongs to Iotlab
slices_list = self.driver.GetSlices(slice_filter=slicename,
slice_filter_type='slice_hrn')
- sfa_slice = None
-
if slices_list:
for sl in slices_list:
#Needed because what if the user has been deleted in LDAP but
#is still in SFA?
# GetPersons -> LdapFindUser -> _process_ldap_info_for_one_user
+ # XXX LOIC Fix in _process_ldap_info_for_one_user not to update user with hrn=None
existing_users = self.driver.testbed_shell.GetPersons(filter_user)
logger.debug(" \r\n IOTLABSLICES.PY \tverify_person filter_user %s\
existing_users %s "
#self.verify_keys(existing_slice_users, updated_users_list, \
#peer, append)
+ # XXX JORDAN the uid of the user is put in slice_record['login']
added_persons = []
# add new users
#requested_user_email is in existing_user_emails
slice_record['login'] = users_dict[requested_user_emails[0]]['uid']
logger.debug(" IOTLABSLICES \tverify_person QUICK DIRTY %s"
% (slice_record))
+ # XXX JORDAN uid == 'register'
+ # XXX JORDAN i have no added_user_emails
for added_user_email in added_user_emails:
added_user = users_dict[added_user_email]
logger.debug(" IOTLABSLICES \r\n \r\n \t verify_person \