---
# This yaml formatted file contains defaults items to collect FFDC for the targeted system
# COMMANDS - List of commands to be run on the corresponding targeted system (inband)
#            to generate and/or collect data
# FILES    - List of files; with complete path; on the corresponding targeted system
#            to be copied to external destination
# PROTOCOL - Protocol used to communicate with targeted system; ssh, Rest, redfish, etc
#
# Note: Items in COMMANDS and FILES are not necessarily one-to-one correspondence.
#       For example, a file could have been created by an internal process,
#       and is listed in FILES to be collected.
#

# Commands and Files to collect for a given OpenBMC system.
OPENBMC:
    # Commands and File to take snapshot of linux based system.
    # Filename is <OS>_general.txt, where <OS> is in [OPENBMC, RHEL, UBUNTU]
    GENERAL:
        COMMANDS:
            - 'rm -rf /tmp/*BMC_* /tmp/PEL_* /tmp/pldm* /tmp/PLDM* /tmp/GUARD* /tmp/fan_* /tmp/DEVTREE /tmp/bmcweb_*'
            - 'echo "++++++++++ cat /etc/os-release ++++++++++" >> /tmp/OPENBMC_general.txt'
            - 'cat /etc/os-release >> /tmp/OPENBMC_general.txt'
            - 'echo -e "\n++++++++++ cat /etc/timestamp ++++++++++" >> /tmp/OPENBMC_general.txt'
            - 'cat /etc/timestamp >> /tmp/OPENBMC_general.txt'
            - 'echo -e "\n++++++++++ uname -a ++++++++++" >> /tmp/OPENBMC_general.txt'
            - 'uname -a >> /tmp/OPENBMC_general.txt'
            - 'echo -e "\n++++++++++ cat /etc/timestamp ++++++++++" >> /tmp/OPENBMC_general.txt'
            - 'cat /etc/timestamp >> /tmp/OPENBMC_general.txt'
            - 'echo -e "\n++++++++++ uptime;cat /proc/uptime ++++++++++" >> /tmp/OPENBMC_general.txt'
            - 'uptime >> /tmp/OPENBMC_general.txt'
            - 'cat /proc/uptime >> /tmp/OPENBMC_general.txt'
            - 'echo -e "\n++++++++++ df -hT ++++++++++" >> /tmp/OPENBMC_general.txt'
            - 'df -hT >> /tmp/OPENBMC_general.txt'
            - 'echo -e "\n++++++++++ date;/sbin/hwclock --show ++++++++++" >> /tmp/OPENBMC_general.txt'
            - 'date >> /tmp/OPENBMC_general.txt'
            - '/sbin/hwclock --show >> /tmp/OPENBMC_general.txt'
            - '/usr/bin/timedatectl >> /tmp/OPENBMC_general.txt'
            - 'echo -e "\n++++++++++ /usr/bin/obmcutil state ++++++++++" >> /tmp/OPENBMC_general.txt'
            - '/usr/bin/obmcutil state >> /tmp/OPENBMC_general.txt'
        FILES:
            - '/tmp/OPENBMC_general.txt'
        PROTOCOL:
            - 'SSH'

    OPENBMC_LOGS:
        COMMANDS:
            - 'cat /sys/class/watchdog/watchdog1/bootstatus >/tmp/BMC_flash_side.txt'
            - 'grep -r . /sys/class/hwmon/* >/tmp/BMC_hwmon.txt'
            - 'top -n 1 -b >/tmp/BMC_proc_list.txt'
            - 'ls -Al /proc/*/fd/ >/tmp/BMC_proc_fd_active_list.txt'
            - 'journalctl --no-pager >/tmp/BMC_journalctl_nopager.txt'
            - 'journalctl -o json-pretty >/tmp/BMC_journalctl_pretty.json'
            - 'dmesg >/tmp/BMC_dmesg.txt'
            - 'cat /proc/cpuinfo >/tmp/BMC_procinfo.txt'
            - 'cat /proc/meminfo >/tmp/BMC_meminfo.txt'
            - 'systemctl status --all >/tmp/BMC_systemd.txt'
            - 'systemctl list-units --failed >/tmp/BMC_failed_service.txt'
            - 'systemctl list-jobs >/tmp/BMC_list_service.txt'
            - 'cat /var/log/obmc-console.log >/tmp/BMC_obmc_console.txt'
            - 'cat /var/log/obmc-console1.log >/tmp/BMC_obmc_console1.txt'
            - 'peltool -l >/tmp/PEL_logs_list.json'
            - {'peltool -a >/tmp/PEL_logs_display.json':600}
            - {'peltool  -l -a -f >/tmp/PEL_logs_complete_list.json 2>&1':1200}
            - {'peltool -a -f -h>/tmp/PEL_logs_complete_display.json 2>&1':1200}
            - {'strace -p $(pidof pldmd) -o /tmp/pldmd_strace.txt & sleep 60 ; kill $!':70}
            - 'hexdump -C /var/lib/phosphor-logging/extensions/pels/badPEL >/tmp/PEL_logs_badPEL.txt'
            - 'guard -l >/tmp/GUARD_list.txt'
            - 'pldmtool fru getfrurecordtable>/tmp/PLDM_fru_record.txt'
            - 'killall -s SIGUSR1 pldmd; sleep 5'
            - 'fanctl dump'
            - 'cat /var/lib/phosphor-software-manager/pnor/rw/DEVTREE > /tmp/DEVTREE'
            - 'cat /home/root/bmcweb_persistent_data.json > /tmp/bmcweb_persistent_data.json'
        FILES:
            - '/tmp/BMC_flash_side.txt'
            - '/tmp/BMC_hwmon.txt'
            - '/tmp/BMC_proc_list.txt'
            - '/tmp/BMC_proc_fd_active_list.txt'
            - '/tmp/BMC_journalctl_nopager.txt'
            - '/tmp/BMC_journalctl_pretty.json'
            - '/tmp/BMC_dmesg.txt'
            - '/tmp/BMC_procinfo.txt'
            - '/tmp/BMC_meminfo.txt'
            - '/tmp/BMC_systemd.txt'
            - '/tmp/BMC_failed_service.txt'
            - '/tmp/BMC_list_service.txt'
            - '/tmp/BMC_obmc_console.txt'
            - '/tmp/BMC_obmc_console1.txt'
            - '/tmp/PEL_logs_list.json'
            - '/tmp/PEL_logs_complete_list.json'
            - '/tmp/PEL_logs_complete_display.json'
            - '/tmp/PEL_logs_display.json'
            - '/tmp/pldmd_strace.txt'
            - '/tmp/PEL_logs_badPEL.txt'
            - '/tmp/GUARD_list.txt'
            - '/tmp/PLDM_fru_record.txt'
            - '/tmp/pldm_flight_recorder'
            - '/tmp/fan_control_dump.json'
            - '/tmp/DEVTREE'
            - '/tmp/bmcweb_persistent_data.json'
        PROTOCOL:
            - 'SSH'

    # DUMP_LOGS: This section provides option to 'SCP if file exist'.
    #     COMMANDS: filename is preceded by ls -AX '.
    #     FILES: is not needed and is ignored if exists.
    DUMP_LOGS:
        COMMANDS:
            - 'ls -AX /var/lib/systemd/coredump/core.*'
            - 'ls -AX /var/lib/phosphor-debug-collector/dumps/*/*'
            - 'ls -AX /var/lib/phosphor-debug-collector/hostbootdump/*/*'
        PROTOCOL:
            - 'SCP'

    # URLs and Files for OPENBMC redfish
    # URLs and Files are one-to-one corresponding.
    # File contains the data returned from 'redfishtool GET URL'
    REDFISH_LOGS:
        COMMANDS:
            - redfishtool -u ${username} -p ${password} -r ${hostname} -S Always raw GET /redfish/v1/AccountService/Accounts
            - redfishtool -u ${username} -p ${password} -r ${hostname} -S Always raw GET /redfish/v1/Managers/bmc/LogServices/Dump/Entries
            - redfishtool -u ${username} -p ${password} -r ${hostname} -S Always raw GET /redfish/v1/Systems/system/LogServices/Dump/Entries
            - redfishtool -u ${username} -p ${password} -r ${hostname} -S Always raw GET /redfish/v1/Systems/system/LogServices/EventLog/Entries
            - plugin:
              - plugin_name: plugin.redfish.enumerate_request
              - plugin_args:
                - ${hostname}
                - ${username}
                - ${password}
                - /redfish/v1/
                - json
        FILES:
            - 'REDFISH_bmc_user_accounts.json'
            - 'REDFISH_bmc_dump_entries.json'
            - 'REDFISH_system_dumps_entries.json'
            - 'REDFISH_event_log_entries.json'
            - 'REDFISH_enumerate_v1.json'
        PROTOCOL:
            - 'REDFISH'

    # Commands and Files to collect for via out of band IPMI.
    IPMI_LOGS:
        COMMANDS:
            - ipmitool -I lanplus -C 17 -U ${username} -P ${password} -H ${hostname} lan print
            - ipmitool -I lanplus -C 17 -U ${username} -P ${password} -H ${hostname} fru list
            - ipmitool -I lanplus -C 17 -U ${username} -P ${password} -H ${hostname} user list
        FILES:
            - 'IPMI_LAN_print.txt'
            - 'IPMI_FRU_list.txt'
            - 'IPMI_USER_list.txt'
        PROTOCOL:
            - 'IPMI'

