Make shutdown only on physical nodes 21/66421/2
authorMichael Polenchuk <mpolenchuk@mirantis.com>
Wed, 16 Jan 2019 10:03:48 +0000 (14:03 +0400)
committerMichael Polenchuk <mpolenchuk@mirantis.com>
Wed, 16 Jan 2019 10:29:59 +0000 (14:29 +0400)
Change-Id: If167e7a6bdcdccd6b6df43bd5cac54250abec61a
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
mcp/scripts/lib.sh
mcp/scripts/lib_jump_deploy.sh

index 79767f0..85360bf 100644 (file)
@@ -38,6 +38,7 @@ function wait_for {
 function cleanup_uefi {
   # Clean up Ubuntu boot entry if cfg01, kvm nodes online from previous deploy
   local cmd_str="ssh ${SSH_OPTS} ${SSH_SALT}"
+  local grain_virtual=$(salt -C 'I@nova:compute and *01*' grains.get virtual --out txt | cut -d ' ' -f2)
   ping -c 1 -w 1 "${SALT_MASTER}" || return 0
   [ ! "$(hostname)" = 'cfg01' ] || cmd_str='eval'
   # NOTE: Targeting nodes by hostname is fragile and should be refactored to
@@ -47,7 +48,10 @@ function cleanup_uefi {
     efibootmgr | grep -oP '(?<=Boot)[0-9]+(?=.*ubuntu)' | \
     xargs -I{} efibootmgr --delete-bootnum --bootnum {}; \
     rm -rf /boot/efi/*\"" || true
-  ${cmd_str} "sudo salt -C 'kvm* or cmp*' cmd.run 'shutdown now'" || true
+
+  if [ "${grain_virtual}" == physical ]; then
+    ${cmd_str} "sudo salt -C 'kvm* or cmp*' cmd.run 'shutdown now'" || true
+  fi
 }
 
 function get_nova_compute_pillar_data {
index d8b62fd..9c4d8fb 100644 (file)
@@ -194,7 +194,7 @@ function __apt_repos_pkgs_image {
 function __cleanup_vms {
   # clean up existing nodes
   for node in $(${VIRSH} list --name | grep -P '\w{3}\d{2}'); do
-    ${VIRSH} destroy "${node}"
+    ${VIRSH} destroy "${node}" 2>/dev/null || true
   done
   for node in $(${VIRSH} list --name --all | grep -P '\w{3}\d{2}'); do
     ${VIRSH} domblklist "${node}" | awk '/^.da/ {print $2}' | \