---
# 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'
            - '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'
            - 'echo -e "\n++++++++++ bmcweb session data ++++++++++" >> /tmp/OPENBMC_general.txt'
            - 'for f in `find /var/lib/bmcweb/ -name "*.json"`; do (echo $f; cat $f) done >> /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'
            - 'export PDBG_DTB=/var/lib/phosphor-software-manager/pnor/rw/DEVTREE; guard -l >/tmp/GUARD_list.txt'
            - 'pldmtool fru getfrurecordtable>/tmp/PLDM_fru_record.txt'
            - 'killall -s SIGUSR1 pldmd; sleep 5'
            - 'fanctl dump'
            - 'cp /var/lib/phosphor-software-manager/pnor/rw/DEVTREE /tmp/DEVTREE'
        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'
        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'
