aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcarey.xu <carey.xuhan@huawei.com>2016-01-04 15:21:16 +0800
committercarey.xu <carey.xuhan@huawei.com>2016-01-04 16:30:17 +0800
commit0b4b86d37c6fd0946737d59bf1093398dde09670 (patch)
tree32fdc0152fb754cf145391c6f396cd9a26ef97d5
parent021013f290a360493960d8039d8e0fcc6a5883a5 (diff)
improve: display ansible install log on client side
JIRA: COMPASS-219 Change-Id: Id134c312a25a48ee32ab8755def35b8041f47f62 Signed-off-by: carey.xu <carey.xuhan@huawei.com>
-rw-r--r--deploy/client.py37
-rwxr-xr-xdeploy/deploy_host.sh4
2 files changed, 32 insertions, 9 deletions
diff --git a/deploy/client.py b/deploy/client.py
index b9cfd7fe..9bb0c5ed 100644
--- a/deploy/client.py
+++ b/deploy/client.py
@@ -25,6 +25,7 @@ import netaddr
import requests
import json
import itertools
+import threading
from collections import defaultdict
from restful import Client
@@ -231,6 +232,9 @@ opts = [
cfg.StrOpt('deploy_flag',
help='deploy flag',
default='deploy'),
+ cfg.StrOpt('rsa_file',
+ help='ssh rsa key file',
+ default=''),
]
CONF.register_cli_opts(opts)
@@ -836,31 +840,40 @@ class CompassClient(object):
deployment_timeout = time.time() + 60 * float(
CONF.deployment_timeout)
- current_time = time.time()
+ current_time = time.time
deployment_failed = True
- while current_time < deployment_timeout:
+ while current_time() < deployment_timeout:
status, cluster_state = self.client.get_cluster_state(cluster_id)
- LOG.info(
- 'get cluster %s state status %s: %s',
- cluster_id, status, cluster_state
- )
if not self.is_ok(status):
raise RuntimeError("can not get cluster state")
if cluster_state['state'] in ['UNINITIALIZED', 'INITIALIZED']:
- if current_time >= action_timeout:
+ if current_time() >= action_timeout:
deployment_failed = True
+ LOG.info(
+ 'get cluster %s state status %s: %s, successful',
+ cluster_id, status, cluster_state
+ )
break
else:
continue
elif cluster_state['state'] == 'SUCCESSFUL':
deployment_failed = False
+ LOG.info(
+ 'get cluster %s state status %s: %s, successful',
+ cluster_id, status, cluster_state
+ )
break
elif cluster_state['state'] == 'ERROR':
deployment_failed = True
+ LOG.info(
+ 'get cluster %s state status %s: %s, error',
+ cluster_id, status, cluster_state
+ )
break
+ kill_print_proc()
if deployment_failed:
raise RuntimeError("deploy cluster failed")
@@ -886,6 +899,12 @@ class CompassClient(object):
raise Exception(msg)
+def print_ansible_log():
+ os.system("ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i %s root@192.168.200.2 \
+ 'while ! tail -f /var/ansible/run/openstack_liberty-opnfv2/ansible.log 2>/dev/null; do :; sleep 1; done'" % CONF.rsa_file)
+
+def kill_print_proc():
+ os.system("ps aux|grep -v grep|grep -E 'ssh.+root@192.168.200.2'|awk '{print $2}'|xargs kill -9")
def deploy():
client = CompassClient()
@@ -907,7 +926,9 @@ def deploy():
client.set_all_hosts_roles(cluster_id)
client.deploy_clusters(cluster_id)
- client.get_installing_progress(cluster_id)
+ threading.Thread(target=client.get_installing_progress, args=(cluster_id,)).start()
+ LOG.info("compass OS installtion is begin")
+ print_ansible_log()
client.check_dashboard_links(cluster_id)
def redeploy():
diff --git a/deploy/deploy_host.sh b/deploy/deploy_host.sh
index b87a74d3..f8feacbf 100755
--- a/deploy/deploy_host.sh
+++ b/deploy/deploy_host.sh
@@ -1,4 +1,5 @@
#!/bin/bash
+rsa_file=$compass_vm_dir/boot.rsa
function deploy_host(){
ssh $ssh_args root@${MGMT_IP} mkdir -p /opt/compass/bin/ansible_callbacks
@@ -30,6 +31,7 @@ function deploy_host(){
--machines=${machines//\'} --switch_credential="${SWITCH_CREDENTIAL}" --deploy_type="${TYPE}" \
--deployment_timeout="${DEPLOYMENT_TIMEOUT}" --${POLL_SWITCHES_FLAG} --dashboard_url="${DASHBOARD_URL}" \
--cluster_vip="${VIP}" --network_cfg="$NETWORK" --neutron_cfg="$NEUTRON" \
- --enable_secgroup="${ENABLE_SECGROUP}" --enable_fwaas="${ENABLE_FWAAS}" --enable_vpnaas="${ENABLE_VPNAAS}"
+ --enable_secgroup="${ENABLE_SECGROUP}" --enable_fwaas="${ENABLE_FWAAS}" \
+ --rsa_file="$rsa_file" --enable_vpnaas="${ENABLE_VPNAAS}"
}