aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xmcp/config/states/maas6
-rwxr-xr-xmcp/config/states/virtual_control_plane4
-rwxr-xr-xmcp/scripts/salt.sh2
-rw-r--r--mcp/scripts/virsh_net/net_public.xml.j29
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. #}