from sfa.planetlab.plxrn import PlXrn, hostname_to_urn, slicename_to_hrn
from sfa.rspecs.rspec import RSpec
-from sfa.rspecs.elements.location import Location
+from sfa.rspecs.elements.versions.slabv1Node import SlabLocation
+from sfa.storage.alchemy import dbsession
+from sfa.storage.model import RegRecord
+#from sfa.rspecs.elements.location import Location
from sfa.rspecs.elements.hardware_type import HardwareType
from sfa.rspecs.elements.node import Node
#from sfa.rspecs.elements.login import Login
#from sfa.util.sfatime import datetime_to_epoch
-
+from sfa.rspecs.elements.versions.slabv1Node import SlabNode
from sfa.util.sfalogging import logger
#if node['slice_ids_whitelist']:
#if not slice or slice['slice_id'] not in node['slice_ids_whitelist']:
#continue
- rspec_node = Node()
+ #rspec_node = Node()
+ rspec_node = SlabNode()
# xxx how to retrieve site['login_base']
#site_id=node['site_id']
#site=sites_dict[site_id]
+ 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'])
#site = sites_dict[node['site_id']]
try:
- if node['posx'] and node['posy']:
- location = Location({'longitude':node['posx'], \
- 'latitude': node['posy']})
+ if node['posx'] and node['posy'] and node['posz']:
+ location = SlabLocation()
+ location['longitude'] = node['posx']
+ location['latitude'] = node['posy']
+ location['hauteur'] = node['posz']
+
rspec_node['location'] = location
except KeyError:
pass
#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 = {}):
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']) / grain
+ rspec_lease['duration'] = (lease['t_until'] - lease['t_from']) \
+ / grain
rspec_leases.append(rspec_lease)
return rspec_leases
version.version, 'manifest')
slices, slivers = self.get_slice_and_slivers(slice_xrn)
- #at this point sliver may be empty if no senslab job is running for this user/slice.
+ #at this point sliver may be empty if no senslab job
+ #is running for this user/slice.
rspec = RSpec(version=rspec_version, user_options=options)
#rspec.xml.set('expires', datetime_to_epoch(slice['expires']))
# add sliver defaults
#nodes, links = self.get_nodes(slice, slivers)
+ logger.debug("\r\n \r\n SlabAggregate \tget_rspec ******* slice_xrn %s \r\n \r\n"\
+ %(slice_xrn))
if not options.get('list_leases') or options.get('list_leases') and options['list_leases'] != 'leases':
nodes = self.get_nodes(slices, slivers)
+ #In case creating a job slice _xrn is not set to None
rspec.version.add_nodes(nodes)
+ if slice_xrn :
+ #Get user associated with this slice
+ #user = dbsession.query(RegRecord).filter_by(record_id = \
+ #slices['record_id_user']).first()
+
+ #ldap_username = (user.hrn).split('.')[1]
+ ldap_username = slices['slice_hrn']
+ 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)
default_sliver = slivers.get(None, [])
if default_sliver:
default_sliver_attribs = default_sliver.get('tags', [])
logger.debug("SlabAggregate \tget_rspec **** \
default_sliver_attribs %s \r\n" %(default_sliver_attribs))
- for attrib in default_sliver_attribs:
- logger.debug("SlabAggregate \tget_rspec ******* attrib %s \r\n"\
- %(attrib))
+ for attrib in default_dbsessionsliver_attribs:
+
rspec.version.add_default_sliver_attribute(attrib['tagname'], \
attrib['value'])
if options.get('list_leases') or options.get('list_leases') and options['list_leases'] != 'resources':
leases = self.get_leases(slices)
rspec.version.add_leases(leases)
+
+ logger.debug("SlabAggregate \tget_rspec ******* rspec_toxml %s \r\n"\
+ %(rspec.toxml()))
return rspec.toxml()