---
# 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}:${port_https} -S Always raw GET
              /redfish/v1/AccountService/Accounts
            - redfishtool -u ${username} -p ${password} -r
              ${hostname}:${port_https} -S Always raw GET
              /redfish/v1/Managers/${manager_id}/LogServices/Dump/Entries
            - redfishtool -u ${username} -p ${password} -r
              ${hostname}:${port_https} -S Always raw GET
              /redfish/v1/Systems/system/LogServices/Dump/Entries
            - redfishtool -u ${username} -p ${password} -r
              ${hostname}:${port_https} -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} -p ${port_ipmi} lan print
            - ipmitool -I lanplus -C 17 -U ${username} -P ${password} -H
              ${hostname} -p ${port_ipmi} fru list
            - ipmitool -I lanplus -C 17 -U ${username} -P ${password} -H
              ${hostname} -p ${port_ipmi} 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"
