diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/sbin/bcfg2-query | 31 |
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") |