Fix --yes evaluation from the help CLI

Sometimes, CLI may return error earlier than grep catches up
its query results. With bash pipefail set, this ends up with grep --yes
omitted and the wrong command executed (without --yes).

Set pipefail only after the --yes argument evaluated by grep.

Change-Id: I22a998e0cf3b04ef51a51478fc6576324a931dcb
Co-Authored-By: Sergii Golovatouk <sgolovat@redhat.com>
Signed-off-by: Bogdan Dobrelya <bdobreli@redhat.com>
This commit is contained in:
Bogdan Dobrelya 2020-07-16 17:16:21 +02:00
parent 81314a4546
commit 9ceca92d20
13 changed files with 28 additions and 12 deletions

View File

@ -1,6 +1,4 @@
#!/bin/env bash
set -euo pipefail
set -euo pipefail
{% if l3_agent_connectivity_check|bool %}
if [[ -e {{ working_dir }}/l3_agent_start_ping.sh ]]; then
@ -24,10 +22,12 @@ bash {{ working_dir }}/fip_http_check_start.sh &
source {{ undercloud_rc }}
set +o pipefail
EXTERNAL_ANSWER=""
if openstack overcloud external-update run --help | grep -qe "--yes"; then
EXTERNAL_ANSWER="--yes"
fi
set -o pipefail
echo "[$(date)] Started Ceph minor update step"

View File

@ -23,10 +23,12 @@ bash {{ working_dir }}/fip_http_check_start.sh &
source {{ undercloud_rc }}
set +o pipefail
EXTERNAL_ANSWER=""
if openstack overcloud external-upgrade run --help | grep -qe "--yes"; then
EXTERNAL_ANSWER="--yes"
fi
set -o pipefail
echo "[$(date)] Major upgrade - Ceph upgrade step"

View File

@ -1,11 +1,12 @@
#!/bin/bash
#
set -euo pipefail
set -eu
RUN_ANSWER=""
if openstack overcloud upgrade run --help | grep -qe "--yes"; then
RUN_ANSWER="--yes"
fi
set -o pipefail
source {{ undercloud_rc }}
openstack overcloud upgrade run ${RUN_ANSWER} \

View File

@ -7,7 +7,7 @@
{% elif overcloud_upgrade|bool or upgrade_noop|bool or ffu_overcloud_upgrade|bool or ffu_noop|bool -%}
{% set operation_type = 'upgrade' -%}
{% endif -%}
set -euo pipefail
set -eu
source {{ undercloud_rc }}
@ -15,6 +15,7 @@ EXTERNAL_ANSWER=""
if openstack overcloud external-{{ operation_type }} run --help | grep -qe "--yes"; then
EXTERNAL_ANSWER="--yes"
fi
set -o pipefail
echo "[$(date)] Run online data migration for overcloud during {{ operation_type }}"

View File

@ -7,7 +7,7 @@
{% elif overcloud_upgrade|bool or upgrade_noop|bool or ffu_overcloud_upgrade|bool or ffu_noop|bool -%}
{% set operation_type = 'upgrade' -%}
{% endif -%}
set -euo pipefail
set -eu
source {{undercloud_rc }}
@ -15,6 +15,7 @@ EXTERNAL_ANSWER=""
if openstack overcloud external-{{ operation_type }} run --help | grep -qe "--yes"; then
EXTERNAL_ANSWER="--yes"
fi
set -o pipefail
echo "[$(date)] Start preparing container images for overcloud {{ operation_type }}"

View File

@ -3,7 +3,7 @@
# Run overcloud Operating System upgrade on overcloud node {{ item }}
#
set -euo pipefail
set -eu
source {{ undercloud_rc }}
@ -16,6 +16,7 @@ RUN_ANSWER=""
if openstack overcloud upgrade run --help | grep -qe "--yes"; then
RUN_ANSWER="--yes"
fi
set -o pipefail
{% if enabled_services[role]|intersect(['ceph_osd','ceph_mon','ceph_mgr'])|length > 0 -%}

View File

@ -2,12 +2,13 @@
#
# Run minor update converge step on overcloud nodes
#
set -euo pipefail
set -eu
CONVERGE_ANSWER=""
if openstack overcloud update converge --help | grep -qe "--yes"; then
CONVERGE_ANSWER="--yes"
fi
set -o pipefail
source {{ undercloud_rc }}
echo "Running minor update converge step"

View File

@ -2,12 +2,13 @@
#
# Setup HEAT's output
#
set -euo pipefail
set -eu
PREPARE_ANSWER=""
if openstack overcloud update prepare --help | grep -qe "--yes"; then
PREPARE_ANSWER="--yes"
fi
set -o pipefail
# FIXME: Remove --validation-errors-nonfatal. In local testing it was
# not necessary but in RDO cloud validations seem to produce errors.

View File

@ -2,12 +2,13 @@
#
# Run minor update on overcloud nodes
#
set -euo pipefail
set -eu
RUN_ANSWER=""
if openstack overcloud update run --help | grep -qe "--yes"; then
RUN_ANSWER="--yes"
fi
set -o pipefail
source {{ undercloud_rc }}

View File

@ -2,7 +2,7 @@
#
# Run upgrade converge step on overcloud nodes
#
set -euo pipefail
set -eu
{% if l3_agent_connectivity_check|bool %}
if [[ -e {{ working_dir }}/l3_agent_start_ping.sh ]]; then
@ -31,6 +31,7 @@ CONVERGE_ANSWER=""
if openstack overcloud upgrade converge --help | grep -qe "--yes"; then
CONVERGE_ANSWER="--yes"
fi
set -o pipefail
echo "[$(date)] Running upgrade converge step"
openstack overcloud upgrade converge ${CONVERGE_ANSWER} \

View File

@ -2,12 +2,13 @@
#
# Setup HEAT's output
#
set -euo pipefail
set -eu
PREPARE_ANSWER=""
if openstack overcloud upgrade prepare --help | grep -qe "--yes"; then
PREPARE_ANSWER="--yes"
fi
set -o pipefail
source {{undercloud_rc }}

View File

@ -30,10 +30,12 @@ bash {{ working_dir }}/fip_http_check_start.sh &
source {{ undercloud_rc }}
set +o pipefail
RUN_ANSWER=""
if openstack overcloud upgrade run --help | grep -qe "--yes"; then
RUN_ANSWER="--yes"
fi
set -o pipefail
echo "[$(date)] Running major upgrade {{ playbook }} playbook for {{ item }} role"
openstack overcloud upgrade run ${RUN_ANSWER} \
@ -95,10 +97,12 @@ bash {{ working_dir }}/fip_http_check_start.sh &
source {{ undercloud_rc }}
set +o pipefail
RUN_ANSWER=""
if openstack overcloud upgrade run --help | grep -qe "--yes"; then
RUN_ANSWER="--yes"
fi
set -o pipefail
echo "[$(date)] Running major upgrade for {{ item }} role"
openstack overcloud upgrade run ${RUN_ANSWER} \

View File

@ -1,11 +1,12 @@
#!/bin/bash
#
# Perform undercloud upgrade and related steps
set -euo pipefail
set -eu
UPGRADE_ANSWER=""
if openstack undercloud upgrade --help | grep -qe "--yes"; then
UPGRADE_ANSWER="--yes"
fi
set -o pipefail
openstack undercloud upgrade ${UPGRADE_ANSWER}