summaryrefslogtreecommitdiffstats
path: root/func/overlord/func_command.py
diff options
context:
space:
mode:
authorAdrian Likins <alikins@grimlock.devel.redhat.com>2007-10-24 12:25:09 -0400
committerAdrian Likins <alikins@grimlock.devel.redhat.com>2007-10-24 12:25:09 -0400
commit2659bec13340e5917b390f3deb2332958f67540a (patch)
treeecaaba99dae32071d2cec21e76b7a95f871e99c1 /func/overlord/func_command.py
parent1991f5d7ffd09d08e28ed29b33bf97f301574fea (diff)
downloadthird_party-func-2659bec13340e5917b390f3deb2332958f67540a.tar.gz
third_party-func-2659bec13340e5917b390f3deb2332958f67540a.tar.xz
third_party-func-2659bec13340e5917b390f3deb2332958f67540a.zip
move "func list_minions" to be a cmd module
So now it also respects the hostnamegoo glob, so you can use it to test glob patterns func "*.redhat.com" list_minions will show all the minions that match that pattern
Diffstat (limited to 'func/overlord/func_command.py')
-rw-r--r--func/overlord/func_command.py26
1 files changed, 10 insertions, 16 deletions
diff --git a/func/overlord/func_command.py b/func/overlord/func_command.py
index 507a52f..b33565c 100644
--- a/func/overlord/func_command.py
+++ b/func/overlord/func_command.py
@@ -10,6 +10,7 @@ import command
from cmd_modules import call
from cmd_modules import show
from cmd_modules import copyfile
+from cmd_modules import listminions
from func.overlord import client
@@ -18,7 +19,7 @@ class FuncCommandLine(command.Command):
useage = "func is the commandline interface to a func minion"
subCommandClasses = [call.Call, show.Show,
- copyfile.CopyFile]
+ copyfile.CopyFile, listminions.ListMinions]
def __init__(self):
@@ -30,13 +31,18 @@ class FuncCommandLine(command.Command):
def addOptions(self):
self.parser.add_option('', '--version', action="store_true",
help="show version information")
- self.parser.add_option("--list-minions", dest="list_minions",
- action="store_true", help="list all available minions")
+ # just some ugly goo to try to guess if arg[1] is hostnamegoo or
+ # a command name
+ def _isGlob(self, str):
+ if str.find("*") or str.find("?") or str.find("[") or str.find("]"):
+ return True
+ return False
+
def handleArguments(self, args):
server_string = args[0]
# try to be clever about this for now
- if client.isServer(server_string):
+ if client.isServer(server_string) or self._isGlob(server_string):
self.server_spec = server_string
args.pop(0)
# if it doesn't look like server, assume it
@@ -48,15 +54,3 @@ class FuncCommandLine(command.Command):
if options.version:
#FIXME
print "version is NOT IMPLEMENTED YET"
- if options.list_minions:
- self.list_minions()
-
- sys.exit(0) # stop execution
-
- def list_minions(self):
- print "Minions:"
- gloob = "%s/%s.cert" % (self.config.certroot, "*")
- certs = glob.glob(gloob)
- for cert in certs:
- host = cert.replace(self.config.certroot, "")[1:-5]
- print " %s" % host