1*** Settings *** 2Documentation Test Redfish LDAP user configuration. 3 4Library ../../lib/gen_robot_valid.py 5Resource ../../lib/resource.robot 6Resource ../../lib/bmc_redfish_resource.robot 7Resource ../../lib/openbmc_ffdc.robot 8Library ../../lib/gen_robot_valid.py 9 10Suite Setup Suite Setup Execution 11Suite Teardown Run Keywords Restore LDAP Privilege AND Redfish.Logout 12Test Teardown FFDC On Test Case Fail 13 14Force Tags LDAP_Test 15 16*** Variables *** 17${old_ldap_privilege} ${EMPTY} 18&{old_account_service} &{EMPTY} 19&{old_ldap_config} &{EMPTY} 20 21** Test Cases ** 22 23Verify LDAP Configuration Created 24 [Documentation] Verify that LDAP configuration created. 25 [Tags] Verify_LDAP_Configuration_Created 26 27 Create LDAP Configuration 28 # Call 'Get LDAP Configuration' to verify that LDAP configuration exists. 29 Get LDAP Configuration ${LDAP_TYPE} 30 Sleep 10s 31 Redfish.Login ${LDAP_USER} ${LDAP_USER_PASSWORD} 32 Redfish.Logout 33 Redfish.Login 34 35 36Verify LDAP Service Disable 37 [Documentation] Verify that LDAP is disabled and that LDAP user cannot 38 ... login. 39 [Tags] Verify_LDAP_Service_Disable 40 41 Redfish.Patch ${REDFISH_BASE_URI}AccountService 42 ... body={'${LDAP_TYPE}': {'ServiceEnabled': ${False}}} 43 Sleep 15s 44 ${resp}= Run Keyword And Return Status Redfish.Login ${LDAP_USER} 45 ... ${LDAP_USER_PASSWORD} 46 Should Be Equal ${resp} ${False} msg=LDAP user was able to login even though the LDAP service was disabled. 47 Redfish.Logout 48 Redfish.Login 49 # Enabling LDAP so that LDAP user works. 50 Redfish.Patch ${REDFISH_BASE_URI}AccountService 51 ... body={'${LDAP_TYPE}': {'ServiceEnabled': ${True}}} 52 Redfish.Logout 53 Redfish.Login 54 55 56Verify LDAP Login With ServiceEnabled 57 [Documentation] Verify that LDAP Login with ServiceEnabled. 58 [Tags] Verify_LDAP_Login_With_ServiceEnabled 59 60 Disable Other LDAP 61 # Actual service enablement. 62 Redfish.Patch ${REDFISH_BASE_URI}AccountService 63 ... body={'${LDAP_TYPE}': {'ServiceEnabled': ${True}}} 64 Sleep 15s 65 # After update, LDAP login. 66 Redfish.Login ${LDAP_USER} ${LDAP_USER_PASSWORD} 67 Redfish.Logout 68 Redfish.Login 69 70 71Verify LDAP Login With Correct AuthenticationType 72 [Documentation] Verify that LDAP Login with right AuthenticationType. 73 [Tags] Verify_LDAP_Login_With_Correct_AuthenticationType 74 75 Redfish.Patch ${REDFISH_BASE_URI}AccountService 76 ... body={'${ldap_type}': {'Authentication': {'AuthenticationType':'UsernameAndPassword'}}} 77 Sleep 15s 78 # After update, LDAP login. 79 Redfish.Login ${LDAP_USER} ${LDAP_USER_PASSWORD} 80 Redfish.Logout 81 Redfish.Login 82 83 84Verify LDAP Config Update With Incorrect AuthenticationType 85 [Documentation] Verify that invalid AuthenticationType is not updated. 86 [Tags] Verify_LDAP_Update_With_Incorrect_AuthenticationType 87 88 Redfish.Patch ${REDFISH_BASE_URI}AccountService 89 ... body={'${ldap_type}': {'Authentication': {'AuthenticationType':'KerberosKeytab'}}} valid_status_codes=[400] 90 91 92Verify LDAP Login With Correct LDAP URL 93 [Documentation] Verify LDAP Login with right LDAP URL. 94 [Tags] Verify_LDAP_Login_With_Correct_LDAP_URL 95 96 Config LDAP URL ${LDAP_SERVER_URI} 97 98 99Verify LDAP Config Update With Incorrect LDAP URL 100 [Documentation] Verify that LDAP Login fails with invalid LDAP URL. 101 [Tags] Verify_LDAP_Config_Update_With_Incorrect_LDAP_URL 102 [Teardown] Run Keywords Restore LDAP URL AND 103 ... FFDC On Test Case Fail 104 105 Config LDAP URL "ldap://1.2.3.4" 106 107 108Verify LDAP Configuration Exist 109 [Documentation] Verify that LDAP configuration is available. 110 [Tags] Verify_LDAP_Configuration_Exist 111 112 ${resp}= Redfish.Get Attribute ${REDFISH_BASE_URI}AccountService 113 ... ${LDAP_TYPE} default=${EMPTY} 114 Should Not Be Empty ${resp} msg=LDAP configuration is not defined. 115 116 117Verify LDAP User Login 118 [Documentation] Verify that LDAP user able to login into BMC. 119 [Tags] Verify_LDAP_User_Login 120 121 Redfish.Login ${LDAP_USER} ${LDAP_USER_PASSWORD} 122 Redfish.Logout 123 Redfish.Login 124 125 126Verify LDAP Service Available 127 [Documentation] Verify that LDAP service is available. 128 [Tags] Verify_LDAP_Service_Available 129 130 @{ldap_configuration}= Get LDAP Configuration ${LDAP_TYPE} 131 Should Contain ${ldap_configuration} LDAPService 132 ... msg=LDAPService is not available. 133 134 135Verify LDAP Login Works After BMC Reboot 136 [Documentation] Verify that LDAP login works after BMC reboot. 137 [Tags] Verify_LDAP_Login_Works_After_BMC_Reboot 138 139 Redfish OBMC Reboot (off) 140 Redfish.Login ${LDAP_USER} ${LDAP_USER_PASSWORD} 141 Redfish.Logout 142 Redfish.Login 143 144 145Verify LDAP User With Admin Privilege Able To Do BMC Reboot 146 [Documentation] Verify that LDAP user with administrator privilege able to do BMC reboot. 147 [Tags] Verify_LDAP_User_With_Admin_Privilege_Able_To_Do_BMC_Reboot 148 149 150 Update LDAP Configuration with LDAP User Role And Group ${LDAP_TYPE} 151 ... ${GROUP_PRIVILEGE} ${GROUP_NAME} 152 Redfish.Login ${LDAP_USER} ${LDAP_USER_PASSWORD} 153 # With LDAP user and with right privilege trying to do BMC reboot. 154 Redfish OBMC Reboot (off) 155 Redfish.Login ${LDAP_USER} ${LDAP_USER_PASSWORD} 156 Redfish.Logout 157 Redfish.Login 158 159 160Verify LDAP User With Operator Privilege Able To Do Host Poweroff 161 [Documentation] Verify that LDAP user with operator privilege can do host 162 ... power off. 163 [Tags] Verify_LDAP_User_With_Operator_Privilege_Able_To_Do_Host_Poweroff 164 [Teardown] Restore LDAP Privilege 165 166 Update LDAP Configuration with LDAP User Role And Group ${LDAP_TYPE} 167 ... Operator ${GROUP_NAME} 168 169 Redfish.Login ${LDAP_USER} ${LDAP_USER_PASSWORD} 170 # Verify that the LDAP user with operator privilege is able to power the system off. 171 Redfish.Post ${REDFISH_POWER_URI} 172 ... body={'ResetType': 'ForceOff'} valid_status_codes=[200] 173 Redfish.Logout 174 Redfish.Login 175 176 177Verify AccountLockout Attributes Set To Zero 178 [Documentation] Verify that attribute AccountLockoutDuration and 179 ... AccountLockoutThreshold are set to 0. 180 [Teardown] Run Keywords Restore AccountLockout Attributes AND 181 ... FFDC On Test Case Fail 182 [Tags] Verify_AccountLockout_Attributes_Set_To_Zero 183 184 ${old_account_service}= Redfish.Get Properties 185 ... ${REDFISH_BASE_URI}AccountService 186 Rprint Vars old_account_service 187 Redfish.Patch ${REDFISH_BASE_URI}AccountService 188 ... body=[('AccountLockoutDuration', 0)] 189 Redfish.Patch ${REDFISH_BASE_URI}AccountService 190 ... body=[('AccountLockoutThreshold', 0)] 191 192 193Verify LDAP User With Read Privilege Able To Check Inventory 194 [Documentation] Verify that LDAP user with read privilege able to 195 ... read firmware inventory. 196 [Tags] Verify_LDAP_User_With_Read_Privilege_Able_To_Check_Inventory 197 [Teardown] Run Keywords FFDC On Test Case Fail AND Restore LDAP Privilege 198 [Template] Set Read Privilege And Check Firmware Inventory 199 200 User 201 Callback 202 203 204Verify LDAP User With Read Privilege Should Not Do Host Poweron 205 [Documentation] Verify that LDAP user with read privilege should not be 206 ... allowed to power on the host. 207 [Tags] Verify_LDAP_User_With_Read_Privilege_Should_Not_Do_Host_Poweron 208 [Teardown] Run Keywords FFDC On Test Case Fail AND Restore LDAP Privilege 209 [Template] Set Read Privilege And Check Poweron 210 211 User 212 Callback 213 214 215Update LDAP Group Name And Verify Operations 216 [Documentation] Verify that LDAP group name update and able to do right 217 ... operations. 218 [Tags] Update_LDAP_Group_Name_And_Verify_Operations 219 [Template] Update LDAP Config And Verify Set Host Name 220 [Teardown] Restore LDAP Privilege 221 222 # group_name group_privilege valid_status_codes 223 ${GROUP_NAME} Administrator [${HTTP_OK}] 224 ${GROUP_NAME} Operator [${HTTP_UNAUTHORIZED}, ${HTTP_FORBIDDEN}] 225 ${GROUP_NAME} User [${HTTP_UNAUTHORIZED}, ${HTTP_FORBIDDEN}] 226 ${GROUP_NAME} Callback [${HTTP_UNAUTHORIZED}, ${HTTP_FORBIDDEN}] 227 Invalid_LDAP_Group_Name Administrator [${HTTP_UNAUTHORIZED}, ${HTTP_FORBIDDEN}] 228 Invalid_LDAP_Group_Name Operator [${HTTP_UNAUTHORIZED}, ${HTTP_FORBIDDEN}] 229 Invalid_LDAP_Group_Name User [${HTTP_UNAUTHORIZED}, ${HTTP_FORBIDDEN}] 230 Invalid_LDAP_Group_Name Callback [${HTTP_UNAUTHORIZED}, ${HTTP_FORBIDDEN}] 231 232 233Verify LDAP BaseDN Update And LDAP Login 234 [Documentation] Update LDAP BaseDN of LDAP configuration and verify 235 ... that LDAP login works. 236 [Tags] Verify_LDAP_BaseDN_Update_And_LDAP_Login 237 238 239 ${body}= Catenate {'${LDAP_TYPE}': { 'LDAPService': {'SearchSettings': 240 ... {'BaseDistinguishedNames': ['${LDAP_BASE_DN}']}}}} 241 Redfish.Patch ${REDFISH_BASE_URI}AccountService body=${body} 242 Sleep 15s 243 Redfish Verify LDAP Login 244 245 246Verify LDAP BindDN Update And LDAP Login 247 [Documentation] Update LDAP BindDN of LDAP configuration and verify 248 ... that LDAP login works. 249 [Tags] Verify_LDAP_BindDN_Update_And_LDAP_Login 250 251 ${body}= Catenate {'${LDAP_TYPE}': { 'Authentication': 252 ... {'AuthenticationType':'UsernameAndPassword', 'Username': 253 ... '${LDAP_BIND_DN}'}}} 254 Redfish.Patch ${REDFISH_BASE_URI}AccountService body=${body} 255 Sleep 15s 256 Redfish Verify LDAP Login 257 258 259Verify LDAP BindDN Password Update And LDAP Login 260 [Documentation] Update LDAP BindDN password of LDAP configuration and 261 ... verify that LDAP login works. 262 [Tags] Verify_LDAP_BindDN_Passsword_Update_And_LDAP_Login 263 264 265 ${body}= Catenate {'${LDAP_TYPE}': { 'Authentication': 266 ... {'AuthenticationType':'UsernameAndPassword', 'Password': 267 ... '${LDAP_BIND_DN_PASSWORD}'}}} 268 Redfish.Patch ${REDFISH_BASE_URI}AccountService body=${body} 269 Sleep 15s 270 Redfish Verify LDAP Login 271 272 273Verify LDAP Type Update And LDAP Login 274 [Documentation] Update LDAP type of LDAP configuration and verify 275 ... that LDAP login works. 276 [Tags] Verify_LDAP_Type_Update_And_LDAP_Login 277 278 Disable Other LDAP 279 Redfish.Patch ${REDFISH_BASE_URI}AccountService 280 ... body={'${LDAP_TYPE}': {'ServiceEnabled': ${True}}} 281 Sleep 15s 282 Redfish Verify LDAP Login 283 284 285Verify Authorization With Null Privilege 286 [Documentation] Verify the failure of LDAP authorization with empty 287 ... privilege. 288 [Tags] Verify_LDAP_Authorization_With_Null_Privilege 289 [Setup] Create LDAP Configuration 290 [Teardown] Restore LDAP Privilege 291 292 Update LDAP Config And Verify Set Host Name ${GROUP_NAME} ${EMPTY} 293 ... [${HTTP_FORBIDDEN}] 294 295 296Verify Authorization With Invalid Privilege 297 [Documentation] Verify that LDAP user authorization with wrong privilege 298 ... fails. 299 [Tags] Verify_LDAP_Authorization_With_Invalid_Privilege 300 [Setup] Create LDAP Configuration 301 [Teardown] Restore LDAP Privilege 302 303 Update LDAP Config And Verify Set Host Name ${GROUP_NAME} 304 ... Invalid_Privilege [${HTTP_FORBIDDEN}] 305 306 307Verify LDAP Login With Invalid Data 308 [Documentation] Verify that LDAP login with Invalid LDAP data and 309 ... right LDAP user fails. 310 [Tags] Verify_LDAP_Login_With_Invalid_Data 311 [Teardown] Run Keywords FFDC On Test Case Fail AND 312 ... Create LDAP Configuration 313 314 Create LDAP Configuration ${LDAP_TYPE} Invalid_LDAP_Server_URI 315 ... Invalid_LDAP_BIND_DN LDAP_BIND_DN_PASSWORD 316 ... Invalid_LDAP_BASE_DN 317 Sleep 15s 318 Redfish Verify LDAP Login ${False} 319 320 321Verify LDAP Config Creation Without BASE_DN 322 [Documentation] Verify that LDAP login with LDAP configuration 323 ... created without BASE_DN fails. 324 [Tags] Verify_LDAP_Config_Creation_Without_BASE_DN 325 [Teardown] Run Keywords FFDC On Test Case Fail AND 326 ... Create LDAP Configuration 327 328 Create LDAP Configuration ${LDAP_TYPE} Invalid_LDAP_Server_URI 329 ... Invalid_LDAP_BIND_DN LDAP_BIND_DN_PASSWORD ${EMPTY} 330 Sleep 15s 331 Redfish Verify LDAP Login ${False} 332 333 334Verify LDAP Authentication Without Password 335 [Documentation] Verify that LDAP user authentication without LDAP 336 ... user password fails. 337 [Tags] Verify_LDAP_Authentication_Without_Password 338 [Setup] Create LDAP Configuration 339 340 ${status}= Run Keyword And Return Status Redfish.Login ${LDAP_USER} 341 Valid Value status [${False}] 342 343 344*** Keywords *** 345 346Redfish Verify LDAP Login 347 [Documentation] LDAP user log into BMC. 348 [Arguments] ${valid_status}=${True} 349 350 # Description of argument(s): 351 # valid_status Expected status of LDAP login ("True" or "False"). 352 353 # According to our repo coding rules, Redfish.Login is to be done in Suite 354 # Setup and Redfish.Logout is to be done in Suite Teardown. For any 355 # deviation from this rule (such as in this keyword), the deviant code 356 # must take steps to restore us to our original logged-in state. 357 358 ${status}= Run Keyword And Return Status Redfish.Login ${LDAP_USER} 359 ... ${LDAP_USER_PASSWORD} 360 Valid Value status [${valid_status}] 361 Redfish.Logout 362 Redfish.Login 363 364 365Update LDAP Config And Verify Set Host Name 366 [Documentation] Update LDAP config and verify by attempting to set host name. 367 [Arguments] ${group_name} ${group_privilege}=Administrator 368 ... ${valid_status_codes}=[${HTTP_OK}] 369 370 # Description of argument(s): 371 # group_name The group name of user. 372 # group_privilege The group privilege ("Administrator", 373 # "Operator", "User" or "Callback"). 374 # valid_status_codes Expected return code(s) from patch 375 # operation (e.g. "200") used to update 376 # HostName. See prolog of rest_request 377 # method in redfish_plut.py for details. 378 Update LDAP Configuration with LDAP User Role And Group ${LDAP_TYPE} 379 ... ${group_privilege} ${group_name} 380 Redfish.Login ${LDAP_USER} ${LDAP_USER_PASSWORD} 381 # Verify that the LDAP user in ${group_name} with the given privilege is 382 # allowed to change the hostname. 383 ${hostname}= Redfish_Utils.Get Attribute ${REDFISH_NW_PROTOCOL_URI} HostName 384 Redfish.Patch ${REDFISH_NW_PROTOCOL_URI} body={'HostName': '${hostname}'} 385 ... valid_status_codes=${valid_status_codes} 386 Redfish.Logout 387 Redfish.Login 388 389 390Disable Other LDAP 391 [Documentation] Disable other LDAP configuration. 392 393 # First disable other LDAP. 394 ${inverse_ldap_type}= Set Variable If '${LDAP_TYPE}' == 'LDAP' ActiveDirectory LDAP 395 Redfish.Patch ${REDFISH_BASE_URI}AccountService 396 ... body={'${inverse_ldap_type}': {'ServiceEnabled': ${False}}} 397 Sleep 15s 398 399 400Create LDAP Configuration 401 [Documentation] Create LDAP configuration. 402 [Arguments] ${ldap_type}=${LDAP_TYPE} ${ldap_server_uri}=${LDAP_SERVER_URI} 403 ... ${ldap_bind_dn}=${LDAP_BIND_DN} ${ldap_bind_dn_password}=${LDAP_BIND_DN_PASSWORD} 404 ... ${ldap_base_dn}=${LDAP_BASE_DN} 405 406 # Description of argument(s): 407 # ldap_type The LDAP type ("ActiveDirectory" or "LDAP"). 408 # ldap_server_uri LDAP server uri (e.g. ldap://XX.XX.XX.XX). 409 # ldap_bind_dn The LDAP bind distinguished name. 410 # ldap_bind_dn_password The LDAP bind distinguished name password. 411 # ldap_base_dn The LDAP base distinguished name. 412 413 Disable Other LDAP 414 Redfish.Patch ${REDFISH_BASE_URI}AccountService 415 ... body={'${ldap_type}': {'ServiceEnabled': ${True}, 'ServiceAddresses': ['${ldap_server_uri}'], 'Authentication': {'AuthenticationType':'UsernameAndPassword', 'Username':'${ldap_bind_dn}', 'Password':'${ldap_bind_dn_password}'}, 'LDAPService': {'SearchSettings': {'BaseDistinguishedNames': ['${ldap_base_dn}']}}}} 416 Sleep 15s 417 418 419Config LDAP URL 420 [Documentation] Config LDAP URL. 421 [Arguments] ${ldap_server_uri}=${LDAP_SERVER_URI} 422 423 # Description of argument(s): 424 # ldap_server_uri LDAP server uri (e.g. "ldap://XX.XX.XX.XX/"). 425 426 Redfish.Patch ${REDFISH_BASE_URI}AccountService 427 ... body={'${ldap_type}': {'ServiceAddresses': ['${ldap_server_uri}']}} 428 Sleep 15s 429 # After update, LDAP login. 430 Redfish.Login ${LDAP_USER} ${LDAP_USER_PASSWORD} 431 Redfish.Logout 432 Redfish.Login 433 434 435Restore LDAP URL 436 [Documentation] Restore LDAP URL. 437 438 # Restoring the working LDAP server uri. 439 Redfish.Patch ${REDFISH_BASE_URI}AccountService 440 ... body={'${ldap_type}': {'ServiceAddresses': ['${LDAP_SERVER_URI}']}} 441 Sleep 15s 442 443 444Restore AccountLockout Attributes 445 [Documentation] Restore AccountLockout Attributes. 446 447 Return From Keyword If &{old_account_service} == &{EMPTY} 448 Redfish.Patch ${REDFISH_BASE_URI}AccountService 449 ... body=[('AccountLockoutDuration', ${old_account_service['AccountLockoutDuration']})] 450 Redfish.Patch ${REDFISH_BASE_URI}AccountService 451 ... body=[('AccountLockoutDuration', ${old_account_service['AccountLockoutThreshold']})] 452 453 454Suite Setup Execution 455 [Documentation] Do suite setup tasks. 456 457 Valid Value LDAP_TYPE valid_values=["ActiveDirectory", "LDAP"] 458 Valid Value LDAP_USER 459 Valid Value LDAP_USER_PASSWORD 460 Valid Value GROUP_PRIVILEGE 461 Valid Value GROUP_NAME 462 Valid Value LDAP_SERVER_URI 463 Valid Value LDAP_BIND_DN_PASSWORD 464 Valid Value LDAP_BIND_DN 465 Valid Value LDAP_BASE_DN 466 467 Redfish.Login 468 # Call 'Get LDAP Configuration' to verify that LDAP configuration exists. 469 Get LDAP Configuration ${LDAP_TYPE} 470 ${old_ldap_privilege}= Get LDAP Privilege 471 472 473Set Read Privilege And Check Firmware Inventory 474 [Documentation] Set read privilege and check firmware inventory. 475 [Arguments] ${read_privilege} 476 477 # Description of argument(s): 478 # read_privilege The read privilege role (e.g. "User" / "Callback"). 479 480 Update LDAP Configuration with LDAP User Role And Group ${LDAP_TYPE} 481 ... ${read_privilege} ${GROUP_NAME} 482 483 Redfish.Login ${LDAP_USER} ${LDAP_USER_PASSWORD} 484 # Verify that the LDAP user with read privilege is able to read inventory. 485 ${resp}= Redfish.Get /redfish/v1/UpdateService/FirmwareInventory 486 Should Be True ${resp.dict["Members@odata.count"]} >= ${1} 487 Length Should Be ${resp.dict["Members"]} ${resp.dict["Members@odata.count"]} 488 Redfish.Logout 489 Redfish.Login 490 491 492Set Read Privilege And Check Poweron 493 [Documentation] Set read privilege and power on should not be possible. 494 [Arguments] ${read_privilege} 495 496 # Description of argument(s): 497 # read_privilege The read privilege role (e.g. "User" / "Callback"). 498 499 Update LDAP Configuration with LDAP User Role And Group ${LDAP_TYPE} 500 ... ${read_privilege} ${GROUP_NAME} 501 Redfish.Login ${LDAP_USER} ${LDAP_USER_PASSWORD} 502 Redfish.Post ${REDFISH_POWER_URI} 503 ... body={'ResetType': 'On'} valid_status_codes=[401, 403] 504 Redfish.Logout 505 Redfish.Login 506 507 508Get LDAP Configuration 509 [Documentation] Retrieve LDAP Configuration. 510 [Arguments] ${ldap_type} 511 512 # Description of argument(s): 513 # ldap_type The LDAP type ("ActiveDirectory" or "LDAP"). 514 515 ${ldap_config}= Redfish.Get Properties ${REDFISH_BASE_URI}AccountService 516 [Return] ${ldap_config["${ldap_type}"]} 517 518 519Update LDAP Configuration with LDAP User Role And Group 520 [Documentation] Update LDAP configuration update with LDAP user Role and group. 521 [Arguments] ${ldap_type} ${group_privilege} ${group_name} 522 523 # Description of argument(s): 524 # ldap_type The LDAP type ("ActiveDirectory" or "LDAP"). 525 # group_privilege The group privilege ("Administrator", "Operator", "User" or "Callback"). 526 # group_name The group name of user. 527 528 ${local_role_remote_group}= Create Dictionary LocalRole=${group_privilege} RemoteGroup=${group_name} 529 ${remote_role_mapping}= Create List ${local_role_remote_group} 530 ${ldap_data}= Create Dictionary RemoteRoleMapping=${remote_role_mapping} 531 ${payload}= Create Dictionary ${ldap_type}=${ldap_data} 532 Redfish.Patch ${REDFISH_BASE_URI}AccountService body=&{payload} 533 # Provide adequate time for LDAP daemon to restart after the update. 534 Sleep 15s 535 536 537Get LDAP Privilege 538 [Documentation] Get LDAP privilege and return it. 539 540 ${ldap_config}= Get LDAP Configuration ${LDAP_TYPE} 541 ${num_list_entries}= Get Length ${ldap_config["RemoteRoleMapping"]} 542 Return From Keyword If ${num_list_entries} == ${0} @{EMPTY} 543 544 [Return] ${ldap_config["RemoteRoleMapping"][0]["LocalRole"]} 545 546 547Restore LDAP Privilege 548 [Documentation] Restore the LDAP privilege to its original value. 549 550 Return From Keyword If '${old_ldap_privilege}' == '${EMPTY}' 551 # Log back in to restore the original privilege. 552 Update LDAP Configuration with LDAP User Role And Group ${LDAP_TYPE} 553 ... ${old_ldap_privilege} ${GROUP_NAME} 554