Rectify ODL repository apt key
[fuel.git] / mcp / scripts / salt.sh
index 631cc4a..1975f9e 100755 (executable)
 
 CI_DEBUG=${CI_DEBUG:-0}; [[ "${CI_DEBUG}" =~ (false|0) ]] || set -x
 F_GIT_ROOT=$(git rev-parse --show-toplevel)
-F_GIT_DIR=$(git -C "${F_GIT_ROOT}/mcp" rev-parse --git-dir)
+F_GIT_DIR=$(cd "${F_GIT_ROOT}/mcp" && git rev-parse --git-dir)
 F_GIT_SUBD=${F_GIT_ROOT#${F_GIT_DIR%%/.git*}}
 OPNFV_TMP_DIR="/home/${SALT_MASTER_USER}/opnfv"
 OPNFV_GIT_DIR="/root/opnfv"
 OPNFV_FUEL_DIR="/root/fuel"
-OPNFV_RDIR="reclass/classes/cluster/all-mcp-ocata-common"
+OPNFV_RDIR="reclass/classes/cluster/all-mcp-arch-common"
+OPNFV_VCP_IMG="mcp/scripts/base_image_opnfv_fuel_vcp.img"
+OPNFV_VCP_DIR="/srv/salt/env/prd/salt/files/control/images"
 LOCAL_GIT_DIR="${F_GIT_ROOT%${F_GIT_SUBD}}"
 LOCAL_PDF_RECLASS=$1
 NODE_MASK='*'
@@ -34,6 +36,11 @@ if [ -n "${LOCAL_PDF_RECLASS}" ] && [ -f "${LOCAL_PDF_RECLASS}" ]; then
   rsync -e "ssh ${SSH_OPTS}" "${LOCAL_PDF_RECLASS}" \
     "${remote_tmp}${F_GIT_SUBD}/mcp/${OPNFV_RDIR}/opnfv/"
 fi
+local_vcp_img=$(dirname "${LOCAL_PDF_RECLASS}")/$(basename "${OPNFV_VCP_IMG}")
+if [ -e "${local_vcp_img}" ]; then
+  rsync -L -e "ssh ${SSH_OPTS}" "${local_vcp_img}" \
+    "${remote_tmp}${F_GIT_SUBD}/${OPNFV_VCP_IMG}"
+fi
 
 # ssh to cfg01
 # shellcheck disable=SC2086,2087
@@ -47,7 +54,7 @@ ssh ${SSH_OPTS} "${SSH_SALT}" bash -s -e << SALT_INSTALL_END
   echo ' done'
 
   mkdir -p /srv/salt /usr/share/salt-formulas/reclass
-  rm -rf ${OPNFV_GIT_DIR}
+  rm -rf ${OPNFV_GIT_DIR} ${OPNFV_FUEL_DIR}
   mv ${OPNFV_TMP_DIR} ${OPNFV_GIT_DIR} && chown -R root.root ${OPNFV_GIT_DIR}
   find ${OPNFV_GIT_DIR} -name '.git' -type f | while read f_git; do
     sed -i 's@${LOCAL_GIT_DIR}@${OPNFV_GIT_DIR}@g' \$f_git
@@ -65,7 +72,7 @@ ssh ${SSH_OPTS} "${SSH_SALT}" bash -s -e << SALT_INSTALL_END
   export DEBIAN_FRONTEND=noninteractive
   OLD_DOMAIN=\$(grep -Pzo "id: cfg01\.\K(\S*)" /etc/salt/minion.d/minion.conf) || true
   BOOTSTRAP_SALTSTACK_OPTS=" -r -dX stable 2016.11 " \
-    MASTER_HOSTNAME=cfg01.${CLUSTER_DOMAIN} DISTRIB_REVISION=nightly \
+    MASTER_HOSTNAME=cfg01.${CLUSTER_DOMAIN} DISTRIB_REVISION=stable \
       EXTRA_FORMULAS="nfs" \
         ./salt-master-init.sh
   salt-key -Ay
@@ -74,7 +81,8 @@ ssh ${SSH_OPTS} "${SSH_SALT}" bash -s -e << SALT_INSTALL_END
   cd ${OPNFV_FUEL_DIR}/mcp/patches && ./patch.sh patches.list formulas
   cd ${OPNFV_FUEL_DIR}/mcp/patches && ./patch.sh patches.list reclass
 
-  salt-call state.apply salt
+  source ${OPNFV_FUEL_DIR}/mcp/scripts/lib.sh
+  wait_for 3.0 "salt-call state.apply salt"
 
   # In case scenario changed (and implicitly domain name), re-register minions
   if [ -n "\${OLD_DOMAIN}" ] && [ "\${OLD_DOMAIN}" != "${CLUSTER_DOMAIN}" ]; then
@@ -87,12 +95,20 @@ ssh ${SSH_OPTS} "${SSH_SALT}" bash -s -e << SALT_INSTALL_END
 
   # Init specific to VMs on FN (all for virtual, cfg|mas for baremetal)
   salt -C "${NODE_MASK} or cfg01*" saltutil.sync_all
-  salt -C "${NODE_MASK} or cfg01*" state.apply salt | \
-    grep -Fq 'No response' && salt -C "${NODE_MASK} or cfg01*" state.apply salt
+  wait_for 3.0 'salt -C "${NODE_MASK} or cfg01*" state.apply salt'
+  wait_for 3.0 'salt -C "cfg01*" state.apply linux'
 
-  salt -C 'I@salt:master' state.sls linux
   salt -C "${NODE_MASK} and not cfg01*" state.sls linux || true
   salt -C "${NODE_MASK} and not cfg01*" pkg.upgrade refresh=False
 
   salt -C "${NODE_MASK} or cfg01*" state.sls ntp
+
+  if [ -f "${OPNFV_FUEL_DIR}/${OPNFV_VCP_IMG}" ]; then
+    mkdir -p "${OPNFV_VCP_DIR}"
+    mv "${OPNFV_FUEL_DIR}/${OPNFV_VCP_IMG}" "${OPNFV_VCP_DIR}/"
+  fi
+
+  # symlink manually until package with required commit is available
+  cd /usr/share/salt-formulas/env/aodh/files
+  ln -sf ocata pike
 SALT_INSTALL_END