iscsi: fetch right repo from shaman
authorGuillaume Abrioux <gabrioux@redhat.com>
Tue, 23 Mar 2021 10:25:51 +0000 (11:25 +0100)
committerGuillaume Abrioux <gabrioux@redhat.com>
Tue, 23 Mar 2021 18:58:27 +0000 (19:58 +0100)
due to recent changes in shaman, we must fetch the right repo by
filtering on the desired architecture.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
roles/ceph-iscsi-gw/tasks/non-container/prerequisites.yml

index d1773ca07a19cdf75973b81a673a1b8803b0b886..b19dc7320b3d030d9fb7fd91f468645cf061268c 100644 (file)
@@ -2,13 +2,11 @@
 - name: red hat based systems tasks
   when: ansible_facts['os_family'] == 'RedHat'
   block:
-    - name: set_fact common pkgs and repos
+    - name: set_fact common_pkgs
       set_fact:
         common_pkgs:
           - tcmu-runner
           - targetcli
-        common_repos:
-          - tcmu-runner
 
     - name: set_fact base iscsi pkgs if new style ceph-iscsi
       set_fact:
         - ceph_repository in ['dev', 'community']
         - ceph_iscsi_config_dev | bool
       block:
-        - name: ceph-iscsi dependency repositories
-          get_url:
-            url: "https://shaman.ceph.com/api/repos/{{ item }}/master/latest/{{ ansible_facts['distribution'] | lower }}/{{ ansible_facts['distribution_major_version'] }}/repo"
-            dest: '/etc/yum.repos.d/{{ item }}-dev.repo'
-            force: true
-          register: result
-          until: result is succeeded
-          with_items: "{{ common_repos }}"
+        - name: get latest available build for tcmu-runner
+          uri:
+            url: "https://shaman.ceph.com/api/search/?status=ready&project=tcmu-runner&flavor=default&distros=centos/{{ ansible_facts['distribution_major_version'] }}/{{ ansible_facts['architecture'] }}&ref={{ ceph_dev_branch }}&sha1={{ ceph_dev_sha1 }}"
+            return_content: yes
+          run_once: true
+          register: latest_build_tcmu_runner
 
-        - name: ceph-iscsi development repository
-          get_url:
-            url: "https://shaman.ceph.com/api/repos/{{ item }}/master/latest/{{ ansible_facts['distribution'] | lower }}/{{ ansible_facts['distribution_major_version'] }}/repo"
-            dest: '/etc/yum.repos.d/{{ item }}-dev.repo'
-            force: true
-          register: result
-          until: result is succeeded
-          with_items: '{{ iscsi_base }}'
-          when: ceph_repository == 'dev'
+        - name: fetch ceph red hat development repository for tcmu-runner
+          uri:
+            # Use the centos repo since we don't currently have a dedicated red hat repo
+            url: "{{ (latest_build_tcmu_runner.content | from_json)[0]['chacra_url'] }}repo"
+            return_content: yes
+          register: ceph_dev_yum_repo_tcmu_runner
+
+        - name: configure ceph red hat development repository for tcmu-runner
+          copy:
+            content: "{{ ceph_dev_yum_repo_tcmu_runner.content }}"
+            dest: '/etc/yum.repos.d/tcmu-runner-dev.repo'
+            owner: root
+            group: root
+            backup: yes
+
+        - name: get latest available build for ceph-iscsi
+          uri:
+            url: "https://shaman.ceph.com/api/search/?status=ready&project={{ item }}&flavor=default&distros=centos/{{ ansible_facts['distribution_major_version'] }}/noarch&ref={{ ceph_dev_branch }}&sha1={{ ceph_dev_sha1 }}"
+            return_content: yes
+          run_once: true
+          register: latest_build_ceph_iscsi
+          with_items: "{{ iscsi_base }}"
+
+        - name: fetch ceph red hat development repository for ceph-iscsi
+          uri:
+            # Use the centos repo since we don't currently have a dedicated red hat repo
+            url: "{{ (item.content | from_json)[0]['chacra_url'] }}repo"
+            return_content: yes
+          register: ceph_dev_yum_repo_ceph_iscsi
+          with_items: "{{ latest_build_ceph_iscsi.results }}"
+
+        - name: configure ceph red hat development repository for tcmu-runner
+          copy:
+            content: "{{ item.content }}"
+            dest: '/etc/yum.repos.d/{{ item.item.item }}-dev.repo'
+            owner: root
+            group: root
+            backup: yes
+          with_items: '{{ ceph_dev_yum_repo_ceph_iscsi.results }}'
 
         - name: ceph-iscsi stable repository
           get_url: