diff options
Diffstat (limited to 'func/overlord')
-rw-r--r-- | func/overlord/cmd_modules/ping.py | 70 | ||||
-rw-r--r-- | func/overlord/func_command.py | 3 |
2 files changed, 72 insertions, 1 deletions
diff --git a/func/overlord/cmd_modules/ping.py b/func/overlord/cmd_modules/ping.py new file mode 100644 index 0000000..d5f57cc --- /dev/null +++ b/func/overlord/cmd_modules/ping.py @@ -0,0 +1,70 @@ +#!/usr/bin/python + +""" +copyfile command line + +Copyright 2007, Red Hat, Inc +Michael DeHaan <mdehaan@redhat.com> +also see AUTHORS + +This software may be freely redistributed under the terms of the GNU +general public license. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +""" + + +import optparse +import os +import pprint +import stat +import xmlrpclib + +from func.overlord import command +from func.overlord import client + +# FIXME: this really should not be in each sub module. +DEFAULT_PORT = 51234 + +class Ping(client.command.Command): + name = "ping" + useage = "see what func minions are up/accessible" + + + def addOptions(self): + """ + Not too many options for you! (Seriously, it's a simple command ... func "*" ping) + """ + # FIXME: verbose and port should be added globally to all sub modules + 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): + """ + Nothing to do here... + """ + pass + + + def do(self, args): + self.server_spec = self.parentCommand.server_spec + + client_obj = client.Client(self.server_spec, + port=self.options.port, + interactive=False, + verbose=self.options.verbose, + config=self.config) + + results = client_obj.run("test", "ping", []) + for (host,result) in results.iteritems(): + if result == 1: + print "[ ok ... ] %s" % host + else: + print "[ FAILED ] %s" % host + return 1 + diff --git a/func/overlord/func_command.py b/func/overlord/func_command.py index b33565c..1a13233 100644 --- a/func/overlord/func_command.py +++ b/func/overlord/func_command.py @@ -11,6 +11,7 @@ from cmd_modules import call from cmd_modules import show from cmd_modules import copyfile from cmd_modules import listminions +from cmd_modules import ping from func.overlord import client @@ -19,7 +20,7 @@ class FuncCommandLine(command.Command): useage = "func is the commandline interface to a func minion" subCommandClasses = [call.Call, show.Show, - copyfile.CopyFile, listminions.ListMinions] + copyfile.CopyFile, listminions.ListMinions, ping.Ping] def __init__(self): |