summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2017-10-14 19:18:51 +0200
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2017-10-14 19:29:18 +0200
commit089585ad5370109d4c2a476b94b0017153d7713d (patch)
tree083b389c3868aae62fd63205dcb6d940d199f7ea
parentca4e854f1b0eb6bfb35aa349e7d74abdd71128df (diff)
Drop infinite loops in favor of finite wait_for
While at it, fix some shellcheck warnings, and s/fgrep/grep -F/g. Change-Id: I093b7b4c196731b1ecc0c27a4111955b2e412762 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-rwxr-xr-xmcp/config/states/dpdk6
-rwxr-xr-xmcp/config/states/maas2
-rwxr-xr-xmcp/config/states/openstack_ha5
-rwxr-xr-xmcp/config/states/virtual_control_plane8
-rw-r--r--mcp/salt-formulas/opendaylight/client.sls2
-rw-r--r--mcp/scripts/lib.sh5
-rwxr-xr-xmcp/scripts/salt.sh2
7 files changed, 18 insertions, 12 deletions
diff --git a/mcp/config/states/dpdk b/mcp/config/states/dpdk
index 9eba5c083..7cee70a88 100755
--- a/mcp/config/states/dpdk
+++ b/mcp/config/states/dpdk
@@ -1,8 +1,12 @@
#!/bin/bash
set -x
+# shellcheck disable=SC1090
+source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/lib.sh"
+
salt -I 'nova:compute' system.reboot
-while true; do salt -I 'nova:compute' test.ping | grep -Fq 'Not connected' || break; done
+wait_for 90 "! salt -I 'nova:compute' test.ping | " \
+ "tee /dev/stderr | grep -Fq 'Not connected'"
salt -I 'nova:compute' state.sls linux.network
# switch to UCA repos since fuel-infra packages have bugs
diff --git a/mcp/config/states/maas b/mcp/config/states/maas
index df11d5b13..232f98c88 100755
--- a/mcp/config/states/maas
+++ b/mcp/config/states/maas
@@ -1,7 +1,7 @@
#!/bin/bash
-# shellcheck disable=SC1090
set -x
+# shellcheck disable=SC1090
source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/lib.sh"
# Wait for MaaS commissioning/deploy to finish, retry on failure
diff --git a/mcp/config/states/openstack_ha b/mcp/config/states/openstack_ha
index e11135f43..c4c513da1 100755
--- a/mcp/config/states/openstack_ha
+++ b/mcp/config/states/openstack_ha
@@ -1,6 +1,9 @@
#!/bin/bash
set -x
+# shellcheck disable=SC1090
+source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/lib.sh"
+
salt -I 'keepalived:cluster' state.sls keepalived -b 1
salt -I 'keepalived:cluster' pillar.get keepalived:cluster:instance:VIP:address
@@ -43,7 +46,7 @@ salt -I 'neutron:gateway' state.sls neutron.gateway
salt -I 'nova:compute' state.sls nova
salt -I 'mongodb:server' state.sls mongodb
-while true; do sleep 5; salt -C 'I@mongodb:server and *01*' cmd.run 'mongo localhost:27017/admin' && break; done
+wait_for 90 "salt -C 'I@mongodb:server and *01*' cmd.run 'mongo localhost:27017/admin'"
salt -C 'I@mongodb:server and *01*' cmd.run 'mongo localhost:27017/admin --eval "rs.initiate()"'
salt -C 'I@mongodb:server and *01*' state.sls mongodb
diff --git a/mcp/config/states/virtual_control_plane b/mcp/config/states/virtual_control_plane
index 69f26c34e..645009be8 100755
--- a/mcp/config/states/virtual_control_plane
+++ b/mcp/config/states/virtual_control_plane
@@ -1,14 +1,14 @@
#!/bin/bash
-# shellcheck disable=SC1090
set -x
+# shellcheck disable=SC1090
source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/lib.sh"
# KVM, compute node prereqs (libvirt first), VCP deployment
salt -C 'kvm*' pkg.install bridge-utils
salt -C 'kvm*' state.apply linux.network
salt -C 'kvm*' system.reboot
-wait_for 90 "! salt 'kvm*' test.ping | tee /dev/stderr | fgrep -q 'Not connected'"
+wait_for 90 "! salt 'kvm*' test.ping | tee /dev/stderr | grep -Fq 'Not connected'"
salt -C '* and not cfg01* and not mas01*' state.apply linux,ntp
@@ -17,7 +17,7 @@ salt -C 'kvm*' state.sls libvirt
salt -C '* and not cfg01* and not mas01*' state.apply salt
salt -C 'kvm*' saltutil.sync_all
wait_for 10 "! salt -C 'kvm*' state.sls salt.control | " \
- "tee /dev/stderr | fgrep -q 'Not connected'"
+ "tee /dev/stderr | grep -Fq 'Not connected'"
vcp_nodes=$(salt --out yaml 'kvm01*' pillar.get salt:control:cluster:internal:node | \
awk '/\s+\w+:$/ {gsub(/:$/, "*"); print $1}')
@@ -35,7 +35,7 @@ done
wait_for 10 "salt -C '* and not cfg01* and not mas01*' saltutil.sync_all"
wait_for 10 "salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' state.apply salt"
wait_for 10 "! salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' state.apply linux,ntp | " \
- "tee /dev/stderr | fgrep -q 'Not connected'"
+ "tee /dev/stderr | grep -Fq 'Not connected'"
wait_for 10 "salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' ssh.set_auth_key ${SUDO_USER} \
$(awk 'NR==1{print $2}' "$(eval echo "~${SUDO_USER}/.ssh/authorized_keys")")"
diff --git a/mcp/salt-formulas/opendaylight/client.sls b/mcp/salt-formulas/opendaylight/client.sls
index 2a56d49dd..dbffc5709 100644
--- a/mcp/salt-formulas/opendaylight/client.sls
+++ b/mcp/salt-formulas/opendaylight/client.sls
@@ -9,7 +9,7 @@ opendaylight_client_packages:
ovs_set_manager:
cmd.run:
- name: "ovs-vsctl set-manager {{ client.ovsdb_server_iface }} {{ client.ovsdb_odl_iface }}"
- - unless: "ovs-vsctl get-manager | fgrep -x {{ client.ovsdb_odl_iface }}"
+ - unless: "ovs-vsctl get-manager | grep -Fx {{ client.ovsdb_odl_iface }}"
ovs_set_tunnel_endpoint:
cmd.run:
diff --git a/mcp/scripts/lib.sh b/mcp/scripts/lib.sh
index 748c6dde1..3a6deec21 100644
--- a/mcp/scripts/lib.sh
+++ b/mcp/scripts/lib.sh
@@ -144,13 +144,13 @@ function start_vms {
function check_connection {
local total_attempts=60
local sleep_time=5
- local attempt=1
set +e
echo '[INFO] Attempting to get into Salt master ...'
# wait until ssh on Salt master is available
- while ((attempt <= total_attempts)); do
+ # shellcheck disable=SC2034
+ for attempt in $(seq "${total_attempts}"); do
# shellcheck disable=SC2086
ssh ${SSH_OPTS} "ubuntu@${SALT_MASTER}" uptime
case $? in
@@ -158,7 +158,6 @@ function check_connection {
*) echo "${attempt}/${total_attempts}> ssh server ain't ready yet, waiting for ${sleep_time} seconds ..." ;;
esac
sleep $sleep_time
- ((attempt+=1))
done
set -e
}
diff --git a/mcp/scripts/salt.sh b/mcp/scripts/salt.sh
index 73190e315..df0ef70fb 100755
--- a/mcp/scripts/salt.sh
+++ b/mcp/scripts/salt.sh
@@ -59,7 +59,7 @@ ssh ${SSH_OPTS} "${SSH_SALT}" bash -s -e << SALT_INSTALL_END
salt-call state.apply salt
salt '*' saltutil.sync_all
- salt '*' state.apply salt | fgrep -q 'No response' && salt '*' state.apply salt
+ salt '*' state.apply salt | grep -Fq 'No response' && salt '*' state.apply salt
salt -C 'I@salt:master' state.sls linux
salt -C '* and not cfg01*' state.sls linux