diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2006-06-28 19:30:46 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2006-06-28 19:30:46 +0000 |
commit | 38ec6a9db64a3bf6e0128a4c1031be4a0a733b59 (patch) | |
tree | 3980cf1d049eff354b7e632e0e5bf92333101b29 /src | |
parent | e95a43ba07ea77343d6a1440706c9bcd40391204 (diff) | |
download | bcfg2-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.py | 26 |
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] |