Refactored volume_backup{,_info} modules

Change-Id: I523fd25a11f8f39a346afc17ae1e3a4dfcb8bae2
This commit is contained in:
Jakob Meng
2022-11-03 10:17:39 +01:00
parent e9cd9bff2a
commit 764a8bff64
7 changed files with 365 additions and 197 deletions

View File

@@ -46,35 +46,6 @@
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 }}"

View File

@@ -0,0 +1,22 @@
expected_fields:
- availability_zone
- container
- created_at
- data_timestamp
- description
- fail_reason
- force
- has_dependent_backups
- id
- is_incremental
- links
- metadata
- name
- object_count
- project_id
- size
- snapshot_id
- status
- updated_at
- user_id
- volume_id

View File

@@ -0,0 +1,89 @@
---
- name: Get existing backups
openstack.cloud.volume_backup_info:
cloud: "{{ cloud }}"
register: info
- name: Assert volume_backup_info
assert:
that:
- info.volume_backups|length == 0
- name: Get non-existing backup
openstack.cloud.volume_backup_info:
cloud: "{{ cloud }}"
name: non-existing-backup
register: info
- name: Assert volume_backup_info
assert:
that:
- info.volume_backups|length == 0
- name: Create volume
openstack.cloud.volume:
cloud: "{{ cloud }}"
state: present
size: 1
name: ansible_volume
register: volume
- name: Create volume backup
openstack.cloud.volume_backup:
cloud: "{{ cloud }}"
state: present
name: ansible_volume_backup
volume: ansible_volume
# TODO: Uncomment code when https://storyboard.openstack.org/#!/story/2010395 has been solved.
#metadata:
# key1: value1
# key2: value2
register: backup
- name: Assert volume_backup
assert:
that:
- backup.volume_backup.name == "ansible_volume_backup"
- backup.volume_backup.volume_id == volume.volume.id
# TODO: Uncomment code when https://storyboard.openstack.org/#!/story/2010395 has been solved.
#- backup.volume_backup.metadata.keys()|sort == ['key1', 'key2']
#- backup.volume_backup.metadata['key1'] == 'value1'
#- backup.volume_backup.metadata['key2'] == 'value2'
- name: Assert return values of volume_backup module
assert:
that:
# allow new fields to be introduced but prevent fields from being removed
- expected_fields|difference(backup.volume_backup.keys())|length == 0
- name: Get backup info
openstack.cloud.volume_backup_info:
cloud: "{{ cloud }}"
name: ansible_volume_backup
register: info
- name: Assert volume_backup_info
assert:
that:
- info.volume_backups|length == 1
- info.volume_backups[0].id == backup.backup.id
- info.volume_backups[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_backups[0].keys())|length == 0
- name: Delete volume backup
openstack.cloud.volume_backup:
cloud: "{{ cloud }}"
name: ansible_volume_backup
wait: false
state: absent
- name: Delete volume
openstack.cloud.volume:
cloud: "{{ cloud }}"
state: absent
name: ansible_volume

View File

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