-#!/usr/bin/python
+#!/usr/bin/python
+from copy import deepcopy
from lxml import etree
from StringIO import StringIO
from sfa.rspecs.rspec import RSpec
location_tag = etree.SubElement(node_tag, 'location', country="us", \
longitude=str(longitude), latitude=str(latitude))
+ def merge_node(self, source_node_tag):
+ # this is untested
+ self.xml.append(deepcopy(source_node_tag))
def add_slivers(self, slivers, sliver_urn=None, no_dupes=False):
-#!/usr/bin/python
+#!/usr/bin/python
+from copy import deepcopy
from lxml import etree
from StringIO import StringIO
from sfa.rspecs.rspec import RSpec
def add_network(self, network):
network_tags = self.xml.xpath('//network[@name="%s"]' % network)
- if not network_tags:
+ if not network_tags:
network_tag = etree.SubElement(self.xml, 'network', name=network)
else:
network_tag = network_tags[0]
longitude = str(node['site']['longitude'])
latitude = str(node['site']['latitude'])
location = etree.SubElement(node_tag, 'location', country='unknown', \
- longitude=longitude, latitude=latitude)
+ longitude=longitude, latitude=latitude)
+
+ def merge_node(self, source_node_tag, network, no_dupes=False):
+ if no_dupes and self.get_node_element(node['hostname']):
+ # node already exists
+ return
+
+ network_tag = self.add_network(network)
+ network_tag.append(deepcopy(source_node_tag))
def add_interfaces(self, interfaces):
- pass
+ pass
def add_links(self, links):
pass
-
+
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')