Debug prechecks

This PS write prechecks output into kolla log file so that we can
see its log when prechecks failed.

Change-Id: Ia5262d072304abec10f714b4ce2b5f537c2ef5f9
Signed-off-by: Zhijiang Hu <hu.zhijiang@zte.com.cn>
This commit is contained in:
Zhijiang Hu 2017-08-07 01:10:51 +08:00
parent db612142c8
commit 42e12ec426
2 changed files with 34 additions and 22 deletions

View File

@ -676,27 +676,38 @@ class KOLLAInstallTask(Thread):
LOG.error(self.message)
raise exception.InstallException(self.message)
try:
LOG.info(_("begin to kolla-ansible "
"prechecks for all nodes..."))
exc_result = subprocess.check_output(
'cd %s/kolla-ansible && ./tools/kolla-ansible prechecks '
' -i %s/kolla-ansible/ansible/inventory/multinode' %
(self.kolla_file, self.kolla_file),
shell=True, stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as e:
self.message = "kolla-ansible preckecks failed!"
LOG.error(self.message)
fp.write(e.output.strip())
raise exception.InstallException(self.message)
else:
LOG.info(_("kolla-ansible preckecks successfully!"))
fp.write(exc_result)
self.message = "Precheck for installation successfully!"
update_all_host_progress_to_db(self.req, role_id_list,
host_id_list,
kolla_state['INSTALLING'],
self.message, 20)
LOG.info(_("kolla-ansible precheck..."))
cmd = subprocess.Popen(
'cd %s/kolla-ansible && ./tools/kolla-ansible prechecks '
' -i %s/kolla-ansible/ansible/inventory/multinode -vvv' %
(self.kolla_file, self.kolla_file),
shell=True, stdout=fp, stderr=fp)
execute_times = 0
while True:
time.sleep(5)
return_code = cmd.poll()
if return_code == 0:
break
elif return_code == 1:
self.message = "kolla-ansible preckecks failed!"
LOG.error(self.message)
raise exception.InstallException(self.message)
else:
if execute_times >= 1440:
self.message = "kolla-ansible preckecks timeout"
LOG.error(self.message)
raise exception.InstallTimeoutException(
cluster_id=self.cluster_id)
execute_times += 1
self.message = "kolla-ansible preckecks successfully(%d)!" % \
(return_code)
self.progress = 20
update_all_host_progress_to_db(self.req, role_id_list,
host_id_list,
kolla_state['INSTALLING'],
self.message, self.progress)
LOG.info(_("kolla-ansible begin to deploy openstack ..."))
cmd = subprocess.Popen(
'cd %s/kolla-ansible && ./tools/kolla-ansible deploy -i '
@ -730,6 +741,7 @@ class KOLLAInstallTask(Thread):
kolla_state['INSTALLING'],
self.message, self.progress)
execute_times += 1
try:
LOG.info(_("kolla-ansible post-deploy for each node..."))
exc_result = subprocess.check_output(

View File

@ -578,6 +578,6 @@ class TestInstall(test.TestCase):
log_file = '/var/log/daisy/'\
'kolla_8ad27e36-f3e2-48b4-84b8-5b676c6fabde_deploy.log'
all_the_text = open('%s' % log_file).read()
self.assertIn('okokok', all_the_text)
self.assertIn('okok', all_the_text)
cmd = 'rm -rf /var/log/daisy'
subprocesscall(cmd)