diff options
-rwxr-xr-x | mcp/config/states/maas | 6 | ||||
-rwxr-xr-x | mcp/config/states/virtual_control_plane | 4 | ||||
-rwxr-xr-x | mcp/scripts/salt.sh | 2 | ||||
-rw-r--r-- | mcp/scripts/virsh_net/net_public.xml.j2 | 9 |
4 files changed, 11 insertions, 10 deletions
diff --git a/mcp/config/states/maas b/mcp/config/states/maas index 8c9411923..116bc45cd 100755 --- a/mcp/config/states/maas +++ b/mcp/config/states/maas @@ -15,7 +15,7 @@ source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/globals.sh" source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/lib.sh" bm_nodes=$(salt --out yaml 'mas01*' pillar.get maas:region:machines | \ - awk '/^\s+\w+[[:digit:]]+:$/ {gsub(/:$/, "*"); print $1}') + awk '/^\s+\w+[[:digit:]]+:$/ {gsub(/:$/, "*"); printf "%s ", $1}') # Wait for MaaS commissioning/deploy to finish, retry on failure function maas_fixup() { @@ -75,7 +75,7 @@ salt -C 'mas01*' state.apply maas.cluster wait_for 10 "salt -C 'mas01*' state.apply maas.region" -if [ -n "${bm_nodes[*]}" ]; then +if [ -n "${bm_nodes}" ]; then salt -C 'mas01*' state.apply maas.machines fi @@ -92,6 +92,6 @@ salt -C 'mas01*' pillar.item\ maas:region:admin:password # Check all baremetal nodes are available -wait_for 5.0 "for n in ${bm_nodes}; do salt '${n}' test.ping 2>/dev/null; done" +wait_for 5.0 "(for n in ${bm_nodes}; do salt \${n} test.ping 2>/dev/null || exit; done)" wait_for 10.0 "salt -C '* and not cfg01* and not mas01*' saltutil.sync_all" diff --git a/mcp/config/states/virtual_control_plane b/mcp/config/states/virtual_control_plane index 328a6416b..48e45d426 100755 --- a/mcp/config/states/virtual_control_plane +++ b/mcp/config/states/virtual_control_plane @@ -33,10 +33,10 @@ salt -C 'kvm* or cmp*' state.apply salt wait_for 10.0 "salt -C 'kvm*' state.sls salt.control" vcp_nodes=$(salt --out yaml 'kvm01*' pillar.get salt:control:cluster:internal:node | \ - awk '/\s+\w+:$/ {gsub(/:$/, "*"); print $1}') + awk '/\s+\w+:$/ {gsub(/:$/, "*"); printf "%s ", $1}') # Check all vcp nodes are available -wait_for 25.0 "for n in ${vcp_nodes}; do salt '${n}' test.ping 2>/dev/null; done" +wait_for 25.0 "(for n in ${vcp_nodes}; do salt \${n} test.ping 2>/dev/null || exit; done)" wait_for 10.0 "salt -C '* and not cfg01* and not mas01*' saltutil.sync_all" diff --git a/mcp/scripts/salt.sh b/mcp/scripts/salt.sh index 824cada7b..439b559a6 100755 --- a/mcp/scripts/salt.sh +++ b/mcp/scripts/salt.sh @@ -100,7 +100,7 @@ ssh ${SSH_OPTS} "${SSH_SALT}" bash -s -e << SALT_INSTALL_END if [[ "${LOCAL_VIRT_NODES}" =~ mas ]]; then wait_for 3.0 'salt -C "mas*" test.ping' else - wait_for 3.0 'for n in ${LOCAL_VIRT_NODES}; do salt -C \${n}.* test.ping; done' + wait_for 3.0 '(for n in ${LOCAL_VIRT_NODES}; do salt -C \${n}.* test.ping || exit; done)' fi wait_for 3.0 'salt -C "E@^(${NODE_MASK}|cfg01).*" saltutil.sync_all' wait_for 3.0 'salt -C "E@^(${NODE_MASK}|cfg01).*" state.apply salt' diff --git a/mcp/scripts/virsh_net/net_public.xml.j2 b/mcp/scripts/virsh_net/net_public.xml.j2 index 37a8d9272..bc9d64dc1 100644 --- a/mcp/scripts/virsh_net/net_public.xml.j2 +++ b/mcp/scripts/virsh_net/net_public.xml.j2 @@ -1,14 +1,15 @@ <!-- - Copyright (c) 2017 Mirantis Inc., Enea AB and others. + Copyright (c) 2018 Mirantis Inc., Enea AB and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Apache License, Version 2.0 which accompanies this distribution, and is available at http://www.apache.org/licenses/LICENSE-2.0 --> +{%- set cluster = {'has_virtual_nodes': False} %} {%- for node in conf.nodes %} - {%- if node.node.type == 'virtual' %} - {%- set cluster_has_virtual_nodes = True %} + {%- if not cluster.has_virtual_nodes and node.node.type == 'virtual' %} + {%- set _ = cluster.update({'has_virtual_nodes': True}) %} {%- endif %} {%- endfor %} {%- if conf.idf.net_config.public is defined %} @@ -21,7 +22,7 @@ <network> <name>public</name> <bridge name="public"/> -{%- if cluster_has_virtual_nodes %} +{%- if cluster.has_virtual_nodes %} {#- Ideally, jumpserver would have a real Linux bridge we will hook to. In case it doesn't, we use this virsh network as a *mock* public. The *mock* public should NOT overlap with the real public in any way. #} |