# Commands and Files to collect for all Linux distributions
LINUX:
    LINUX_LOGS:
        COMMANDS:
            - 'cat /sys/firmware/opal/msglog >/tmp/OS_msglog.txt'
            - 'ppc64_cpu --frequency >/tmp/OS_cpufrequency.txt'
            - 'dmesg >/tmp/OS_dmesg.txt'
            - 'cat /var/log/opal-prd* >/tmp/OS_opal_prd.txt'
            - 'cat /var/log/boot.log >/tmp/OS_boot.txt'
            - 'cat /proc/cpuinfo >/tmp/OS_procinfo.txt'
            - 'cat /proc/meminfo >/tmp/OS_meminfo.txt'
            - 'netstat -a >/tmp/OS_netstat.txt'
            - 'lspci >/tmp/OS_lspci.txt'
            - 'lscpu >/tmp/OS_lscpu.txt'
            - 'lscfg >/tmp/OS_lscfg.txt'
            - 'journalctl --no-pager -b > /tmp/OS_journalctl_nopager.txt '
        FILES:
            - '/tmp/OS_msglog.txt'
            - '/tmp/OS_cpufrequency.txt'
            - '/tmp/OS_dmesg.txt'
            - '/tmp/OS_opal_prd.txt'
            - '/tmp/OS_boot.txt'
            - '/tmp/OS_procinfo.txt'
            - '/tmp/OS_meminfo.txt'
            - '/tmp/OS_netstat.txt'
            - '/tmp/OS_lspci.txt'
            - '/tmp/OS_lscpu.txt'
            - '/tmp/OS_lscfg.txt'
            - '/tmp/OS_journalctl_nopager.txt'
        PROTOCOL:
            - 'SSH'

