#!/usr/local/bin/python2.3
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)
if '-p' in sys.argv:
profile = sys.argv[sys.argv.index('-p') + 1]
clients = xml.xpath(".//Client[@profile='%s']" % (profile))
elif '-d' in sys.argv:
clients = xml.xpath(".//Client[@pingable='N']")
elif '-u' in sys.argv:
clients = xml.xpath(".//Client[@pingable='Y']")
elif '-a' in sys.argv:
clients = xml.xpath(".//Client")
for client in clients:
print client.get('name')
syntax highlighted by Code2HTML, v. 0.9.1