Refactored volume_snapshot{,_info} modules

Change-Id: I70fc744f786a9de654592c97188af48ddbe8751d
This commit is contained in:
Jakob Meng
2022-11-03 11:29:01 +01:00
parent 8c889f8eb3
commit b3c2e8f1ce
7 changed files with 327 additions and 197 deletions

View File

@@ -20,38 +20,12 @@
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
- name: Delete volume
openstack.cloud.volume:
cloud: "{{ cloud }}"
state: present
size: 1
snapshot: ansible_volume_snapshot
name: ansible_volume2
description: Test volume
register: vol
- name: Delete volume snapshot
openstack.cloud.volume_snapshot:
cloud: "{{ cloud }}"
name: ansible_volume_snapshot
volume: ansible_volume
state: absent
state: absent
name: ansible_volume1
- name: Delete volume
openstack.cloud.volume:
@@ -59,15 +33,6 @@
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

View File

@@ -0,0 +1,13 @@
expected_fields:
- created_at
- description
- id
- is_forced
- metadata
- name
- progress
- project_id
- size
- status
- updated_at
- volume_id

View File

@@ -0,0 +1,96 @@
---
- name: Get existing snapshots
openstack.cloud.volume_snapshot_info:
cloud: "{{ cloud }}"
register: info
- name: Assert volume_snapshot_info
assert:
that:
- info.volume_snapshots|length == 0
- name: Get non-existing snapshot
openstack.cloud.volume_snapshot_info:
cloud: "{{ cloud }}"
name: non-existing-snapshot
register: info
- name: Assert volume_snapshot_info
assert:
that:
- info.volume_snapshots|length == 0
- name: Create volume
openstack.cloud.volume:
cloud: "{{ cloud }}"
state: present
size: 1
name: ansible_volume
description: Test volume
register: volume
- name: Create volume snapshot
openstack.cloud.volume_snapshot:
cloud: "{{ cloud }}"
state: present
name: ansible_volume_snapshot
volume: ansible_volume
register: snapshot
- name: Assert volume_snapshot
assert:
that:
- snapshot.volume_snapshot.name == "ansible_volume_snapshot"
- name: Assert return values of volume_snapshot module
assert:
that:
# allow new fields to be introduced but prevent fields from being removed
- expected_fields|difference(snapshot.volume_snapshot.keys())|length == 0
- name: Get snapshot info
openstack.cloud.volume_snapshot_info:
cloud: "{{ cloud }}"
name: ansible_volume_snapshot
register: info
- name: Assert volume_snapshot_info
assert:
that:
- info.volume_snapshots|length == 1
- info.volume_snapshots[0].id == snapshot.volume_snapshot.id
- info.volume_snapshots[0].volume_id == volume.volume.id
- name: Assert return values of volume_info module
assert:
that:
# allow new fields to be introduced but prevent fields from being removed
- expected_fields|difference(info.volume_snapshots[0].keys())|length == 0
- name: Create volume from snapshot
openstack.cloud.volume:
cloud: "{{ cloud }}"
state: present
size: 1
snapshot: ansible_volume_snapshot
name: ansible_volume2
description: Test volume
- 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_volume2
- name: Delete volume
openstack.cloud.volume:
cloud: "{{ cloud }}"
state: absent
name: ansible_volume

View File

@@ -66,6 +66,7 @@
- { role: user_role, tags: user_role }
- { role: volume, tags: volume }
- { role: volume_backup, tags: volume_backup }
- { role: volume_snapshot, tags: volume_snapshot }
- role: loadbalancer
tags: loadbalancer
- { role: quota, tags: quota }