summaryrefslogtreecommitdiffstats
path: root/func
diff options
context:
space:
mode:
Diffstat (limited to 'func')
-rwxr-xr-xfunc/overlord/client.py7
-rw-r--r--func/overlord/cmd_modules/check.py31
-rw-r--r--func/overlord/cmd_modules/ping.py4
3 files changed, 35 insertions, 7 deletions
diff --git a/func/overlord/client.py b/func/overlord/client.py
index f07e526..fdcf875 100755
--- a/func/overlord/client.py
+++ b/func/overlord/client.py
@@ -105,6 +105,7 @@ class Minions(object):
def _get_new_hosts(self):
self.new_hosts = self.group_class.get_hosts_by_groupgoo(self.spec)
+ return self.new_hosts
def _get_all_hosts(self):
seperate_gloobs = self.spec.split(";")
@@ -116,6 +117,12 @@ class Minions(object):
self.all_certs.append(cert)
host = cert.replace(self.config.certroot,"")[1:-5]
self.all_hosts.append(host)
+ return self.all_hosts
+
+ def get_all_hosts(self):
+ self._get_new_hosts()
+ self._get_all_hosts()
+ return self.all_hosts
def get_urls(self):
self._get_new_hosts()
diff --git a/func/overlord/cmd_modules/check.py b/func/overlord/cmd_modules/check.py
index 58c2b97..cf1badb 100644
--- a/func/overlord/cmd_modules/check.py
+++ b/func/overlord/cmd_modules/check.py
@@ -56,6 +56,10 @@ class CheckAction(client.command.Command):
print "* FQDN is detected as %s, verify that is correct" % hostname
self.check_iptables()
+ if not os.getuid() == 0:
+ print "* root is required to run these setup tests"
+ return
+
if self.check_minion:
# check that funcd is running
@@ -66,9 +70,6 @@ class CheckAction(client.command.Command):
if self.check_certmaster:
- # check UID
- # FIXME: todo
-
# check that certmasterd is running
self.check_service("certmasterd")
@@ -79,7 +80,27 @@ class CheckAction(client.command.Command):
# FIXME: TODO
# construct a client handle and see if any hosts are reachable
-
+ self.server_spec = self.parentCommand.server_spec
+
+ client_obj = client.Client(
+ self.server_spec,
+ port=self.port,
+ interactive=False,
+ verbose=False,
+ config=self.config
+ )
+ results = client_obj.test.add(1,2)
+ hosts = results.keys()
+ if len(hosts) == 0:
+ print "* no systems have signed certs"
+ else:
+ failed = 0
+ for x in hosts:
+ if results[x] != 3:
+ failed = failed+1
+ if failed != 0:
+ print "* unable to connect to %s registered minions from overlord" % failed
+ print "* run func '*' ping to check status"
# see if any of our certs have expired
@@ -106,7 +127,7 @@ class CheckAction(client.command.Command):
cert_dir = config.cert_dir
# FIXME: don't hardcode port
master_uri = "http://%s:51235/" % config.certmaster
- print "* minion is set to talk to host '%s' for certs in /etc/func/minion.conf" % config.certmaster
+ print "* this minion is configured in /etc/func/minion.conf to talk to host '%s' for certs, verify that is correct" % config.certmaster
# this will be a 501, unsupported GET, but we should be
# able to tell if we can make contact
connect_ok = True
diff --git a/func/overlord/cmd_modules/ping.py b/func/overlord/cmd_modules/ping.py
index e056f0b..438e2a9 100644
--- a/func/overlord/cmd_modules/ping.py
+++ b/func/overlord/cmd_modules/ping.py
@@ -52,8 +52,8 @@ class Ping(client.command.Command):
# because this is mainly an interactive command, expand the server list and make seperate connections.
# to make things look more speedy.
- servers = client.expand_servers(self.server_spec, port=self.options.port, noglobs=None,
- verbose=self.options.verbose, just_fqdns=True)
+ minion_set = client.Minions(self.server_spec, port=self.options.port)
+ servers = minion_set.get_all_hosts()
for server in servers: