diff --git a/ci/roles/volume/tasks/main.yml b/ci/roles/volume/tasks/main.yml index 515061a9..2419fb10 100644 --- a/ci/roles/volume/tasks/main.yml +++ b/ci/roles/volume/tasks/main.yml @@ -62,3 +62,6 @@ cloud: "{{ cloud }}" state: absent display_name: ansible_volume + +- include_tasks: volume_info.yml + diff --git a/ci/roles/volume/tasks/volume_info.yml b/ci/roles/volume/tasks/volume_info.yml new file mode 100644 index 00000000..2abcc120 --- /dev/null +++ b/ci/roles/volume/tasks/volume_info.yml @@ -0,0 +1,122 @@ +- name: Get info about volumes + openstack.cloud.volume_info: + cloud: "{{ cloud }}" + all_projects: true + register: delete + +- name: Clean up volumes before the test + openstack.cloud.volume: + cloud: "{{ cloud }}" + state: absent + display_name: "{{ vol.name }}" + loop: "{{ delete.volumes }}" + loop_control: + loop_var: vol + +- name: Create volume + openstack.cloud.volume: + cloud: "{{ cloud }}" + state: present + size: 1 + display_name: ansible_test + display_description: testci + register: vol + +- name: Get info about volumes + openstack.cloud.volume_info: + cloud: "{{ cloud }}" + details: true + all_projects: true + register: info + +- name: Check info + assert: + that: + - info.volumes | selectattr("description", "equalto", "testci") | list | length == 1 + - info.volumes.0.name == 'ansible_test' + - info.volumes.0.status == 'available' + +- name: Get not detailed info about volumes + openstack.cloud.volume_info: + cloud: "{{ cloud }}" + details: false + all_projects: true + register: info1 + +- name: Check info + assert: + that: + - info1.volumes | selectattr("id", "equalto", "{{ info.volumes.0.id }}") | list | length == 1 + - info1.volumes.0.name == 'ansible_test' + - info1.volumes.0.status == None + +- name: Get info about volumes with name + openstack.cloud.volume_info: + cloud: "{{ cloud }}" + details: false + name: ansible_test + all_projects: true + register: info2 + +- name: Check info + assert: + that: + - info2.volumes | length == 1 + - info2.volumes.0.name == 'ansible_test' + +- name: Get info about volumes with non-existent name + openstack.cloud.volume_info: + cloud: "{{ cloud }}" + details: false + name: nothing_here + all_projects: true + register: info3 + +- name: Check info + assert: + that: + - info3.volumes | length == 0 + +- name: Get info about volumes + openstack.cloud.volume_info: + cloud: "{{ cloud }}" + details: false + name: ansible_test + all_projects: true + register: info4 + +- name: Check info + assert: + that: + - info4.volumes | length == 1 + - info4.volumes.0.name == 'ansible_test' + +- name: Get info about volumes not from all projects + openstack.cloud.volume_info: + cloud: "{{ cloud }}" + details: false + name: ansible_test + register: info4a + +- name: Check info + assert: + that: + - info4a.volumes | length == 1 + - info4a.volumes.0.name == 'ansible_test' + +- name: Delete volume + openstack.cloud.volume: + cloud: "{{ cloud }}" + state: absent + display_name: ansible_test + +- name: Get info when no volumes + openstack.cloud.volume_info: + cloud: "{{ cloud }}" + all_projects: true + register: info5 + +- name: Check info + assert: + that: + - info5.volumes | selectattr("name", "equalto", "ansible_test") | list | length == 0