diff options
Diffstat (limited to 'mcp/config/states/maas')
-rwxr-xr-x | mcp/config/states/maas | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/mcp/config/states/maas b/mcp/config/states/maas index d6ef5a607..070045165 100755 --- a/mcp/config/states/maas +++ b/mcp/config/states/maas @@ -78,4 +78,19 @@ salt -C 'mas01*' pillar.item\ maas:region:admin:username \ maas:region:admin:password -salt -C '* and not cfg01* and not mas01*' saltutil.sync_all +# Check all baremetal nodes are available +rc=1 +attempt=0 +total_attempts=10 +while [ $rc -ne 0 ] && [ ${attempt} -lt ${total_attempts} ]; do + bm_nodes=$(salt --out yaml 'mas01*' pillar.get maas:region:machines | \ + awk '/^\s+\w+[[:digit:]]+:$/ {gsub(/:$/, "*"); print $1}') + rc=0 + for node in $bm_nodes; do + salt "$node" test.ping 2>/dev/null || { rc=$?; break; }; + done + sleep 5 + ((attempt+=1)) +done + +wait_for 10 "salt -C '* and not cfg01* and not mas01*' saltutil.sync_all" |