From 153339b99ed114309211f518ea954dcf6b7ab06f Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Thu, 30 Jun 2011 00:55:05 -0400 Subject: [PATCH] added hostname agrument to get_node_elements() --- sfa/rspecs/elements/SFAv1Node.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/sfa/rspecs/elements/SFAv1Node.py b/sfa/rspecs/elements/SFAv1Node.py index 06dcfa7f..27cb0126 100755 --- a/sfa/rspecs/elements/SFAv1Node.py +++ b/sfa/rspecs/elements/SFAv1Node.py @@ -4,15 +4,22 @@ from sfa.rspecs.elements.node import Node class SFAv1Node(Node): - def get_node_elements(self, network=None): + def get_node_elements(self, network=None, hostnames=None): if network: - nodes = self.root_node.xpath('//network[@name="%s"]//node' % network) + query = '//network[@name="%s"]//node' % network else: - nodes = self.root_node.xpath('//node') - return nodes + query = '//node' + + if isinstance(hostnames, str): + query = query + '/hostname[text() = "%s"]' % hostnames + elif isinstance(hostnames, list): + query = query + '/hostname[contains( "%s" , text())]' \ + %(" ".join(hostnames)) + + return self.xpath(query) - def get_nodes(self, network=None): - node_elems = self.get_node_elements(network) + def get_nodes(self, network=None, hostnames): + node_elems = self.get_node_elements(network, hostnames) nodes = [self.get_attributes(node_elem, recursive=True) \ for node_elem in node_elems] return nodes -- 2.47.0