# Commands and Files to collect for Ubuntu Linux only
UBUNTU:
    GENERAL:
        COMMANDS:
            - 'rm -rf /tmp/UBUNTU_general.txt'
            - 'echo "++++++++++ UBUNTU Rleasae ++++++++++" > /tmp/UBUNTU_general.txt'
            - 'cat /etc/os-release >> /tmp/UBUNTU_general.txt'
            - 'echo "\n++++++++++ Time stamp ++++++++++" >> /tmp/UBUNTU_general.txt'
            - 'date >> /tmp/UBUNTU_general.txt'
            - 'echo  "\n++++++++++ uname -a ++++++++++" >> /tmp/UBUNTU_general.txt'
            - 'uname -a >> /tmp/UBUNTU_general.txt'
            - 'echo "\n++++++++++ uptime ++++++++++" >> /tmp/UBUNTU_general.txt'
            - 'uptime >> /tmp/UBUNTU_general.txt'
        FILES:
            - '/tmp/UBUNTU_general.txt'
        PROTOCOL:
            - 'SSH'
    UBUNTU_LOGS:
        COMMANDS:
            - '{ cat /etc/os-release; uname -a; rpm -qa ; } >/tmp/OS_info.txt'
            - 'tail -n 200000 /var/log/messages >/tmp/OS_syslog.txt'
            - 'rm -rf /tmp/sosreport*FFDC*'
            - {'sosreport --batch --tmp-dir /tmp --label FFDC >/tmp/OS_sosreport.txt': 1200}
            - 'tar -zcvf /tmp/crash.tar.gz /var/crash'
        FILES:
            - '/tmp/OS_info.txt'
            - '/tmp/OS_syslog.txt'
            - '/tmp/OS_sosreport.txt'
            - '/tmp/sosreport*.tar.xz'
            - '/tmp/crash.tar.gz'
        PROTOCOL:
            - 'SSH'
    DUMP_LOGS:
        COMMANDS:
            - 'ls -AX /tmp/htx/htxerr'
            - 'ls -AX /tmp/htx/htxmsg'
        PROTOCOL:
            - 'SCP'

