lib.sh: base image: Prevent using incomplete img 67/50267/1
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Mon, 8 Jan 2018 16:57:56 +0000 (17:57 +0100)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Mon, 8 Jan 2018 22:51:29 +0000 (22:51 +0000)
In case the previous deploy attempt already copied the base image
as the VCP image in order to perform offline operations and failed,
leaving an incomplete image in place, current code might try to use
it instead of building it from scratch.

Use the hash-agnostic link names as checkpoints for successful image
handling.

Change-Id: I1e99e515e18ba1dec534c520811c127b2b528afe
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 5878c5c0c2ca8c78e9a5124452eefe8290ab63cd)

mcp/scripts/lib.sh

index c34b762..29c27d9 100644 (file)
@@ -264,7 +264,7 @@ function prepare_vms {
 
   echo "[INFO] Lookup cache / build patched base image for fingerprint: ${_h}"
   _tmp="${image%.*}.${_h}.img"
-  if [ -f "$(readlink -f "${image_dir}/${_tmp}")" ]; then
+  if [ "${image_dir}/${_tmp}" -ef "${image_dir}/${image}" ]; then
     echo "[INFO] Patched base image found"
   else
     rm -f "${image_dir}/${image%.*}"*
@@ -279,8 +279,8 @@ function prepare_vms {
       echo "[INFO] No patching required, using vanilla base image"
       ln -sf "${image_dir}/${_o}" "${image_dir}/${_tmp}"
     fi
+    ln -sf "${image_dir}/${_tmp}" "${image_dir}/${image}"
   fi
-  ln -sf "${image_dir}/${_tmp}" "${image_dir}/${image}"
 
   envsubst < user-data.template > user-data.sh # CWD should be <mcp/scripts>
 
@@ -296,7 +296,7 @@ function prepare_vms {
   if [[ ! "${repos_pkgs_str}" =~ \^{3}$ ]] && [ -n "${repos_pkgs[*]:4}" ]; then
     echo "[INFO] Lookup cache / build patched VCP image for md5sum: ${_h}"
     _tmp="${vcp_image%.*}.${_h}.img"
-    if [ -f "$(readlink -f "${image_dir}/${_tmp}")" ]; then
+    if [ "${image_dir}/${_tmp}" -ef "${image_dir}/${vcp_image}" ]; then
       echo "[INFO] Patched VCP image found"
     else
       echo "[INFO] Patching VCP image ..."
@@ -305,8 +305,8 @@ function prepare_vms {
       mount_image "${_tmp}" "${image_dir}"
       apt_repos_pkgs_image "${repos_pkgs[@]:4:4}"
       cleanup_mounts
+      ln -sf "${image_dir}/${_tmp}" "${image_dir}/${vcp_image}"
     fi
-    ln -sf "${image_dir}/${_tmp}" "${image_dir}/${vcp_image}"
   fi
 }