summaryrefslogtreecommitdiffstats
path: root/func/overlord/cmd_modules
diff options
context:
space:
mode:
authorAdrian Likins <alikins@grimlock.devel.redhat.com>2007-10-09 17:35:47 -0400
committerAdrian Likins <alikins@grimlock.devel.redhat.com>2007-10-09 17:35:47 -0400
commitb2677b2cf5d14535bab45d32c60b9ddf2d682d91 (patch)
tree96616a2361a0cc4f0b5b96a6469b78ff117316d9 /func/overlord/cmd_modules
parent9763fdb11c8abbcb80ac8ff3ef3f4ff9d6148ff7 (diff)
downloadthird_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.py65
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.