From: Tony Mack Date: Fri, 7 Sep 2012 15:16:38 +0000 (-0400) Subject: preserve node client ids from request to manifest X-Git-Tag: sfa-2.1-14~21 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=612247960c2fd39197c7731114a9f45f386b19cf;p=sfa.git preserve node client ids from request to manifest --- diff --git a/sfa/planetlab/plaggregate.py b/sfa/planetlab/plaggregate.py index 1b2535a6..11ea26bb 100644 --- a/sfa/planetlab/plaggregate.py +++ b/sfa/planetlab/plaggregate.py @@ -283,7 +283,7 @@ class PlAggregate: return rspec_leases - def get_rspec(self, slice_xrn=None, version = None, options={}): + def get_rspec(self, slice_xrn=None, version = None, options={}, requested_slivers={}): version_manager = VersionManager() version = version_manager.get_version(version) @@ -298,16 +298,21 @@ class PlAggregate: 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) - rspec.version.add_nodes(nodes) - rspec.version.add_links(links) - # add sliver defaults - default_sliver = slivers.get(None, []) - if default_sliver: - default_sliver_attribs = default_sliver.get('tags', []) - for attrib in default_sliver_attribs: - logger.info(attrib) - rspec.version.add_default_sliver_attribute(attrib['tagname'], attrib['value']) + nodes, links = self.get_nodes_and_links(slice_xrn, slice, slivers, options) + # preserve client ids from request + if requested_slivers: + for node in nodes: + if node['component_name'] in requested_slivers: + node['client_id'] = requested_slivers[node['component_name']] + rspec.version.add_nodes(nodes) + rspec.version.add_links(links) + # add sliver defaults + default_sliver = slivers.get(None, []) + if default_sliver: + default_sliver_attribs = default_sliver.get('tags', []) + for attrib in default_sliver_attribs: + logger.info(attrib) + rspec.version.add_default_sliver_attribute(attrib['tagname'], attrib['value']) if not options.get('list_leases') or options.get('list_leases') and options['list_leases'] != 'resources': leases = self.get_leases(slice)