diff options
Diffstat (limited to 'docs/testing/user/testspecification/vimoperationsvolume')
-rw-r--r-- | docs/testing/user/testspecification/vimoperationsvolume/index.rst | 860 |
1 files changed, 0 insertions, 860 deletions
diff --git a/docs/testing/user/testspecification/vimoperationsvolume/index.rst b/docs/testing/user/testspecification/vimoperationsvolume/index.rst deleted file mode 100644 index ce51b954..00000000 --- a/docs/testing/user/testspecification/vimoperationsvolume/index.rst +++ /dev/null @@ -1,860 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) Ericsson AB, Huawei Technologies Co.,Ltd - -========================================= -VIM volume operations test specification -========================================= - -.. toctree:: - :maxdepth: 2 - -Scope -===== - -The VIM volume operations test area evaluates the ability of the system under -test to support VIM volume operations. The test cases documented here are the -volume API test cases in the OpenStack Interop guideline 2016.8 as implemented -by the RefStack client. These test cases will evaluate basic OpenStack (as a VIM) -volume operations, including: - -- Volume attach and detach operations -- Volume service availability zone operations -- Volume cloning operations -- Image copy-to-volume operations -- Volume creation and deletion operations -- Volume service extension listing -- Volume metadata operations -- Volume snapshot operations - -References -================ - -- OpenStack Governance/Interop - - - https://wiki.openstack.org/wiki/Governance/InteropWG - -- OpenStack Interoperability guidelines (version 2016.08) - - - https://github.com/openstack/interop/blob/master/2016.08.json - -- Refstack client - - - https://github.com/openstack/refstack-client - -Definitions and abbreviations -============================= - -The following terms and abbreviations are used in conjunction with this test area - -- API - Application Programming Interface -- NFVi - Network Functions Virtualization infrastructure -- SUT - System Under Test -- VIM - Virtual Infrastructure Manager -- VM - Virtual Machine - -System Under Test (SUT) -======================= - -The system under test is assumed to be the NFVI and VIM deployed with a Pharos compliant infrastructure. - -Test Area Structure -==================== - -The test area is structured based on VIM volume API operations. Each test case is -able to run independently, i.e. irrelevant of the state created by a previous test. -Specifically, every test performs clean-up operations which return the system to -the same state as before the test. - -For brevity, the test cases in this test area are summarized together based on -the operations they are testing. - -All these test cases are included in the test case dovetail.osinterop.tc001 of -OVP test suite. - -Test Descriptions -================= - -API Used and Reference ----------------------- - -Block storage: https://developer.openstack.org/api-ref/block-storage - -- create volume -- delete volume -- update volume -- attach volume to server -- detach volume from server -- create volume metadata -- update volume metadata -- delete volume metadata -- list volume - -- create snapshot -- update snapshot -- delete snapshot - ------------------------------------------------------------------------- -Test Case 1 - Volume attach and detach operations with the Cinder v2 API ------------------------------------------------------------------------- - -Test case specification ------------------------ - -tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_attach_detach_volume_to_instance -tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_get_volume_attachment -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_attach_volumes_with_nonexistent_volume_id -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_detach_volumes_with_invalid_volume_id - -Test preconditions ------------------- - -* Volume extension API - -Basic test flow execution description and pass/fail criteria ------------------------------------------------------------- - -Test execution -'''''''''''''' -* Test action 1: Create a server VM1 -* Test action 2: Attach a provided VOL1 to VM1 -* **Test assertion 1:** Verify VOL1 is in 'in-use' status -* Test action 3: Detach VOL1 from VM1 -* **Test assertion 2:** Verify VOL1 is in 'available' status -* Test action 4: Create a server VM2 -* Test action 5: Attach a provided VOL2 to VM2 and wait for VOL2 to reach 'in-use' status -* Test action 6: Retrieve VOL2's attachment information ATTCH_INFO -* **Test assertion 3:** Verify ATTCH_INFO is correct -* Test action 7: Create a server VM3 and wait for VM3 to reach 'ACTIVE' status -* Test action 8: Attach a non-existent volume to VM3 -* **Test assertion 4:** Verify attach volume failed, a 'NOT FOUND' error is returned in the response -* Test action 9: Detach a volume from a server by using an invalid volume ID -* **Test assertion 5:** Verify detach volume failed, a 'NOT FOUND' error is returned in the response - -Pass / fail criteria -'''''''''''''''''''' - -This test evaluates the volume API ability of attaching a volume to a server -and detaching a volume from a server. Specifically, the test verifies that: - -* Volumes can be attached and detached from servers. -* Volume attachment information can be retrieved. -* Attach and detach a volume using an invalid volume ID is not allowed. - -In order to pass this test, all test assertions listed in the test execution above need to pass. - -Post conditions ---------------- - -N/A - --------------------------------------------------------------------------------- -Test Case 2 - Volume service availability zone operations with the Cinder v2 API --------------------------------------------------------------------------------- - -Test case specification ------------------------ - -tempest.api.volume.test_availability_zone.AvailabilityZoneV2TestJSON.test_get_availability_zone_list - -Test preconditions ------------------- - -* Volume extension API - -Basic test flow execution description and pass/fail criteria ------------------------------------------------------------- - -Test execution -'''''''''''''' -* Test action 1: List all existent availability zones -* **Test assertion 1:** Verify the availability zone list length is greater than 0 - -Pass / fail criteria -'''''''''''''''''''' - -This test case evaluates the volume API ability of listing availability zones. -Specifically, the test verifies that: - -* Availability zones can be listed. - -In order to pass this test, all test assertions listed in the test execution above need to pass. - -Post conditions ---------------- - -N/A - --------------------------------------------------------------- -Test Case 3 - Volume cloning operations with the Cinder v2 API --------------------------------------------------------------- - -Test case specification ------------------------ - -tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete_as_clone - -Test preconditions ------------------- - -* Volume extension API -* Cinder volume clones feature is enabled - -Basic test flow execution description and pass/fail criteria ------------------------------------------------------------- - -Test execution -'''''''''''''' -* Test action 1: Create a volume VOL1 -* Test action 2: Create a volume VOL2 from source volume VOL1 with a specific name and metadata -* Test action 2: Wait for VOL2 to reach 'available' status -* **Test assertion 1:** Verify the name of VOL2 is correct -* Test action 3: Retrieve VOL2's detail information -* **Test assertion 2:** Verify the retrieved volume name, ID and metadata are the same as VOL2 -* **Test assertion 3:** Verify VOL2's bootable flag is 'False' -* Test action 4: Update the name of VOL2 with the original value -* Test action 5: Update the name of VOL2 with a new value -* **Test assertion 4:** Verify the name of VOL2 is updated successfully -* Test action 6: Create a volume VOL3 with no name specified and a description contains characters '@#$%^*' -* **Test assertion 5:** Verify VOL3 is created successfully -* Test action 7: Update the name of VOL3 and description with the original value -* **Test assertion 6:** Verify VOL3's bootable flag is 'False' - -Pass / fail criteria -'''''''''''''''''''' - -This test case evaluates the volume API ability of creating a cloned volume from a source volume, -getting cloned volume detail information and updating cloned volume attributes. - -Specifically, the test verifies that: - -* Cloned volume can be created from a source volume. -* Cloned volume detail information can be retrieved. -* Cloned volume detail information can be updated. - -In order to pass this test, all test assertions listed in the test execution above need to pass. - -Post conditions ---------------- - -N/A - --------------------------------------------------------------------- -Test Case 4 - Image copy-to-volume operations with the Cinder v2 API --------------------------------------------------------------------- - -Test case specification ------------------------ - -tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_volume_bootable -tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete_from_image - -Test preconditions ------------------- - -* Volume extension API - -Basic test flow execution description and pass/fail criteria ------------------------------------------------------------- - -Test execution -'''''''''''''' -* Test action 1: Set a provided volume VOL1's bootable flag to 'True' -* Test action 2: Retrieve VOL1's bootable flag -* **Test assertion 1:** Verify VOL1's bootable flag is 'True' -* Test action 3: Set a provided volume VOL1's bootable flag to 'False' -* Test action 4: Retrieve VOL1's bootable flag -* **Test assertion 2:** Verify VOL1's bootable flag is 'False' -* Test action 5: Create a bootable volume VOL2 from one image with a specific name and metadata -* Test action 6: Wait for VOL2 to reach 'available' status -* **Test assertion 3:** Verify the name of VOL2 name is correct -* Test action 7: Retrieve VOL2's information -* **Test assertion 4:** Verify the retrieved volume name, ID and metadata are the same as VOL2 -* **Test assertion 5:** Verify VOL2's bootable flag is 'True' -* Test action 8: Update the name of VOL2 with the original value -* Test action 9: Update the name of VOL2 with a new value -* **Test assertion 6:** Verify the name of VOL2 is updated successfully -* Test action 10: Create a volume VOL3 with no name specified and a description contains characters '@#$%^*' -* **Test assertion 7:** Verify VOL3 is created successfully -* Test action 11: Update the name of VOL3 and description with the original value -* **Test assertion 8:** Verify VOL3's bootable flag is 'True' - -Pass / fail criteria -'''''''''''''''''''' - -This test case evaluates the volume API ability of updating volume's bootable flag and creating -a bootable volume from an image, getting bootable volume detail information and updating bootable volume. - -Specifically, the test verifies that: - -* Volume bootable flag can be set and retrieved. -* Bootable volume can be created from a source volume. -* Bootable volume detail information can be retrieved. -* Bootable volume detail information can be updated. - -In order to pass this test, all test assertions listed in the test execution above need to pass. - -Post conditions ---------------- - -N/A - ----------------------------------------------------------------------------- -Test Case 5 - Volume creation and deletion operations with the Cinder v2 API ----------------------------------------------------------------------------- - -Test case specification ------------------------ - -tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_invalid_size -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_source_volid -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_volume_type -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_without_passing_size -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_size_negative -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_size_zero - -Test preconditions ------------------- - -* Volume extension API - -Basic test flow execution description and pass/fail criteria ------------------------------------------------------------- - -Test execution -'''''''''''''' -* Test action 1: Create a volume VOL1 with a specific name and metadata -* Test action 2: Wait for VOL1 to reach 'available' status -* **Test assertion 1:** Verify the name of VOL1 is correct -* Test action 3: Retrieve VOL1's information -* **Test assertion 2:** Verify the retrieved volume name, ID and metadata are the same as VOL1 -* **Test assertion 3:** Verify VOL1's bootable flag is 'False' -* Test action 4: Update the name of VOL1 with the original value -* Test action 5: Update the name of VOL1 with a new value -* **Test assertion 4:** Verify the name of VOL1 is updated successfully -* Test action 6: Create a volume VOL2 with no name specified and a description contains characters '@#$%^*' -* **Test assertion 5:** Verify VOL2 is created successfully -* Test action 7: Update the name of VOL2 and description with the original value -* **Test assertion 6:** Verify VOL2's bootable flag is 'False' -* Test action 8: Create a volume with an invalid size '#$%' -* **Test assertion 7:** Verify create volume failed, a bad request error is returned in the response -* Test action 9: Create a volume with a nonexistent source volume -* **Test assertion 8:** Verify create volume failed, a 'Not Found' error is returned in the response -* Test action 10: Create a volume with a nonexistent volume type -* **Test assertion 9:** Verify create volume failed, a 'Not Found' error is returned in the response -* Test action 11: Create a volume without passing a volume size -* **Test assertion 10:** Verify create volume failed, a bad request error is returned in the response -* Test action 12: Create a volume with a negative volume size -* **Test assertion 11:** Verify create volume failed, a bad request error is returned in the response -* Test action 13: Create a volume with volume size '0' -* **Test assertion 12:** Verify create volume failed, a bad request error is returned in the response - -Pass / fail criteria -'''''''''''''''''''' - -This test case evaluates the volume API ability of creating a volume, getting volume -detail information and updating volume, the reference is, -Specifically, the test verifies that: - -* Volume can be created from a source volume. -* Volume detail information can be retrieved/updated. -* Create a volume with an invalid size is not allowed. -* Create a volume with a nonexistent source volume or volume type is not allowed. -* Create a volume without passing a volume size is not allowed. -* Create a volume with a negative volume size is not allowed. -* Create a volume with volume size '0' is not allowed. - -In order to pass this test, all test assertions listed in the test execution above need to pass. - -Post conditions ---------------- - -N/A - --------------------------------------------------------------------------------- -Test Case 6 - Volume service extension listing operations with the Cinder v2 API --------------------------------------------------------------------------------- - -Test case specification ------------------------ - -tempest.api.volume.test_extensions.ExtensionsV2TestJSON.test_list_extensions - -Test preconditions ------------------- - -* Volume extension API -* At least one Cinder extension is configured - -Basic test flow execution description and pass/fail criteria ------------------------------------------------------------- - -Test execution -'''''''''''''' - -* Test action 1: List all cinder service extensions -* **Test assertion 1:** Verify all extensions are list in the extension list - -Pass / fail criteria -'''''''''''''''''''' - -This test case evaluates the volume API ability of listing all existent volume service extensions. - -* Cinder service extensions can be listed. - -In order to pass this test, all test assertions listed in the test execution above need to pass. - -Post conditions ---------------- - -N/A - ----------------------------------------------------------- -Test Case 7 - Volume GET operations with the Cinder v2 API ----------------------------------------------------------- - -Test case specification ------------------------ - -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_get_invalid_volume_id -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_get_volume_without_passing_volume_id -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_volume_get_nonexistent_volume_id - -Test preconditions ------------------- - -* Volume extension API - -Basic test flow execution description and pass/fail criteria ------------------------------------------------------------- - -Test execution -'''''''''''''' - -* Test action 1: Retrieve a volume with an invalid volume ID -* **Test assertion 1:** Verify retrieve volume failed, a 'Not Found' error is returned in the response -* Test action 2: Retrieve a volume with an empty volume ID -* **Test assertion 2:** Verify retrieve volume failed, a 'Not Found' error is returned in the response -* Test action 3: Retrieve a volume with a nonexistent volume ID -* **Test assertion 3:** Verify retrieve volume failed, a 'Not Found' error is returned in the response - -Pass / fail criteria -'''''''''''''''''''' - -This test case evaluates the volume API ability of getting volumes. -Specifically, the test verifies that: - -* Get a volume with an invalid/an empty/a nonexistent volume ID is not allowed. - -In order to pass this test, all test assertions listed in the test execution above need to pass. - -Post conditions ---------------- - -N/A - --------------------------------------------------------------- -Test Case 8 - Volume listing operations with the Cinder v2 API --------------------------------------------------------------- - -Test case specification ------------------------ - -tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list -tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_by_name -tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_by_name -tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_param_display_name_and_status -tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_detail_param_display_name_and_status -tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_detail_param_metadata -tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_details -tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_param_metadata -tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_by_availability_zone -tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_by_status -tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_details_by_availability_zone -tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_details_by_status -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_detail_with_invalid_status -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_detail_with_nonexistent_name -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_with_invalid_status -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_with_nonexistent_name -tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_pagination -tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_with_multiple_params -tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_pagination - -Test preconditions ------------------- - -* Volume extension API -* The backing file for the volume group that Nova uses has space for at least 3 1G volumes - -Basic test flow execution description and pass/fail criteria ------------------------------------------------------------- - -Test execution -'''''''''''''' - -* Test action 1: List all existent volumes -* **Test assertion 1:** Verify the volume list is complete -* Test action 2: List existent volumes and filter the volume list by volume name -* **Test assertion 2:** Verify the length of filtered volume list is 1 and the retrieved volume is correct -* Test action 3: List existent volumes in detail and filter the volume list by volume name -* **Test assertion 3:** Verify the length of filtered volume list is 1 and the retrieved volume is correct -* Test action 4: List existent volumes and filter the volume list by volume name and status 'available' -* **Test assertion 4:** Verify the name and status parameters of the fetched volume are correct -* Test action 5: List existent volumes in detail and filter the volume list by volume name and status 'available' -* **Test assertion 5:** Verify the name and status parameters of the fetched volume are correct -* Test action 6: List all existent volumes in detail and filter the volume list by volume metadata -* **Test assertion 6:** Verify the metadata parameter of the fetched volume is correct -* Test action 7: List all existent volumes in detail -* **Test assertion 7:** Verify the volume list is complete -* Test action 8: List all existent volumes and filter the volume list by volume metadata -* **Test assertion 8:** Verify the metadata parameter of the fetched volume is correct -* Test action 9: List existent volumes and filter the volume list by availability zone -* **Test assertion 9:** Verify the availability zone parameter of the fetched volume is correct -* Test action 10: List all existent volumes and filter the volume list by volume status 'available' -* **Test assertion 10:** Verify the status parameter of the fetched volume is correct -* Test action 11: List existent volumes in detail and filter the volume list by availability zone -* **Test assertion 11:** Verify the availability zone parameter of the fetched volume is correct -* Test action 12: List all existent volumes in detail and filter the volume list by volume status 'available' -* **Test assertion 12:** Verify the status parameter of the fetched volume is correct -* Test action 13: List all existent volumes in detail and filter the volume list by an invalid volume status 'null' -* **Test assertion 13:** Verify the filtered volume list is empty -* Test action 14: List all existent volumes in detail and filter the volume list by a non-existent volume name -* **Test assertion 14:** Verify the filtered volume list is empty -* Test action 15: List all existent volumes and filter the volume list by an invalid volume status 'null' -* **Test assertion 15:** Verify the filtered volume list is empty -* Test action 16: List all existent volumes and filter the volume list by a non-existent volume name -* **Test assertion 16:** Verify the filtered volume list is empty -* Test action 17: List all existent volumes in detail and paginate the volume list by desired volume IDs -* **Test assertion 17:** Verify only the desired volumes are listed in the filtered volume list -* Test action 18: List all existent volumes in detail and filter the volume list by volume status 'available' and display limit '2' -* Test action 19: Sort the filtered volume list by IDs in ascending order -* **Test assertion 18:** Verify the length of filtered volume list is 2 -* **Test assertion 19:** Verify the status of retrieved volumes is correct -* **Test assertion 20:** Verify the filtered volume list is sorted correctly -* Test action 20: List all existent volumes in detail and filter the volume list by volume status 'available' and display limit '2' -* Test action 21: Sort the filtered volume list by IDs in descending order -* **Test assertion 21:** Verify the length of filtered volume list is 2 -* **Test assertion 22:** Verify the status of retrieved volumes is correct -* **Test assertion 23:** Verify the filtered volume list is sorted correctly -* Test action 22: List all existent volumes and paginate the volume list by desired volume IDs -* **Test assertion 24:** Verify only the desired volumes are listed in the filtered volume list - -Pass / fail criteria -'''''''''''''''''''' - -This test case evaluates the volume API ability of getting a list of volumes and filtering the volume list. -Specifically, the test verifies that: - -* Get a list of volumes (in detail) successful. -* Get a list of volumes (in detail) and filter volumes by name/status/metadata/availability zone successful. -* Volume list pagination functionality is working. -* Get a list of volumes in detail using combined condition successful. - -In order to pass this test, all test assertions listed in the test execution above need to pass. - -Post conditions ---------------- - -N/A - ---------------------------------------------------------------- -Test Case 9 - Volume metadata operations with the Cinder v2 API ---------------------------------------------------------------- - -Test case specification ------------------------ - -tempest.api.volume.test_volume_metadata.VolumesV2MetadataTest.test_crud_volume_metadata -tempest.api.volume.test_volume_metadata.VolumesV2MetadataTest.test_update_volume_metadata_item - -Test preconditions ------------------- - -* Volume extension API - -Basic test flow execution description and pass/fail criteria ------------------------------------------------------------- - -Test execution -'''''''''''''' - -* Test action 1: Create metadata for a provided volume VOL1 -* Test action 2: Get the metadata of VOL1 -* **Test assertion 1:** Verify the metadata of VOL1 is correct -* Test action 3: Update the metadata of VOL1 -* **Test assertion 2:** Verify the metadata of VOL1 is updated -* Test action 4: Delete one metadata item 'key1' of VOL1 -* **Test assertion 3:** Verify the metadata item 'key1' is deleted -* Test action 5: Create metadata for a provided volume VOL2 -* **Test assertion 4:** Verify the metadata of VOL2 is correct -* Test action 6: Update one metadata item 'key3' of VOL2 -* **Test assertion 5:** Verify the metadata of VOL2 is updated - -Pass / fail criteria -'''''''''''''''''''' - -This test case evaluates the volume API ability of creating metadata for a volume, getting the -metadata of a volume, updating volume metadata and deleting a metadata item of a volume. -Specifically, the test verifies that: - -* Create metadata for volume successfully. -* Get metadata of volume successfully. -* Update volume metadata and metadata item successfully. -* Delete metadata item of a volume successfully. - -In order to pass this test, all test assertions listed in the test execution above need to pass. - -Post conditions ---------------- - -N/A - ---------------------------------------------------------------------------------- -Test Case 10 - Verification of read-only status on volumes with the Cinder v2 API ---------------------------------------------------------------------------------- - -Test case specification ------------------------ - -tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_volume_readonly_update - -Test preconditions ------------------- - -* Volume extension API - -Basic test flow execution description and pass/fail criteria ------------------------------------------------------------- - -Test execution -'''''''''''''' - -* Test action 1: Update a provided volume VOL1's read-only access mode to 'True' -* **Test assertion 1:** Verify VOL1 is in read-only access mode -* Test action 2: Update a provided volume VOL1's read-only access mode to 'False' -* **Test assertion 2:** Verify VOL1 is not in read-only access mode - -Pass / fail criteria -'''''''''''''''''''' - -This test case evaluates the volume API ability of setting and updating volume read-only access mode. -Specifically, the test verifies that: - -* Volume read-only access mode can be set and updated. - -In order to pass this test, all test assertions listed in the test execution above need to pass. - -Post conditions ---------------- - -N/A - -------------------------------------------------------------------- -Test Case 11 - Volume reservation operations with the Cinder v2 API -------------------------------------------------------------------- - -Test case specification ------------------------ - -tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_reserve_unreserve_volume -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_reserve_volume_with_negative_volume_status -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_reserve_volume_with_nonexistent_volume_id -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_unreserve_volume_with_nonexistent_volume_id - -Test preconditions ------------------- - -* Volume extension API - -Basic test flow execution description and pass/fail criteria ------------------------------------------------------------- - -Test execution -'''''''''''''' - -* Test action 1: Update a provided volume VOL1 as reserved -* **Test assertion 1:** Verify VOL1 is in 'attaching' status -* Test action 2: Update VOL1 as un-reserved -* **Test assertion 2:** Verify VOL1 is in 'available' status -* Test action 3: Update a provided volume VOL2 as reserved -* Test action 4: Update VOL2 as reserved again -* **Test assertion 3:** Verify update VOL2 status failed, a bad request error is returned in the response -* Test action 5: Update VOL2 as un-reserved -* Test action 6: Update a non-existent volume as reserved by using an invalid volume ID -* **Test assertion 4:** Verify update non-existent volume as reserved failed, a 'Not Found' error is returned in the response -* Test action 7: Update a non-existent volume as un-reserved by using an invalid volume ID -* **Test assertion 5:** Verify update non-existent volume as un-reserved failed, a 'Not Found' error is returned in the response - -Pass / fail criteria -'''''''''''''''''''' - -This test case evaluates the volume API ability of reserving and un-reserving volumes. -Specifically, the test verifies that: - -* Volume can be reserved and un-reserved. -* Update a non-existent volume as reserved is not allowed. -* Update a non-existent volume as un-reserved is not allowed. - -In order to pass this test, all test assertions listed in the test execution above need to pass. - -Post conditions ---------------- - -N/A - ----------------------------------------------------------------------------------- -Test Case 12 - Volume snapshot creation/deletion operations with the Cinder v2 API ----------------------------------------------------------------------------------- - -Test case specification ------------------------ - -tempest.api.volume.test_snapshot_metadata.SnapshotV2MetadataTestJSON.test_crud_snapshot_metadata -tempest.api.volume.test_snapshot_metadata.SnapshotV2MetadataTestJSON.test_update_snapshot_metadata_item -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_snapshot_id -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_delete_invalid_volume_id -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_delete_volume_without_passing_volume_id -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_volume_delete_nonexistent_volume_id -tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_snapshot_create_get_list_update_delete -tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_volume_from_snapshot -tempest.api.volume.test_volumes_snapshots_list.VolumesV2SnapshotListTestJSON.test_snapshots_list_details_with_params -tempest.api.volume.test_volumes_snapshots_list.VolumesV2SnapshotListTestJSON.test_snapshots_list_with_params -tempest.api.volume.test_volumes_snapshots_negative.VolumesV2SnapshotNegativeTestJSON.test_create_snapshot_with_nonexistent_volume_id -tempest.api.volume.test_volumes_snapshots_negative.VolumesV2SnapshotNegativeTestJSON.test_create_snapshot_without_passing_volume_id - -Test preconditions ------------------- - -* Volume extension API - -Basic test flow execution description and pass/fail criteria ------------------------------------------------------------- - -Test execution -'''''''''''''' - -* Test action 1: Create metadata for a provided snapshot SNAP1 -* Test action 2: Get the metadata of SNAP1 -* **Test assertion 1:** Verify the metadata of SNAP1 is correct -* Test action 3: Update the metadata of SNAP1 -* **Test assertion 2:** Verify the metadata of SNAP1 is updated -* Test action 4: Delete one metadata item 'key3' of SNAP1 -* **Test assertion 3:** Verify the metadata item 'key3' is deleted -* Test action 5: Create metadata for a provided snapshot SNAP2 -* **Test assertion 4:** Verify the metadata of SNAP2 is correct -* Test action 6: Update one metadata item 'key3' of SNAP2 -* **Test assertion 5:** Verify the metadata of SNAP2 is updated -* Test action 7: Create a volume with a nonexistent snapshot -* **Test assertion 6:** Verify create volume failed, a 'Not Found' error is returned in the response -* Test action 8: Delete a volume with an invalid volume ID -* **Test assertion 7:** Verify delete volume failed, a 'Not Found' error is returned in the response -* Test action 9: Delete a volume with an empty volume ID -* **Test assertion 8:** Verify delete volume failed, a 'Not Found' error is returned in the response -* Test action 10: Delete a volume with a nonexistent volume ID -* **Test assertion 9:** Verify delete volume failed, a 'Not Found' error is returned in the response -* Test action 11: Create a snapshot SNAP2 from a provided volume VOL1 -* Test action 12: Retrieve SNAP2's detail information -* **Test assertion 10:** Verify SNAP2 is created from VOL1 -* Test action 13: Update the name and description of SNAP2 -* **Test assertion 11:** Verify the name and description of SNAP2 are updated in the response body of update snapshot API -* Test action 14: Retrieve SNAP2's detail information -* **Test assertion 12:** Verify the name and description of SNAP2 are correct -* Test action 15: Delete SNAP2 -* Test action 16: Create a volume VOL2 with a volume size -* Test action 17: Create a snapshot SNAP3 from VOL2 -* Test action 18: Create a volume VOL3 from SNAP3 with a bigger volume size -* Test action 19: Retrieve VOL3's detail information -* **Test assertion 13:** Verify volume size and source snapshot of VOL3 are correct -* Test action 20: List all snapshots in detail and filter the snapshot list by name -* **Test assertion 14:** Verify the filtered snapshot list is correct -* Test action 21: List all snapshots in detail and filter the snapshot list by status -* **Test assertion 15:** Verify the filtered snapshot list is correct -* Test action 22: List all snapshots in detail and filter the snapshot list by name and status -* **Test assertion 16:** Verify the filtered snapshot list is correct -* Test action 23: List all snapshots and filter the snapshot list by name -* **Test assertion 17:** Verify the filtered snapshot list is correct -* Test action 24: List all snapshots and filter the snapshot list by status -* **Test assertion 18:** Verify the filtered snapshot list is correct -* Test action 25: List all snapshots and filter the snapshot list by name and status -* **Test assertion 19:** Verify the filtered snapshot list is correct -* Test action 26: Create a snapshot from a nonexistent volume by using an invalid volume ID -* **Test assertion 20:** Verify create snapshot failed, a 'Not Found' error is returned in the response -* Test action 27: Create a snapshot from a volume by using an empty volume ID -* **Test assertion 21:** Verify create snapshot failed, a 'Not Found' error is returned in the response - -Pass / fail criteria -'''''''''''''''''''' - -This test case evaluates the volume API ability of managing snapshot and snapshot metadata. -Specifically, the test verifies that: - -* Create metadata for snapshot successfully. -* Get metadata of snapshot successfully. -* Update snapshot metadata and metadata item successfully. -* Delete metadata item of a snapshot successfully. -* Create a volume from a nonexistent snapshot is not allowed. -* Delete a volume using an invalid volume ID is not allowed. -* Delete a volume without passing the volume ID is not allowed. -* Delete a non-existent volume is not allowed. -* Create snapshot successfully. -* Get snapshot's detail information successfully. -* Update snapshot attributes successfully. -* Delete snapshot successfully. -* Creates a volume and a snapshot passing a size different from the source successfully. -* List snapshot details by display_name and status filters successfully. -* Create a snapshot from a nonexistent volume is not allowed. -* Create a snapshot from a volume without passing the volume ID is not allowed. - -In order to pass this test, all test assertions listed in the test execution above need to pass. - -Post conditions ---------------- - -N/A - --------------------------------------------------------------- -Test Case 13 - Volume update operations with the Cinder v2 API --------------------------------------------------------------- - -Test case specification ------------------------ - -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_empty_volume_id -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_invalid_volume_id -tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_nonexistent_volume_id - -Test preconditions ------------------- - -* Volume extension API - -Basic test flow execution description and pass/fail criteria ------------------------------------------------------------- - -Test execution -'''''''''''''' - -* Test action 1: Update a volume by using an empty volume ID -* **Test assertion 1:** Verify update volume failed, a 'Not Found' error is returned in the response -* Test action 2: Update a volume by using an invalid volume ID -* **Test assertion 2:** Verify update volume failed, a 'Not Found' error is returned in the response -* Test action 3: Update a non-existent volume by using a random generated volume ID -* **Test assertion 3:** Verify update volume failed, a 'Not Found' error is returned in the response - -Pass / fail criteria -'''''''''''''''''''' - -This test case evaluates the volume API ability of updating volume attributes. -Specifically, the test verifies that: - -* Update a volume without passing the volume ID is not allowed. -* Update a volume using an invalid volume ID is not allowed. -* Update a non-existent volume is not allowed. - -In order to pass this test, all test assertions listed in the test execution above need to pass. - -Post conditions ---------------- - -N/A |