|  | #!/bin/bash | 
|  | # | 
|  | # config: 2 20 | 
|  | # @brief: Get the ldap configuration | 
|  | # | 
|  |  | 
|  | # shellcheck disable=SC1091 | 
|  | # shellcheck disable=SC2086 | 
|  |  | 
|  | . "$DREPORT_INCLUDE"/functions | 
|  |  | 
|  | desc="ldap configuration" | 
|  |  | 
|  | open_ldap_command="busctl get-property \ | 
|  | xyz.openbmc_project.Ldap.Config \ | 
|  | /xyz/openbmc_project/user/ldap/openldap \ | 
|  | xyz.openbmc_project.Object.Enable \ | 
|  | 'Enabled'" | 
|  |  | 
|  | active_dir_command="busctl get-property \ | 
|  | xyz.openbmc_project.Ldap.Config \ | 
|  | /xyz/openbmc_project/user/ldap/active_directory \ | 
|  | xyz.openbmc_project.Object.Enable \ | 
|  | 'Enabled'" | 
|  |  | 
|  | commands=( | 
|  | "systemctl status nslcd" | 
|  | "systemctl status xyz.openbmc_project.Ldap.Config" | 
|  | "busctl tree xyz.openbmc_project.Ldap.Config" | 
|  | "busctl call  xyz.openbmc_project.Ldap.Config \ | 
|  | /xyz/openbmc_project/user/ldap \ | 
|  | org.freedesktop.DBus.ObjectManager \ | 
|  | 'GetManagedObjects'" | 
|  | ) | 
|  |  | 
|  | file_name=$"ldap_bmcdump_$EPOCHTIME" | 
|  | output_file_dir="$TMP_DIR/ldap_bmcdump" | 
|  | output_file="$output_file_dir/$file_name" | 
|  |  | 
|  | if [ -e "$output_file" ]; then | 
|  | rm "$output_file" | 
|  | fi | 
|  |  | 
|  | if [ ! -d "$output_file_dir" ]; then | 
|  | mkdir -p "$output_file_dir" | 
|  | fi | 
|  |  | 
|  | ldapEnabled="false" | 
|  |  | 
|  | if result=$(eval "$open_ldap_command" | awk '{print $NF}'); then | 
|  | if [ "$result" == "true" ]; then | 
|  | ldapEnabled="true" | 
|  | elif [ "$result" == "false" ]; then | 
|  | if result=$(eval "$active_dir_command" | awk '{print $NF}'); then | 
|  | if [ "$result" == "true" ]; then | 
|  | ldapEnabled="true" | 
|  | fi | 
|  | fi | 
|  | fi | 
|  | fi | 
|  |  | 
|  | if [ "$ldapEnabled" == "false" ]; then | 
|  | log_warning "skipping LDAP dump: LDAP is not enabled" | 
|  | exit 0; | 
|  | else | 
|  | for cmd in "${commands[@]}"; do | 
|  | result=$(eval "$cmd" ) | 
|  | echo "=============$cmd=============" >> "$output_file" | 
|  | echo "$result" >> "$output_file" | 
|  | done | 
|  |  | 
|  | command="cat $output_file" | 
|  | file_name="usrmgrldap.log" | 
|  | add_cmd_output "$command" "$file_name" "$desc" | 
|  | rm -rf $output_file | 
|  |  | 
|  | desc="nslcd config" | 
|  | result=$(sed '/^bindpw/d' /etc/nslcd.conf) | 
|  | command="printf \"%s\n\" \"\$result\"" | 
|  | file_name="nslcd.conf" | 
|  | add_cmd_output "$command" "$file_name" "$desc" | 
|  | fi |