4831fdc50abb50a4324dcfc6bd81fa01686b3a32
[osm/tests.git] / robot-systest / testsuite / basic_15-rbac_configurations.robot
1 #   Licensed under the Apache License, Version 2.0 (the "License");
2 #   you may not use this file except in compliance with the License.
3 #   You may obtain a copy of the License at
4 #
5 #       http://www.apache.org/licenses/LICENSE-2.0
6 #
7 #   Unless required by applicable law or agreed to in writing, software
8 #   distributed under the License is distributed on an "AS IS" BASIS,
9 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 #   See the License for the specific language governing permissions and
11 #   limitations under the License.
12
13 *** Settings ***
14 Documentation   [BASIC-15] RBAC Configurations.
15
16 Library   OperatingSystem
17 Library   String
18 Library   Collections
19
20 Resource   %{ROBOT_DEVOPS_FOLDER}/lib/user_lib.robot
21 Resource   %{ROBOT_DEVOPS_FOLDER}/lib/project_lib.robot
22 Resource   %{ROBOT_DEVOPS_FOLDER}/lib/role_lib.robot
23
24 Force Tags   basic_15   cluster_main   daily   regression
25
26 Suite Teardown   Run Keyword And Ignore Error   Suite Cleanup
27
28
29 *** Variables ***
30 # User, project and roles to use
31 ${user_name}   basic_15_test_user
32 ${user_password}   Basic_15_user_pass
33 ${user_new_password}   Basic_15_new_pass
34 ${user_role}   project_user
35 ${user_project}   admin
36 ${project_name}   basic_15_test_project
37 ${new_project_name}   basic_15_project_test
38 ${role_name}   test_role
39 ${success_return_code}   0
40
41
42 *** Test Cases ***
43 Create And Validate User
44
45     Create User   ${user_name}   ${user_password}
46     Check If User Exists   ${user_name}
47
48
49 Assign Role To User
50
51     Update User Role   ${user_name}   ${user_project}   ${user_role}
52     Check If User Is Assigned To Project   ${user_name}   ${user_project}
53     Check If User Has Role   ${user_name}   ${user_role}   ${user_project}
54
55
56 Run Action As User
57
58     Update User Password   ${user_name}   ${user_password}   ${user_new_password}
59     ${rc}   ${stdout}=   Run And Return RC And Output   OSM_USER=${user_name} OSM_PROJECT=${user_project} OSM_PASSWORD=${user_new_password} osm ns-list
60     Should Be Equal As Integers   ${rc}   ${success_return_code}
61
62
63 Create And Update Project
64
65     Create Project   ${project_name}
66     Update Project Name   ${project_name}   ${new_project_name}
67
68
69 Create And Validate Role
70
71     Create Role   ${role_name}
72     Check If Role Exists   ${role_name}
73
74
75 Update Role Information
76
77     Update Role   ${role_name}   add='vims: true'
78     Check If Role Exists   ${role_name}
79
80
81 Delete Allocated Resources
82     [Tags]   cleanup
83
84     Delete User   ${user_name}
85     Delete Project   ${new_project_name}
86     Delete Role   ${role_name}
87
88
89 *** Keywords ***
90 Suite Cleanup
91     Run Keyword If Any Tests Failed   Run Keyword And Ignore Error   Delete User   ${user_name}
92     Run Keyword If Any Tests Failed   Run Keyword And Ignore Error   Delete Role   ${role_name}
93     Run Keyword If Any Tests Failed   Run Keyword And Ignore Error   Delete Project   ${project_name}
94     Run Keyword If Any Tests Failed   Run Keyword And Ignore Error   Delete Project   ${new_project_name}