aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2017-10-26 20:54:41 +0200
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2017-10-27 00:24:44 +0200
commitfa62907da62d0b8ae9e733a9729941065ceedf4d (patch)
tree16161bd73894d30a7f40d8dbcfe4400ad2a524b4
parent9cfa75272ba2fd9abab416db1f22df5989c9959e (diff)
lib.sh: Fix compatibility with bash 4.2
JIRA: FUEL-296 Change-Id: Ide9f9333fe9b44ff6b78678064f8e67f05aabd42 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-rwxr-xr-xci/deploy.sh17
-rw-r--r--mcp/scripts/lib.sh32
2 files changed, 25 insertions, 24 deletions
diff --git a/ci/deploy.sh b/ci/deploy.sh
index 3699bf966..5c663438c 100755
--- a/ci/deploy.sh
+++ b/ci/deploy.sh
@@ -329,13 +329,15 @@ eval "$(parse_yaml "${LOCAL_PDF_RECLASS}")"
export CLUSTER_DOMAIN=${cluster_domain}
-declare -A virtual_nodes_ram virtual_nodes_vcpus
+# Serialize vnode data as '<name0>,<ram0>,<vcpu0>|<name1>,<ram1>,<vcpu1>[...]'
for node in "${virtual_nodes[@]}"; do
virtual_custom_ram="virtual_${node}_ram"
virtual_custom_vcpus="virtual_${node}_vcpus"
- virtual_nodes_ram[$node]=${!virtual_custom_ram:-$virtual_default_ram}
- virtual_nodes_vcpus[$node]=${!virtual_custom_vcpus:-$virtual_default_vcpus}
+ virtual_nodes_data+="${node},"
+ virtual_nodes_data+="${!virtual_custom_ram:-$virtual_default_ram},"
+ virtual_nodes_data+="${!virtual_custom_vcpus:-$virtual_default_vcpus}|"
done
+virtual_nodes_data=${virtual_nodes_data%|}
# Expand reclass and virsh network templates
for tp in "${RECLASS_CLUSTER_DIR}/all-mcp-ocata-common/opnfv/"*.template \
@@ -392,12 +394,11 @@ elif [ ${USE_EXISTING_INFRA} -gt 0 ]; then
check_connection
else
generate_ssh_key
- prepare_vms virtual_nodes "${base_image}" "${STORAGE_DIR}"
- create_networks OPNFV_BRIDGES
- create_vms virtual_nodes virtual_nodes_ram virtual_nodes_vcpus \
- OPNFV_BRIDGES "${STORAGE_DIR}"
+ prepare_vms "${base_image}" "${STORAGE_DIR}" "${virtual_nodes[@]}"
+ create_networks "${OPNFV_BRIDGES[@]}"
+ create_vms "${STORAGE_DIR}" "${virtual_nodes_data}" "${OPNFV_BRIDGES[@]}"
update_mcpcontrol_network
- start_vms virtual_nodes
+ start_vms "${virtual_nodes[@]}"
check_connection
fi
if [ ${USE_EXISTING_INFRA} -lt 2 ]; then
diff --git a/mcp/scripts/lib.sh b/mcp/scripts/lib.sh
index a165bb367..8bdb5dd57 100644
--- a/mcp/scripts/lib.sh
+++ b/mcp/scripts/lib.sh
@@ -48,9 +48,9 @@ function cleanup_vms {
}
function prepare_vms {
- local -n vnodes=$1
- local base_image=$2
- local image_dir=$3
+ local base_image=$1; shift
+ local image_dir=$1; shift
+ local vnodes=("$@")
cleanup_vms
get_base_image "${base_image}" "${image_dir}"
@@ -68,7 +68,7 @@ function prepare_vms {
}
function create_networks {
- local -n vnode_networks=$1
+ local vnode_networks=("$@")
# create required networks, including constant "mcpcontrol"
# FIXME(alav): since we renamed "pxe" to "mcpcontrol", we need to make sure
# we delete the old "pxe" virtual network, or it would cause IP conflicts.
@@ -88,11 +88,9 @@ function create_networks {
}
function create_vms {
- local -n vnodes=$1
- local -n vnodes_ram=$2
- local -n vnodes_vcpus=$3
- local -n vnode_networks=$4
- local image_dir=$5
+ local image_dir=$1; shift
+ IFS='|' read -r -a vnodes <<< "$1"; shift
+ local vnode_networks=("$@")
# AArch64: prepare arch specific arguments
local virt_extra_args=""
@@ -102,10 +100,12 @@ function create_vms {
fi
# create vms with specified options
- for node in "${vnodes[@]}"; do
+ for serialized_vnode_data in "${vnodes[@]}"; do
+ IFS=',' read -r -a vnode_data <<< "${serialized_vnode_data}"
+
# prepare network args
net_args=" --network network=mcpcontrol,model=virtio"
- if [ "${node}" = "mas01" ]; then
+ if [ "${vnode_data[0]}" = "mas01" ]; then
# MaaS node's 3rd interface gets connected to PXE/Admin Bridge
vnode_networks[2]="${vnode_networks[0]}"
fi
@@ -114,13 +114,13 @@ function create_vms {
done
# shellcheck disable=SC2086
- virt-install --name "${node}" \
- --ram "${vnodes_ram[$node]}" --vcpus "${vnodes_vcpus[$node]}" \
+ virt-install --name "${vnode_data[0]}" \
+ --ram "${vnode_data[1]}" --vcpus "${vnode_data[2]}" \
--cpu host-passthrough --accelerate ${net_args} \
- --disk path="${image_dir}/mcp_${node}.qcow2",format=qcow2,bus=virtio,cache=none,io=native \
+ --disk path="${image_dir}/mcp_${vnode_data[0]}.qcow2",format=qcow2,bus=virtio,cache=none,io=native \
--os-type linux --os-variant none \
--boot hd --vnc --console pty --autostart --noreboot \
- --disk path="${image_dir}/mcp_${node}.iso",device=cdrom \
+ --disk path="${image_dir}/mcp_${vnode_data[0]}.iso",device=cdrom \
--noautoconsole \
${virt_extra_args}
done
@@ -139,7 +139,7 @@ function update_mcpcontrol_network {
}
function start_vms {
- local -n vnodes=$1
+ local vnodes=("$@")
# start vms
for node in "${vnodes[@]}"; do