9 from cgi import parse_qs
12 from config import config
13 from optparse import OptionParser
14 from automate import *
16 parser = OptionParser()
17 parser.set_defaults(nodelist=None,
24 parser.add_option("", "--nodelist", dest="nodelist", metavar="filename",
25 help="Read list of nodes from specified file")
26 parser.add_option("", "--outdir", dest="outdir", metavar="dirname",
27 help="Name of directory to place output")
28 parser.add_option("", "--query", dest="querystr", metavar="QUERY",
29 help="a simple query string: key=value")
30 parser.add_option("", "--simple", dest="simple", action="store_true",
31 help="display simple output")
33 config = config(parser)
37 if config.outdir == None:
43 if config.nodelist is not None:
44 nodelist = config.getListFromFile(config.nodelist)
46 if config.querystr == None:
47 queries = parse_qs("IP_SUBNET=127.0.0.1")
49 queries = parse_qs(config.querystr)
50 #(key,query) = config.querystr.split("=")
52 # Create a file list based on the provide nodelist or a simple pattern for all
53 # files in the given 'outdir' directory
55 if nodelist is not None:
58 filelist.append("%s/%s.out" % (outdir,node))
60 filelist = glob("%s/*.out" % outdir)
63 vals = csv_to_hash(csv.reader(open(file,'r')))
64 hostname = file[len(outdir):-4]
66 for key in queries.keys():
67 q = re.compile(queries[key][0])
68 if key in vals and q.match(vals[key]):
75 print hostname, vals[key]