blob: 15cd86fbe1205cbcb1b72049b4537eda78f547cb [file] [log] [blame]
#!/usr/bin/python
'''
#############################################################
# @file openbmc_ffdc_list.py
#
# @brief List for FFDC ( First failure data capture )
# commands and files to be collected as a part
# of the test case failure.
#############################################################
'''
#-------------------
# FFDC default list
#-------------------
#-----------------------------------------------------------------
#Dict Name { Index string : { Key String : Comand string} }
#-----------------------------------------------------------------
# Add cmd's needed to be part of the ffdc report manifest file
FFDC_BMC_CMD = {
'DRIVER INFO' :
{
#String Name Command
'Build Info' : 'cat /etc/version',
'FW Level' : 'cat /etc/os-release',
},
'BMC DATA' :
{
'BMC OS' : 'uname -a',
'BMC Uptime' : 'uptime',
'BMC Proc Info' : 'cat /proc/cpuinfo',
'BMC File System Disk Space Usage' : 'df -hT',
},
'APPLICATION DATA' :
{
'BMC state' : '/usr/sbin/obmcutil state',
},
}
# Add file name and correcponding command needed for BMC
FFDC_BMC_FILE = {
'BMC FILES' :
{
#File Name Command
'BMC_proc_list' : 'top -n 1 -b',
'BMC_journalctl.log' : 'journalctl --no-pager',
},
}
# Define your keywords in method/utils and call here
FFDC_METHOD_CALL = {
'BMC LOGS' :
{
#Description Keyword name
'FFDC Generic Report' : 'BMC FFDC Manifest',
'BMC Specific Files' : 'BMC FFDC Files',
},
}
#-----------------------------------------------------------------
# base class for FFDC default list
class openbmc_ffdc_list():
########################################################################
# @brief This method returns the list from the dictionary for cmds
# @param i_type: @type string: string index lookup
# @return List of key pair from the dictionary
########################################################################
def get_ffdc_bmc_cmd(self,i_type):
return FFDC_BMC_CMD[i_type].items()
########################################################################
# @brief This method returns the list from the dictionary for scp
# @param i_type: @type string: string index lookup
# @return List of key pair from the dictionary
########################################################################
def get_ffdc_bmc_file(self,i_type):
return FFDC_BMC_FILE[i_type].items()
########################################################################
# @brief This method returns the list index from dictionary
# @return List of index to the dictionary
########################################################################
def get_ffdc_cmd_index(self):
return FFDC_BMC_CMD.keys()
########################################################################
# @brief This method returns the list index from dictionary
# @return List of index to the dictionary
########################################################################
def get_ffdc_file_index(self):
return FFDC_BMC_FILE.keys()
########################################################################
# @brief This method returns the key pair from the dictionary
# @return Index of the method dictionary
########################################################################
def get_ffdc_method_index(self):
return FFDC_METHOD_CALL.keys()
########################################################################
# @brief This method returns the key pair from the dictionary
# @return List of key pair keywords
########################################################################
def get_ffdc_method_call(self,i_type):
return FFDC_METHOD_CALL[i_type].items()
########################################################################
# @brief Returns the stripped strings
# @param i_str: @type string: string name
# @return Remove all special chars and return the string
########################################################################
def get_strip_string(self, i_str):
return ''.join(e for e in i_str if e.isalnum())