From 0a371445ebd795470a234e19cfb2536701f71814 Mon Sep 17 00:00:00 2001 From: Dmitriy Rabotyagov Date: Tue, 25 Jul 2023 12:49:28 +0200 Subject: [PATCH] Image filters should be dict not set At the moment we generate a set as a filter for image checksums which lead to AttributeError in SDK: 'set' object has no attribute 'keys' With that we ensure that supllying checksum does not cause module crash. Change-Id: I490f51950592f62c9ad81806593340779bf6dbdb --- ci/roles/image/tasks/main.yml | 8 ++++++++ plugins/modules/image.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ci/roles/image/tasks/main.yml b/ci/roles/image/tasks/main.yml index 886d495c..b69210bf 100644 --- a/ci/roles/image/tasks/main.yml +++ b/ci/roles/image/tasks/main.yml @@ -24,6 +24,13 @@ path: '{{ tmp_file.path }}' size: 1M + - name: Calculating file checksum + ansible.builtin.stat: + path: "{{ tmp_file.path }}" + checksum_algorithm: sha512 + get_checksum: true + register: image_details + - name: Ensure mock kernel and ramdisk images (defaults) openstack.cloud.image: cloud: "{{ cloud }}" @@ -42,6 +49,7 @@ name: ansible_image filename: "{{ tmp_file.path }}" is_protected: true + checksum: "{{ image_details.stat.checksum }}" disk_format: raw tags: - test diff --git a/plugins/modules/image.py b/plugins/modules/image.py index 449e7fa7..48527de1 100644 --- a/plugins/modules/image.py +++ b/plugins/modules/image.py @@ -485,7 +485,7 @@ class ImageModule(OpenStackModule): if image_name_or_id: image = self.conn.get_image( image_name_or_id, - filters={(k, self.params[k]) + filters={k: self.params[k] for k in ['checksum'] if self.params[k] is not None}) changed = False