X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fiotlab%2Fiotlabaggregate.py;fp=sfa%2Fsenslab%2Fslabaggregate.py;h=26c67646f462f0261b20d4df46b6dbb18ca12fc2;hb=b0995f45712c5ea9dd26fdf0c4347ccba2d77fce;hp=d1946f8c3bf84a0f60673475ff293d8e6e9909f2;hpb=459c7cb13e96793bc4622bc167422442c0cd7ba0;p=sfa.git diff --git a/sfa/senslab/slabaggregate.py b/sfa/iotlab/iotlabaggregate.py similarity index 85% rename from sfa/senslab/slabaggregate.py rename to sfa/iotlab/iotlabaggregate.py index d1946f8c..26c67646 100644 --- a/sfa/senslab/slabaggregate.py +++ b/sfa/iotlab/iotlabaggregate.py @@ -12,25 +12,25 @@ from sfa.rspecs.elements.granularity import Granularity 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 = {} @@ -48,7 +48,7 @@ class SlabAggregate: 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. @@ -57,14 +57,14 @@ class SlabAggregate: :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 = {} @@ -75,7 +75,7 @@ class SlabAggregate: 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) @@ -101,15 +101,15 @@ class SlabAggregate: 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 @@ -138,16 +138,16 @@ class SlabAggregate: #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 = [] @@ -182,14 +182,14 @@ class SlabAggregate: #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] @@ -198,16 +198,16 @@ class SlabAggregate: 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'] @@ -221,15 +221,15 @@ class SlabAggregate: 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] @@ -281,9 +281,9 @@ class SlabAggregate: #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: @@ -292,14 +292,14 @@ class SlabAggregate: 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']) \ @@ -316,7 +316,7 @@ class SlabAggregate: 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)) @@ -329,7 +329,7 @@ class SlabAggregate: 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) @@ -339,7 +339,7 @@ class SlabAggregate: #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)) @@ -356,7 +356,7 @@ class SlabAggregate: #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])) @@ -384,7 +384,7 @@ class SlabAggregate: 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, \ @@ -394,6 +394,6 @@ class SlabAggregate: 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()