blob: 50bb5ff37ce938ee791401084e2a13022f91a469 [file] [log] [blame]
#!/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