Files
ansible-collections-openstack/ci/roles/server_volume/tasks/main.yml
Jakob Meng b6b5f63877 Do not hardcode image name and properly delete mock images in CI tests
Change-Id: I2962dd1d1c27989cbd135b051cfb3e9f8c9e3823
2023-02-21 13:06:44 +01:00

103 lines
2.3 KiB
YAML

---
- name: List all images
openstack.cloud.image_info:
cloud: "{{ cloud }}"
register: images
- name: Identify CirrOS image name
set_fact:
image_name: "{{ images.images|community.general.json_query(query)|first }}"
vars:
query: "[?starts_with(name, 'cirros')].name"
- name: Create server
openstack.cloud.server:
cloud: "{{ cloud }}"
state: present
name: "{{ server_name }}"
image: "{{ image_name }}"
flavor: "{{ flavor_name }}"
network: "{{ server_network }}"
auto_ip: false
wait: true
register: server
- name: Create volume
openstack.cloud.volume:
cloud: "{{ cloud }}"
state: present
size: 1
name: ansible_volume
wait: true
register: volume
- name: Attach volume to server
openstack.cloud.server_volume:
cloud: "{{ cloud }}"
server: "{{ server.server.id }}"
volume: "{{ volume.volume.id }}"
wait: true
register: server_volume
- name: Assert changed
assert:
that: server_volume is changed
- name: Assert return values of server_volume module
assert:
that:
# allow new fields to be introduced but prevent fields from being removed
- expected_fields|difference(server_volume.volume.keys())|length == 0
- name: Attach volume to server again
openstack.cloud.server_volume:
cloud: "{{ cloud }}"
server: "{{ server.server.id }}"
volume: "{{ volume.volume.id }}"
wait: true
register: server_volume
- name: Assert not changed
assert:
that: server_volume is not changed
- name: Detach volume to server
openstack.cloud.server_volume:
cloud: "{{ cloud }}"
state: absent
server: "{{ server.server.id }}"
volume: "{{ volume.volume.id }}"
wait: true
register: server_volume
- name: Assert changed
assert:
that: server_volume is changed
- name: Detach volume to server again
openstack.cloud.server_volume:
cloud: "{{ cloud }}"
state: absent
server: "{{ server.server.id }}"
volume: "{{ volume.volume.id }}"
wait: true
register: server_volume
- name: Assert not changed
assert:
that: server_volume is not changed
- name: Delete volume
openstack.cloud.volume:
cloud: "{{ cloud }}"
state: absent
name: ansible_volume
wait: true
- name: Delete server
openstack.cloud.server:
cloud: "{{ cloud }}"
state: absent
name: "{{ server_name }}"
wait: true