Refactor jobs

Change-Id: Id333b722cd6e041dc0be344115d168d5c22f5457
diff --git a/playbooks/setup-openstack-iscsi-multipath-storpool/pre.yaml b/playbooks/setup-openstack-iscsi-multipath-storpool/pre.yaml
index 28c698d..42554d1 100644
--- a/playbooks/setup-openstack-iscsi-multipath-storpool/pre.yaml
+++ b/playbooks/setup-openstack-iscsi-multipath-storpool/pre.yaml
@@ -305,31 +305,61 @@
     - set_fact:
         storpool_node_hostname: "{{ hostvars['lab-sp-a1']['ansible_hostname'] }}"
 
-    - set_fact:
-        storpool_conf: "{{ hostvars['localhost'].STORPOOL_CONF.v }}"
-      no_log: true
+    - name: Install StorPool
+      block:
 
-    - name: Provision the StorPool Template
-      no_log: true
-      ansible.builtin.copy:
-        content: "{{ storpool_conf }}"
-        dest: /home/ubuntu/ansible/storpool.conf
+        - set_fact:
+            storpool_conf: "{{ hostvars['localhost'].STORPOOL_CONF.v }}"
+            storpool_deploy: "{{ hostvars['localhost'].STORPOOL_DEPLOY.v }}"
+            storpool_deploy_info_conf: "{{ hostvars['localhost'].STORPOOL_DEPLOY_INFO_CONF.v }}"
+          no_log: true
 
-    - name: Populate ansible.cfg
-      ansible.builtin.lineinfile:
-        line: "{{ item }}"
-        path: /home/ubuntu/ansible/ansible.cfg
-        insertafter: EOF
-        create: yes
-      loop:
-        - "[defaults]"
-        - "timeout = 30"
+        - name: Provision the StorPool Template
+          no_log: true
+          ansible.builtin.copy:
+            content: "{{ storpool_conf }}"
+            dest: /home/ubuntu/ansible/storpool.conf
 
-    - name: Deploy StorPool
-      ansible.builtin.command:
-        argv: ["ansible-playbook", "playbook.yml", "-i", "inventory.yaml", "--skip-tags", "perform-tests"]
-      args:
-        chdir: "/home/ubuntu/ansible"
+        - name: Provision the StorPool Deployment
+          no_log: true
+          ansible.builtin.copy:
+            content: "{{ storpool_deploy }}"
+            dest: /home/ubuntu/ansible/storpool-deploy.patch
+
+        - name: Provision the StorPool Deployment Info
+          no_log: true
+          ansible.builtin.copy:
+            content: "{{ storpool_deploy_info_conf }}"
+            dest: /home/ubuntu/ansible/storpool_deploy_info.conf
+
+        - name: Populate ansible.cfg
+          ansible.builtin.lineinfile:
+            line: "{{ item }}"
+            path: /home/ubuntu/ansible/ansible.cfg
+            insertafter: EOF
+            create: yes
+          loop:
+            - "[defaults]"
+            - "timeout = 30"
+
+        - name: Add the StorPool Deployment
+          ansible.builtin.command:
+            argv: ["git", "am", "storpool-deploy.patch"]
+          args:
+            chdir: "/home/ubuntu/ansible"
+
+        - name: Deploy StorPool
+          ansible.builtin.command:
+            argv: ["ansible-playbook", "playbook.yml", "-i", "inventory.yaml", "--skip-tags", "perform-tests"]
+          args:
+            chdir: "/home/ubuntu/ansible"
+
+      always:
+
+        - name: Deprovision the StorPool deployment info locally
+          ansible.builtin.file:
+            path: /home/ubuntu/ansible/storpool_deploy_info.conf
+            state: absent
 
 - hosts: lab-sp-a1
   vars_files:
diff --git a/zuul.d/sp-cinder-secrets.yaml b/zuul.d/sp-cinder-secrets.yaml
index 4072c40..d65eef6 100644
--- a/zuul.d/sp-cinder-secrets.yaml
+++ b/zuul.d/sp-cinder-secrets.yaml
@@ -42,26 +42,96 @@
     name: STORPOOL_CONF
     data:
       v: !encrypted/pkcs1-oaep
-        - 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
+        - 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
+
+- secret:
+    name: STORPOOL_DEPLOY
+    data:
+      v: !encrypted/pkcs1-oaep
+        - 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
+
+- secret:
+    name: STORPOOL_DEPLOY_INFO_CONF
+    data:
+      v: !encrypted/pkcs1-oaep
+        - oacqwZ/Hzz0tu5HqFodWvgeKAYgFIj4oaeTohaVUSJbPXevQqefS9PqdGtPsVhyQu4Ipy
+          fjaNAim+ROlDRU+4pPg8Z2xHj4+bawfmwRLzzGHEHGyzP6FdtGNnKmE3+vaopmbmXVasE
+          iIm4dgeQJNCibEaZ8oppts7I6ykn6L9qQe8O6O1GBmHPGyGmn3qeGgGzRlqcyvi53xn4e
+          DwEfJurg1UPimn+dbj5GpOAyJ41RG9aBegU8EVqXxppStLMs2a4BddCcOYjMn5cY3/UQw
+          LZmgwL9sPraG2G4k3DDXP8EfgrhRtduY9piVZWMz4mpkxt9m6Zycht6vThu55QRGbmaxx
+          fE9FEK0xPgkdIOpzurVBlus0ZQdvY0IaCDLORvXD5K2svzVzof+19q/EDQaHj2I81951e
+          r5f62kUEyrwmayTnBB+dnJh0MW4WU33yU7p3rGFXoeeAEbxOlVwk7ZDCWtXKd59r7tXEj
+          ZXsH/0XGMWgEDGvzFlCMgmTUuxMdpWrrh6HEWdmnxamJ0CqXju9k37Ns4GqMKHQzttjRR
+          1UPpoOydZb6x6apELDERhcGuvtL2HhvM6aTDi/VaX/7OKM1hZJ3j2hmYZ7vhTolAY2wun
+          XlWf/cPZVC5YLufuTyxuH6VEKbFmY0TMP3fE5gVWzxdHmEkJcuAAPFGDZPFomQ=
 
 - secret:
     name: STORPOOL_CONF_ISCSI_NODE
diff --git a/zuul.d/sp-cinder.yaml b/zuul.d/sp-cinder.yaml
index 829370b..5e7872b 100644
--- a/zuul.d/sp-cinder.yaml
+++ b/zuul.d/sp-cinder.yaml
@@ -153,6 +153,10 @@
         secret: STORPOOL_NETPLAN_SERVICE
       - name: STORPOOL_CONF
         secret: STORPOOL_CONF
+      - name: STORPOOL_DEPLOY
+        secret: STORPOOL_DEPLOY
+      - name: STORPOOL_DEPLOY_INFO_CONF
+        secret: STORPOOL_DEPLOY_INFO_CONF
       - name: STORPOOL_CONF_ISCSI_NODE
         secret: STORPOOL_CONF_ISCSI_NODE
       - name: ISCSI_NODE_SYSTEMD_NETWORKD