nodes = self.xml.xpath('//node/hostname/text()')
else:
nodes = self.xml.xpath('//network[@name="%s"]//node/hostname/text()' % network)
+
+ nodes = [node.strip() for node in nodes]
return nodes
def get_nodes_with_slivers(self, network = None):
if network:
- return self.xml.xpath('//network[@name="%s"]//node[sliver]/hostname/text()' % network)
+ nodes = self.xml.xpath('//network[@name="%s"]//node[sliver]/hostname/text()' % network)
else:
- return self.xml.xpath('//node[sliver]/hostname/text()')
+ nodes = self.xml.xpath('//node[sliver]/hostname/text()')
+ nodes = [node.strip() for node in nodes]
+ return nodes
def get_nodes_without_slivers(self, network=None):
xpath_nodes_without_slivers = '//node[not(sliver)]/hostname/text()'
xpath_nodes_without_slivers_in_network = '//network[@name="%s"]//node[not(sliver)]/hostname/text()'
sliver = node.find("sliver")
return self.attributes_list(sliver)
+ def get_slice_attributes(self, network=None):
+ # TODO: FINISH
+ return []
+
def get_site_nodes(self, siteid, network=None):
if network:
nodes = self.xml.xpath('//network[@name="%s"]/site[@id="%s"]/node/hostname/text()' % \
etree.SubElement(sliver_elem, tag['tagname'], value=tag['value'])
def remove_slivers(self, slivers, network=None, no_dupes=False):
- if not isinstance(slivers, list):
- slivers = [slivers]
+ slivers = self._process_slivers(slivers)
for sliver in slivers:
node_elem = self.get_node_element(sliver['hostname'], network)
- sliver_elem = node.find('sliver')
+ sliver_elem = node_elem.find('sliver')
if sliver_elem != None:
- node_elem.remove(sliver)
+ node_elem.remove(sliver_elem)
def add_default_sliver_attribute(self, name, value, network=None):
if network:
defaults = self.xml.xpath("//network[@name='%s']/sliver_defaults" % network)
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)
+ if not defaults :
+ network_tag = self.xml.xpath("//network[@name='%s']" % network)
+ if isinstance(network_tag, list):
+ network_tag = network_tag[0]
+ defaults = self.add_element('sliver_defaults', attrs={}, parent=network_tag)
+ elif isinstance(defaults, list):
+ defaults = defaults[0]
self.add_attribute(defaults, name, value)
def add_sliver_attribute(self, hostname, name, value, network=None):