summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2006-06-28 19:30:46 +0000
committerNarayan Desai <desai@mcs.anl.gov>2006-06-28 19:30:46 +0000
commit38ec6a9db64a3bf6e0128a4c1031be4a0a733b59 (patch)
tree3980cf1d049eff354b7e632e0e5bf92333101b29 /src
parente95a43ba07ea77343d6a1440706c9bcd40391204 (diff)
downloadbcfg2-38ec6a9db64a3bf6e0128a4c1031be4a0a733b59.tar.gz
bcfg2-38ec6a9db64a3bf6e0128a4c1031be4a0a733b59.tar.bz2
bcfg2-38ec6a9db64a3bf6e0128a4c1031be4a0a733b59.zip
Pass current failure information to server in statistics
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@1900 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src')
-rw-r--r--src/lib/Client/Toolset.py26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/lib/Client/Toolset.py b/src/lib/Client/Toolset.py
index 2e5d12ed9..52e7c451a 100644
--- a/src/lib/Client/Toolset.py
+++ b/src/lib/Client/Toolset.py
@@ -183,15 +183,27 @@ class Toolset(object):
# List bad elements of the configuration
if dirty:
bad_elms = lxml.etree.SubElement(stats, "Bad")
- for elm in [key for key, val in self.states.iteritems() if not val]:
- if elm.get('name') == None:
- lxml.etree.SubElement(bad_elms, elm.tag)
- else:
- lxml.etree.SubElement(bad_elms, elm.tag, name=elm.get('name'))
+ for ent in [key for key, val in self.states.iteritems() if not val]:
+ newent = lxml.etree.SubElement(bad_elms, ent.tag, name=ent.get('name', 'None'))
+ for field in [item for item in 'current_exists', 'current_diff' if item in ent.attrib]:
+ newent.set(field, ent.get(field))
+ del ent.attrib[field]
+ failures = [key for key in ent.attrib if key[:8] == 'current_']
+ for fail in failures:
+ for field in [fail, fail[8:]]:
+ print ent.get('name'), field
+ newent.set(field, ent.get(field))
if self.modified:
mod = lxml.etree.SubElement(stats, "Modified")
- for elm in self.modified:
- lxml.etree.SubElement(mod, elm.tag, name=elm.get('name'))
+ for ent in self.modified:
+ newent = lxml.etree.SubElement(mod, ent.tag, name=ent.get('name'))
+ for field in [item for item in 'current_exists', 'current_diff' if item in ent.attrib]:
+ newent.set(field, ent.get(field))
+ del ent.attrib[field]
+ failures = [key for key in ent.attrib if key[:8] == 'current_']
+ for fail in failures:
+ for field in [fail, fail[8:]]:
+ newent.set(field, ent.get(field))
if self.extra_services + self.pkgwork['remove']:
extra = lxml.etree.SubElement(stats, "Extra")
[lxml.etree.SubElement(extra, "Service", name=svc) for svc in self.extra_services]