- if isinstance(in_rspec, RSpec):
- in_rspec = in_rspec.toxml()
+ if isinstance(in_rspec, basestring):
+ in_rspec = RSpec(in_rspec)
+
+ nodes = in_rspec.version.get_nodes()
+ # protogeni rspecs need to advertise the availabel sliver types
+ main_nodes = []
+ for node in nodes:
+ if not node['component_name']:
+ # this node element is part of a lease
+ continue
+ if 'sliver' not in node or not node['sliver']:
+ node['sliver'] = {'name': 'plab-vserver'}
+ main_nodes.append(node)
+ self.add_nodes(main_nodes)
+ self.add_links(in_rspec.version.get_links())
+
+ # Leases
+ leases = in_rspec.version.get_leases()
+ self.add_leases(leases)
+ #
+ #rspec = RSpec(in_rspec)
+ #for child in rspec.xml.iterchildren():
+ # self.xml.root.append(child)
+