From 6de39f5473101ff55c74099bf7f5e6ebef2e175f Mon Sep 17 00:00:00 2001 From: Tim Rozet Date: Sat, 27 Aug 2016 11:35:48 -0400 Subject: Fixes control/compute node detection Previous behavior was detecting the total number of nodes in the inventory file and defining number of compute nodes as total nodes, minus 1 or 3 control nodes (depending on HA flag). This patch changes the behavior to look explicitly for number of compute/control nodes in the inventory file. JIRA: APEX-244 Change-Id: I0191bb88e7dc5bebb5f7bfed39661f8047dbd476 Signed-off-by: Tim Rozet (cherry picked from commit 38a4ac1614905066b24071c682170736e4779e79) --- lib/overcloud-deploy-functions.sh | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'lib') diff --git a/lib/overcloud-deploy-functions.sh b/lib/overcloud-deploy-functions.sh index df17750b..1127f049 100755 --- a/lib/overcloud-deploy-functions.sh +++ b/lib/overcloud-deploy-functions.sh @@ -11,6 +11,9 @@ ##preping it for deployment and launch the deploy ##params: none function overcloud_deploy { + local num_compute_nodes + local num_control_nodes + if [[ "${#deploy_options_array[@]}" -eq 0 || "${deploy_options_array['sdn_controller']}" == 'opendaylight' ]]; then if [ "${deploy_options_array['sdn_l3']}" == 'True' ]; then DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/opendaylight_l3.yaml" @@ -179,24 +182,33 @@ EOI # make sure ceph is installed DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml" - # scale compute nodes according to inventory - total_nodes=$(ssh -T ${SSH_OPTIONS[@]} "root@$UNDERCLOUD" "cat /home/stack/instackenv.json | grep -c memory") + # get number of nodes available in inventory + num_control_nodes=$(ssh -T ${SSH_OPTIONS[@]} "root@$UNDERCLOUD" "grep -c profile:control /home/stack/instackenv.json") + num_compute_nodes=$(ssh -T ${SSH_OPTIONS[@]} "root@$UNDERCLOUD" "grep -c profile:compute /home/stack/instackenv.json") # check if HA is enabled if [[ "$ha_enabled" == "True" ]]; then - DEPLOY_OPTIONS+=" --control-scale 3" - compute_nodes=$((total_nodes - 3)) + if [ "$num_control_nodes" -lt 3 ]; then + echo -e "${red}ERROR: Number of control nodes in inventory is less than 3 and HA is enabled: ${num_control_nodes}. Check your inventory file.${reset}" + exit 1 + else + DEPLOY_OPTIONS+=" --control-scale ${num_control_nodes}" DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/puppet-pacemaker.yaml" + echo -e "${blue}INFO: Number of control nodes set for deployment: ${num_control_nodes}${reset}" + fi else - compute_nodes=$((total_nodes - 1)) + if [ "$num_control_nodes" -lt 1 ]; then + echo -e "${red}ERROR: Number of control nodes in inventory is less than 1: ${num_control_nodes}. Check your inventory file.${reset}" + exit 1 + fi fi - if [ "$compute_nodes" -le 0 ]; then - echo -e "${red}ERROR: Invalid number of compute nodes: ${compute_nodes}. Check your inventory file.${reset}" + if [ "$num_compute_nodes" -le 0 ]; then + echo -e "${red}ERROR: Invalid number of compute nodes: ${num_compute_nodes}. Check your inventory file.${reset}" exit 1 else - echo -e "${blue}INFO: Number of compute nodes set for deployment: ${compute_nodes}${reset}" - DEPLOY_OPTIONS+=" --compute-scale ${compute_nodes}" + echo -e "${blue}INFO: Number of compute nodes set for deployment: ${num_compute_nodes}${reset}" + DEPLOY_OPTIONS+=" --compute-scale ${num_compute_nodes}" fi if [[ "$net_isolation_enabled" == "TRUE" ]]; then -- cgit 1.2.3-korg