Scenario test cases for Manila project
Blueprint: https://blueprints.launchpad.net/manila/+spec/scenario-tests
Dictionary
Definition |
Meaning
|
UVM |
User VM. It is used as client machine for mounting shares.
|
SSH |
Secure SHell. It is used for connection to UVMs.
|
Prerequisites
- Depending on share driver mode, it can be required to create share-network w/o security-services.
- Depending on protocol, its versions and access type, “mount” operations should be defined explicitly, scenario tests assume it as predefined and known. Hence, scenarios do not include difference between access type (IP, User, Cert). Due to this scenario tests should be data driven by “access_type”, “access_proto”, “access_level” and “mount command with all expected options”.
- Italic texts depend on specific implementations and can be unsupported by share backends.
- All user VMs should be separate VMs from host of shares. They should have network connectivity with share host. User VMs should be built with image that has shared file systems clients.
- Share host should have open ports for SSH protocol and protocols of shared file systems.
List of scenarious
№ |
Name |
Description
|
1 |
Share access and file operations |
|
2 |
Single/Group access operations |
|
3 |
Relations between source shares and child shares |
|
1. Share access and file operations
№ |
Action |
Result
|
1 |
Create UVM |
ok, created
|
2 |
Create share S |
ok, created
|
3 |
SSH to UVM |
ok, connected
|
4 |
Try mount S to UVM |
fail, access denied
|
5 |
Provide RO access |
ok
|
6 |
Try mount S to UVM |
ok, mounted
|
7 |
Try create files on S |
fail, access denied
|
8 |
Unmount S from UVM |
ok
|
9 |
Remove RO access |
ok, removed
|
10 |
Try mount S to UVM |
fail, access denied
|
11 |
Provide RW access |
ok, provided
|
12 |
Try mount S to UVM |
ok, mounted
|
13 |
Try write files to S |
ok, written
|
14 |
Try read files from S |
ok, read
|
15 |
Try delete files on S |
ok, deleted
|
16 |
Unmount S from UVM |
ok, unmounted
|
17 |
Delete S |
ok, deleted
|
18 |
Try mount S |
fail, not found
|
19 |
Delete UVM |
ok, deleted
|
2. Single/Group access operations
№ |
Action |
Result
|
1 |
Create user UVM1 using network1 |
ok, created
|
2 |
Create user UVM2 using network2 |
ok, created
|
3 |
Create share S |
ok, created
|
4 |
Add access to network1 |
ok, added
|
5 |
SSH to UVM1 |
ok, connected
|
6 |
Try mount S from UVM1 |
ok, mounted
|
7 |
SSH to UVM2 |
ok, connected
|
8 |
Try mount S from UVM2 |
fail, access denied
|
9 |
Add access to network2 |
ok, added
|
10 |
Try mount S from UVM2 |
ok, mounted (Two VMs have it mounted at once)
|
11 |
Unmount S on UVM1 |
ok, unmounted
|
12 |
Unmount S on UVM2 |
ok, unmounted
|
13 |
Delete UVM1 |
ok, deleted
|
14 |
Delete UVM2 |
ok, deleted
|
15 |
Delete S |
ok, deleted
|
3. Relations between source shares and child shares
№ |
Action |
Result
|
1 |
Create UVM |
ok, created
|
2 |
Create share S1 |
ok, created
|
3 |
Provide RW access to S1 |
ok, provided
|
4 |
SSH to UVM |
ok, connected
|
5 |
Try mount S1 to UVM |
ok, mounted
|
6 |
Create “file1” |
ok, created
|
7 |
Create snapshot from S, called SS1 |
ok, created
|
8 |
Create share from SS1, called S2 |
ok, created
|
9 |
Try mount S2 |
fail, access denied (Here we test that child share did not get access rules form parent share)
|
10 |
Provide RW access to S2 |
ok, provided
|
11 |
Try mount S2 |
ok, mounted
|
12 |
List files on S2 |
only one file exist - “file1”
|
13 |
Create file2 in S2 |
ok, file created
|
14 |
List files on S1 |
only one file exist - “file1”
|
15 |
List files on S2 |
two files exist - “file1” and “file2”
|
16 |
Unmount S1 and S2 |
ok, unmounted
|
17 |
Delete S2 |
ok, deleted
|
18 |
Delete S1 |
ok, deleted
|
19 |
Delete S1 |
ok, deleted
|
20 |
Delete UVM |
ok, deleted
|