--- - name: Create a test image file shell: mktemp register: tmp_file - name: Fill test image file to 1MB shell: truncate -s 1048576 {{ tmp_file.stdout }} - name: Create raw image (defaults) openstack.cloud.image: cloud: "{{ cloud }}" state: present name: ansible_image filename: "{{ tmp_file.stdout }}" disk_format: raw tags: - test - ansible register: image - name: Get details of created image openstack.cloud.image_info: cloud: "{{ cloud }}" image: ansible_image register: image_info_result - name: Verify image info assert: that: - image_info_result.openstack_images[0].name == "ansible_image" - image_info_result.openstack_images[0].tags | sort == ['test', 'ansible'] | sort - name: Delete raw image (defaults) openstack.cloud.image: cloud: "{{ cloud }}" state: absent name: ansible_image - name: Create raw image (complex) openstack.cloud.image: cloud: "{{ cloud }}" state: present name: ansible_image filename: "{{ tmp_file.stdout }}" disk_format: raw is_public: True min_disk: 10 min_ram: 1024 kernel: cirros-vmlinuz ramdisk: cirros-initrd properties: cpu_arch: x86_64 distro: ubuntu register: image - name: Delete raw image (complex) openstack.cloud.image: cloud: "{{ cloud }}" state: absent name: ansible_image - name: Try to get details of deleted image openstack.cloud.image_info: cloud: "{{ cloud }}" image: ansible_image register: deleted_image_info_result - name: Verify image is deleted assert: that: - not deleted_image_info_result.openstack_images - name: Create owner project openstack.cloud.project: cloud: "{{ cloud }}" state: present name: image_owner_project description: Project owning test image domain_id: default enabled: True register: owner_project - name: Create raw image (owner by project name) openstack.cloud.image: cloud: "{{ cloud }}" state: present name: ansible_image filename: "{{ tmp_file.stdout }}" disk_format: raw tags: - test - ansible project: image_owner_project register: image - name: Get details of created image (owner by project name) openstack.cloud.image_info: cloud: "{{ cloud }}" image: ansible_image register: image_info_result - name: Verify image owner (owner by project name) assert: that: - image_info_result.openstack_images[0].owner == owner_project.project.id - name: Delete raw image (owner by project name) openstack.cloud.image: cloud: "{{ cloud }}" state: absent name: ansible_image - name: Create raw image (owner by project name and domain name) openstack.cloud.image: cloud: "{{ cloud }}" state: present name: ansible_image filename: "{{ tmp_file.stdout }}" disk_format: raw tags: - test - ansible project: image_owner_project project_domain: default register: image - name: Get details of created image (owner by project name and domain name) openstack.cloud.image_info: cloud: "{{ cloud }}" image: ansible_image register: image_info_result - name: Verify image owner (owner by project name and domain name) assert: that: - image_info_result.openstack_images[0].owner == owner_project.project.id - name: Delete raw image (owner by project name and domain name) openstack.cloud.image: cloud: "{{ cloud }}" state: absent name: ansible_image - name: Delete owner project openstack.cloud.project: cloud: "{{ cloud }}" state: absent name: image_owner_project domain_id: default - name: Delete test image file file: name: "{{ tmp_file.stdout }}" state: absent