# Commands and Files to collect for RHE Linux only
RHEL:
    GENERAL:
        COMMANDS:
            - 'rm -rf /tmp/RHEL_general.txt'
            - 'echo "++++++++++ RHEL Rleasae ++++++++++" > /tmp/RHEL_general.txt'
            - 'cat /etc/os-release >> /tmp/RHEL_general.txt'
            - 'echo -e "\n++++++++++ Time stamp ++++++++++" >> /tmp/RHEL_general.txt'
            - 'date >> /tmp/RHEL_general.txt'
            - 'echo -e "\n++++++++++ uname -a ++++++++++" >> /tmp/RHEL_general.txt'
            - 'uname -a >> /tmp/RHEL_general.txt'
            - 'echo -e "\n++++++++++ uptime ++++++++++" >> /tmp/RHEL_general.txt'
            - 'uptime >> /tmp/RHEL_general.txt'
        FILES:
            - '/tmp/RHEL_general.txt'
        PROTOCOL:
            - 'SSH'
    RHEL_LOGS:
        COMMANDS:
            - '{ cat /etc/os-release; uname -a; rpm -qa ; } >/tmp/OS_info.txt'
            - 'tail -n 200000 /var/log/messages >/tmp/OS_syslog.txt'
            - 'rm -rf /tmp/sosreport*FFDC*'
            - {'sosreport --batch --tmp-dir /tmp --label FFDC >/tmp/OS_sosreport.txt': 1200}
            - 'tar -zcvf /tmp/crash.tar.gz /var/crash'
        FILES:
            - '/tmp/OS_info.txt'
            - '/tmp/OS_syslog.txt'
            - '/tmp/OS_sosreport.txt'
            - '/tmp/sosreport*.tar.xz'
            - '/tmp/crash.tar.gz'
        PROTOCOL:
            - 'SSH'
    DUMP_LOGS:
        COMMANDS:
            - 'ls -AX /tmp/htx/htxerr'
            - 'ls -AX /tmp/htx/htxmsg'
        PROTOCOL:
            - 'SCP'

# Commands and Files to collect for SLES Linux only
SLES:
    GENERAL:
        COMMANDS:
            - 'rm -rf /tmp/SLES_general.txt'
            - 'echo "++++++++++ SLES Rleasae ++++++++++" > /tmp/SLES_general.txt'
            - 'cat /etc/os-release >> /tmp/SLES_general.txt'
            - 'echo "\n++++++++++ Time stamp ++++++++++" >> /tmp/SLES_general.txt'
            - 'date >> /tmp/SLES_general.txt'
            - 'echo "\n++++++++++ uname -a ++++++++++" >> /tmp/SLES_general.txt'
            - 'uname -a >> /tmp/SLES_general.txt'
            - 'echo "\n++++++++++ uptime ++++++++++" >> /tmp/SLES_general.txt'
            - 'uptime >> /tmp/SLES_general.txt'
        FILES:
            - '/tmp/SLES_general.txt'
        PROTOCOL:
            - 'SSH'
    SLES_LOGS:
        COMMANDS:
            - '{ cat /etc/os-release; uname -a; rpm -qa ; } >/tmp/OS_info.txt'
            - 'tail -n 200000 /var/log/messages >/tmp/OS_syslog.txt'
            - 'rm -rf /tmp/scc*.txz.md5'
            - {'supportconfig >/tmp/OS_supportconfig.txt': 1200}
            - 'cp /var/log/scc*.txz.md5 /tmp/'
            - 'tar -zcvf /tmp/crash.tar.gz /var/crash'
        FILES:
            - '/tmp/OS_info.txt'
            - '/tmp/OS_syslog.txt'
            - '/tmp/OS_supportconfig.txt'
            - '/tmp/scc*.txz.md5'
            - '/tmp/crash.tar.gz'
        PROTOCOL:
            - 'SSH'
    DUMP_LOGS:
        COMMANDS:
            - 'ls -AX /tmp/htx/htxerr'
            - 'ls -AX /tmp/htx/htxmsg'
        PROTOCOL:
            - 'SCP'

# Commands and Files to collect for AIX only
AIX:
    GENERAL:
        COMMANDS:
            - 'rm -rf /tmp/AIX_general.txt'
            - 'echo "++++++++++ AIX Release ++++++++++" > /tmp/AIX_general.txt'
            - 'cat /proc/version | tail -1 >> /tmp/AIX_general.txt'
            - 'echo "\n++++++++++ Time stamp ++++++++++" >> /tmp/AIX_general.txt'
            - 'date >> /tmp/AIX_general.txt'
            - 'echo  "\n++++++++++ uname -a ++++++++++" >> /tmp/AIX_general.txt'
            - 'uname -a >> /tmp/AIX_general.txt'
            - 'echo "\n++++++++++ uptime ++++++++++" >> /tmp/AIX_general.txt'
            - 'uptime >> /tmp/AIX_general.txt'
            - 'echo "\n++++++++++ System Info ++++++++++" >> /tmp/AIX_general.txt'
            - 'prtconf | head -15 >> /tmp/AIX_general.txt'
        FILES:
            - '/tmp/AIX_general.txt'
        PROTOCOL:
            - 'SSH'
    AIX_LOGS:
        COMMANDS:
            - 'errpt -a >/tmp/OS_errpt.txt ; errclear 0;'
            - 'bindprocessor -q >/tmp/OS_processors.txt'
        FILES:
            - '/tmp/OS_errpt.txt'
            - '/tmp/OS_processors.txt'
        PROTOCOL:
            - 'SSH'
    DUMP_LOGS:
        COMMANDS:
            - 'ls -AX /tmp/htx/htxerr'
            - 'ls -AX /tmp/htx/htxmsg'
        PROTOCOL:
            - 'SCP'
