blob: 0bfea48e8813cafc9384e31336f74a83b7f1494d [file] [log] [blame]
Sushil Singh45d841e2020-07-30 11:52:11 -05001*** Settings ***
2
3Documentation Test client identifier feature on BMC.
4
5Resource ../../lib/rest_client.robot
6Resource ../../lib/openbmc_ffdc.robot
7Resource ../../lib/resource.robot
8Resource ../../lib/bmc_redfish_utils.robot
9Library ../../lib/bmc_network_utils.py
10Library ../../lib/gen_robot_valid.py
11
12Suite Setup Redfish.Login
Sushil Singh889a75e2020-08-19 08:50:15 -050013Suite Teardown Run Keyword And Ignore Error Delete All Redfish Sessions
Sushil Singh45d841e2020-07-30 11:52:11 -050014Test Setup Printn
15Test Teardown FFDC On Test Case Fail
16
17
18*** Test Cases ***
19
20Create A Session With ClientID And Verify
Sushil Singh889a75e2020-08-19 08:50:15 -050021 [Documentation] Create a session with client id and verify client id is same.
22 [Tags] Create_A_Session_With_ClientID_And_Verify
23 [Template] Create And Verify Session ClientID
Sushil Singh45d841e2020-07-30 11:52:11 -050024
Sushil Singh889a75e2020-08-19 08:50:15 -050025 # client_id reboot_flag
26 12345 False
27 123456 False
28 EXTERNAL-CLIENT-01 False
29 EXTERNAL-CLIENT-02 False
Sushil Singh13843212020-08-18 04:00:51 -050030
31
32Check ClientID Persistency On BMC Reboot
Sushil Singh889a75e2020-08-19 08:50:15 -050033 [Documentation] Create a session with client id and verify client id is same after the reboot.
34 [Tags] Check_ClientID_Persistency_On_BMC_Reboot
35 [Template] Create And Verify Session ClientID
Sushil Singh13843212020-08-18 04:00:51 -050036
Sushil Singh889a75e2020-08-19 08:50:15 -050037 # client_id reboot_flag
38 12345 True
39 EXTERNAL-CLIENT-01 True
40
41
42Create A Multiple Session With ClientID And Verify
43 [Documentation] Create a multiple session with client id and verify client id is same.
44 [Tags] Create_A_Multiple_Session_With_ClientID_And_Verify
45 [Template] Create And Verify Session ClientID
46
47 # client_id reboot_flag
48 12345,123456 False
49 EXTERNAL-CLIENT-01,EXTERNAL-CLIENT-02 False
50
51
52Check Multiple ClientID Persistency On BMC Reboot
53 [Documentation] Create a multiple session with client id and verify client id is same after the reboot.
54 [Tags] Check_Multiple_ClientID_Persistency_On_BMC_Reboot
55 [Template] Create And Verify Session ClientID
56
57 # client_id reboot_flag
58 12345,123456 True
59 EXTERNAL-CLIENT-01,EXTERNAL-CLIENT-02 True
60
Sushil Singh45d841e2020-07-30 11:52:11 -050061
62*** Keywords ***
63
64Create A Session With ClientID
65 [Documentation] Create redifish session with client id.
66 [Arguments] ${client_id}
67
68 # Description of argument(s):
69 # client_id This client id can contain string value
70 # (e.g. 12345, "EXTERNAL-CLIENT").
71
Sushil Singh889a75e2020-08-19 08:50:15 -050072 @{session_list}= Create List
73 &{tmp_dict}= Create Dictionary
Sushil Singh45d841e2020-07-30 11:52:11 -050074
Sushil Singh889a75e2020-08-19 08:50:15 -050075 FOR ${client} IN @{client_id}
76 ${resp}= Redfish Login kwargs= "Oem":{"OpenBMC" : {"ClientID":"${client}"}}
77 Append To List ${session_list} ${resp}
78 END
79
80 [Return] ${session_list}
81
82
83Get Session Information By ClientID
84 [Documentation] Get session information by client id.
85 [Arguments] ${client_id} ${session_ids}
86
87 FOR ${session} IN @{session_ids}
88 Return From Keyword If '${client_id}' == '${session["Oem"]["OpenBMC"]["ClientID"]}' ${session["Id"]}
89 END
90
91 [Return] ${EMPTY}
92
Sushil Singh45d841e2020-07-30 11:52:11 -050093
94Verify A Session Created With ClientID
95 [Documentation] Verify session created with client id.
Sushil Singh889a75e2020-08-19 08:50:15 -050096 [Arguments] ${client_ids} ${session_ids}
Sushil Singh45d841e2020-07-30 11:52:11 -050097
98 # Description of argument(s):
99 # client_id External client name.
100 # session_id This value is a session id.
101
Sushil Singh45d841e2020-07-30 11:52:11 -0500102 # {
103 # "@odata.id": "/redfish/v1/SessionService/Sessions/H8q2ZKucSJ",
104 # "@odata.type": "#Session.v1_0_2.Session",
105 # "Description": "Manager User Session",
106 # "Id": "H8q2ZKucSJ",
107 # "Name": "User Session",
108 # "Oem": {
109 # "OpenBMC": {
110 # "@odata.type": "#OemSession.v1_0_0.Session",
111 # "ClientID": "",
112 # "ClientOriginIP": "::ffff:x.x.x.x"
113 # }
114 # },
115 # "UserName": "root"
116 # }
117
Sushil Singh889a75e2020-08-19 08:50:15 -0500118 FOR ${client} IN @{client_ids}
119 ${session_id}= Get Session Information By ClientID ${client} ${session_ids}
120 ${sessions}= Redfish.Get Properties /redfish/v1/SessionService/Sessions/${session_id}
121 Rprint Vars sessions
122 @{words} = Split String ${sessions["Oem"]["OpenBMC"]["ClientOriginIP"]} :
123 ${ipaddr}= Get Running System IP
124 Set Test Variable ${temp_ipaddr} ${words}[-1]
125 Valid Value client ['${sessions["Oem"]["OpenBMC"]["ClientID"]}']
126 Valid Value sessions["Id"] ['${session_id}']
127 Valid Value temp_ipaddr ${ipaddr}
128 END
Sushil Singh13843212020-08-18 04:00:51 -0500129
130
131Create And Verify Session ClientID
132 [Documentation] Create redifish session with client id and verify it remain same.
133 [Arguments] ${client_id} ${reboot_flag}=False
134
135 # Description of argument(s):
136 # client_id This client id contain string value
137 # (e.g. 12345, "EXTERNAL-CLIENT").
138 # reboot_flag Flag is used to run reboot the BMC code.
139 # (e.g. True or False).
140
Sushil Singh889a75e2020-08-19 08:50:15 -0500141 ${client_ids}= Split String ${client_id} ,
142 ${session_info}= Create A Session With ClientID ${client_ids}
143 Verify A Session Created With ClientID ${client_ids} ${session_info}
Sushil Singh13843212020-08-18 04:00:51 -0500144 Run Keyword If '${reboot_flag}' == 'True'
Sushil Singh889a75e2020-08-19 08:50:15 -0500145 ... Run Keywords Redfish OBMC Reboot (off) AND
146 ... Verify A Session Created With ClientID ${client_ids} ${session_info}