1b44c957dSAnves Kumar rayankula*** Settings *** 2b44c957dSAnves Kumar rayankulaDocumentation This module provides general keywords for LDAP. 3b44c957dSAnves Kumar rayankula 4b44c957dSAnves Kumar rayankula*** Keywords *** 5b44c957dSAnves Kumar rayankula 6b44c957dSAnves Kumar rayankulaGet LDAP Configuration Using Redfish 7b44c957dSAnves Kumar rayankula [Documentation] Retrieve LDAP Configuration. 8b44c957dSAnves Kumar rayankula [Arguments] ${ldap_type} 9b44c957dSAnves Kumar rayankula 10b44c957dSAnves Kumar rayankula # Description of argument(s): 11b44c957dSAnves Kumar rayankula # ldap_type The LDAP type ("ActiveDirectory" or "LDAP"). 12b44c957dSAnves Kumar rayankula 13b44c957dSAnves Kumar rayankula ${ldap_config}= Redfish.Get Properties ${REDFISH_BASE_URI}AccountService 14*409df05dSGeorge Keishing RETURN ${ldap_config["${ldap_type}"]} 15b44c957dSAnves Kumar rayankula 16b44c957dSAnves Kumar rayankula 17b44c957dSAnves Kumar rayankulaGet LDAP Privilege And Group Name Via Redfish 18b44c957dSAnves Kumar rayankula [Documentation] Get LDAP groupname via Redfish. 19b44c957dSAnves Kumar rayankula 20b44c957dSAnves Kumar rayankula # Get LDAP configuration via Redfish. 21b44c957dSAnves Kumar rayankula # Sample output of LDAP configuration: 22b44c957dSAnves Kumar rayankula # { 23b44c957dSAnves Kumar rayankula # 'RemoteRoleMapping': [ 24b44c957dSAnves Kumar rayankula # { 25b44c957dSAnves Kumar rayankula # 'RemoteGroup': 'openldapgroup', 26b44c957dSAnves Kumar rayankula # 'LocalRole': 'Administrator' 27b44c957dSAnves Kumar rayankula # }, 28b44c957dSAnves Kumar rayankula # ], 29b44c957dSAnves Kumar rayankula # 'Authentication': 30b44c957dSAnves Kumar rayankula # { 31b44c957dSAnves Kumar rayankula # 'Username': 'cn=Administrator,dc=ldap,dc=com', 32b44c957dSAnves Kumar rayankula # 'Password': None, 33b44c957dSAnves Kumar rayankula # 'AuthenticationType': 'UsernameAndPassword' 34b44c957dSAnves Kumar rayankula # }, 35b44c957dSAnves Kumar rayankula # 'LDAPService': 36b44c957dSAnves Kumar rayankula # { 37b44c957dSAnves Kumar rayankula # 'SearchSettings': 38b44c957dSAnves Kumar rayankula # { 39b44c957dSAnves Kumar rayankula # 'BaseDistinguishedNames': ['dc=ldap,dc=com'], 40b44c957dSAnves Kumar rayankula # 'UsernameAttribute': 'cn', 41b44c957dSAnves Kumar rayankula # 'GroupsAttribute': 'gidNumber' 42b44c957dSAnves Kumar rayankula # } 43b44c957dSAnves Kumar rayankula # }, 44b44c957dSAnves Kumar rayankula # 'ServiceEnabled': True, 45b44c957dSAnves Kumar rayankula # 'Certificates': 46b44c957dSAnves Kumar rayankula # { 47b44c957dSAnves Kumar rayankula # '@odata.id': u'/redfish/v1/AccountService/LDAP/Certificates' 48b44c957dSAnves Kumar rayankula # }, 49b44c957dSAnves Kumar rayankula # 'ServiceAddresses': ['ldap://xx.xx.xx.xx/'] 50b44c957dSAnves Kumar rayankula # } 51b44c957dSAnves Kumar rayankula 52b44c957dSAnves Kumar rayankula ${ldap_config}= Get LDAP Configuration Using Redfish ${LDAP_TYPE} 53b44c957dSAnves Kumar rayankula ${num_list_entries}= Get Length ${ldap_config["RemoteRoleMapping"]} 54b44c957dSAnves Kumar rayankula Return From Keyword If ${num_list_entries} == ${0} @{EMPTY} 55b44c957dSAnves Kumar rayankula ${ldap_group_names}= Create List 56b44c957dSAnves Kumar rayankula FOR ${i} IN RANGE ${num_list_entries} 57b44c957dSAnves Kumar rayankula Append To List ${ldap_group_names} ${ldap_config["RemoteRoleMapping"][${i}]["RemoteGroup"]} 58b44c957dSAnves Kumar rayankula END 59b44c957dSAnves Kumar rayankula 60*409df05dSGeorge Keishing RETURN ${ldap_group_names} 61b44c957dSAnves Kumar rayankula 624fa52d77SAnves Kumar rayankula 634fa52d77SAnves Kumar rayankulaCreate LDAP Configuration 644fa52d77SAnves Kumar rayankula [Documentation] Create LDAP configuration. 654fa52d77SAnves Kumar rayankula [Arguments] ${ldap_type}=${LDAP_TYPE} ${ldap_server_uri}=${LDAP_SERVER_URI} 664fa52d77SAnves Kumar rayankula ... ${ldap_bind_dn}=${LDAP_BIND_DN} ${ldap_bind_dn_password}=${LDAP_BIND_DN_PASSWORD} 674fa52d77SAnves Kumar rayankula ... ${ldap_base_dn}=${LDAP_BASE_DN} 684fa52d77SAnves Kumar rayankula 694fa52d77SAnves Kumar rayankula # Description of argument(s): 704fa52d77SAnves Kumar rayankula # ldap_type The LDAP type ("ActiveDirectory" or "LDAP"). 714fa52d77SAnves Kumar rayankula # ldap_server_uri LDAP server uri (e.g. ldap://XX.XX.XX.XX). 724fa52d77SAnves Kumar rayankula # ldap_bind_dn The LDAP bind distinguished name. 734fa52d77SAnves Kumar rayankula # ldap_bind_dn_password The LDAP bind distinguished name password. 744fa52d77SAnves Kumar rayankula # ldap_base_dn The LDAP base distinguished name. 754fa52d77SAnves Kumar rayankula 764fa52d77SAnves Kumar rayankula ${body}= Catenate {'${ldap_type}': 774fa52d77SAnves Kumar rayankula ... {'ServiceEnabled': ${True}, 784fa52d77SAnves Kumar rayankula ... 'ServiceAddresses': ['${ldap_server_uri}'], 794fa52d77SAnves Kumar rayankula ... 'Authentication': 804fa52d77SAnves Kumar rayankula ... {'AuthenticationType': 'UsernameAndPassword', 814fa52d77SAnves Kumar rayankula ... 'Username':'${ldap_bind_dn}', 824fa52d77SAnves Kumar rayankula ... 'Password': '${ldap_bind_dn_password}'}, 834fa52d77SAnves Kumar rayankula ... 'LDAPService': 844fa52d77SAnves Kumar rayankula ... {'SearchSettings': 854fa52d77SAnves Kumar rayankula ... {'BaseDistinguishedNames': ['${ldap_base_dn}']}}}} 864fa52d77SAnves Kumar rayankula 874fa52d77SAnves Kumar rayankula Redfish.Patch ${REDFISH_BASE_URI}AccountService body=${body} 884fa52d77SAnves Kumar rayankula Sleep 15s 89