Support multi-cluster deploy 61/47561/4
authorHarry Huang <huangxiangyu5@huawei.com>
Tue, 21 Nov 2017 07:29:11 +0000 (15:29 +0800)
committerHarry Huang <huangxiangyu5@huawei.com>
Fri, 19 Jan 2018 06:39:32 +0000 (14:39 +0800)
JIRA: COMPASS-566

1. set DEPLOY_HOST to "true "no longer refresh
compass-core
2. patch depends on merged compass-tasks
3. support assign cluster name in scenario file

Change-Id: I28d201c201cff5baefee9993d195be16ef1e830b
Signed-off-by: Harry Huang <huangxiangyu5@huawei.com>
deploy/client.py
deploy/compass_vm.sh
deploy/conf/base.conf
deploy/config_parse.py
deploy/launch.sh

index 910aa7f..891e632 100644 (file)
@@ -399,17 +399,20 @@ class CompassClient(object):
             except:
                 raise RuntimeError('subnet %s format is invalid' % subnet)
 
-            if CONF.expansion == "false":
+            subnet_exist = False
+            for subnet_in_db in subnets_in_db:
+                if subnet == subnet_in_db['subnet']:
+                    subnet_mapping[subnet] = subnet_in_db['id']
+                    subnet_exist = True
+                    break
+
+            if not subnet_exist:
                 status, resp = self.client.add_subnet(subnet)
                 LOG.info('add subnet %s status %s response %s',
                          subnet, status, resp)
                 if not self.is_ok(status):
                     raise RuntimeError('failed to add subnet %s' % subnet)
                 subnet_mapping[resp['subnet']] = resp['id']
-            else:
-                for subnet_in_db in subnets_in_db:
-                    if subnet == subnet_in_db['subnet']:
-                        subnet_mapping[subnet] = subnet_in_db['id']
 
         self.subnet_mapping = subnet_mapping
 
@@ -475,8 +478,8 @@ class CompassClient(object):
             if host['hostname'] in hostnames:
                 self.host_mapping[host['hostname']] = host['id']
 
-        if CONF.expansion == "false":
-            assert(len(self.host_mapping) == len(machines))
+        if CONF.expansion == "false":
+            assert(len(self.host_mapping) == len(machines))
 
     def set_cluster_os_config(self, cluster_id):
         """set cluster os config."""
index 7689f41..cf215f3 100755 (executable)
 compass_vm_dir=$WORK_DIR/vm/compass
 rsa_file=$compass_vm_dir/boot.rsa
 ssh_args="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i $rsa_file"
+
+function check_container_alive() {
+    docker exec -it compass-deck bash -c "exit" 1>/dev/null 2>&1
+    local deck_state=$?
+    docker exec -it compass-tasks bash -c "exit" 1>/dev/null 2>&1
+    local tasks_state=$?
+    docker exec -it compass-cobbler bash -c "exit" 1>/dev/null 2>&1
+    local cobbler_state=$?
+    docker exec -it compass-db bash -c "exit" 1>/dev/null 2>&1
+    local db_state=$?
+    docker exec -it compass-mq bash -c "exit" 1>/dev/null 2>&1
+    local mq_state=$?
+
+    if [ $((deck_state||tasks_state||cobbler_state||db_state||mq-state)) == 0 ]; then
+        echo "true"
+    else
+        echo "false"
+    fi
+}
+
 function tear_down_compass() {
     sudo virsh destroy compass > /dev/null 2>&1
     sudo virsh undefine compass > /dev/null 2>&1
index c2bf529..5395405 100644 (file)
@@ -8,7 +8,6 @@ export EXT_NAT_GW=${EXT_NAT_GW:-192.16.1.1}
 export EXT_NAT_IP_START=${EXT_NAT_IP_START:-192.16.1.3}
 export EXT_NAT_IP_END=${EXT_NAT_IP_END:-192.16.1.254}
 export EXTERNAL_NIC=${EXTERNAL_NIC:-eth0}
-export CLUSTER_NAME="opnfv2"
 export DOMAIN="ods.com"
 export PARTITIONS="/=30%,/home=5%,/tmp=5%,/var=60%"
 export SUBNETS="10.1.0.0/24,172.16.2.0/24,172.16.3.0/24,172.16.4.0/24"
index 3d8dedc..1575ca3 100644 (file)
@@ -104,6 +104,7 @@ def export_dha_file(dha, dha_file, ofile):
             plugin_list.append(plugin_str)
         env.update({'plugins': ','.join(plugin_list)})
 
+    env.update({'CLUSTER_NAME': dha.get('NAME', "opnfv")})
     env.update({'TYPE': dha.get('TYPE', "virtual")})
     env.update({'FLAVOR': dha.get('FLAVOR', "cluster")})
     env.update({'HOSTNAMES': hostnames(dha, ',')})
index 6cbad1f..98d9e4d 100755 (executable)
@@ -55,7 +55,8 @@ if [[ "$EXPANSION" == "false" ]]; then
 
     export machines
 
-    if [[ "$DEPLOY_COMPASS" == "true" ]]; then
+    CONTAINER_ALIVE=$(check_container_alive)
+    if [[ "$DEPLOY_COMPASS" == "true" && "$CONTAINER_ALIVE" == "false" ]]; then
         if ! prepare_env;then
             echo "prepare_env failed"
             exit 1
@@ -71,7 +72,7 @@ if [[ "$EXPANSION" == "false" ]]; then
             log_error "launch_compass failed"
             exit 1
         fi
-    else
+    elif [[ "$DEPLOY_COMPASS" == "true" && "$CONTAINER_ALIVE" == "true" ]]; then
         refresh_compass_core
     fi
 else