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 scenarios
№ |
Name |
Description
|
1 |
Share access and file operations |
This test verifies basic file operations with shares.
|
2 |
Single/Group access operations |
This test verifies basic single or group access operations.
|
3 |
Relations between source shares and child shares |
This test verifies that child share does not inherit access rules from parent and is different in general.
|
4 |
Share access with multiple UVM |
This test verifies basic share access control with multiple UVM (driver specific, share-networks).
|
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 SS1 |
ok, deleted
|
19 |
Delete S1 |
ok, deleted
|
20 |
Delete UVM |
ok, deleted
|
4. Share access with multiple UVM
№ |
Action |
Result
|
1 |
Create UVM1 |
ok, created
|
2 |
Create UVM2 |
ok, created
|
3 |
Create secgroup for icmp,ssh |
ok, created
|
3 |
Create share network |
ok, created
|
4 |
Create share S |
ok, created
|
5 |
SSH to UVM1 |
ok, connected
|
6 |
Try mount S to UVM1 |
fail, access denied
|
7 |
Provide RW access to UVM1 |
ok, provided
|
8 |
SSH to UVM1 |
ok, connected
|
9 |
Try mount S to UVM1 |
ok, mounted
|
10 |
Try umount S from UVM1 |
ok, umounted
|
11 |
SSH to UVM2 |
ok, connected
|
12 |
Try mount S to UVM2 |
fail, access denied
|
13 |
Try umount S from UVM2 |
fail, not found
|
14 |
Provide RW access to UVM2 |
ok, provided
|
15 |
SSH to UVM1 |
ok, connected
|
16 |
Try mount S to UVM1 |
ok, mounted
|
17 |
Try umount S from UVM1 |
ok, umounted
|
18 |
SSH to UVM2 |
ok, connected
|
19 |
Try mount S to UVM2 |
ok, mounted
|
20 |
Try umount S from UVM2 |
ok, umounted
|
21 |
Remove RW access from UVM1 |
ok, removed
|
22 |
SSH to UVM1 |
ok, connected
|
23 |
Try mount S to UVM1 |
fail, access denied
|
24 |
Try umount S from UVM1 |
fail, not found
|
25 |
SSH to UVM2 |
ok, connected
|
26 |
Try mount S to UVM2 |
ok, mounted
|
27 |
Try umount S from UVM2 |
ok, umounted
|
28 |
Remove RW access from UVM2 |
ok, removed
|
29 |
SSH to UVM1 |
ok, connected
|
30 |
Try mount S to UVM1 |
fail, access denied
|
31 |
Try umount S from UVM1 |
fail, not found
|
32 |
SSH to UVM2 |
ok, connected
|
33 |
Try mount S to UVM2 |
fail, access denied
|
34 |
Try umount S from UVM2 |
fail, not found
|
35 |
Delete share S |
ok, deleted
|
36 |
Delete share-server |
ok, deleted
|
37 |
Delete share-network |
ok, deleted
|
38 |
Delete UVM1 |
ok, deleted
|
39 |
Delete UVM2 |
ok, deleted
|
40 |
Delete secgroup for icmp,ssh |
ok, deleted
|