from lxml import etree
from StringIO import StringIO
from types import StringTypes
-from sfa.util.rspec import merge_rspecs
+from sfa.util.rspecHelper import merge_rspecs
from sfa.util.namespace import *
from sfa.util.rspec import *
from sfa.util.specdict import *
from lxml import etree
from StringIO import StringIO
-def merge_rspecs(rspecs):
- """
- Merge merge a set of RSpecs into 1 RSpec, and return the result.
- rspecs must be a valid RSpec string or list of rspec strings.
- """
- if not rspecs or not isinstance(rspecs, list):
- return rspecs
-
- rspec = None
- for tmp_rspec in rspecs:
- try:
- tree = etree.parse(StringIO(tmp_rspec))
- except etree.XMLSyntaxError:
- # consider failing silently here
- message = str(agg_rspec) + ": " + str(sys.exc_info()[1])
- raise InvalidRSpec(message)
-
- root = tree.getroot()
- if root.get("type") in ["SFA"]:
- if rspec == None:
- rspec = root
- else:
- for network in root.iterfind("./network"):
- rspec.append(deepcopy(network))
- for request in root.iterfind("./request"):
- rspec.append(deepcopy(request))
- return etree.tostring(rspec, xml_declaration=True, pretty_print=True)
-
-
class RSpec:
from StringIO import StringIO
from optparse import OptionParser
+
+def merge_rspecs(rspecs):
+ """
+ Merge merge a list of RSpecs into 1 RSpec, and return the result.
+ rspecs must be a valid RSpec string or list of RSpec strings.
+ """
+ if not rspecs or not isinstance(rspecs, list):
+ return rspecs
+
+ rspec = None
+ for tmp_rspec in rspecs:
+ try:
+ tree = etree.parse(StringIO(tmp_rspec))
+ except etree.XMLSyntaxError:
+ # consider failing silently here
+ message = str(agg_rspec) + ": " + str(sys.exc_info()[1])
+ raise InvalidRSpec(message)
+
+ root = tree.getroot()
+ if root.get("type") in ["SFA"]:
+ if rspec == None:
+ rspec = root
+ else:
+ for network in root.iterfind("./network"):
+ rspec.append(deepcopy(network))
+ for request in root.iterfind("./request"):
+ rspec.append(deepcopy(request))
+ return etree.tostring(rspec, xml_declaration=True, pretty_print=True)
+
class RSpec:
def __init__(self, xml):
parser = etree.XMLParser(remove_blank_text=True)