summaryrefslogtreecommitdiffstats
path: root/func/overlord/cmd_modules
diff options
context:
space:
mode:
Diffstat (limited to 'func/overlord/cmd_modules')
-rw-r--r--func/overlord/cmd_modules/call.py19
-rw-r--r--func/overlord/cmd_modules/show.py71
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)
+