summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Admin/Minestruct.py
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2007-12-29 04:57:53 +0000
committerNarayan Desai <desai@mcs.anl.gov>2007-12-29 04:57:53 +0000
commit3610288cbcbf4d1adedefa03166cd77ee15aad96 (patch)
tree1588fb78ae1c6e51e4e4ea2dab46a006a3ece0d3 /src/lib/Server/Admin/Minestruct.py
parent6bf7875bc299a1f81061782c8646c90972e06e5a (diff)
downloadbcfg2-3610288cbcbf4d1adedefa03166cd77ee15aad96.tar.gz
bcfg2-3610288cbcbf4d1adedefa03166cd77ee15aad96.tar.bz2
bcfg2-3610288cbcbf4d1adedefa03166cd77ee15aad96.zip
Refactor of bcfg2-admin (all modes moved to discrete modules in Bcfg2.Server.Admin
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@4125 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src/lib/Server/Admin/Minestruct.py')
-rw-r--r--src/lib/Server/Admin/Minestruct.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/lib/Server/Admin/Minestruct.py b/src/lib/Server/Admin/Minestruct.py
new file mode 100644
index 000000000..8f8be7e77
--- /dev/null
+++ b/src/lib/Server/Admin/Minestruct.py
@@ -0,0 +1,25 @@
+import Bcfg2.Server.Admin
+
+class Minestruct(Bcfg2.Server.Admin.Mode):
+ '''Pull extra entries out of statistics'''
+ __shorthelp__ = 'bcfg2-admin minestruct <client>'
+ __longhelp__ = __shorthelp__ + '\n\tExtract extra entry lists from statistics'
+ def __call__(self, args):
+ Bcfg2.Server.Admin.Mode.__call__(self, args)
+ if len(args) != 1:
+ self.errExit("minestruct must be called with a client name")
+ extra = self.MineStruct(args[1])
+ self.log.info("Found %d extra entries" % (len(extra)))
+ self.log.info(["%s: %s" % (entry.tag, entry.get('name')) for entry in extra])
+
+ def MineStruct(self, client):
+ '''Pull client entries into structure'''
+ stats = self.load_stats(client)
+ if len(stats.getchildren()) == 2:
+ # FIXME this is busted
+ # client is dirty
+ current = [ent for ent in stats.getchildren() if ent.get('state') == 'dirty'][0]
+ else:
+ current = stats.getchildren()[0]
+ return current.find('Extra').getchildren()
+