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 14b44c957dSAnves Kumar rayankula [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 60b44c957dSAnves Kumar rayankula [Return] ${ldap_group_names} 61b44c957dSAnves Kumar rayankula 62*4fa52d77SAnves Kumar rayankula 63*4fa52d77SAnves Kumar rayankulaCreate LDAP Configuration 64*4fa52d77SAnves Kumar rayankula [Documentation] Create LDAP configuration. 65*4fa52d77SAnves Kumar rayankula [Arguments] ${ldap_type}=${LDAP_TYPE} ${ldap_server_uri}=${LDAP_SERVER_URI} 66*4fa52d77SAnves Kumar rayankula ... ${ldap_bind_dn}=${LDAP_BIND_DN} ${ldap_bind_dn_password}=${LDAP_BIND_DN_PASSWORD} 67*4fa52d77SAnves Kumar rayankula ... ${ldap_base_dn}=${LDAP_BASE_DN} 68*4fa52d77SAnves Kumar rayankula 69*4fa52d77SAnves Kumar rayankula # Description of argument(s): 70*4fa52d77SAnves Kumar rayankula # ldap_type The LDAP type ("ActiveDirectory" or "LDAP"). 71*4fa52d77SAnves Kumar rayankula # ldap_server_uri LDAP server uri (e.g. ldap://XX.XX.XX.XX). 72*4fa52d77SAnves Kumar rayankula # ldap_bind_dn The LDAP bind distinguished name. 73*4fa52d77SAnves Kumar rayankula # ldap_bind_dn_password The LDAP bind distinguished name password. 74*4fa52d77SAnves Kumar rayankula # ldap_base_dn The LDAP base distinguished name. 75*4fa52d77SAnves Kumar rayankula 76*4fa52d77SAnves Kumar rayankula ${body}= Catenate {'${ldap_type}': 77*4fa52d77SAnves Kumar rayankula ... {'ServiceEnabled': ${True}, 78*4fa52d77SAnves Kumar rayankula ... 'ServiceAddresses': ['${ldap_server_uri}'], 79*4fa52d77SAnves Kumar rayankula ... 'Authentication': 80*4fa52d77SAnves Kumar rayankula ... {'AuthenticationType': 'UsernameAndPassword', 81*4fa52d77SAnves Kumar rayankula ... 'Username':'${ldap_bind_dn}', 82*4fa52d77SAnves Kumar rayankula ... 'Password': '${ldap_bind_dn_password}'}, 83*4fa52d77SAnves Kumar rayankula ... 'LDAPService': 84*4fa52d77SAnves Kumar rayankula ... {'SearchSettings': 85*4fa52d77SAnves Kumar rayankula ... {'BaseDistinguishedNames': ['${ldap_base_dn}']}}}} 86*4fa52d77SAnves Kumar rayankula 87*4fa52d77SAnves Kumar rayankula Redfish.Patch ${REDFISH_BASE_URI}AccountService body=${body} 88*4fa52d77SAnves Kumar rayankula Sleep 15s 89