From 1654473a1040a2979a49480c8f0caf75eb37d8af Mon Sep 17 00:00:00 2001
From: Eesaan Atluri <atlurie@uab.edu>
Date: Fri, 1 Dec 2023 04:56:40 -0600
Subject: [PATCH] Rearrange the commands in the production-deploy job to a more
 appropriate order.

---
 .gitlab-ci.yml | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e18f4a2..16b64ce 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -126,18 +126,12 @@ production-deploy:
   stage: deploy
   tags: [build]
   script:
-    - export prod_instance_id=$(openstack floating ip show $prod_floating_ip -c port_details -f value | awk -F', ' '{print $2}' | awk -F"'" '{print $2}')
-    - export prod_volume=$(openstack server show $prod_instance_id -c volumes_attached -f value | awk -F"'" '{print $4}')
-    - echo "Detaching prod_volume_id=${prod_volume} from prod_instance_id=${prod_instance_id}"
     - |
       eval $(ssh-agent -s)
       chmod 400 "${SSH_PRIV_KEY}"
       ssh-add "${SSH_PRIV_KEY}"
       mkdir ~/.ssh
       chmod 700 ~/.ssh
-    - ssh -o StrictHostKeyChecking=no $SSH_USERNAME@$prod_floating_ip sudo systemctl stop mariadb
-    - ssh -o StrictHostKeyChecking=no $SSH_USERNAME@$prod_floating_ip sudo umount /var/lib/mysql && df -h
-    - openstack server remove volume $prod_instance_id $prod_volume
 
     - export instance_volume=$(openstack server show $instance_id -c volumes_attached -f value | awk -F"'" '{print $4}')
     - echo "Detaching instance_volume_id=${instance_volume} from new instance=${instance_id}"
@@ -145,8 +139,15 @@ production-deploy:
     - ssh -o StrictHostKeyChecking=no $SSH_USERNAME@$instance_floating_ip sudo umount /var/lib/mysql && df -h
     - openstack server remove volume $instance_id $instance_volume
 
-    - echo "Attach prod volume $xdmod-prod-vol-$BUILD_DATE to newly deployed instance $instance_id"
+    - export prod_instance_id=$(openstack floating ip show $prod_floating_ip -c port_details -f value | awk -F', ' '{print $2}' | awk -F"'" '{print $2}')
+    - export prod_volume=$(openstack server show $prod_instance_id -c volumes_attached -f value | awk -F"'" '{print $4}')
+    - echo "Detaching prod_volume=${prod_volume} from prod_instance_id=${prod_instance_id} and creating a snapshot"
+    - ssh -o StrictHostKeyChecking=no $SSH_USERNAME@$prod_floating_ip sudo systemctl stop mariadb
+    - ssh -o StrictHostKeyChecking=no $SSH_USERNAME@$prod_floating_ip sudo umount /var/lib/mysql && df -h
+    - openstack server remove volume $prod_instance_id $prod_volume
     - openstack volume snapshot create --volume $prod_volume xdmod-prod-data-vol-snapshot-$BUILD_DATE
+
+    - echo "Attach copy of prod volume $xdmod-prod-vol-$BUILD_DATE to newly deployed instance $instance_id"
     - openstack volume create --snapshot xdmod-prod-data-vol-snapshot-$BUILD_DATE --size 150 xdmod-prod-vol-$BUILD_DATE
     - openstack server add volume $instance_id xdmod-prod-vol-$BUILD_DATE --device /dev/vdb
 
@@ -155,6 +156,9 @@ production-deploy:
     - openstack server remove floating ip $instance_id $instance_floating_ip
     - openstack server add floating ip $instance_id $prod_floating_ip
 
+    - echo "Attach copy of prod volume $xdmod-prod-vol-$BUILD_DATE to newly deployed instance $instance_id"
+    - openstack volume create --snapshot xdmod-prod-data-vol-snapshot-$BUILD_DATE --size 150 xdmod-prod-vol-$BUILD_DATE
+    - openstack server add volume $instance_id xdmod-prod-vol-$BUILD_DATE --device /dev/vdb
     - ssh -o StrictHostKeyChecking=no $SSH_USERNAME@$prod_floating_ip sudo mount /dev/vdb1 /var/lib/mysql
     - ssh -o StrictHostKeyChecking=no $SSH_USERNAME@$prod_floating_ip sudo systemctl start mariadb
   needs:
-- 
GitLab