summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhuangxiangyu <huangxiangyu5@huawei.com>2017-06-20 20:42:07 +0800
committerHarry Huang <huangxiangyu5@huawei.com>2017-07-13 02:25:12 +0000
commit9d91215c859c5ebad4ba94e9c321f28ddb7b0316 (patch)
tree90fffeafeb6345f1556e3c499ac052e44ea68e9d
parenta0edd1b2b4d4df6fc5c3e773eba66224930fdb46 (diff)
Modify deploy/client.py
Bug: 1. when ansible_print process encounter runtime error e.g. ansible.log doesn't exist, whole client.py process stucks. 2. cobbler status encounters error when deploy timeout happens. Solution: 1. add ansible_print process alive check in function get_installing_progress to exit parent process when child process encounter runtime error. 2. remove unnecessary code in calling cobbler status which cause error. Change-Id: Ie04d45fd612e7273a6d584e3efb69e1506cdd0f9 Signed-off-by: huangxiangyu <huangxiangyu5@huawei.com>
-rw-r--r--deploy/client.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/deploy/client.py b/deploy/client.py
index 6d5daa38..366ae418 100644
--- a/deploy/client.py
+++ b/deploy/client.py
@@ -952,6 +952,9 @@ class CompassClient(object):
deployment_timeout = time.time() + 60 * float(CONF.deployment_timeout) # noqa
current_time = time.time
while current_time() < deployment_timeout:
+ if not ansible_print.is_alive():
+ raise RuntimeError("can not get ansible log")
+
status, cluster_state = self.get_cluster_state(cluster_id)
if not self.is_ok(status):
raise RuntimeError("can not get cluster state")
@@ -975,7 +978,7 @@ class CompassClient(object):
% (current_time(), deployment_timeout))
LOG.info("cobbler status:")
os.system("sudo docker exec compass-cobbler bash -c \
- 'cobbler status'" % (CONF.rsa_file))
+ 'cobbler status'")
raise RuntimeError("installation timeout")
try: