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 a 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
#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(ldap_username)
grain = self.driver.iotlab_api.GetLeaseGranularity()
# site_ids = []
rspec_leases = []
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
:type options: dict
:returns: Xml Rspec.
- :rtype: XML
+ :rtype: XMLf
"""
+ ldap_username= None
rspec = None
version_manager = VersionManager()
version = version_manager.get_version(version)
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]
+ # ldap_username = slices[0]['hrn']
+ # tmp = ldap_username.split('.')
+ # ldap_username = tmp[1].split('_')[0]
+ ldap_username = slices[0]['user']
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)
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()))
class IotlabTestbedAPI():
""" Class enabled to use LDAP and OAR api calls. """
- _MINIMUM_DURATION = 600
+ _MINIMUM_DURATION = 10 # 10 units of granularity 60 s, 10 mins
def __init__(self, config):
"""Creates an instance of OARrestapi and LDAPapi which will be used to
return
@staticmethod
- def GetMinExperimentDurationInSec():
+ def GetMinExperimentDurationInGranularity():
""" Returns the minimum allowed duration for an experiment on the
testbed. In seconds.
"""
- unfiltered_reservation_list = self.GetReservedNodes()
+ unfiltered_reservation_list = self.GetReservedNodes(login)
reservation_list = []
#Find the slice associated with this user iotlab ldap uid
"""
from sfa.util.faults import SliverDoesNotExist, UnknownSfaType
from sfa.util.sfalogging import logger
-# from sfa.storage.alchemy import dbsession
+from sfa.storage.alchemy import dbsession
from sfa.storage.model import RegRecord
from sfa.managers.driver import Driver
#the lease to the requested leases list
duration_in_seconds = \
int(single_requested_lease['duration'])
- if duration_in_seconds >= self.iotlab_api.GetMinExperimentDurationInSec():
+ if duration_in_seconds >= self.iotlab_api.GetMinExperimentDurationInGranularity():
requested_lease_list.append(single_requested_lease)
return requested_lease_list