diff options
author | Adrian Likins <alikins@grimlock.devel.redhat.com> | 2007-10-09 17:35:47 -0400 |
---|---|---|
committer | Adrian Likins <alikins@grimlock.devel.redhat.com> | 2007-10-09 17:35:47 -0400 |
commit | b2677b2cf5d14535bab45d32c60b9ddf2d682d91 (patch) | |
tree | 96616a2361a0cc4f0b5b96a6469b78ff117316d9 /func/overlord/cmd_modules | |
parent | 9763fdb11c8abbcb80ac8ff3ef3f4ff9d6148ff7 (diff) | |
download | third_party-func-b2677b2cf5d14535bab45d32c60b9ddf2d682d91.tar.gz third_party-func-b2677b2cf5d14535bab45d32c60b9ddf2d682d91.tar.xz third_party-func-b2677b2cf5d14535bab45d32c60b9ddf2d682d91.zip |
add support to func cli for:
func show hardware
(big dump of hardware info)
func show hardware --platform
func show hardware --memory
Diffstat (limited to 'func/overlord/cmd_modules')
-rw-r--r-- | func/overlord/cmd_modules/show.py | 65 |
1 files changed, 55 insertions, 10 deletions
diff --git a/func/overlord/cmd_modules/show.py b/func/overlord/cmd_modules/show.py index 10f44b3..cfe2aa8 100644 --- a/func/overlord/cmd_modules/show.py +++ b/func/overlord/cmd_modules/show.py @@ -19,24 +19,68 @@ class ShowHardware(client.command.Command): def addOptions(self): self.parser.add_option("-v", "--verbose", dest="verbose", action="store_true") - self.parser.add_option("-p", "--port", dest="port", - default=DEFAULT_PORT) + self.parser.add_option("-p", "--port", dest="port") + self.parser.add_option("", "--platform", dest="platform", + action="store_true") + self.parser.add_option("", "--memory", dest="memory", + action="store_true") + def handleOptions(self, options): + self.port = DEFAULT_PORT + if self.options.port: + self.port = self.options.port + def parse(self, argv): - self.argc = argv - return command.Command.parse(self.argv) + self.argv = argv + return command.Command.parse(self,argv) def do(self,args): - client_obj = client.Client(self.server_spec,port=self.port,interactive=True, - verbose=self.verbose, config=self.config) + + self.server_spec = self.parentCommand.parentCommand.server_spec + + client_obj = client.Client(self.server_spec, + port=self.port, + interactive=False, + verbose=self.options.verbose, + config=self.config) + + results = client_obj.run("hardware", "info", []) + + # if the user + top_options = ["port","verbose"] + + # figure out of the user set any options we care about + options_set = False + + #ugh, cant find a better way to do this. Look for args + # that specify a "mode", if we set them, then don't + # do the big dump + + # also, optparse is annoying -akl + opt_list = ["--platform", "--memory"] + for opt in opt_list: + if self.parser.has_option(opt): + options_set = True + for minion in results: + print "%s:" % minion + minion_data = results[minion] + if not options_set: + pprint.pprint(minion_data) + continue + + if self.options.platform: + print minion_data['platform'] + + if self.options.memory: + print minion_data["systemMemory"] class Show(client.command.Command): name = "show" useage = "various simple report stuff" - subCommands = [ShowHardware] + subCommandClasses = [ShowHardware] def addOptions(self): self.parser.add_option("-v", "--verbose", dest="verbose", action="store_true") @@ -57,11 +101,12 @@ class Show(client.command.Command): def do(self, args): - print "do args", args - return "bar" + pass + +# self.server_spec = self.parentCommand.server_spec # client_obj = client.Client(self.server_spec,port=self.port,interactive=True, # verbose=self.verbose, config=self.config) -# results = client_obj.run(self.module, self.method, self.method_args) +# results = client_obj.run("hardware", "info", []) # TO DO: add multiplexer support # probably as a higher level module. |