4 from monitor.wrapper import plc
7 from monitor import config
9 def parse_fields(fields):
19 def parse_filter(filter):
25 raise Exception("filter format should be name=value")
29 def print_fields(obj, fields):
37 from monitor import parser as parsermodule
38 parser = parsermodule.getParser()
40 parser.set_defaults(get=True,
43 fields='node_id,hostname,last_contact'
46 parser.add_option("", "--get", dest="get", action="store_true",
47 help="just get values for object")
49 parser.add_option("", "--type", dest="type", metavar="[node|person|site]",
50 help="object type to query")
52 parser.add_option("", "--fields", dest="fields", metavar="key,list,...",
53 help="a list of keys to display for each object.")
55 parser.add_option("", "--filter", dest="filter", metavar="name=value",
56 help="Filter passed to Get* calls")
58 parser.add_option("", "--nodelist", dest="nodelist", metavar="nodelist.txt",
59 help="A list of nodes to bring out of debug mode.")
60 parser.add_option("", "--listkeys", dest="listkeys", action="store_true",
61 help="A list of nodes to bring out of debug mode.")
63 #parser = parsermodule.getParser(['defaults'], parser)
64 config = parsermodule.parse_args(parser)
67 nodelist = utilfile.getListFromFile(config.nodelist)
70 f = parse_filter(config.filter)
71 fields = parse_fields(config.fields)
73 if config.type == 'node':
74 n = api.GetNodes(f, fields)
76 print_fields(i, fields)
78 if __name__ == "__main__":