Open
Description
Below is the list of tests proposed to implement for E2E sanity check, please review and provide your feedback:
CreateVolume:
- Create volume with specific name and then create volume with the same name (Should not fail)
- Create volume with specific name and then create volume with the same name but different capacity (Should fail with 6 ALREADY_EXISTS)
- Create volume with incompatible size (should fail with 11 OUT_OF_RANGE)
DeleteVolume:
- Delete Volume and no volume id provided (should fail with 3 INVALID_ARGUMENT)
- Delete volume with non existing volume id (should not fail)
- Delete Volume with existing id (should not fail)
ControllerPublishVolume:
- Publish volume with empty volume id (should fail with 3 INVALID_ARGUMENT)
- Publish volume with empty node id (should fail with 3 INVALID_ARGUMENT)
- Publish volume with empty VolumeCapability (should fail with 3 INVALID_ARGUMENT)
- Publish volume with empty readonly (should fail with 3 INVALID_ARGUMENT)
- Publish volume with non existing volume id (should fail with 5 NOT_FOUND)
- Publish volume with non existing node id (should fail with 5 NOT_FOUND)
- (If code permits) Publish already published volume with compatible capabilities (should not fail)
- (If code permits) Publish already published volume with incompatible capabilities (should fail with 6 ALREADY_EXISTS)
- (If code permits) Publish already published volume with different node id (should fail with 9 FAILED_PRECONDITION)
10.(If code permits) Publish volume to node id with reached "Max volumes attached" (should fail with 8 RESOURCE_EXHAUSTED)
ControllerUnpublishVolume:
- Unpublish volume with empty volume id (should fail with 3 INVALID_ARGUMENT)
- Unpublish volume with empty node id (should not fail)
- Unpublish volume with non existing volume id (should fail with 5 NOT_FOUND)
- Unpublish volume with non existing node id (should fail with 5 NOT_FOUND)
- (if code permits) Unpublish volume with unpublish node id mismatching published node id (should not fail)
ValidateVolumeCapabilities:
- Validate with empty volume id (should fail with 3 INVALID_ARGUMENT)
- Validate with empty VolumeCapability (should fail with 3 INVALID_ARGUMENT)
- Validate with non existing volume id (should fail with 5 NOT_FOUND)
ListVolumes:
- Check if list volume capabilities is available (should not fail)
- If 1 is true then create a couple of volumes and request to list them. (Should not fail)
GetCapacity:
- Check GetCapacity (Should not fail)
ControllerGetCapabilities:
- Check ControllerGetCapabilities (should not fail)
NodeStageVolume:
- Stage volume with empty volume id (should fail with 3 INVALID_ARGUMENT)
- Stage volume with empty staging_target_path (should fail with 3 INVALID_ARGUMENT)
- Stage volume with empty volume_capability (should fail with 3 INVALID_ARGUMENT)
- Stage volume non existing volume id (should fail with 5 NOT_FOUND)
- (if code permits) Stage volume_id has already been published at the specified staging_target_path but is incompatible with the specified volume_capability flag (Should fail with 6 ALREADY_EXISTS)
- Publish volume with non existing node id (should fail with 5 NOT_FOUND)
NodeUnstageVolume:
- Ustage volume with empty volume id (should fail with 3 INVALID_ARGUMENT)
- Ustage volume with empty staging_target_path (should fail with 3 INVALID_ARGUMENT)
- Ustage volume non existing volume id (should fail with 5 NOT_FOUND)
- (if code permits) Unstage volume id with not matching staging_target_path (Should not fail)
NodePublishVolume:
- Publish volume with empty volume id (should fail with 3 INVALID_ARGUMENT)
- Publish volume with empty target_path (should fail with 3 INVALID_ARGUMENT)
- Publish volume with empty VolumeCapability (should fail with 3 INVALID_ARGUMENT)
- Publish volume with empty readonly (should fail with 3 INVALID_ARGUMENT)
- Publish volume with non existing volume id (should fail with 5 NOT_FOUND)
- (If code permits) Publish already published volume with incompatible capabilities (should fail with 6 ALREADY_EXISTS)
NodeUnpublishVolume:
- Unpublish volume with empty volume id (should fail with 3 INVALID_ARGUMENT)
- Unpublish volume with empty target_path (should fail with 3 INVALID_ARGUMENT)
- Unpublish volume with non existing volume id (should fail with 5 NOT_FOUND)
NodeGetId:
- Check NodeGetId (should not fail )
NodeGetCapabilities:
- Check NodeGetCapabilities (should not fail)