--- - name: Create volume openstack.cloud.volume: cloud: "{{ cloud }}" state: present size: 1 name: ansible_volume description: Test volume register: vol - assert: that: item in vol.volume loop: "{{ expected_fields }}" - name: Create volume from existing volume openstack.cloud.volume: cloud: "{{ cloud }}" state: present size: 1 volume: "{{ vol.volume.id }}" name: ansible_volume1 description: Test volume register: vol - name: Create volume snapshot openstack.cloud.volume_snapshot: cloud: "{{ cloud }}" state: present name: ansible_volume_snapshot volume: ansible_volume register: vol_snap - name: Get snapshot info openstack.cloud.volume_snapshot_info: cloud: "{{ cloud }}" name: ansible_volume_snapshot register: snap_info - name: Create volume from snapshot openstack.cloud.volume: cloud: "{{ cloud }}" state: present size: 1 snapshot: ansible_volume_snapshot name: ansible_volume2 description: Test volume register: vol - name: Create volume backup openstack.cloud.volume_backup: cloud: "{{ cloud }}" state: present name: ansible_volume_backup volume: ansible_volume register: vol_backup - name: Get backup info openstack.cloud.volume_backup_info: cloud: "{{ cloud }}" name: ansible_volume_backup register: backup_info - debug: var=vol - debug: var=vol_backup - debug: var=backup_info - debug: var=snap_info - name: Delete volume backup openstack.cloud.volume_backup: cloud: "{{ cloud }}" name: ansible_volume_backup wait: false state: absent - name: Delete volume snapshot openstack.cloud.volume_snapshot: cloud: "{{ cloud }}" name: ansible_volume_snapshot volume: ansible_volume state: absent - name: Delete volume openstack.cloud.volume: cloud: "{{ cloud }}" state: absent name: ansible_volume - name: Clean up openstack.cloud.volume: cloud: "{{ cloud }}" state: absent name: "{{ item }}" loop: - ansible_volume1 - ansible_volume2 - name: Test images block: - name: Ensure clean environment ansible.builtin.set_fact: tmp_file: !!null - name: Create a test image file ansible.builtin.tempfile: register: tmp_file - name: Fill test image file to 1MB community.general.filesize: path: '{{ tmp_file.path }}' size: 1M - name: Create test image openstack.cloud.image: cloud: "{{ cloud }}" state: present name: "{{ test_volume_image }}" filename: "{{ tmp_file.path }}" disk_format: raw tags: "{{ image_tags }}" - name: Create volume from image openstack.cloud.volume: cloud: "{{ cloud }}" state: present size: 1 image: "{{ test_volume_image }}" name: ansible_volume2 description: Test volume - name: Delete volume from image openstack.cloud.volume: cloud: "{{ cloud }}" name: ansible_volume2 state: absent - name: Create test shared image openstack.cloud.image: cloud: "{{ cloud }}" state: present name: "{{ image_name }}" filename: "{{ tmp_file.path }}" is_public: true disk_format: raw tags: "{{ image_tags }}" - name: Delete test shared image openstack.cloud.image: cloud: "{{ cloud }}" state: absent name: "{{ image_name }}" filename: "{{ tmp_file.path }}" is_public: true disk_format: raw tags: "{{ image_tags }}" always: - name: Remove temporary image file ansible.builtin.file: path: "{{ tmp_file.path }}" state: absent when: tmp_file is defined and 'path' in tmp_file - include_tasks: volume_info.yml