summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2006-09-15 16:01:53 +0000
committerNarayan Desai <desai@mcs.anl.gov>2006-09-15 16:01:53 +0000
commitf7146b07e3dda92ef7dd80dba2f1a7252d86375f (patch)
treed26954b81b0ecad4f13f32cbcb3b9c56ea19bc7c /src
parent92b0f7aac3cda0e2f177311df3f6c9fe67bf90f0 (diff)
downloadbcfg2-f7146b07e3dda92ef7dd80dba2f1a7252d86375f.tar.gz
bcfg2-f7146b07e3dda92ef7dd80dba2f1a7252d86375f.tar.bz2
bcfg2-f7146b07e3dda92ef7dd80dba2f1a7252d86375f.zip
Move bcfg2-query into the install area
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@2266 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src')
-rwxr-xr-xsrc/sbin/bcfg2-query31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/sbin/bcfg2-query b/src/sbin/bcfg2-query
new file mode 100755
index 000000000..c250773da
--- /dev/null
+++ b/src/sbin/bcfg2-query
@@ -0,0 +1,31 @@
+#!/usr/bin/python
+
+import lxml.etree, sys, ConfigParser
+
+CP = ConfigParser.ConfigParser()
+CP.read(['/etc/bcfg2.conf'])
+try:
+ prefix = CP.get('server', 'repository')
+except:
+ prefix = "/var/lib/bcfg2"
+
+if len(sys.argv) < 2:
+ print "Usage bcfg2-query -d|u|p <profile name>"
+ print "\t -d\t\t shows the clients that are currently down"
+ print "\t -u\t\t shows the clients that are currently up"
+ print "\t -p <profile name>\t shows all the clients of that profile"
+ sys.exit(1)
+
+xml = lxml.etree.parse('%s/Metadata/clients.xml'%prefix)
+for client in xml.findall('.//Client'):
+ if '-u' in sys.argv:
+ if client.get("pingable") == "Y":
+ print client.get("name")
+ elif '-d' in sys.argv:
+ if client.get("pingable") == "N":
+ print client.get("name")
+ elif '-p' in sys.argv and sys.argv[sys.argv.index('-p') + 1] != '':
+ if client.get("profile") == sys.argv[sys.argv.index('-p') + 1]:
+ print client.get("name")
+ elif '-a' in sys.argv:
+ print client.get("name")