+# SfaceRSpec
+# temporary, until these references are tracked down and replaced with
+# rspec.version
+
+class SfaceRSpec(RSpec):
+ def __init__(self, rspec="", version=None, user_options={}):
+ RSpec.__init__(self, rspec, version, user_options)
+
+ def get_networks(self):
+ return self.version.get_networks()
+
+ def get_nodes(self, network):
+ return self.version.get_nodes(network)
+
+ def get_nodes_with_slivers(self, network):
+ return self.version.get_nodes_with_slivers(network)
+
+ def get_node_element(self, node, network=None):
+ return self.version.get_node_element(node, network)
+
+ def get_default_sliver_attributes(self, network):
+ return self.version.get_default_sliver_attributes(network)
+
+ def get_sliver_attributes(self, node, network):
+ return self.version.get_sliver_attributes(node, network)
+
+ def remove_slivers(self, slivers, network=None, no_dupes=False):
+ return self.version.remove_slivers(slivers, network, no_dupes)
+
+ def add_default_sliver_attribute(self, name, value, network=None):
+ self.version.add_default_sliver_attribute(name, value, network)
+
+ def add_sliver_attribute(self, hostname, name, value, network=None):
+ self.version.add_sliver_attribute(hostname, name, value, network)
+
+ def remove_default_sliver_attribute(self, name, value, network=None):
+ self.version.remove_default_sliver_attribute(name, value, network)
+
+ def remove_sliver_attribute(self, hostname, name, value, network=None):
+ self.version.remove_sliver_attribute(hostname, name, value, network)
+
+ #def add_slivers(self, slivers, network=None, sliver_urn=None, no_dupes=False):
+ # return self.version.add_slivers(slivers, network, sliver_urn, no_dupes)
+
+ def merge_node(self, source_node_tag, network, no_dupes=False):
+ return self.version.merge_node(source_node_tag, network, no_dupes)
+
+ # sfav1.add_slivers isn't working for us...
+ def add_slivers(self, slivers, network=None, sliver_urn=None, no_dupes=False):
+ # add slice name to network tag
+ network_tags = self.xml.xpath('//network')
+ if network_tags:
+ network_tag = network_tags[0]
+ network_tag.set('slice', urn_to_hrn(sliver_urn)[0])
+
+ # add slivers
+ for sliver in slivers:
+ node_elem = self.get_node_element(sliver['hostname'], network)
+ if not node_elem: continue
+ sliver_elem = etree.SubElement(node_elem, 'sliver')
+ if 'tags' in sliver:
+ for tag in sliver['tags']:
+ etree.SubElement(sliver_elem, tag['tagname']).text = value=tag['value']
+