return (slice, slivers)
- def get_nodes_and_links(self, slice_xrn, slice=None,slivers=[], options={}, requested_slivers={}):
+ def get_nodes_and_links(self, slice_xrn, slice=None,slivers=[], options={}):
# if we are dealing with a slice that has no node just return
# and empty list
if slice_xrn:
rspec_node['component_name'] = node['hostname']
rspec_node['component_manager_id'] = Xrn(self.driver.hrn, 'authority+cm').get_urn()
rspec_node['authority_id'] = hrn_to_urn(PlXrn.site_hrn(self.driver.hrn, site['login_base']), 'authority+sa')
- if requested_slivers and node['hostname'] in requested_slivers:
- requested_sliver = requested_slivers[node['hostname']]
- if requested_sliver.get('client_id'):
- rspec_node['client_id'] = requested_sliver['client_id']
# do not include boot state (<available> element) in the manifest rspec
if not slice:
rspec_node['boot_state'] = node['boot_state']
sliver = slivers[node['node_id']]
rspec_node['sliver_id'] = sliver['sliver_id']
rspec_node['slivers'] = [sliver]
+ for tag in sliver['tags']:
+ if tag['tagname'] == 'client_id':
+ rspec_node['client_id'] = tag['value']
# slivers always provide the ssh service
login = Login({'authentication': 'ssh-keys', 'hostname': node['hostname'], 'port':'22', 'username': sliver['name']})
return rspec_leases
- def get_rspec(self, slice_xrn=None, version = None, options={}, requested_slivers={}):
+ def get_rspec(self, slice_xrn=None, version = None, options={}):
version_manager = VersionManager()
version = version_manager.get_version(version)
rspec.xml.set('expires', datetime_to_string(utcparse(slice['expires'])))
if not options.get('list_leases') or options.get('list_leases') and options['list_leases'] != 'leases':
- nodes, links = self.get_nodes_and_links(slice_xrn, slice, slivers, options,
- requested_slivers=requested_slivers)
+ nodes, links = self.get_nodes_and_links(slice_xrn, slice, slivers, options)
rspec.version.add_nodes(nodes)
rspec.version.add_links(links)
# add sliver defaults