From: Sandrine Avakian Date: Fri, 27 Jul 2012 12:30:28 +0000 (+0200) Subject: Removed module usage sfa.planetlab.plxrn from senslab files. X-Git-Tag: sfa-2.1-24~3^2~107 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=1c5813e5c42012fc6e644f2d032d19fa91f6f3da;p=sfa.git Removed module usage sfa.planetlab.plxrn from senslab files. Created slab_xrn_to_hostname and slab_xrn_object in slabaggregate to get urn from hrn / hostnames and authorities to replace PlXrn usage. Corrected component_manager in rspec which was including senslab's sites as authorities. --- diff --git a/sfa/rspecs/elements/versions/slabv1Node.py b/sfa/rspecs/elements/versions/slabv1Node.py index d32ab1ec..e1c95362 100644 --- a/sfa/rspecs/elements/versions/slabv1Node.py +++ b/sfa/rspecs/elements/versions/slabv1Node.py @@ -1,4 +1,4 @@ -from sfa.planetlab.plxrn import xrn_to_hostname + from sfa.util.xrn import Xrn from sfa.util.xml import XpathFilter from sfa.rspecs.elements.node import Node @@ -72,7 +72,7 @@ class Slabv1Node: for attribute in node: # set component name if attribute is 'component_id': - component_name = xrn_to_hostname(node['component_id']) + component_name = node['component_name'] node_elem.set('component_name', component_name) # set hardware types, extend fields to add Senslab's architecture diff --git a/sfa/senslab/slabaggregate.py b/sfa/senslab/slabaggregate.py index 45bccd85..40df86e0 100644 --- a/sfa/senslab/slabaggregate.py +++ b/sfa/senslab/slabaggregate.py @@ -5,7 +5,6 @@ import time #from sfa.util.config import Config from sfa.util.xrn import hrn_to_urn, urn_to_hrn, urn_to_sliver_id -from sfa.planetlab.plxrn import PlXrn, hostname_to_urn from sfa.rspecs.rspec import RSpec from sfa.rspecs.elements.versions.slabv1Node import SlabPosition @@ -23,8 +22,17 @@ from sfa.rspecs.version_manager import VersionManager from sfa.rspecs.elements.versions.slabv1Node import SlabNode from sfa.util.sfalogging import logger +from sfa.util.xrn import Xrn +def slab_xrn_to_hostname(xrn): + return Xrn.unescape(Xrn(xrn=xrn, type='node').get_leaf()) +def slab_xrn_object(root_auth, hostname): + """Attributes are urn and hrn. + Get the hostname using slab_xrn_to_hostname on the urn. + + """ + return Xrn('.'.join( [root_auth, Xrn.escape(hostname)]), type='node') class SlabAggregate: @@ -165,16 +173,18 @@ class SlabAggregate: rspec_node['mobile'] = node['mobile'] rspec_node['archi'] = node['archi'] rspec_node['radio'] = node['radio'] - rspec_node['component_id'] = \ - hostname_to_urn(self.driver.root_auth, \ - node['site'], node['hostname']) + + slab_xrn = slab_xrn_object(self.driver.root_auth, node['hostname']) + rspec_node['component_id'] = slab_xrn.urn rspec_node['component_name'] = node['hostname'] rspec_node['component_manager_id'] = \ hrn_to_urn(self.driver.root_auth, 'authority+sa') - #rspec_node['component_manager_id'] = Xrn(self.driver.root_auth, 'authority+sa').get_urn() - rspec_node['authority_id'] = \ - hrn_to_urn(PlXrn.site_hrn(self.driver.root_auth, \ - node['site']), 'authority+sa') + + # Senslab's nodes are federated : there is only one authority + # for all Senslab 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'] + # do not include boot state ( element) in the manifest rspec #if not slice: @@ -201,7 +211,6 @@ class SlabAggregate: for field in position : try: position[field] = node[field] - logger.debug("SLABAGGREGATE\t get_rspecposition field %s position[field] %s "%(field, position[field])) except KeyError, error : logger.log_exc("SLABAGGREGATE\t get_rspec position %s "%(error)) @@ -236,7 +245,7 @@ class SlabAggregate: #service = Services({'login': login}) #rspec_node['services'] = [service] rspec_nodes.append(rspec_node) - #logger.debug("SLABAGGREGATE \t get_nodes rspec_nodes %s"%(rspec_nodes)) + return (rspec_nodes) def get_leases(self, slice_record = None, options = {}): @@ -258,8 +267,10 @@ class SlabAggregate: rspec_lease = Lease() rspec_lease['lease_id'] = lease['lease_id'] site = node['site_id'] - rspec_lease['component_id'] = hostname_to_urn(self.driver.hrn, \ - site, node['hostname']) + slab_xrn = slab_xrn_object(self.driver.root_auth, node['hostname']) + rspec_lease['component_id'] = slab_xrn.urn + #rspec_lease['component_id'] = hostname_to_urn(self.driver.hrn, \ + #site, node['hostname']) rspec_lease['slice_id'] = lease['slice_id'] rspec_lease['start_time'] = lease['t_from'] rspec_lease['duration'] = (lease['t_until'] - lease['t_from']) \ @@ -329,8 +340,9 @@ class SlabAggregate: tmp = ldap_username.split('.') ldap_username = tmp[1].split('_')[0] logger.debug("SlabAggregate \tget_rspec **** \ - ldap_username %s \r\n" %(ldap_username)) - rspec.version.add_connection_information(ldap_username) + ldap_username %s rspec.version %s\r\n" %(ldap_username, rspec.version)) + if version.type == "Slab": + rspec.version.add_connection_information(ldap_username) default_sliver = slivers.get(None, []) if default_sliver: diff --git a/sfa/senslab/slabdriver.py b/sfa/senslab/slabdriver.py index f88e7439..3f06ce2e 100644 --- a/sfa/senslab/slabdriver.py +++ b/sfa/senslab/slabdriver.py @@ -18,7 +18,7 @@ from sfa.rspecs.version_manager import VersionManager from sfa.rspecs.rspec import RSpec from sfa.util.xrn import hrn_to_urn, urn_to_sliver_id, get_leaf -from sfa.planetlab.plxrn import hostname_to_urn, xrn_to_hostname + ## thierry: everything that is API-related (i.e. handling incoming requests) # is taken care of @@ -29,7 +29,7 @@ from sfa.senslab.OARrestapi import OARrestapi from sfa.senslab.LDAPapi import LDAPapi from sfa.senslab.slabpostgres import SlabDB, slab_dbsession, SliceSenslab -from sfa.senslab.slabaggregate import SlabAggregate +from sfa.senslab.slabaggregate import SlabAggregate, slab_xrn_to_hostname, slab_xrn_object from sfa.senslab.slabslices import SlabSlices @@ -191,7 +191,7 @@ class SlabDriver(Driver): requested_lease = {} if not lease.get('lease_id'): requested_lease['hostname'] = \ - xrn_to_hostname(lease.get('component_id').strip()) + slab_xrn_to_hostname(lease.get('component_id').strip()) requested_lease['start_time'] = lease.get('start_time') requested_lease['duration'] = lease.get('duration') else: @@ -1146,9 +1146,10 @@ class SlabDriver(Driver): resa['component_id_list'] = [] #Transform the hostnames into urns (component ids) for node in resa['reserved_nodes']: - resa['component_id_list'].append(hostname_to_urn(self.hrn, \ - self.root_auth, node['hostname'])) - + #resa['component_id_list'].append(hostname_to_urn(self.hrn, \ + #self.root_auth, node['hostname'])) + slab_xrn = slab_xrn_object(self.root_auth, node['hostname']) + resa['component_id_list'].append(slab_xrn.urn) #Filter the reservation list if necessary #Returns all the leases associated with a given slice