summaryrefslogtreecommitdiffstats
path: root/mcp/config/states
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2017-10-19 03:14:14 +0200
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2017-10-19 03:14:14 +0200
commitb9918f1f8df52c52cd2ab76eec3b540b37789e55 (patch)
tree9244583102b3ac485dfb6c3f4f2dcc19cf4742db /mcp/config/states
parent51f374b055999fbc121b624424c21ee45d061538 (diff)
[baremetal] maas state: Wait for all nodes online
After MaaS reports baremetal provisioning finished successfully, check that all nodes are online before attempting a `sync_all`. Change-Id: I6ba4b3e4ba5b5258ace4da8c39e0fc77354885e3 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Diffstat (limited to 'mcp/config/states')
-rwxr-xr-xmcp/config/states/maas13
1 files changed, 13 insertions, 0 deletions
diff --git a/mcp/config/states/maas b/mcp/config/states/maas
index a6bac897d..2a0f25be7 100755
--- a/mcp/config/states/maas
+++ b/mcp/config/states/maas
@@ -78,4 +78,17 @@ salt -C 'mas01*' pillar.item\
maas:region:admin:username \
maas:region:admin:password
+bm_nodes=$(salt --out yaml 'mas01*' pillar.get maas:region:machines | \
+ awk '/^\s+\w+[[:digit:]]+:$/ {gsub(/:$/, "*"); print $1}')
+
+# Check all baremetal nodes are available
+rc=1
+while [ $rc -ne 0 ]; do
+ rc=0
+ for node in $bm_nodes; do
+ salt "$node" test.ping 2>/dev/null || { rc=$?; break; };
+ done
+ sleep 5
+done
+
wait_for 10 "salt -C '* and not cfg01* and not mas01*' saltutil.sync_all"