diff options
author | Adrian Likins <alikins@grimlock.devel.redhat.com> | 2007-10-08 11:38:09 -0400 |
---|---|---|
committer | Adrian Likins <alikins@grimlock.devel.redhat.com> | 2007-10-08 11:38:09 -0400 |
commit | 8dde0749f34ca2092d406bc3894a7e276fabaae3 (patch) | |
tree | 3bfdec27727844688daf13d0671114c03b07c923 /func/overlord/cmd_modules/call.py | |
parent | ce379bdb3d6ade0a6326d5d7cf9446389cf4d94b (diff) | |
download | third_party-func-8dde0749f34ca2092d406bc3894a7e276fabaae3.tar.gz third_party-func-8dde0749f34ca2092d406bc3894a7e276fabaae3.tar.xz third_party-func-8dde0749f34ca2092d406bc3894a7e276fabaae3.zip |
create a func/overkiad/cmd_modules sub dir
add it to the setup
use new func_command module for base class of commands
move Call class to cmd_modules/call
update scripts/func to use new commandline class
Diffstat (limited to 'func/overlord/cmd_modules/call.py')
-rw-r--r-- | func/overlord/cmd_modules/call.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/func/overlord/cmd_modules/call.py b/func/overlord/cmd_modules/call.py new file mode 100644 index 0000000..644930f --- /dev/null +++ b/func/overlord/cmd_modules/call.py @@ -0,0 +1,58 @@ +#!/usr/bin/python + +import optparse + +from func.overlord import command +from func.overlord import client + +DEFAULT_PORT = 51234 + +class Call(client.command.Command): + name = "call" + useage = "call nodule method name arg1 arg2..." + 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): + print "self.parentCommand", self.parentCommand + + self.options = options + + self.verbose = options.verbose + self.port = options.port + # I'm not really a fan of the "module methodname" approach + # but we'll keep it for now -akl + + def parse(self, argv): + self.argv = argv + + print "self.argv,", self.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) + + def do(self, args): + + # I'm not really a fan of the "module methodname" approach + # but we'll keep it for now -akl + + print "ARGS", args + self.module = args[1] + self.method = args[2] + self.method_args = args[3:] + + 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. + + return client_obj.cli_return(results) |