summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2006-08-14 15:20:23 +0000
committerNarayan Desai <desai@mcs.anl.gov>2006-08-14 15:20:23 +0000
commit6f83d1d62ce9a8fa56db8f7966eae216d538adf4 (patch)
treea4df4ea458bc3b40021dc9812a3d24ce420c8b21
parentaed32c5e04799925c309a802f8c802e238ccdb4d (diff)
downloadbcfg2-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.py6
-rwxr-xr-xsrc/sbin/bcfg222
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