Add userdata done test

Via /etc/inception folder existence

Change-Id: Ia7a1cd3433f2801b71130b0b7c79821f2aa4aad9
This commit is contained in:
Changbin Liu 2013-06-10 22:10:56 -04:00
parent ecd34a783b
commit 50adb56142
2 changed files with 13 additions and 8 deletions

View File

@ -15,3 +15,6 @@ sudo apt-get -y remove resolvconf || true
sudo sed -i -e 's/sleep\ 20/sleep\ 1/g' -e 's/sleep\ 40/sleep\ 1/g' \
-e 's/sleep\ 59/sleep\ 1/g' /etc/init/failsafe.conf
sudo sed -i 's/long=120/long=20/g' /etc/init/cloud-init-nonet.conf
# create a folder to indicate userdata done
sudo mkdir -p /etc/inception/

View File

@ -27,6 +27,7 @@ import getopt
import functools
import os
import Queue
import subprocess
import sys
import threading
import time
@ -82,7 +83,7 @@ class Orchestrator(object):
booting stage, rc.local-like)
@param timeout: sleep time (s) for servers to be launched
@param poll_interval: every this time poll to check whether a server
has finished launching, i.e., ssh-able
has finished launching, i.e., ssh-able + userdata done
"""
## check args
if num_workers > 5:
@ -229,8 +230,8 @@ class Orchestrator(object):
self._worker_ids.append(worker.id)
print "Creating %s" % worker
print ('wait at most %s seconds for servers to be ready (ssh-able)' %
self.timeout)
print ('wait at most %s seconds for servers to be ready (ssh-able + '
'userdata done)' % self.timeout)
servers_ready = False
begin_time = time.time()
while time.time() - begin_time <= self.timeout:
@ -250,15 +251,16 @@ class Orchestrator(object):
self._worker_ips.append(ipaddr)
self._worker_names.append(name)
# test ssh-able
cmd.ssh(self.user + "@" + self._gateway_ip, 'true')
cmd.ssh(self.user + "@" + self._chefserver_ip, 'true')
cmd.ssh(self.user + "@" + self._controller_ip, 'true')
command = '[ -d /etc/inception ]'
cmd.ssh(self.user + "@" + self._gateway_ip, command)
cmd.ssh(self.user + "@" + self._chefserver_ip, command)
cmd.ssh(self.user + "@" + self._controller_ip, command)
for worker_ip in self._worker_ips:
cmd.ssh(self.user + "@" + worker_ip, 'true')
cmd.ssh(self.user + "@" + worker_ip, command)
# indicate that servers are ready
servers_ready = True
break
except (cmd.SshConnectionError, UnboundLocalError) as error:
except (UnboundLocalError, subprocess.CalledProcessError) as error:
print ('servers are not all ready, error=%s, sleep %s seconds'
% (error, self.poll_interval))
time.sleep(self.poll_interval)