summaryrefslogtreecommitdiffstats
path: root/func/overlord
diff options
context:
space:
mode:
Diffstat (limited to 'func/overlord')
-rw-r--r--func/overlord/cmd_modules/ping.py70
-rw-r--r--func/overlord/func_command.py3
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):