From ed21507f990ecf9c49887283fb44e9c92a8624f9 Mon Sep 17 00:00:00 2001 From: Mohamed Larabi Date: Wed, 2 Oct 2013 12:18:56 +0200 Subject: [PATCH] rspec.version.add_nodes take an extra arg to handle Request RSpec Conflicts: sfa/rspecs/elements/versions/iotlabv1Node.py --- sfa/rspecs/elements/versions/iotlabv1Node.py | 21 +++++++++++++++++++- sfa/rspecs/elements/versions/nitosv1Node.py | 4 ++++ sfa/rspecs/elements/versions/pgv2Node.py | 6 +++++- sfa/rspecs/elements/versions/sfav1Node.py | 6 +++++- sfa/rspecs/versions/iotlabv1.py | 4 ++-- sfa/rspecs/versions/nitosv1.py | 4 ++-- sfa/rspecs/versions/pgv2.py | 4 ++-- sfa/rspecs/versions/sfav1.py | 4 ++-- 8 files changed, 42 insertions(+), 11 deletions(-) diff --git a/sfa/rspecs/elements/versions/iotlabv1Node.py b/sfa/rspecs/elements/versions/iotlabv1Node.py index 4abfdf29..df3dc6cc 100644 --- a/sfa/rspecs/elements/versions/iotlabv1Node.py +++ b/sfa/rspecs/elements/versions/iotlabv1Node.py @@ -54,7 +54,21 @@ class Iotlabv1Node: @staticmethod - def add_nodes(xml, nodes): + def add_nodes(xml, nodes, rspec_content_type=None): + """Adds the nodes to the xml. + + Adds the nodes as well as dedicated iotlab fields to the node xml + element. + + :param xml: the xml being constructed. + :type xml: xml + :param nodes: list of node dict + :type nodes: list + :returns: a list of node elements. + :rtype: list + + """ +>>>>>>> f7d277c... rspec.version.add_nodes take an extra arg to handle Request RSpec #Add network item in the xml network_elems = xml.xpath('//network') if len(network_elems) > 0: @@ -134,6 +148,11 @@ class Iotlabv1Node: #'value': initscript['name']}) Iotlabv1Sliver.add_slivers(node_elem, slivers) + + # add sliver tag in Request Rspec + if rspec_content_type == "request": + node_elem.add_instance('sliver', '', []) + return node_elems diff --git a/sfa/rspecs/elements/versions/nitosv1Node.py b/sfa/rspecs/elements/versions/nitosv1Node.py index 90150777..743d562b 100644 --- a/sfa/rspecs/elements/versions/nitosv1Node.py +++ b/sfa/rspecs/elements/versions/nitosv1Node.py @@ -102,6 +102,10 @@ class NITOSv1Node: tag_elem = node_elem.add_element(tag['tagname']) tag_elem.set_text(tag['value']) NITOSv1Sliver.add_slivers(node_elem, node.get('slivers', [])) + + # add sliver tag in Request Rspec + if rspec_content_type == "request": + node_elem.add_instance('sliver', '', []) @staticmethod def add_slivers(xml, slivers): diff --git a/sfa/rspecs/elements/versions/pgv2Node.py b/sfa/rspecs/elements/versions/pgv2Node.py index ee69f037..0a694ad1 100644 --- a/sfa/rspecs/elements/versions/pgv2Node.py +++ b/sfa/rspecs/elements/versions/pgv2Node.py @@ -19,7 +19,7 @@ from sfa.rspecs.elements.attribute import Attribute class PGv2Node: @staticmethod - def add_nodes(xml, nodes): + def add_nodes(xml, nodes, rspec_content_type=None): node_elems = [] for node in nodes: node_fields = ['component_manager_id', 'component_id', 'client_id', 'sliver_id', 'exclusive'] @@ -70,6 +70,10 @@ class PGv2Node: tag['name'] = tag.pop('tagname') node_elem.add_instance('{%s}attribute' % xml.namespaces['planetlab'], tag, ['name', 'value']) + # add sliver tag in Request Rspec + if rspec_content_type == "request": + node_elem.add_instance('sliver', '', []) + return node_elems diff --git a/sfa/rspecs/elements/versions/sfav1Node.py b/sfa/rspecs/elements/versions/sfav1Node.py index c5db7848..51076985 100644 --- a/sfa/rspecs/elements/versions/sfav1Node.py +++ b/sfa/rspecs/elements/versions/sfav1Node.py @@ -19,7 +19,7 @@ from sfa.rspecs.elements.versions.pgv2Services import PGv2Services class SFAv1Node: @staticmethod - def add_nodes(xml, nodes): + def add_nodes(xml, nodes, rspec_content_type=None): network_elems = xml.xpath('//network') if len(network_elems) > 0: network_elem = network_elems[0] @@ -93,6 +93,10 @@ class SFAv1Node: tag_elem.set_text(tag['value']) SFAv1Sliver.add_slivers(node_elem, node.get('slivers', [])) + # add sliver tag in Request Rspec + if rspec_content_type == "request": + node_elem.add_instance('sliver', '', []) + @staticmethod def add_slivers(xml, slivers): component_ids = [] diff --git a/sfa/rspecs/versions/iotlabv1.py b/sfa/rspecs/versions/iotlabv1.py index cee1f901..561b61c5 100644 --- a/sfa/rspecs/versions/iotlabv1.py +++ b/sfa/rspecs/versions/iotlabv1.py @@ -64,8 +64,8 @@ class Iotlabv1(RSpecVersion): def add_connection_information(self, ldap_username, sites_set): return Iotlabv1Node.add_connection_information(self.xml,ldap_username, sites_set) - def add_nodes(self, nodes, check_for_dupes=False): - return Iotlabv1Node.add_nodes(self.xml,nodes ) + def add_nodes(self, nodes, check_for_dupes=False, rspec_content_type=None): + return Iotlabv1Node.add_nodes(self.xml,nodes, rspec_content_type) def merge_node(self, source_node_tag, network, no_dupes = False): logger.debug("SLABV1 merge_node") diff --git a/sfa/rspecs/versions/nitosv1.py b/sfa/rspecs/versions/nitosv1.py index 29d095ae..72133ac1 100644 --- a/sfa/rspecs/versions/nitosv1.py +++ b/sfa/rspecs/versions/nitosv1.py @@ -47,8 +47,8 @@ class NITOSv1(RSpecVersion): def get_nodes_with_slivers(self): return NITOSv1Node.get_nodes_with_slivers(self.xml) - def add_nodes(self, nodes, network = None, no_dupes=False): - NITOSv1Node.add_nodes(self.xml, nodes) + def add_nodes(self, nodes, network = None, no_dupes=False, rspec_content_type=None): + NITOSv1Node.add_nodes(self.xml, nodes, rspec_content_type) def merge_node(self, source_node_tag, network, no_dupes=False): if no_dupes and self.get_node_element(node['hostname']): diff --git a/sfa/rspecs/versions/pgv2.py b/sfa/rspecs/versions/pgv2.py index fbd8a394..cfe1eaee 100644 --- a/sfa/rspecs/versions/pgv2.py +++ b/sfa/rspecs/versions/pgv2.py @@ -45,8 +45,8 @@ class PGv2(RSpecVersion): def get_nodes_with_slivers(self): return PGv2Node.get_nodes_with_slivers(self.xml) - def add_nodes(self, nodes, check_for_dupes=False): - return PGv2Node.add_nodes(self.xml, nodes) + def add_nodes(self, nodes, check_for_dupes=False, rspec_content_type=None): + return PGv2Node.add_nodes(self.xml, nodes, rspec_content_type) def merge_node(self, source_node_tag): # this is untested diff --git a/sfa/rspecs/versions/sfav1.py b/sfa/rspecs/versions/sfav1.py index bdfeb47d..fa5f9d4b 100644 --- a/sfa/rspecs/versions/sfav1.py +++ b/sfa/rspecs/versions/sfav1.py @@ -46,8 +46,8 @@ class SFAv1(RSpecVersion): def get_nodes_with_slivers(self): return SFAv1Node.get_nodes_with_slivers(self.xml) - def add_nodes(self, nodes, network = None, no_dupes=False): - SFAv1Node.add_nodes(self.xml, nodes) + def add_nodes(self, nodes, network = None, no_dupes=False, rspec_content_type=None): + SFAv1Node.add_nodes(self.xml, nodes, rspec_content_type) def merge_node(self, source_node_tag, network, no_dupes=False): if no_dupes and self.get_node_element(node['hostname']): -- 2.43.0