summaryrefslogtreecommitdiffstats
path: root/func/overlord/cmd_modules/call.py
diff options
context:
space:
mode:
authorAdrian Likins <alikins@grimlock.devel.redhat.com>2007-10-08 11:38:09 -0400
committerAdrian Likins <alikins@grimlock.devel.redhat.com>2007-10-08 11:38:09 -0400
commit8dde0749f34ca2092d406bc3894a7e276fabaae3 (patch)
tree3bfdec27727844688daf13d0671114c03b07c923 /func/overlord/cmd_modules/call.py
parentce379bdb3d6ade0a6326d5d7cf9446389cf4d94b (diff)
downloadthird_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.py58
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)