9 from cgi import parse_qs
12 import parser as parsermodule
14 from automate import *
16 parser = parsermodule.getParser()
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 = parsermodule.parse_args(parser)
35 if config.outdir == None:
41 if config.nodelist is not None:
42 nodelist = config.getListFromFile(config.nodelist)
44 if config.querystr == None:
45 queries = parse_qs("IP_SUBNET=127.0.0.1")
47 queries = parse_qs(config.querystr)
48 #(key,query) = config.querystr.split("=")
50 # Create a file list based on the provide nodelist or a simple pattern for all
51 # files in the given 'outdir' directory
53 if nodelist is not None:
56 filelist.append("%s/%s.out" % (outdir,node))
58 filelist = glob("%s/*.out" % outdir)
61 vals = csv_to_hash(csv.reader(open(file,'r')))
62 hostname = file[len(outdir):-4]
64 for key in queries.keys():
65 q = re.compile(queries[key][0])
66 if key in vals and q.match(vals[key]):
73 print hostname, vals[key]