diff options
Diffstat (limited to 'func/overlord/cmd_modules')
-rw-r--r-- | func/overlord/cmd_modules/call.py | 19 | ||||
-rw-r--r-- | func/overlord/cmd_modules/show.py | 71 |
2 files changed, 80 insertions, 10 deletions
diff --git a/func/overlord/cmd_modules/call.py b/func/overlord/cmd_modules/call.py index 07a3aa2..0f69713 100644 --- a/func/overlord/cmd_modules/call.py +++ b/func/overlord/cmd_modules/call.py @@ -36,11 +36,6 @@ class Call(client.command.Command): def parse(self, argv): self.argv = argv - # FIXME? not sure this is good or bad, but it seems - # wronky... we try to grab the hostnamegoo from the - # args to the parentCommand - self.server_spec = self.argv[0] - return command.Command.parse(self, argv) @@ -52,7 +47,6 @@ class Call(client.command.Command): return pprint.pformat(data) if self.options.json: - print "fffffffffffffffffffffffffffffffffffffffffff" try: import simplejson return simplejson.dumps(data) @@ -69,10 +63,15 @@ class Call(client.command.Command): # I kind of feel like we shouldn't be parsing args here, but I'm # not sure what the write place is -al; - self.server_spec = args[0] - self.module = args[1] - self.method = args[2] - self.method_args = args[3:] + self.module = args[0] + self.method = args[1] + self.method_args = args[2:] + + # this could get weird, sub sub classes might be calling this + # this with multiple.parentCommand.parentCommands... + # maybe command.py needs a way to set attrs on subCommands? + # or some sort of shared datastruct? + 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) diff --git a/func/overlord/cmd_modules/show.py b/func/overlord/cmd_modules/show.py new file mode 100644 index 0000000..10f44b3 --- /dev/null +++ b/func/overlord/cmd_modules/show.py @@ -0,0 +1,71 @@ +#!/usr/bin/python + +import optparse +import pprint +import xmlrpclib + +from func.overlord import command +from func.overlord import client + +DEFAULT_PORT = 51234 + + +class ShowHardware(client.command.Command): + name = "hardware" + useage = "show hardware details" + + # FIXME: we might as well make verbose be in the subclass + # and probably an inc variable while we are at it + 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) + + + def parse(self, argv): + self.argc = 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) + + + +class Show(client.command.Command): + name = "show" + useage = "various simple report stuff" + subCommands = [ShowHardware] + 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) + + def handleOptions(self, options): + self.options = options + + self.verbose = options.verbose + self.port = options.port + + + def parse(self, argv): + self.argv = argv + + return command.Command.parse(self, argv) + + + def do(self, args): + print "do args", args + return "bar" +# 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) + + # TO DO: add multiplexer support + # probably as a higher level module. + + # dump the return code stuff atm till we figure out the right place for it +# return self.format_return(results) + |