From 444f75b5f64988ef89f595e326821d3db09ae821 Mon Sep 17 00:00:00 2001 From: Vladimir Kozhukalov Date: Thu, 13 Feb 2025 01:51:20 -0600 Subject: [PATCH] [remove-registry-tag] Allow using in a loop The role remove-registry-tag can not be used within ansible loop because it sets the remove_registry_tag_api_url variable if it is not defined and then this variabled is never redefined during second and later iterations of the loop. Change-Id: I1880efc0d7d94ade7b529b1462fe15e8a58bdfc4 --- roles/remove-registry-tag/tasks/docker.yaml | 14 +++++++++----- roles/remove-registry-tag/tasks/quay.yaml | 12 ++++++++---- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/roles/remove-registry-tag/tasks/docker.yaml b/roles/remove-registry-tag/tasks/docker.yaml index 95ade37c1..26578aaa1 100644 --- a/roles/remove-registry-tag/tasks/docker.yaml +++ b/roles/remove-registry-tag/tasks/docker.yaml @@ -6,9 +6,13 @@ (container_registry_credentials[_registry].password is defined) - name: Set API base - when: remove_registry_tag_api_url is not defined set_fact: - remove_registry_tag_api_url: 'https://hub.docker.com/v2' + _remove_registry_tag_api_url: 'https://hub.docker.com/v2' + +- name: Override API base + when: remove_registry_tag_api_url is defined + set_fact: + _remove_registry_tag_api_url: '{{ remove_registry_tag_api_url }}' - name: Delete single tag when: remove_registry_tag_tag is defined @@ -25,7 +29,7 @@ - name: Get project tags uri: - url: '{{ remove_registry_tag_api_url }}/repositories/{{ _repopath }}/tags?page_size=1000' + url: '{{ _remove_registry_tag_api_url }}/repositories/{{ _repopath }}/tags?page_size=1000' status_code: 200 register: _tags @@ -46,7 +50,7 @@ - name: Get dockerhub JWT token no_log: true uri: - url: "{{ remove_registry_tag_api_url }}/users/login/" + url: "{{ _remove_registry_tag_api_url }}/users/login/" body_format: json body: username: "{{ container_registry_credentials[_registry].username }}" @@ -59,7 +63,7 @@ - name: Delete tag no_log: true uri: - url: '{{ remove_registry_tag_api_url }}/repositories/{{ _repopath }}/tags/{{ zj_docker_tag }}' + url: '{{ _remove_registry_tag_api_url }}/repositories/{{ _repopath }}/tags/{{ zj_docker_tag }}' method: DELETE status_code: [200, 204] headers: diff --git a/roles/remove-registry-tag/tasks/quay.yaml b/roles/remove-registry-tag/tasks/quay.yaml index 7306ef641..97884dfec 100644 --- a/roles/remove-registry-tag/tasks/quay.yaml +++ b/roles/remove-registry-tag/tasks/quay.yaml @@ -4,9 +4,13 @@ no_log: true - name: Set API base - when: remove_registry_tag_api_url is not defined set_fact: - remove_registry_tag_api_url: 'https://{{ _registry }}/api/v1' + _remove_registry_tag_api_url: 'https://{{ _registry }}/api/v1' + +- name: Override API base + when: remove_registry_tag_api_url is defined + set_fact: + _remove_registry_tag_api_url: '{{ remove_registry_tag_api_url }}' - name: Delete single tag when: remove_registry_tag_tag is defined @@ -23,7 +27,7 @@ - name: Get project tags uri: - url: '{{ remove_registry_tag_api_url }}/repository/{{ _repopath }}/tag/' + url: '{{ _remove_registry_tag_api_url }}/repository/{{ _repopath }}/tag/' status_code: 200 register: _tags @@ -45,7 +49,7 @@ - name: Delete tag no_log: true uri: - url: '{{ remove_registry_tag_api_url }}/repository/{{ _repopath }}/tag/{{ zj_quay_tag }}' + url: '{{ _remove_registry_tag_api_url }}/repository/{{ _repopath }}/tag/{{ zj_quay_tag }}' method: DELETE status_code: [200, 204] headers: