mirror of
https://opendev.org/openstack/ansible-collections-openstack.git
synced 2026-04-19 07:11:34 +00:00
318 lines
7.3 KiB
YAML
318 lines
7.3 KiB
YAML
---
|
|
- name: Ensure image does not exist before tests
|
|
openstack.cloud.image:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
name: ansible_image
|
|
|
|
- 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: ensure mock kernel and ramdisk images (defaults)
|
|
openstack.cloud.image:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: "{{ item }}"
|
|
filename: "{{ tmp_file.stdout }}"
|
|
disk_format: raw
|
|
loop:
|
|
- cirros-vmlinuz
|
|
- cirros-initrd
|
|
|
|
- name: Create raw image (defaults)
|
|
openstack.cloud.image:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: ansible_image
|
|
filename: "{{ tmp_file.stdout }}"
|
|
is_protected: true
|
|
disk_format: raw
|
|
tags:
|
|
- test
|
|
- ansible
|
|
register: returned_image
|
|
|
|
- debug:
|
|
var: returned_image
|
|
|
|
- name: Assert changed
|
|
assert:
|
|
that: returned_image is changed
|
|
|
|
- name: Assert fields
|
|
assert:
|
|
that:
|
|
- item in returned_image.image
|
|
loop: "{{ expected_fields }}"
|
|
|
|
- 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.images[0].name == "ansible_image"
|
|
- image_info_result.images[0].tags | sort == ['test', 'ansible'] | sort
|
|
|
|
- name: Create raw image again (defaults)
|
|
openstack.cloud.image:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: ansible_image
|
|
filename: "{{ tmp_file.stdout }}"
|
|
is_protected: true
|
|
disk_format: raw
|
|
tags:
|
|
- test
|
|
- ansible
|
|
register: returned_image
|
|
|
|
- name: Assert not changed
|
|
assert:
|
|
that: returned_image is not changed
|
|
|
|
- name: Assert fields
|
|
assert:
|
|
that:
|
|
- item in returned_image.image
|
|
loop: "{{ expected_fields }}"
|
|
|
|
- name: Update is_protected on raw image (defaults)
|
|
openstack.cloud.image:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: ansible_image
|
|
is_protected: false
|
|
register: returned_image
|
|
|
|
- name: Assert changed
|
|
assert:
|
|
that:
|
|
- returned_image is changed
|
|
- returned_image.image.is_protected == false
|
|
|
|
- name: Assert changed
|
|
assert:
|
|
that:
|
|
- returned_image is changed
|
|
|
|
- name: Update visibility on raw image (defaults)
|
|
openstack.cloud.image:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: ansible_image
|
|
is_public: false
|
|
register: returned_image
|
|
|
|
- name: Assert changed
|
|
assert:
|
|
that:
|
|
- returned_image.image.visibility == 'private'
|
|
|
|
- name: Update again visibility on raw image (defaults)
|
|
openstack.cloud.image:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: ansible_image
|
|
is_public: true
|
|
register: returned_image
|
|
|
|
- name: Assert changed
|
|
assert:
|
|
that:
|
|
- returned_image is changed
|
|
- returned_image.image.visibility == 'public'
|
|
|
|
- name: Define visibility on raw image (defaults)
|
|
openstack.cloud.image:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: ansible_image
|
|
visibility: shared
|
|
register: returned_image
|
|
|
|
- name: Assert changed
|
|
assert:
|
|
that:
|
|
- returned_image is changed
|
|
- returned_image.image.visibility == 'shared'
|
|
|
|
- name: Rename raw image (defaults)
|
|
openstack.cloud.image:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
id: "{{ returned_image.id }}"
|
|
name: 'ansible_image-changed'
|
|
register: returned_image
|
|
|
|
- name: Assert changed
|
|
assert:
|
|
that:
|
|
- returned_image is changed
|
|
- returned_image.image.name == 'ansible_image-changed'
|
|
|
|
- name: Rename back raw image (defaults)
|
|
openstack.cloud.image:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
id: "{{ returned_image.id }}"
|
|
name: ansible_image
|
|
register: returned_image
|
|
|
|
- name: Delete raw image (defaults)
|
|
openstack.cloud.image:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
name: ansible_image
|
|
register: returned_image
|
|
|
|
- name: assert image changed
|
|
assert:
|
|
that: returned_image is changed
|
|
|
|
- name: Delete raw image again (defaults)
|
|
openstack.cloud.image:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
name: ansible_image
|
|
register: returned_image
|
|
|
|
- name: assert image not changed
|
|
assert:
|
|
that: returned_image is not changed
|
|
|
|
- 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
|
|
# TODO(rcastillo): upload cirros-vmlinuz, cirros-initrd in test setup
|
|
kernel: cirros-vmlinuz
|
|
ramdisk: cirros-initrd
|
|
properties:
|
|
cpu_arch: x86_64
|
|
distro: ubuntu
|
|
register: returned_image
|
|
|
|
- name: Assert visibility
|
|
assert:
|
|
that: returned_image.image.visibility == 'public'
|
|
|
|
- name: Assert fields
|
|
assert:
|
|
that:
|
|
- item in returned_image.image
|
|
loop: "{{ expected_fields }}"
|
|
|
|
- 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.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: returned_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.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: returned_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.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
|