# Test code for the netapp_e_iscsi_interface module # (c) 2018, NetApp, Inc # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) - name: NetApp Test ASUP module fail: msg: 'Please define netapp_e_api_username, netapp_e_api_password, netapp_e_api_host, and netapp_e_ssid.' when: netapp_e_api_username is undefined or netapp_e_api_password is undefined or netapp_e_api_host is undefined or netapp_e_ssid is undefined vars: credentials: &creds api_url: "https://{{ netapp_e_api_host }}:8443/devmgr/v2" api_username: "{{ netapp_e_api_username }}" api_password: "{{ netapp_e_api_password }}" ssid: "{{ netapp_e_ssid }}" validate_certs: no - set_fact: credentials: *creds # test setup - name: Delete raid 0 storage pool netapp_e_storagepool: <<: *creds state: absent name: "{{ item }}" loop: - storage_pool - storage_pool2 - storage_pool3 # Thick volume testing: create, delete, expand, change properties (read/write cache), expand and change properties, - name: Create raid 0 storage pool netapp_e_storagepool: <<: *creds state: present name: storage_pool criteria_min_usable_capacity: 5 criteria_size_unit: tb erase_secured_drives: yes raid_level: raid0 - name: Delete volume in raid 0 storage pool netapp_e_volume: <<: *creds state: absent name: volume - name: Create volume in raid 0 storage pool netapp_e_volume: <<: *creds state: present name: volume storage_pool_name: storage_pool size: 100 size_unit: gb register: results - pause: seconds=15 - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ results.changed and item.name == 'volume' and not item.thinProvisioned and item.capacity == '107374182400' and item.segmentSize == 131072}}" msg: "Failed to create volume" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`volume`]') }}" - name: Re-execute volume creation in raid 0 storage pool netapp_e_volume: <<: *creds state: present name: volume storage_pool_name: storage_pool size: 100 size_unit: gb register: results - pause: seconds=15 - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ not results.changed and item.name == 'volume' and not item.thinProvisioned and item.capacity == '107374182400' and item.segmentSize == 131072}}" msg: "Failed to create volume" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`volume`]') }}" - name: Update volume size netapp_e_volume: <<: *creds state: present name: volume storage_pool_name: storage_pool size: 200 size_unit: gb register: results - pause: seconds=15 - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ results.changed and item.name == 'volume' and not item.thinProvisioned and item.capacity == '214748364800' and item.segmentSize == 131072}}" msg: "Failed to create volume" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`volume`]') }}" - pause: seconds=15 - name: Update volume properties netapp_e_volume: <<: *creds state: present name: volume storage_pool_name: storage_pool size: 200 size_unit: gb write_cache_enable: true read_cache_enable: false register: results - pause: seconds=15 - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ results.changed and item.name == 'volume' and not item.thinProvisioned and item.capacity == '214748364800' and item.segmentSize == 131072 and not item.cacheSettings.readCacheEnable and item.cacheSettings.writeCacheEnable}}" msg: "Failed to create volume" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`volume`]') }}" - name: Update volume properties and expand storage capabilities netapp_e_volume: <<: *creds state: present name: volume storage_pool_name: storage_pool size: 300 size_unit: gb write_cache_enable: false read_cache_enable: true register: results - pause: seconds=15 - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ results.changed and item.name == 'volume' and not item.thinProvisioned and item.capacity == '322122547200' and item.segmentSize == 131072 and item.cacheSettings.readCacheEnable and not item.cacheSettings.writeCacheEnable}}" msg: "Failed to create volume" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`volume`]') }}" # Workload tagging testing: create, utilize existing (name only, name with same attributes), modify attributes - name: Add workload tag (change, new workload tag) netapp_e_volume: <<: *creds state: present name: volume storage_pool_name: storage_pool size: 300 size_unit: gb write_cache_enable: false read_cache_enable: true workload_name: volume_tag metadata: volume_tag_key: volume_tag_value register: results - pause: seconds=15 - name: Validate volume workload changes uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ results.changed and item.name == 'volume' and not item.thinProvisioned and item.capacity == '322122547200' and item.segmentSize == 131072 and item.cacheSettings.readCacheEnable and not item.cacheSettings.writeCacheEnable and {'key': 'volumeTypeId', 'value': 'volume'} in item.metadata }}" msg: "Failed to modify volume metadata!" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`volume`]') }}" - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/workloads" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: workload_tags - assert: that: "{{ item.name == 'volume_tag' and {'key': 'volume_tag_key', 'value': 'volume_tag_value'} in item.workloadAttributes }}" msg: "Workload tag failed to be created!" loop: "{{ lookup('list', volume_tag_id, wantList=True) }}" vars: volume_tag_id: "{{ workload_tags | json_query('json[?name==`volume_tag`]') }}" - name: Repeat add workload tag (no change) netapp_e_volume: <<: *creds state: present name: volume storage_pool_name: storage_pool size: 300 size_unit: gb write_cache_enable: false read_cache_enable: true workload_name: volume_tag metadata: volume_tag_key: volume_tag_value register: results - pause: seconds=15 - name: Validate volume workload changes uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ not results.changed and item.name == 'volume' and not item.thinProvisioned and item.capacity == '322122547200' and item.segmentSize == 131072 and item.cacheSettings.readCacheEnable and not item.cacheSettings.writeCacheEnable and {'key': 'volumeTypeId', 'value': 'volume'} in item.metadata }}" msg: "Failed to not modify volume metadata!" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`volume`]') }}" - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/workloads" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: workload_tags - assert: that: "{{ item.name == 'volume_tag' and {'key': 'volume_tag_key', 'value': 'volume_tag_value'} in item.workloadAttributes }}" msg: "Workload tag failed not to be changed" loop: "{{ lookup('list', volume_tag_id, wantList=True) }}" vars: volume_tag_id: "{{ workload_tags | json_query('json[?name==`volume_tag`]') }}" - name: Workload tag (no change, just using workload_name) netapp_e_volume: <<: *creds state: present name: volume storage_pool_name: storage_pool size: 300 size_unit: gb write_cache_enable: false read_cache_enable: true workload_name: volume_tag register: results - pause: seconds=15 - name: Validate volume workload changes uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ not results.changed and item.name == 'volume' and not item.thinProvisioned and item.capacity == '322122547200' and item.segmentSize == 131072 and item.cacheSettings.readCacheEnable and not item.cacheSettings.writeCacheEnable and {'key': 'volumeTypeId', 'value': 'volume'} in item.metadata }}" msg: "Failed to not modify volume metadata!" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`volume`]') }}" - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/workloads" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: workload_tags - assert: that: "{{ item.name == 'volume_tag' and {'key': 'volume_tag_key', 'value': 'volume_tag_value'} in item.workloadAttributes }}" msg: "Workload tag failed to not be modified!" loop: "{{ lookup('list', volume_tag_id, wantList=True) }}" vars: volume_tag_id: "{{ workload_tags | json_query('json[?name==`volume_tag`]') }}" - name: Add workload tag (change, new attributes) netapp_e_volume: <<: *creds state: present name: volume storage_pool_name: storage_pool size: 300 size_unit: gb write_cache_enable: false read_cache_enable: true workload_name: volume_tag metadata: volume_tag_key2: volume_tag_value2 register: results - pause: seconds=15 - name: Validate volume workload changes uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ results.changed and item.name == 'volume' and not item.thinProvisioned and item.capacity == '322122547200' and item.segmentSize == 131072 and item.cacheSettings.readCacheEnable and not item.cacheSettings.writeCacheEnable and {'key': 'volumeTypeId', 'value': 'volume'} in item.metadata }}" msg: "Failed to not modify volume metadata!" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`volume`]') }}" - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/workloads" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: workload_tags - assert: that: "{{ item.name == 'volume_tag' and {'key': 'volume_tag_key2', 'value': 'volume_tag_value2'} in item.workloadAttributes }}" msg: "Workload tag failed to be updated!" loop: "{{ lookup('list', volume_tag_id, wantList=True) }}" vars: volume_tag_id: "{{ workload_tags | json_query('json[?name==`volume_tag`]') }}" - name: Remove workload tag from volume (change) netapp_e_volume: <<: *creds state: present name: volume storage_pool_name: storage_pool size: 300 size_unit: gb write_cache_enable: false read_cache_enable: true register: results - pause: seconds=15 - name: Validate volume workload changes uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ results.changed and item.name == 'volume' and not item.thinProvisioned and item.capacity == '322122547200' and item.segmentSize == 131072 and item.cacheSettings.readCacheEnable and not item.cacheSettings.writeCacheEnable and item.metadata == []}}" msg: "Failed to not modify volume metadata!" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`volume`]') }}" - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/workloads" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: workload_tags - assert: that: "{{ item.name == 'volume_tag' and {'key': 'volume_tag_key2', 'value': 'volume_tag_value2'} in item.workloadAttributes }}" msg: "Workload tag failed to be updated!" loop: "{{ lookup('list', volume_tag_id, wantList=True) }}" vars: volume_tag_id: "{{ workload_tags | json_query('json[?name==`volume_tag`]') }}" - name: Delete workload tag uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/workloads" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: workload_tags - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/workloads/{{ item }}" method: DELETE status_code: 204 user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no loop: "{{ lookup('list', volume_tag_id, wantList=True) }}" vars: volume_tag_id: "{{ workload_tags | json_query('json[?name==`volume_tag`].id') }}" - name: Delete raid 0 storage pool netapp_e_storagepool: <<: *creds state: absent name: storage_pool # *** Thin volume testing (May not work with simulator) *** - name: Create dynamic disk pool netapp_e_storagepool: <<: *creds state: present name: storage_pool criteria_min_usable_capacity: 2 criteria_size_unit: tb - name: Create thin volume netapp_e_volume: <<: *creds state: present name: thin_volume storage_pool_name: storage_pool size: 131072 size_unit: gb thin_provision: true thin_volume_repo_size: 32 thin_volume_max_repo_size: 1024 register: results - pause: seconds=15 - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/thin-volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ results.changed and item.name == 'thin_volume' and item.thinProvisioned and item.capacity == '140737488355328' and item.initialProvisionedCapacity == '34359738368' and item.provisionedCapacityQuota == '1099511627776' and item.expansionPolicy == 'automatic' }}" msg: "Failed to create volume" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`thin_volume`]') }}" - name: (Rerun) Create thin volume netapp_e_volume: <<: *creds state: present name: thin_volume storage_pool_name: storage_pool size: 131072 size_unit: gb thin_provision: true thin_volume_repo_size: 32 thin_volume_max_repo_size: 1024 register: results - pause: seconds=15 - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/thin-volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ not results.changed and item.name == 'thin_volume' and item.thinProvisioned and item.capacity == '140737488355328' and item.initialProvisionedCapacity == '34359738368' and item.provisionedCapacityQuota == '1099511627776' and item.expansionPolicy == 'automatic' }}" msg: "Failed to create volume" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`thin_volume`]') }}" - name: Expand thin volume's virtual size netapp_e_volume: <<: *creds state: present name: thin_volume storage_pool_name: storage_pool size: 262144 size_unit: gb thin_provision: true thin_volume_repo_size: 32 thin_volume_max_repo_size: 1024 register: results - pause: seconds=15 - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/thin-volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ results.changed and item.name == 'thin_volume' and item.thinProvisioned and item.capacity == '281474976710656' and item.initialProvisionedCapacity == '34359738368' and item.provisionedCapacityQuota == '1099511627776' and item.expansionPolicy == 'automatic' }}" msg: "Failed to create volume" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`thin_volume`]') }}" - name: Expand thin volume's maximum repository size netapp_e_volume: <<: *creds state: present name: thin_volume storage_pool_name: storage_pool size: 262144 size_unit: gb thin_provision: true thin_volume_repo_size: 32 thin_volume_max_repo_size: 2048 register: results - pause: seconds=15 - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/thin-volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ results.changed and item.name == 'thin_volume' and item.thinProvisioned and item.capacity == '281474976710656' and item.initialProvisionedCapacity == '34359738368' and item.provisionedCapacityQuota == '2199023255552' and item.expansionPolicy == 'automatic' }}" msg: "Failed to create volume" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`thin_volume`]') }}" - name: Create dynamic disk pool netapp_e_storagepool: <<: *creds state: present name: storage_pool2 criteria_min_usable_capacity: 2 criteria_size_unit: tb - pause: seconds=15 - name: Create second thin volume with manual expansion policy netapp_e_volume: <<: *creds state: present name: thin_volume2 storage_pool_name: storage_pool2 size_unit: gb size: 131072 thin_provision: true thin_volume_repo_size: 32 thin_volume_max_repo_size: 32 thin_volume_expansion_policy: manual register: results - pause: seconds=15 - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/thin-volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ results.changed and item.name == 'thin_volume2' and item.thinProvisioned and item.capacity == '140737488355328' and item.initialProvisionedCapacity == '34359738368' and item.currentProvisionedCapacity == '34359738368' and item.expansionPolicy == 'manual' }}" msg: "Failed to create volume" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`thin_volume2`]') }}" - name: Create second thin volume with manual expansion policy netapp_e_volume: <<: *creds state: present name: thin_volume2 storage_pool_name: storage_pool2 size_unit: gb size: 131072 thin_provision: true thin_volume_repo_size: 288 thin_volume_max_repo_size: 288 thin_volume_expansion_policy: manual register: results - pause: seconds=15 - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/thin-volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ results.changed and item.name == 'thin_volume2' and item.thinProvisioned and item.capacity == '140737488355328' and item.initialProvisionedCapacity == '34359738368' and item.currentProvisionedCapacity == '309237645312' and item.expansionPolicy == 'manual' }}" msg: "Failed to create volume" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`thin_volume2`]') }}" - name: Modify second thin volume to use automatic expansion policy netapp_e_volume: <<: *creds state: present name: thin_volume2 storage_pool_name: storage_pool2 size_unit: gb size: 131072 thin_provision: true thin_volume_repo_size: 288 thin_volume_max_repo_size: 288 thin_volume_expansion_policy: automatic register: results - pause: seconds=15 - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/thin-volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ results.changed and item.name == 'thin_volume2' and item.thinProvisioned and item.capacity == '140737488355328' and item.initialProvisionedCapacity == '34359738368' and item.currentProvisionedCapacity == '309237645312' and item.expansionPolicy == 'automatic' }}" msg: "Failed to create volume" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`thin_volume2`]') }}" - name: Delete raid 0 storage pool netapp_e_storagepool: <<: *creds state: absent name: "{{ item }}" loop: - storage_pool - storage_pool2 - name: Create raid 0 storage pool netapp_e_storagepool: <<: *creds state: present name: storage_pool criteria_min_usable_capacity: 5 criteria_size_unit: tb erase_secured_drives: yes raid_level: raid0 # Thick volume expansion testing: wait and don't wait for operation to complete - name: Create raid 6 storage pool netapp_e_storagepool: <<: *creds state: present name: storage_pool3 criteria_min_usable_capacity: 5 criteria_size_unit: tb erase_secured_drives: yes raid_level: raid6 - name: Delete volume in raid 6 storage pool netapp_e_volume: <<: *creds state: absent name: volume - name: Create volume in raid 0 storage pool for expansion testing netapp_e_volume: <<: *creds state: present name: volume storage_pool_name: storage_pool3 size: 1 size_unit: gb register: results - pause: seconds=10 - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - assert: that: "{{ results.changed and item.name == 'volume' and not item.thinProvisioned and item.capacity == '1073741824' and item.segmentSize == 131072}}" msg: "Failed to create volume" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`volume`]') }}" - name: Modify volume in raid 0 storage pool and wait for expansion testing netapp_e_volume: <<: *creds state: present name: volume storage_pool_name: storage_pool3 size: 10 size_unit: gb wait_for_initialization: True register: results - pause: seconds=10 - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/volumes/{{ volume[0]['id'] }}/expand" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: expansion_state vars: volume: "{{ current | json_query('json[?name==`volume`]') }}" - assert: that: "{{ results.changed and item.name == 'volume' and not item.thinProvisioned and item.capacity == '10737418240' and item.segmentSize == 131072 and expansion_state['json']['action'] == 'none'}}" msg: "Volume expansion test failed." loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`volume`]') }}" - name: Modify volume in raid 0 storage pool and don't wait for expansion testing netapp_e_volume: <<: *creds state: present name: volume storage_pool_name: storage_pool3 size: 100 size_unit: gb wait_for_initialization: False register: results - pause: seconds=10 - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/volumes" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: current - uri: url: "{{ credentials.api_url }}/storage-systems/{{ credentials.ssid }}/volumes/{{ volume[0]['id'] }}/expand" user: "{{ credentials.api_username }}" password: "{{ credentials.api_password }}" validate_certs: no register: expansion_state vars: volume: "{{ current | json_query('json[?name==`volume`]') }}" - assert: that: "{{ results.changed and item.name == 'volume' and not item.thinProvisioned and item.capacity == '107374182400' and item.segmentSize == 131072 and expansion_state['json']['action'] != 'none'}}" msg: "Failed to create volume" loop: "{{ lookup('list', volume, wantList=True) }}" vars: volume: "{{ current | json_query('json[?name==`volume`]') }}" - name: Delete raid 0 storage pool netapp_e_storagepool: <<: *creds state: absent name: "{{ item }}" loop: - storage_pool3