diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2006-08-14 15:20:23 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2006-08-14 15:20:23 +0000 |
commit | 6f83d1d62ce9a8fa56db8f7966eae216d538adf4 (patch) | |
tree | a4df4ea458bc3b40021dc9812a3d24ce420c8b21 | |
parent | aed32c5e04799925c309a802f8c802e238ccdb4d (diff) | |
download | bcfg2-6f83d1d62ce9a8fa56db8f7966eae216d538adf4.tar.gz bcfg2-6f83d1d62ce9a8fa56db8f7966eae216d538adf4.tar.bz2 bcfg2-6f83d1d62ce9a8fa56db8f7966eae216d538adf4.zip |
* Make all XML methods uniform across drivers
* Switch bcfg2 to using the XML abstraction layer
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@2064 ce84e21b-d406-0410-9b95-82705330c041
-rw-r--r-- | src/lib/Client/XML.py | 6 | ||||
-rwxr-xr-x | src/sbin/bcfg2 | 22 |
2 files changed, 13 insertions, 15 deletions
diff --git a/src/lib/Client/XML.py b/src/lib/Client/XML.py index b0ae0f771..ec668711a 100644 --- a/src/lib/Client/XML.py +++ b/src/lib/Client/XML.py @@ -4,18 +4,18 @@ __revision__ = '$Revision$' # library will use lxml, then builtin xml.etree, then ElementTree try: - from lxml.etree import Element, SubElement, tostring + from lxml.etree import Element, SubElement, XML, tostring from lxml.etree import XMLSyntaxError as ParseError driver = 'lxml' except ImportError: # lxml not available try: - from xml.etree.ElementTree import Element, XML, tostring + from xml.etree.ElementTree import Element, SubElement, XML, tostring from xml.parsers.expat import ExpatError as ParseError driver = 'etree-py' except ImportError: try: - from elementtree.ElementTree import Element, XML, tostring + from elementtree.ElementTree import Element, SubElement, XML, tostring from xml.parsers.expat import ExpatError as ParseError driver = 'etree' except ImportError: diff --git a/src/sbin/bcfg2 b/src/sbin/bcfg2 index aff754296..247f5102b 100755 --- a/src/sbin/bcfg2 +++ b/src/sbin/bcfg2 @@ -3,10 +3,8 @@ '''Bcfg2 Client''' __revision__ = '$Revision$' -from lxml.etree import Element, XML, tostring, XMLSyntaxError - import logging, os, signal, tempfile, time, xmlrpclib -import Bcfg2.Options +import Bcfg2.Options, Bcfg2.Client.XML try: import Bcfg2.Client.Proxy, Bcfg2.Logging @@ -114,7 +112,7 @@ class Client: def run_probe(self, probe): '''Execute probe''' probe_name = probe.attrib['name'] - ret = Element("probe-data", probe_name, source=probe.attrib['source']) + ret = Bcfg2.Client.XML.Element("probe-data", probe_name, source=probe.attrib['source']) try: script = open(tempfile.mktemp(), 'w+') try: @@ -173,8 +171,8 @@ class Client: times['probe_download'] = time.time() try: - probes = XML(probe_data) - except XMLSyntaxError, syntax_error: + probes = Bcfg2.Client.XML.XML(probe_data) + except Bcfg2.Client.XML.ParseError, syntax_error: self.fatal_error( "server returned invalid probe requests: %s" % (syntax_error)) @@ -210,8 +208,8 @@ class Client: times['caching'] = time.time() try: - self.config = XML(rawconfig) - except XMLSyntaxError, syntax_error: + self.config = Bcfg2.Client.XML.XML(rawconfig) + except Bcfg2.Client.XML.ParseError, syntax_error: self.fatal_error("the configuration could not be parsed: %s" % (syntax_error)) @@ -227,7 +225,7 @@ class Client: self.fatal_error("server did not specify a toolset") if self.setup['bundle']: - replacement_xml = Element("Configuration", version='2.0') + replacement_xml = Bcfg2.Client.XML.Element("Configuration", version='2.0') for child in self.config.getchildren(): if ((child.tag == 'Bundle') and (child.attrib['name'] == self.setup['bundle'])): @@ -257,8 +255,8 @@ class Client: if not self.setup['file'] and not self.setup['bundle']: # upload statistics - feedback = Element("upload-statistics") - timeinfo = Element("OpStamps") + feedback = Bcfg2.Client.XML.Element("upload-statistics") + timeinfo = Bcfg2.Client.XML.Element("OpStamps") for (event, timestamp) in times.iteritems(): timeinfo.set(event, str(timestamp)) stats = self.toolset.GenerateStats(__revision__) @@ -266,7 +264,7 @@ class Client: feedback.append(stats) try: - proxy.RecvStats(tostring(feedback)) + proxy.RecvStats(Bcfg2.Client.XML.tostring(feedback)) except xmlrpclib.Fault: self.logger.error("Failed to upload configuration statistics") raise SystemExit, 2 |