slivers.append(sliver)
for tag in tags:
# if tag isn't bound to a node then it applies to all slivers
+ # and belongs in the <sliver_defaults> tag
if not tag['node_id']:
- sliver['tags'].append(tag)
+ rspec.add_default_sliver_attribute(tag['tagname'], tag['value'], self.api.hrn)
else:
tag_host = self.nodes[tag['node_id']]['hostname']
if tag_host == sliver['hostname']:
node.set('sliver_id', sliver_urn)
etree.SubElement(node, 'sliver_type', name='plab-vnode')
+ def add_default_sliver_attribute(self, name, value, network=Name):
+ pass
+
def add_interfaces(self, interfaces, no_dupes=False):
pass
else:
defaults = self.xml.xpath("//sliver_defaults" % network)
if defaults is None:
- defaults = etree.Element("sliver_defaults")
- network = self.xml.xpath("//network[@name='%s']" % network)
- network.insert(0, defaults)
+ network_tag = self.xml.xpath("//network[@name='%s']" % network)
+ defaults = self.add_element('sliver_defaults', attrs={}, network_tag)
self.add_attribute(defaults, name, value)
def add_sliver_attribute(self, hostname, name, value, network=None):