from sfa.rspecs.version_manager import VersionManager
-from sfa.rspecs.elements.versions.slabv1Node import SlabPosition, SlabNode, \
- SlabLocation
+from sfa.rspecs.elements.versions.iotlabv1Node import IotlabPosition, IotlabNode, \
+ IotlabLocation
from sfa.util.sfalogging import logger
from sfa.util.xrn import Xrn
-def slab_xrn_to_hostname(xrn):
+def iotlab_xrn_to_hostname(xrn):
return Xrn.unescape(Xrn(xrn=xrn, type='node').get_leaf())
-def slab_xrn_object(root_auth, hostname):
+def iotlab_xrn_object(root_auth, hostname):
"""Attributes are urn and hrn.
- Get the hostname using slab_xrn_to_hostname on the urn.
+ Get the hostname using iotlab_xrn_to_hostname on the urn.
- :return: the senslab node's xrn
+ :return: the iotlab node's xrn
:rtype: Xrn
"""
return Xrn('.'.join( [root_auth, Xrn.escape(hostname)]), type='node')
-class SlabAggregate:
+class IotlabAggregate:
sites = {}
nodes = {}
def get_slice_and_slivers(self, slice_xrn, login=None):
"""
- Get the slices and the associated leases if any from the senslab
+ Get the slices and the associated leases if any from the iotlab
testbed. For each slice, get the nodes in the associated lease
and create a sliver with the necessary info and insertinto the sliver
dictionary, keyed on the node hostnames.
:param slice_xrn: xrn of the slice
- :param login: user's login on senslab ldap
+ :param login: user's login on iotlab ldap
:type slice_xrn: string
:type login: string
:reutnr : a list of slices dict and a dictionary of Sliver object
:rtype: (list, dict)
- ..note: There is no slivers in senslab, only leases.
+ ..note: There is no slivers in iotlab, only leases.
"""
slivers = {}
slice_hrn, _ = urn_to_hrn(slice_xrn)
slice_name = slice_hrn
- slices = self.driver.slab_api.GetSlices(slice_filter= str(slice_name), \
+ slices = self.driver.iotlab_api.GetSlices(slice_filter= str(slice_name), \
slice_filter_type = 'slice_hrn', \
login=login)
sliver_xrn.set_authority(self.driver.hrn)
sliver = Sliver({'sliver_id':sliver_xrn.urn,
'name': sfa_slice['hrn'],
- 'type': 'slab-node',
+ 'type': 'iotlab-node',
'tags': []})
slivers[node] = sliver
#Add default sliver attribute :
- #connection information for senslab
- if get_authority (sfa_slice['hrn']) == self.driver.slab_api.root_auth:
+ #connection information for iotlab
+ if get_authority (sfa_slice['hrn']) == self.driver.iotlab_api.root_auth:
tmp = sfa_slice['hrn'].split('.')
ldap_username = tmp[1].split('_')[0]
ssh_access = None
#tags_filter = {}
# get the granularity in second for the reservation system
- grain = self.driver.slab_api.GetLeaseGranularity()
+ grain = self.driver.iotlab_api.GetLeaseGranularity()
- nodes = self.driver.slab_api.GetNodes()
+ nodes = self.driver.iotlab_api.GetNodes()
#geni_available = options.get('geni_available')
#if geni_available:
#filter['boot_state'] = 'boot'
#filter.update({'peer_id': None})
- #nodes = self.driver.slab_api.GetNodes(filter['hostname'])
+ #nodes = self.driver.iotlab_api.GetNodes(filter['hostname'])
#site_ids = []
#interface_ids = []
#for node in one_slice['node_ids']:
#slice_nodes_list.append(node)
- reserved_nodes = self.driver.slab_api.GetNodesCurrentlyInUse()
+ reserved_nodes = self.driver.iotlab_api.GetNodesCurrentlyInUse()
logger.debug("SLABAGGREGATE api get_nodes slice_nodes_list %s "\
%(slice_nodes_list))
for node in nodes:
nodes_dict[node['node_id']] = node
if slice_nodes_list == [] or node['hostname'] in slice_nodes_list:
- rspec_node = SlabNode()
+ rspec_node = IotlabNode()
# xxx how to retrieve site['login_base']
#site_id=node['site_id']
#site=sites_dict[site_id]
rspec_node['archi'] = node['archi']
rspec_node['radio'] = node['radio']
- slab_xrn = slab_xrn_object(self.driver.slab_api.root_auth, \
+ iotlab_xrn = iotlab_xrn_object(self.driver.iotlab_api.root_auth, \
node['hostname'])
- rspec_node['component_id'] = slab_xrn.urn
+ rspec_node['component_id'] = iotlab_xrn.urn
rspec_node['component_name'] = node['hostname']
rspec_node['component_manager_id'] = \
- hrn_to_urn(self.driver.slab_api.root_auth, \
+ hrn_to_urn(self.driver.iotlab_api.root_auth, \
'authority+sa')
- # Senslab's nodes are federated : there is only one authority
- # for all Senslab sites, registered in SFA.
+ # Iotlab's nodes are federated : there is only one authority
+ # for all Iotlab sites, registered in SFA.
# Removing the part including the site
# in authority_id SA 27/07/12
rspec_node['authority_id'] = rspec_node['component_manager_id']
rspec_node['boot_state'] = "Reserved"
rspec_node['exclusive'] = 'true'
rspec_node['hardware_types'] = [HardwareType({'name': \
- 'slab-node'})]
+ 'iotlab-node'})]
- location = SlabLocation({'country':'France', 'site': \
+ location = IotlabLocation({'country':'France', 'site': \
node['site']})
rspec_node['location'] = location
- position = SlabPosition()
+ position = IotlabPosition()
for field in position :
try:
position[field] = node[field]
#if slice_record:
#lease_filter.update({'name': slice_record['name']})
- #leases = self.driver.slab_api.GetLeases(lease_filter)
- leases = self.driver.slab_api.GetLeases()
- grain = self.driver.slab_api.GetLeaseGranularity()
+ #leases = self.driver.iotlab_api.GetLeases(lease_filter)
+ leases = self.driver.iotlab_api.GetLeases()
+ grain = self.driver.iotlab_api.GetLeaseGranularity()
site_ids = []
rspec_leases = []
for lease in leases:
rspec_lease = Lease()
rspec_lease['lease_id'] = lease['lease_id']
#site = node['site_id']
- slab_xrn = slab_xrn_object(self.driver.slab_api.root_auth, node)
- rspec_lease['component_id'] = slab_xrn.urn
+ iotlab_xrn = iotlab_xrn_object(self.driver.iotlab_api.root_auth, node)
+ rspec_lease['component_id'] = iotlab_xrn.urn
#rspec_lease['component_id'] = hostname_to_urn(self.driver.hrn,\
#site, node['hostname'])
try:
rspec_lease['slice_id'] = lease['slice_id']
except KeyError:
- #No info on the slice used in slab_xp table
+ #No info on the slice used in iotlab_xp table
pass
rspec_lease['start_time'] = lease['t_from']
rspec_lease['duration'] = (lease['t_until'] - lease['t_from']) \
rspec = None
version_manager = VersionManager()
version = version_manager.get_version(version)
- logger.debug("SlabAggregate \t get_rspec ***version %s \
+ logger.debug("IotlabAggregate \t get_rspec ***version %s \
version.type %s version.version %s options %s \r\n" \
%(version,version.type,version.version,options))
version.version, 'manifest')
slices, slivers = self.get_slice_and_slivers(slice_xrn, login)
- #at this point sliver may be empty if no senslab job
+ #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)
#datetime_to_string(utcparse(slice['expires']))
# add sliver defaults
#nodes, links = self.get_nodes(slice, slivers)
- logger.debug("\r\n \r\n SlabAggregate \tget_rspec *** \
+ logger.debug("\r\n \r\n IotlabAggregate \tget_rspec *** \
slice_xrn %s slices %s\r\n \r\n"\
%(slice_xrn, slices))
#if not options.get('list_leases') or options.get('list_leases')
#and options['list_leases'] != 'leases':
nodes = self.get_nodes(slices, slivers)
- logger.debug("\r\n \r\n SlabAggregate \ lease_option %s \
+ logger.debug("\r\n \r\n IotlabAggregate \ lease_option %s \
get rspec ******* nodes %s"\
%(lease_option, nodes[0]))
default_sliver = slivers.get('default_sliver', [])
if default_sliver:
#default_sliver_attribs = default_sliver.get('tags', [])
- logger.debug("SlabAggregate \tget_rspec **** \
+ logger.debug("IotlabAggregate \tget_rspec **** \
default_sliver%s \r\n" %(default_sliver))
for attrib in default_sliver:
rspec.version.add_default_sliver_attribute(attrib, \
leases = self.get_all_leases()
rspec.version.add_leases(leases)
- #logger.debug("SlabAggregate \tget_rspec ******* rspec_toxml %s \r\n"\
+ #logger.debug("IotlabAggregate \tget_rspec ******* rspec_toxml %s \r\n"\
#%(rspec.toxml()))
return rspec.toxml()