本文整理汇总了Python中common.OpTestSystem.OpTestSystem类的典型用法代码示例。如果您正苦于以下问题:Python OpTestSystem类的具体用法?Python OpTestSystem怎么用?Python OpTestSystem使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了OpTestSystem类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: OpTestHeartbeat
class OpTestHeartbeat():
## Initialize this object
# @param i_bmcIP The IP address of the BMC
# @param i_bmcUser The userid to log into the BMC with
# @param i_bmcPasswd The password of the userid to log into the BMC with
# @param i_bmcUserIpmi The userid to issue the BMC IPMI commands with
# @param i_bmcPasswdIpmi The password of BMC IPMI userid
# @param i_ffdcDir Optional param to indicate where to write FFDC
#
# "Only required for inband tests" else Default = None
# @param i_hostIP The IP address of the HOST
# @param i_hostuser The userid to log into the HOST
# @param i_hostPasswd The password of the userid to log into the HOST with
#
def __init__(self, i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir=None, i_hostip=None,
i_hostuser=None, i_hostPasswd=None):
self.cv_BMC = OpTestBMC(i_bmcIP, i_bmcUser, i_bmcPasswd, i_ffdcDir)
self.cv_IPMI = OpTestIPMI(i_bmcIP, i_bmcUserIpmi, i_bmcPasswdIpmi,
i_ffdcDir)
self.cv_HOST = OpTestHost(i_hostip, i_hostuser, i_hostPasswd, i_bmcIP)
self.cv_SYSTEM = OpTestSystem(i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir, i_hostip,
i_hostuser, i_hostPasswd)
self.util = OpTestUtil()
##
# @brief This function will cover following test steps
# 1. It will check for os level and get kernel version
# 2. It will check for existence of ps command
# 3. It will check for kopald service is running
#
# @return BMC_CONST.FW_SUCCESS or raise OpTestError
#
def test_kopald_service(self):
self.cv_SYSTEM.sys_bmc_power_on_validate_host()
# Get OS level
l_oslevel = self.cv_HOST.host_get_OS_Level()
# Get kernel version
l_kernel = self.cv_HOST.host_get_kernel_version()
# Checking for ps command
self.cv_HOST.host_check_command("ps")
l_cmd = "ps -ef | grep -i kopald"
print l_cmd
l_res = self.cv_HOST.host_run_command(l_cmd)
print l_res
if (l_res.__contains__('[kopald]')):
return BMC_CONST.FW_SUCCESS
else:
l_msg = "kopald service is not running"
print l_msg
raise OpTestError(l_msg)
示例2: OpTestDropbearSafety
class OpTestDropbearSafety():
## Initialize this object
# @param i_bmcIP The IP address of the BMC
# @param i_bmcUser The userid to log into the BMC with
# @param i_bmcPasswd The password of the userid to log into the BMC with
# @param i_bmcUserIpmi The userid to issue the BMC IPMI commands with
# @param i_bmcPasswdIpmi The password of BMC IPMI userid
# @param i_ffdcDir Optional param to indicate where to write FFDC
#
# "Only required for inband tests" else Default = None
# @param i_hostIP The IP address of the HOST
# @param i_hostuser The userid to log into the HOST
# @param i_hostPasswd The password of the userid to log into the HOST with
#
def __init__(self, i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir=None, i_hostip=None,
i_hostuser=None, i_hostPasswd=None):
self.cv_BMC = OpTestBMC(i_bmcIP, i_bmcUser, i_bmcPasswd, i_ffdcDir)
self.cv_IPMI = OpTestIPMI(i_bmcIP, i_bmcUserIpmi, i_bmcPasswdIpmi,
i_ffdcDir, i_hostip, i_hostuser, i_hostPasswd)
self.cv_HOST = OpTestHost(i_hostip, i_hostuser, i_hostPasswd, i_bmcIP)
self.cv_SYSTEM = OpTestSystem(i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir, i_hostip,
i_hostuser, i_hostPasswd)
self.util = OpTestUtil()
##
# @brief This function will tests Dropbear running functionality in skiroot
# 1. Power Off the system
# 2. Power on the system
# 3. Exit to the petitboot shell
# 4. Execute ps command
# 5. test will fail incase dropbear is running and listed out by ps
# 6. At the end of test reboot the system to OS.
#
# @return BMC_CONST.FW_SUCCESS or raise OpTestError
#
def test_dropbear_running(self):
self.cv_SYSTEM.sys_bmc_power_on_validate_host()
print "Test Dropbear running in Petitboot"
print "Performing IPMI Power Off Operation"
self.console = self.cv_SYSTEM.sys_get_ipmi_console()
self.cv_SYSTEM.sys_ipmi_boot_system_to_petitboot(self.console)
self.cv_IPMI.ipmi_host_set_unique_prompt(self.console)
self.cv_IPMI.run_host_cmd_on_ipmi_console("uname -a")
# we don't grep for 'dropbear' so that our naive line.count
# below doesn't hit a false positive.
res = self.cv_IPMI.run_host_cmd_on_ipmi_console("ps|grep drop")
print res
self.cv_IPMI.ipmi_set_boot_to_disk()
for line in res:
if line.count('dropbear'):
raise OpTestError("drobear is running in the skiroot")
return BMC_CONST.FW_SUCCESS
示例3: __init__
def __init__(
self,
i_bmcIP,
i_bmcUser,
i_bmcPasswd,
i_bmcUserIpmi,
i_bmcPasswdIpmi,
i_ffdcDir=None,
i_hostip=None,
i_hostuser=None,
i_hostPasswd=None,
i_hostLspci=None,
):
self.cv_BMC = OpTestBMC(i_bmcIP, i_bmcUser, i_bmcPasswd, i_ffdcDir)
self.cv_IPMI = OpTestIPMI(
i_bmcIP, i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir, i_hostip, i_hostuser, i_hostPasswd
)
self.cv_HOST = OpTestHost(i_hostip, i_hostuser, i_hostPasswd, i_bmcIP, i_ffdcDir)
self.cv_SYSTEM = OpTestSystem(
i_bmcIP,
i_bmcUser,
i_bmcPasswd,
i_bmcUserIpmi,
i_bmcPasswdIpmi,
i_ffdcDir,
i_hostip,
i_hostuser,
i_hostPasswd,
)
self.util = OpTestUtil()
self.lspci_file = i_hostLspci
示例4: __init__
def __init__(
self,
i_bmcIP,
i_bmcUser,
i_bmcPasswd,
i_bmcUserIpmi,
i_bmcPasswdIpmi,
i_ffdcDir=None,
i_lparip=None,
i_lparuser=None,
i_lparPasswd=None,
):
self.cv_BMC = OpTestBMC(i_bmcIP, i_bmcUser, i_bmcPasswd, i_ffdcDir)
self.cv_IPMI = OpTestIPMI(
i_bmcIP, i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir, i_lparip, i_lparuser, i_lparPasswd
)
self.cv_LPAR = OpTestLpar(i_lparip, i_lparuser, i_lparPasswd, i_bmcIP)
self.cv_SYSTEM = OpTestSystem(
i_bmcIP,
i_bmcUser,
i_bmcPasswd,
i_bmcUserIpmi,
i_bmcPasswdIpmi,
i_ffdcDir,
i_lparip,
i_lparuser,
i_lparPasswd,
)
self.util = OpTestUtil()
示例5: __init__
def __init__(self, i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir=None, i_hostIP=None,
i_hostUser=None, i_hostPasswd=None):
self.cv_BMC = OpTestBMC(i_bmcIP, i_bmcUser, i_bmcPasswd, i_ffdcDir)
self.cv_IPMI = OpTestIPMI(i_bmcIP, i_bmcUserIpmi, i_bmcPasswdIpmi,
i_ffdcDir)
self.cv_HOST = OpTestHost(i_hostIP, i_hostUser, i_hostPasswd, i_bmcIP)
self.cv_SYSTEM = OpTestSystem(i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir, i_hostIP,
i_hostUser, i_hostPasswd)
self.util = OpTestUtil()
示例6: OpTestIPMIPowerControl
class OpTestIPMIPowerControl():
## Initialize this object
# @param i_bmcIP The IP address of the BMC
# @param i_bmcUser The userid to log into the BMC with
# @param i_bmcPasswd The password of the userid to log into the BMC with
# @param i_bmcUserIpmi The userid to issue the BMC IPMI commands with
# @param i_bmcPasswdIpmi The password of BMC IPMI userid
# @param i_ffdcDir Optional param to indicate where to write FFDC
#
# "Only required for inband tests" else Default = None
# @param i_hostIP The IP address of the HOST
# @param i_hostuser The userid to log into the HOST
# @param i_hostPasswd The password of the userid to log into the HOST with
#
def __init__(self, i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir=None, i_hostip=None,
i_hostuser=None, i_hostPasswd=None):
self.cv_BMC = OpTestBMC(i_bmcIP, i_bmcUser, i_bmcPasswd, i_ffdcDir)
self.cv_IPMI = OpTestIPMI(i_bmcIP, i_bmcUserIpmi, i_bmcPasswdIpmi,
i_ffdcDir, i_hostip, i_hostuser, i_hostPasswd)
self.cv_HOST = OpTestHost(i_hostip, i_hostuser, i_hostPasswd, i_bmcIP)
self.cv_SYSTEM = OpTestSystem(i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir, i_hostip,
i_hostuser, i_hostPasswd)
self.util = OpTestUtil()
##
# @brief This function will test below system power control operations
# IPMI Power ON
# Power OFF
# Power Soft
# Power Cycle
# Power Reset
# So each operation is executed through ipmi commands. and
# check_system_status function will check whether FW and Host OS
# Boot completed or not.
#
# @return BMC_CONST.FW_SUCCESS or raise OpTestError
#
def testIPMIPowerControl(self):
self.cv_SYSTEM.sys_bmc_power_on_validate_host()
print "Performing a IPMI Power OFF Operation"
# Perform a IPMI Power OFF Operation(Immediate Shutdown)
self.cv_IPMI.ipmi_power_off()
if int(self.cv_SYSTEM.sys_wait_for_standby_state(BMC_CONST.SYSTEM_STANDBY_STATE_DELAY)) == 0:
print "System is in standby/Soft-off state"
else:
l_msg = "System failed to reach standby/Soft-off state"
raise OpTestError(l_msg)
print "Performing a IPMI Power ON Operation"
# Perform a IPMI Power ON Operation
self.cv_IPMI.ipmi_power_on()
self.check_system_status()
self.util.PingFunc(self.cv_HOST.ip, BMC_CONST.PING_RETRY_POWERCYCLE)
print "Performing a IPMI Soft Power OFF Operation"
# Perform a IPMI Soft Power OFF Operation(Graceful shutdown)
self.cv_IPMI.ipmi_power_soft()
if int(self.cv_SYSTEM.sys_wait_for_standby_state(BMC_CONST.SYSTEM_STANDBY_STATE_DELAY)) == 0:
print "System is in standby/Soft-off state"
else:
l_msg = "System failed to reach standby/Soft-off state"
raise OpTestError(l_msg)
print "Perform a IPMI Power ON Operation"
# Perform a IPMI Power ON Operation
self.cv_IPMI.ipmi_power_on()
self.check_system_status()
self.util.PingFunc(self.cv_HOST.ip, BMC_CONST.PING_RETRY_POWERCYCLE)
print "Performing a IPMI Power Cycle(Soft reboot) Operation "
# Perform a IPMI Power Cycle(Soft reboot) Operation only when system is in ON state
self.cv_IPMI.ipmi_power_cycle()
self.check_system_status()
self.util.PingFunc(self.cv_HOST.ip, BMC_CONST.PING_RETRY_POWERCYCLE)
print "Performing a IPMI Power Hard Reset Operation"
# Perform a IPMI Power Hard Reset Operation
self.cv_IPMI.ipmi_power_reset()
self.check_system_status()
self.util.PingFunc(self.cv_HOST.ip, BMC_CONST.PING_RETRY_POWERCYCLE)
return BMC_CONST.FW_SUCCESS
##
# @brief This function will check for system status and wait for
# FW and Host OS Boot progress to complete.
#
# @return BMC_CONST.FW_SUCCESS or raise OpTestError
#
def check_system_status(self):
if int(self.cv_SYSTEM.sys_ipl_wait_for_working_state()) == 0:
print "System booted to working state"
else:
l_msg = "System failed to boot"
raise OpTestError(l_msg)
if int(self.cv_SYSTEM.sys_wait_for_os_boot_complete()) == 0:
print "System booted to Host OS"
#.........这里部分代码省略.........
示例7: OpTestIPMILockMode
class OpTestIPMILockMode():
## Initialize this object
# @param i_bmcIP The IP address of the BMC
# @param i_bmcUser The userid to log into the BMC with
# @param i_bmcPasswd The password of the userid to log into the BMC with
# @param i_bmcUserIpmi The userid to issue the BMC IPMI commands with
# @param i_bmcPasswdIpmi The password of BMC IPMI userid
# @param i_ffdcDir Optional param to indicate where to write FFDC
#
# "Only required for inband tests" else Default = None
# @param i_lparIP The IP address of the LPAR
# @param i_lparuser The userid to log into the LPAR
# @param i_lparPasswd The password of the userid to log into the LPAR with
#
def __init__(self, i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir=None, i_lparip=None,
i_lparuser=None, i_lparPasswd=None):
self.cv_BMC = OpTestBMC(i_bmcIP, i_bmcUser, i_bmcPasswd, i_ffdcDir)
self.cv_IPMI = OpTestIPMI(i_bmcIP, i_bmcUserIpmi, i_bmcPasswdIpmi,
i_ffdcDir, i_lparip, i_lparuser, i_lparPasswd)
self.cv_LPAR = OpTestLpar(i_lparip, i_lparuser, i_lparPasswd, i_bmcIP)
self.cv_SYSTEM = OpTestSystem(i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir, i_lparip,
i_lparuser, i_lparPasswd)
self.util = OpTestUtil()
##
# @brief This function will cover following test steps
# 1. It will get the OS level installed on power platform
# 2. It will check for kernel version installed on the Open Power Machine
# 3. It will check for ipmitool command existence and ipmitool package
# 4. Load the necessary ipmi modules based on config values
# 5. Issue a ipmi lock command through out-of-band authenticated interface
# 6. Now BMC IPMI is in locked mode, at this point only white listed
# in-band ipmi commands sholud work(No other in-band ipmi command should work)
# 7. Execute and test the functionality of whitelisted in-band ipmi
# commands in locked mode
# 8. At the end of test issue a ipmi unlock command to revert the availablity of all
# in-band ipmi commands in unlocked mode.
#
# @return BMC_CONST.FW_SUCCESS or raise OpTestError
#
def test_ipmi_lock_mode(self):
# Get OS level
l_oslevel = self.cv_LPAR.lpar_get_OS_Level()
# Get kernel version
l_kernel = self.cv_LPAR.lpar_get_kernel_version()
# Checking for ipmitool command and lm_sensors package
self.cv_LPAR.lpar_check_command("ipmitool")
l_pkg = self.cv_LPAR.lpar_check_pkg_for_utility(l_oslevel, "ipmitool")
print "Installed package: %s" % l_pkg
# loading below ipmi modules based on config option
# ipmi_devintf, ipmi_powernv and ipmi_masghandler
self.cv_LPAR.lpar_load_module_based_on_config(l_kernel, BMC_CONST.CONFIG_IPMI_DEVICE_INTERFACE,
BMC_CONST.IPMI_DEV_INTF)
self.cv_LPAR.lpar_load_module_based_on_config(l_kernel, BMC_CONST.CONFIG_IPMI_POWERNV,
BMC_CONST.IPMI_POWERNV)
self.cv_LPAR.lpar_load_module_based_on_config(l_kernel, BMC_CONST.CONFIG_IPMI_HANDLER,
BMC_CONST.IPMI_MSG_HANDLER)
# Issue a ipmi lock command through authenticated interface
print "Issuing ipmi lock command through authenticated interface"
l_res = self.cv_IPMI.ipmitool_execute_command(BMC_CONST.IPMI_LOCK_CMD)
l_res = l_res.splitlines()
if int(l_res[-1]):
l_msg = "IPMI:Lock command failed, There may be two reasons here.\n\
a. check the corresponding parches available in AMI driver code,\n\
b. if patches available then command is failing"
print l_msg
raise OpTestError(l_msg)
print "IPMI:Lock command executed successfully"
try:
self.run_inband_ipmi_whitelisted_cmds()
except:
l_msg = "One of white listed in-band ipmi command execution failed"
print sys.exc_info()
finally:
# Issue a ipmi unlock command at the end of test.
print "Issuing ipmi unlock command through authenticated interface"
self.cv_IPMI.ipmitool_execute_command(BMC_CONST.IPMI_UNLOCK_CMD)
##
# @brief This function will execute whitelisted in-band ipmi commands
# and test the functionality in locked mode.
#
# @return BMC_CONST.FW_SUCCESS or raise OpTestError
#
def run_inband_ipmi_whitelisted_cmds(self):
l_con = self.cv_SYSTEM.sys_get_ipmi_console()
self.cv_IPMI.ipmi_lpar_login(l_con)
self.cv_IPMI.ipmi_lpar_set_unique_prompt(l_con)
self.cv_IPMI.run_lpar_cmd_on_ipmi_console("uname -a")
# Test IPMI white listed commands those should be allowed through un-authenticated
# in-band interface
#.........这里部分代码省略.........
示例8: OpTestEM
class OpTestEM():
## Initialize this object
# @param i_bmcIP The IP address of the BMC
# @param i_bmcUser The userid to log into the BMC with
# @param i_bmcPasswd The password of the userid to log into the BMC with
# @param i_bmcUserIpmi The userid to issue the BMC IPMI commands with
# @param i_bmcPasswdIpmi The password of BMC IPMI userid
# @param i_ffdcDir Optional param to indicate where to write FFDC
#
# "Only required for inband tests" else Default = None
# @param i_hostIP The IP address of the HOST
# @param i_hostuser The userid to log into the HOST
# @param i_hostPasswd The password of the userid to log into the HOST with
#
def __init__(self, i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir=None, i_hostip=None,
i_hostuser=None, i_hostPasswd=None):
self.cv_BMC = OpTestBMC(i_bmcIP, i_bmcUser, i_bmcPasswd, i_ffdcDir)
self.cv_IPMI = OpTestIPMI(i_bmcIP, i_bmcUserIpmi, i_bmcPasswdIpmi,
i_ffdcDir)
self.cv_HOST = OpTestHost(i_hostip, i_hostuser, i_hostPasswd, i_bmcIP)
self.cv_SYSTEM = OpTestSystem(i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir, i_hostip,
i_hostuser, i_hostPasswd)
self.util = OpTestUtil()
##
# @brief This function will cover following test steps
# 1. It will get the OS and kernel versions.
# 2. Check the cpupower utility is available in host.
# 3. Get available cpu scaling frequencies
# 4. Set the userspace governer for all cpu's
# 5. test the cpufreq driver by set/verify cpu frequency
#
# @return BMC_CONST.FW_SUCCESS or raise OpTestError
#
def test_cpu_freq_states(self):
self.cv_SYSTEM.sys_bmc_power_on_validate_host()
# Get OS level
l_oslevel = self.cv_HOST.host_get_OS_Level()
# Get kernel version
l_kernel = self.cv_HOST.host_get_kernel_version()
self.cv_HOST.host_check_command("cpupower")
# Get available cpu scaling frequencies
l_res = self.cv_HOST.host_run_command("cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies")
freq_list = (l_res.strip()).split(' ')
print freq_list
# Set the cpu governer to userspace
self.set_cpu_gov("userspace")
self.verify_cpu_gov("userspace")
for i in range(1, 100):
i_freq = random.choice(freq_list)
self.set_cpu_freq(i_freq)
self.verify_cpu_freq(i_freq)
return BMC_CONST.FW_SUCCESS
##
# @brief This function will cover following test steps
# 1. It will get the OS and kernel versions.
# 2. Check the cpupower utility is available in host.
# 3. Set the userspace governer for all cpu's
# 4. test the cpuidle driver by enable/disable/verify the idle states
#
# @return BMC_CONST.FW_SUCCESS or raise OpTestError
#
def test_cpu_idle_states(self):
self.cv_SYSTEM.sys_bmc_power_on_validate_host()
# Get OS level
l_oslevel = self.cv_HOST.host_get_OS_Level()
# Get kernel version
l_kernel = self.cv_HOST.host_get_kernel_version()
self.cv_HOST.host_check_command("cpupower")
# currently p8 cpu has 3 states
for i in (0, 1, 2):
self.enable_idle_state(i)
self.verify_enable_idle_state(i)
for i in (0, 1, 2):
self.disable_idle_state(i)
self.verify_disable_idle_state(i)
return BMC_CONST.FW_SUCCESS
##
# @brief sets the cpu frequency with i_freq value
#
# @param i_freq @type str: this is the frequency of cpu to be set
#
# @return BMC_CONST.FW_SUCCESS or raise OpTestError
#
def set_cpu_freq(self, i_freq):
l_cmd = "for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_setspeed; do echo %s > $i; done" % i_freq
self.cv_HOST.host_run_command(l_cmd)
#.........这里部分代码省略.........
示例9: OpTestEnergyScale
class OpTestEnergyScale():
## Initialize this object
# @param i_bmcIP The IP address of the BMC
# @param i_bmcUser The userid to log into the BMC with
# @param i_bmcPasswd The password of the userid to log into the BMC with
# @param i_bmcUserIpmi The userid to issue the BMC IPMI commands with
# @param i_bmcPasswdIpmi The password of BMC IPMI userid
# @param i_ffdcDir Optional param to indicate where to write FFDC
#
# "Only required for inband tests" else Default = None
# @param i_hostIP The IP address of the HOST
# @param i_hostuser The userid to log into the HOST
# @param i_hostPasswd The password of the userid to log into the HOST with
#
def __init__(self, i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir=None, i_platName=None, i_hostip=None,
i_hostuser=None, i_hostPasswd=None):
self.cv_BMC = OpTestBMC(i_bmcIP, i_bmcUser, i_bmcPasswd, i_ffdcDir)
self.cv_IPMI = OpTestIPMI(i_bmcIP, i_bmcUserIpmi, i_bmcPasswdIpmi,
i_ffdcDir, i_hostip, i_hostuser, i_hostPasswd)
self.cv_HOST = OpTestHost(i_hostip, i_hostuser, i_hostPasswd, i_bmcIP)
self.cv_SYSTEM = OpTestSystem(i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir, i_hostip,
i_hostuser, i_hostPasswd)
self.cv_PLATFORM = i_platName
self.util = OpTestUtil()
##
# @brief This function will get and return platform power limits for supported machine
#
# @param i_platform type: str platform name to get the power limits
#
# @return l_power_limit_low lower platform power limit
# l_power_limit_high higher platform power limit
# or raise OpTestError if it is a new platform
#
def get_platform_power_limits(self, i_platform):
l_platform = i_platform
if BMC_CONST.HABANERO in l_platform:
l_power_limit_high = BMC_CONST.HABANERO_POWER_LIMIT_HIGH
l_power_limit_low = BMC_CONST.HABANERO_POWER_LIMIT_LOW
elif BMC_CONST.FIRESTONE in l_platform:
l_power_limit_high = BMC_CONST.FIRESTONE_POWER_LIMIT_HIGH
l_power_limit_low = BMC_CONST.FIRESTONE_POWER_LIMIT_LOW
elif BMC_CONST.GARRISON in l_platform:
l_power_limit_high = BMC_CONST.GARRISON_POWER_LIMIT_HIGH
l_power_limit_low = BMC_CONST.GARRISON_POWER_LIMIT_LOW
else:
l_msg = "New platform, add power limit support to this platform and retry"
raise OpTestError(l_msg)
return l_power_limit_low, l_power_limit_high
##
# @brief This function will test Energy scale features at standby state
# 1. Power OFF the system.
# 2. Validate below Energy scale features at standby state
# ipmitool dcmi power get_limit :Get the configured power limits.
# ipmitool dcmi power set_limit limit <value> :Power Limit Requested in Watts.
# ipmitool dcmi power activate :Activate the set power limit.
# ipmitool dcmi power deactivate :Deactivate the set power limit.
# 3. Once platform power limit activated execute below dcmi commands at standby state.
# ipmitool dcmi discover :This command is used to discover
# supported capabilities in DCMI.
# ipmitool dcmi power reading :Get power related readings from the system.
# ipmitool dcmi power get_limit :Get the configured power limits.
# ipmitool dcmi power sensors :Prints the available DCMI sensors.
# ipmitool dcmi get_temp_reading :Get Temperature Sensor Readings.
# 4. Power ON the system.
# 5. Check after system booted to runtime, whether occ's are active or not.
# 6. Again in runtime execute all dcmi commands to check the functionality.
#
# @return BMC_CONST.FW_SUCCESS or BMC_CONST.FW_FAILED
#
def test_energy_scale_at_standby_state(self):
self.cv_SYSTEM.sys_bmc_power_on_validate_host()
print "Energy Scale Test 1: Get, Set, activate and deactivate platform power limit at power off"
l_power_limit_low, l_power_limit_high = self.get_platform_power_limits(self.cv_PLATFORM)
print "Performing a IPMI Power OFF Operation"
# Perform a IPMI Power OFF Operation(Immediate Shutdown)
self.cv_IPMI.ipmi_power_off()
if int(self.cv_SYSTEM.sys_wait_for_standby_state(BMC_CONST.SYSTEM_STANDBY_STATE_DELAY)) == 0:
print "System is in standby/Soft-off state"
else:
l_msg = "System failed to reach standby/Soft-off state"
raise OpTestError(l_msg)
self.cv_IPMI.ipmi_sdr_clear()
print self.cv_IPMI.ipmi_get_power_limit()
self.cv_IPMI.ipmi_set_power_limit(l_power_limit_high)
self.cv_IPMI.ipmi_activate_power_limit()
self.cv_IPMI.ipmi_deactivate_power_limit()
print self.cv_IPMI.ipmi_get_power_limit()
self.cv_IPMI.ipmi_activate_power_limit()
print self.cv_IPMI.ipmi_get_power_limit()
self.cv_IPMI.ipmi_deactivate_power_limit()
self.cv_IPMI.ipmi_set_power_limit(l_power_limit_low)
self.cv_IPMI.ipmi_activate_power_limit()
print self.cv_IPMI.ipmi_get_power_limit()
self.cv_IPMI.ipmi_set_power_limit(l_power_limit_high)
self.cv_IPMI.ipmi_get_power_limit()
#.........这里部分代码省略.........
示例10: OpTestOCC
class OpTestOCC():
## Initialize this object
# @param i_bmcIP The IP address of the BMC
# @param i_bmcUser The userid to log into the BMC with
# @param i_bmcPasswd The password of the userid to log into the BMC with
# @param i_bmcUserIpmi The userid to issue the BMC IPMI commands with
# @param i_bmcPasswdIpmi The password of BMC IPMI userid
# @param i_ffdcDir Optional param to indicate where to write FFDC
#
# "Only required for inband tests" else Default = None
# @param i_hostIP The IP address of the HOST
# @param i_hostuser The userid to log into the HOST
# @param i_hostPasswd The password of the userid to log into the HOST with
#
def __init__(self, i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir=None, i_hostip=None,
i_hostuser=None, i_hostPasswd=None):
self.cv_BMC = OpTestBMC(i_bmcIP, i_bmcUser, i_bmcPasswd, i_ffdcDir)
self.cv_IPMI = OpTestIPMI(i_bmcIP, i_bmcUserIpmi, i_bmcPasswdIpmi,
i_ffdcDir, i_hostip, i_hostuser, i_hostPasswd)
self.cv_HOST = OpTestHost(i_hostip, i_hostuser, i_hostPasswd, i_bmcIP)
self.cv_SYSTEM = OpTestSystem(i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir, i_hostip,
i_hostuser, i_hostPasswd)
self.util = OpTestUtil()
##
# @brief This function is used to test OCC Reset funtionality in BMC based systems.
# OCC Reset reload is limited to 3 times per full power cycle.
#
# @return BMC_CONST.FW_SUCCESS or raise OpTestError
#
def test_occ_reset_functionality(self):
self.cv_SYSTEM.sys_bmc_power_on_validate_host()
print "Performing a IPMI Power OFF Operation"
# Perform a IPMI Power OFF Operation(Immediate Shutdown)
self.cv_IPMI.ipmi_power_off()
if int(self.cv_SYSTEM.sys_wait_for_standby_state(BMC_CONST.SYSTEM_STANDBY_STATE_DELAY)) == 0:
print "System is in standby/Soft-off state"
else:
l_msg = "System failed to reach standby/Soft-off state"
raise OpTestError(l_msg)
self.cv_IPMI.ipmi_power_on()
self.cv_SYSTEM.sys_check_host_status()
if self.check_occ_status() == BMC_CONST.FW_FAILED:
l_msg = "OCC's are not in active state"
#raise OpTestError(l_msg)
print "OPAL-PRD: OCC Enable"
self.cv_HOST.host_run_command(BMC_CONST.OCC_ENABLE)
print "OPAL-PRD: OCC DISABLE"
self.cv_HOST.host_run_command(BMC_CONST.OCC_DISABLE)
print "OPAL-PRD: OCC RESET"
self.cv_HOST.host_run_command(BMC_CONST.OCC_RESET)
time.sleep(60)
if self.check_occ_status() == BMC_CONST.FW_FAILED:
l_msg = "OCC's are not in active state"
#raise OpTestError(l_msg)
print "OPAL-PRD: OCC Enable"
self.cv_HOST.host_run_command(BMC_CONST.OCC_ENABLE)
print "OPAL-PRD: OCC DISABLE"
self.cv_HOST.host_run_command(BMC_CONST.OCC_DISABLE)
print "OPAL-PRD: OCC RESET"
self.cv_HOST.host_run_command(BMC_CONST.OCC_RESET)
time.sleep(60)
if self.check_occ_status() == BMC_CONST.FW_FAILED:
l_msg = "OCC's are not in active state"
#raise OpTestError(l_msg)
print "OPAL-PRD: OCC Enable"
self.cv_HOST.host_run_command(BMC_CONST.OCC_ENABLE)
print "OPAL-PRD: OCC DISABLE"
self.cv_HOST.host_run_command(BMC_CONST.OCC_DISABLE)
print "OPAL-PRD: OCC RESET"
self.cv_HOST.host_run_command(BMC_CONST.OCC_RESET)
time.sleep(60)
if self.check_occ_status() == BMC_CONST.FW_FAILED:
l_msg = "OCC's are not in active state, rebooting the system"
print "Performing a IPMI Power OFF Operation"
# Perform a IPMI Power OFF Operation(Immediate Shutdown)
self.cv_IPMI.ipmi_power_off()
if int(self.cv_SYSTEM.sys_wait_for_standby_state(BMC_CONST.SYSTEM_STANDBY_STATE_DELAY)) == 0:
print "System is in standby/Soft-off state"
else:
l_msg = "System failed to reach standby/Soft-off state"
raise OpTestError(l_msg)
self.cv_IPMI.ipmi_power_on()
self.cv_SYSTEM.sys_check_host_status()
if self.check_occ_status() == BMC_CONST.FW_FAILED:
l_msg = "OCC's are not in active state"
raise OpTestError(l_msg)
##
# @brief This function is used to test OCC Reset funtionality in BMC based systems.
# OCC Reset reload can be done more than 3 times per full power cycle, by
# resetting OCC resetreload count.
#
# @return BMC_CONST.FW_SUCCESS or raise OpTestError
#
def test_occ_reset_n_times(self):
self.cv_SYSTEM.sys_bmc_power_on_validate_host()
#.........这里部分代码省略.........
示例11: OpTestPrdDriver
class OpTestPrdDriver():
## Initialize this object
# @param i_bmcIP The IP address of the BMC
# @param i_bmcUser The userid to log into the BMC with
# @param i_bmcPasswd The password of the userid to log into the BMC with
# @param i_bmcUserIpmi The userid to issue the BMC IPMI commands with
# @param i_bmcPasswdIpmi The password of BMC IPMI userid
# @param i_ffdcDir Optional param to indicate where to write FFDC
#
# "Only required for inband tests" else Default = None
# @param i_hostIP The IP address of the HOST
# @param i_hostuser The userid to log into the HOST
# @param i_hostPasswd The password of the userid to log into the HOST with
#
def __init__(self, i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir=None, i_hostip=None,
i_hostuser=None, i_hostPasswd=None):
self.cv_BMC = OpTestBMC(i_bmcIP, i_bmcUser, i_bmcPasswd, i_ffdcDir)
self.cv_IPMI = OpTestIPMI(i_bmcIP, i_bmcUserIpmi, i_bmcPasswdIpmi,
i_ffdcDir, i_hostip, i_hostuser, i_hostPasswd)
self.cv_HOST = OpTestHost(i_hostip, i_hostuser, i_hostPasswd, i_bmcIP)
self.cv_SYSTEM = OpTestSystem(i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir, i_hostip,
i_hostuser, i_hostPasswd)
self.util = OpTestUtil()
##
# @brief This function performs below steps
# 1. Initially connecting to host and ipmi consoles for execution.
# 2. check for IPOLL mask register value to see whether opal-prd is running or not
# if it is 0-->opal-prd is running-->continue
# else start opal-prd service again
# 3. call test_prd_for_fir() function for each core FIR error and this function
# can be used for any number of errors, like it is a generic function
#
# @return BMC_CONST.FW_SUCCESS or raise OpTestError
#
def testPrdDriver(self):
self.cv_SYSTEM.sys_bmc_power_on_validate_host()
self.test_init()
l_con = self.cv_SYSTEM.sys_get_ipmi_console()
self.cv_IPMI.ipmi_host_login(l_con)
self.cv_IPMI.ipmi_host_set_unique_prompt(l_con)
self.cv_IPMI.run_host_cmd_on_ipmi_console("cd %s/external/xscom-utils/;" % BMC_CONST.CLONE_SKIBOOT_DIR)
# check for IPOLL mask register value to check opal-prd is running or not
l_cmd = "./getscom -c 0x0 %s" % BMC_CONST.IPOLL_MASK_REGISTER
l_res = self.cv_IPMI.run_host_cmd_on_ipmi_console(l_cmd)
if l_res[-1] == BMC_CONST.IPOLL_MASK_REGISTER_CONTENT:
print "Opal-prd is running"
else:
self.cv_IPMI.run_host_cmd_on_ipmi_console("service opal-prd start")
l_res = self.cv_IPMI.run_host_cmd_on_ipmi_console(l_cmd)
if l_res[-1] == BMC_CONST.IPOLL_MASK_REGISTER_CONTENT:
print "Opal-prd is running"
else:
l_msg = "IPOLL MASK REGISTER is not getting cleared by opal-prd"
raise OpTestError(l_msg)
# test for PBA FIR with different core errors
# 1.PBAFIR_OCI_APAR_ERR-->OCI Address Parity Error
print "PRD: Test for PBAFIR_OCI_APAR_ERR-->OCI Address Parity Error"
self.test_prd_for_fir(BMC_CONST.PBA_FAULT_ISOLATION_REGISTER,
BMC_CONST.PBA_FAULT_ISOLATION_MASK_REGISTER,
BMC_CONST.PBAFIR_OCI_APAR_ERR)
# 2.PBAFIR_PB_CE_FW-->PB Read Data CE Error for Forwarded Request
print "PRD: Test for PBAFIR_PB_CE_FW-->PB Read Data CE Error for Forwarded Request"
self.test_prd_for_fir(BMC_CONST.PBA_FAULT_ISOLATION_REGISTER,
BMC_CONST.PBA_FAULT_ISOLATION_MASK_REGISTER,
BMC_CONST.PBAFIR_PB_CE_FW)
# 3.PBAFIR_PB_RDDATATO_FW-->PB Read Data Timeout for Forwarded Request
print "PRD: Test for PBAFIR_PB_RDDATATO_FW-->PB Read Data Timeout for Forwarded Request"
self.test_prd_for_fir(BMC_CONST.PBA_FAULT_ISOLATION_REGISTER,
BMC_CONST.PBA_FAULT_ISOLATION_MASK_REGISTER,
BMC_CONST.PBAFIR_PB_RDDATATO_FW)
# 4.PBAFIR_PB_RDADRERR_FW-->PB CRESP Addr Error Received for Forwarded Read Request
print "PRD: Test for PBAFIR_PB_RDADRERR_FW-->PB CRESP Addr Error Received for Forwarded Read Request"
self.test_prd_for_fir(BMC_CONST.PBA_FAULT_ISOLATION_REGISTER,
BMC_CONST.PBA_FAULT_ISOLATION_MASK_REGISTER,
BMC_CONST.PBAFIR_PB_RDADRERR_FW)
return BMC_CONST.FW_SUCCESS
##
# @brief This function injects some core FIR errors and verifies whether opal-prd clears the errors.
# and also this function injects errors on random chip.
#
# @param FIR @type str: Local Fault Isolation register
# @param FIMR @type str: Local Fault Isolation mask register
# @param ERROR @type int: Core FIR error, this error will be written to FIR.
#
# @return BMC_CONST.FW_SUCCESS or raise OpTestError
#
def test_prd_for_fir(self, FIR, FIMR, ERROR):
chip_id = "0x" + self.random_chip
print chip_id
print "OPAL-PRD: Injecting error 0x%x on FIR: %s" % (ERROR, FIR)
# Read Local Fault Isolation register
l_cmd = "./getscom -c %s %s" % (chip_id, FIR)
l_res = self.cv_IPMI.run_host_cmd_on_ipmi_console(l_cmd)
#.........这里部分代码省略.........
示例12: OpTestFastReboot
class OpTestFastReboot():
## Initialize this object
# @param i_bmcIP The IP address of the BMC
# @param i_bmcUser The userid to log into the BMC with
# @param i_bmcPasswd The password of the userid to log into the BMC with
# @param i_bmcUserIpmi The userid to issue the BMC IPMI commands with
# @param i_bmcPasswdIpmi The password of BMC IPMI userid
# @param i_ffdcDir Optional param to indicate where to write FFDC
#
# "Only required for inband tests" else Default = None
# @param i_hostIP The IP address of the HOST
# @param i_hostuser The userid to log into the HOST
# @param i_hostPasswd The password of the userid to log into the HOST with
#
def __init__(self, i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir=None, i_hostip=None,
i_hostuser=None, i_hostPasswd=None):
self.cv_BMC = OpTestBMC(i_bmcIP, i_bmcUser, i_bmcPasswd, i_ffdcDir)
self.cv_IPMI = OpTestIPMI(i_bmcIP, i_bmcUserIpmi, i_bmcPasswdIpmi,
i_ffdcDir, i_hostip, i_hostuser, i_hostPasswd)
self.cv_HOST = OpTestHost(i_hostip, i_hostuser, i_hostPasswd, i_bmcIP)
self.cv_SYSTEM = OpTestSystem(i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir, i_hostip,
i_hostuser, i_hostPasswd)
self.util = OpTestUtil()
##
# @brief This function tests fast reset of power systems.
# It will check booting sequence when reboot command
# getting executed in both petitboot and host OS
#
# @return BMC_CONST.FW_SUCCESS or BMC_CONST.FW_FAILED
#
def test_opal_fast_reboot(self):
self.cv_SYSTEM.sys_bmc_power_on_validate_host()
self.cv_HOST.host_run_command(BMC_CONST.NVRAM_SET_FAST_RESET_MODE)
res = self.cv_HOST.host_run_command(BMC_CONST.NVRAM_PRINT_FAST_RESET_VALUE)
if "feeling-lucky" in res:
print "Setting the fast-reset mode successful"
else:
raise OpTestError("Failed to set the fast-reset mode")
self.con = self.cv_SYSTEM.sys_get_ipmi_console()
self.cv_IPMI.ipmi_host_login(self.con)
self.cv_IPMI.ipmi_host_set_unique_prompt(self.con)
self.cv_IPMI.run_host_cmd_on_ipmi_console("uname -a")
self.cv_IPMI.ipmi_set_boot_to_petitboot()
self.con.sendline("reboot")
self.con.expect(" RESET: Initiating fast reboot", timeout=60)
# Exiting to petitboot shell
self.con.expect('Petitboot', timeout=BMC_CONST.PETITBOOT_TIMEOUT)
self.con.expect('x=exit', timeout=10)
# Exiting to petitboot
self.con.sendcontrol('l')
self.con.send('\x1b[B')
self.con.send('\x1b[B')
self.con.send('\r')
self.con.expect('Exiting petitboot')
self.con.send('\r')
self.con.send('\x08')
self.cv_IPMI.ipmi_host_set_unique_prompt(self.con)
self.cv_IPMI.run_host_cmd_on_ipmi_console("uname -a")
self.con.sendline("reboot")
self.con.expect(" RESET: Initiating fast reboot", timeout=60)
# Exiting to petitboot shell
self.con.expect('Petitboot', timeout=BMC_CONST.PETITBOOT_TIMEOUT)
self.con.expect('x=exit', timeout=10)
print "fast-reset boots the system to runtime"
self.cv_IPMI.ipmi_set_boot_to_disk()
return BMC_CONST.FW_SUCCESS
示例13: OpTestRTCdriver
class OpTestRTCdriver():
## Initialize this object
# @param i_bmcIP The IP address of the BMC
# @param i_bmcUser The userid to log into the BMC with
# @param i_bmcPasswd The password of the userid to log into the BMC with
# @param i_bmcUserIpmi The userid to issue the BMC IPMI commands with
# @param i_bmcPasswdIpmi The password of BMC IPMI userid
# @param i_ffdcDir Optional param to indicate where to write FFDC
#
# "Only required for inband tests" else Default = None
# @param i_hostIP The IP address of the HOST
# @param i_hostuser The userid to log into the HOST
# @param i_hostPasswd The password of the userid to log into the HOST with
#
def __init__(self, i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir=None, i_hostip=None,
i_hostuser=None, i_hostPasswd=None):
self.cv_BMC = OpTestBMC(i_bmcIP, i_bmcUser, i_bmcPasswd, i_ffdcDir)
self.cv_IPMI = OpTestIPMI(i_bmcIP, i_bmcUserIpmi, i_bmcPasswdIpmi,
i_ffdcDir)
self.cv_HOST = OpTestHost(i_hostip, i_hostuser, i_hostPasswd,i_bmcIP)
self.cv_SYSTEM = OpTestSystem(i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir, i_hostip,
i_hostuser, i_hostPasswd)
self.util = OpTestUtil()
##
# @brief This function will cover following test steps
# 1. Getting host information(OS and Kernel info)
# 2. Loading rtc_opal module based on config option
# 3. Testing the rtc driver functions
# Display the current time,
# set the Hardware Clock to a specified time,
# set the Hardware Clock from the System Time, or
# set the System Time from the Hardware Clock
# keep the Hardware clock in UTC or local time format
# Hardware clock compare, predict and adjust functions
# Hardware clock debug and test modes
# Reading the Hardware clock from special file instead of default
# 4. After executing above each function reading the Hardware clock in b/w functions.
#
# @return BMC_CONST.FW_SUCCESS or raise OpTestError
#
def test_RTC_driver(self):
self.cv_SYSTEM.sys_bmc_power_on_validate_host()
# Get OS level
l_oslevel = self.cv_HOST.host_get_OS_Level()
# Get Kernel Version
l_kernel = self.cv_HOST.host_get_kernel_version()
# Get hwclock version
l_hwclock = self.cv_HOST.host_run_command("hwclock -V;echo $?")
# loading rtc_opal module based on config option
l_config = "CONFIG_RTC_DRV_OPAL"
l_module = "rtc_opal"
self.cv_HOST.host_load_module_based_on_config(l_kernel, l_config, l_module)
# Get the device files for rtc driver
l_res = self.cv_HOST.host_run_command("ls /dev/ | grep -i --color=never rtc")
l_files = l_res.splitlines()
l_list = []
for name in l_files:
if name.__contains__("rtc"):
l_file = "/dev/" + name
l_list.append(l_file)
else:
continue
print l_list
# Display the time of hwclock from device files
for l_file in l_list:
self.read_hwclock_from_file(l_file)
self.cv_HOST.host_read_hwclock()
time.sleep(5)
self.cv_HOST.host_set_hwclock_time("2015-01-01 10:10:10")
time.sleep(5)
self.cv_HOST.host_read_hwclock()
self.cv_HOST.host_set_hwclock_time("2016-01-01 20:20:20")
self.cv_HOST.host_read_hwclock()
self.set_hwclock_in_utc("2017-01-01 10:10:10")
self.cv_HOST.host_read_hwclock()
self.set_hwclock_in_localtime("2014-01-01 05:05:05")
self.cv_HOST.host_read_hwclock()
self.cv_HOST.host_read_systime()
self.systime_to_hwclock()
self.cv_HOST.host_read_hwclock()
self.systime_to_hwclock_in_utc()
self.cv_HOST.host_read_hwclock()
self.systime_to_hwclock_in_localtime()
self.cv_HOST.host_read_hwclock()
self.hwclock_to_systime()
self.cv_HOST.host_read_hwclock()
self.cv_HOST.host_read_systime()
self.hwclock_in_utc()
self.cv_HOST.host_read_hwclock()
self.hwclock_in_localtime()
#.........这里部分代码省略.........
示例14: OpTestNVRAM
class OpTestNVRAM():
## Initialize this object
# @param i_bmcIP The IP address of the BMC
# @param i_bmcUser The userid to log into the BMC with
# @param i_bmcPasswd The password of the userid to log into the BMC with
# @param i_bmcUserIpmi The userid to issue the BMC IPMI commands with
# @param i_bmcPasswdIpmi The password of BMC IPMI userid
# @param i_ffdcDir Optional param to indicate where to write FFDC
#
# "Only required for inband tests" else Default = None
# @param i_hostIP The IP address of the HOST
# @param i_hostuser The userid to log into the HOST
# @param i_hostPasswd The password of the userid to log into the HOST with
#
def __init__(self, i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir=None, i_hostip=None,
i_hostuser=None, i_hostPasswd=None):
self.cv_BMC = OpTestBMC(i_bmcIP, i_bmcUser, i_bmcPasswd, i_ffdcDir)
self.cv_IPMI = OpTestIPMI(i_bmcIP, i_bmcUserIpmi, i_bmcPasswdIpmi,
i_ffdcDir, i_hostip, i_hostuser, i_hostPasswd)
self.cv_HOST = OpTestHost(i_hostip, i_hostuser, i_hostPasswd, i_bmcIP)
self.cv_SYSTEM = OpTestSystem(i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir, i_hostip,
i_hostuser, i_hostPasswd)
self.util = OpTestUtil()
##
# @brief This function tests nvram partition access, print/update
# the config data and dumping the partition's data. All
# these operations are done on supported partitions in both
# host OS and Petitboot.
#
# @return BMC_CONST.FW_SUCCESS or BMC_CONST.FW_FAILED
#
def test_nvram_configuration(self):
# Execute these tests in host OS
self.cv_SYSTEM.sys_bmc_power_on_validate_host()
self.cv_HOST.host_run_command("uname -a")
self.cv_HOST.host_run_command("cat /etc/os-release")
self.cv_HOST.host_run_command("nvram -v")
self.cv_HOST.host_run_command("nvram --print-config -p ibm,skiboot")
self.cv_HOST.host_run_command("nvram --print-config -p common")
self.cv_HOST.host_run_command("nvram --print-config -p lnx,oops-log")
self.cv_HOST.host_run_command("nvram --print-config -p wwwwwwwwwwww")
self.cv_HOST.host_run_command("nvram --print-vpd")
self.cv_HOST.host_run_command("nvram --print-all-vpd")
self.cv_HOST.host_run_command("nvram --print-err-log")
self.cv_HOST.host_run_command("nvram --print-event-scan")
self.cv_HOST.host_run_command("nvram --partitions")
self.cv_HOST.host_run_command("nvram --dump common")
self.cv_HOST.host_run_command("nvram --dump ibm,skiboot")
self.cv_HOST.host_run_command("nvram --dump lnx,oops-log")
self.cv_HOST.host_run_command("nvram --dump wwwwwwwwwwww")
self.cv_HOST.host_run_command("nvram --ascii common")
self.cv_HOST.host_run_command("nvram --ascii ibm,skiboot")
self.cv_HOST.host_run_command("nvram --ascii lnx,oops-log")
self.cv_HOST.host_run_command("nvram --ascii wwwwwwwwwwww")
try:
self.test_nvram_update_part_config_in_host("common")
self.test_nvram_update_part_config_in_host("ibm,skiboot")
self.test_nvram_update_part_config_in_host("lnx,oops-log")
self.test_nvram_update_part_config_in_host("wwwwwwwwwwww")
except OpTestError:
print "There is a failure in updating one of NVRAM partitions"
# Execute these tests in petitboot
self.console = self.cv_SYSTEM.sys_get_ipmi_console()
try:
self.cv_SYSTEM.sys_ipmi_boot_system_to_petitboot(self.console)
self.cv_IPMI.ipmi_host_set_unique_prompt(self.console)
self.cv_IPMI.run_host_cmd_on_ipmi_console("uname -a")
self.cv_IPMI.run_host_cmd_on_ipmi_console("cat /etc/os-release")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram -v")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram --print-config -p ibm,skiboot")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram --print-config -p common")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram --print-config -p lnx,oops-log")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram --print-config -p wwwwwwwwwwww")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram --print-vpd")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram --print-all-vpd")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram --print-err-log")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram --print-event-scan")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram --partitions")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram --dump common")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram --dump ibm,skiboot")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram --dump lnx,oops-log")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram --dump wwwwwwwwwwww")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram --ascii common")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram --ascii ibm,skiboot")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram --ascii lnx,oops-log")
self.cv_IPMI.run_host_cmd_on_ipmi_console("nvram --ascii wwwwwwwwwwww")
try:
self.test_nvram_update_part_config_in_petitboot("common")
self.test_nvram_update_part_config_in_petitboot("ibm,skiboot")
self.test_nvram_update_part_config_in_petitboot("lnx,oops-log")
self.test_nvram_update_part_config_in_petitboot("wwwwwwwwwwww")
except OpTestError:
print "There is a failure in updating one of NVRAM partitions"
except:
self.cv_IPMI.ipmi_set_boot_to_disk()
self.cv_IPMI.ipmi_set_boot_to_disk()
#.........这里部分代码省略.........
示例15: OpTestMCColdResetEffects
class OpTestMCColdResetEffects():
## Initialize this object
# @param i_bmcIP The IP address of the BMC
# @param i_bmcUser The userid to log into the BMC with
# @param i_bmcPasswd The password of the userid to log into the BMC with
# @param i_bmcUserIpmi The userid to issue the BMC IPMI commands with
# @param i_bmcPasswdIpmi The password of BMC IPMI userid
# @param i_ffdcDir Optional param to indicate where to write FFDC
#
# "Only required for inband tests" else Default = None
# @param i_hostIP The IP address of the HOST
# @param i_hostuser The userid to log into the HOST
# @param i_hostPasswd The password of the userid to log into the HOST with
#
def __init__(self, i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir=None, i_hostip=None,
i_hostuser=None, i_hostPasswd=None):
self.cv_BMC = OpTestBMC(i_bmcIP, i_bmcUser, i_bmcPasswd, i_ffdcDir)
self.cv_IPMI = OpTestIPMI(i_bmcIP, i_bmcUserIpmi, i_bmcPasswdIpmi,
i_ffdcDir, i_hostip, i_hostuser, i_hostPasswd)
self.cv_HOST = OpTestHost(i_hostip, i_hostuser, i_hostPasswd, i_bmcIP, i_ffdcDir)
self.cv_SYSTEM = OpTestSystem(i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir, i_hostip,
i_hostuser, i_hostPasswd)
self.util = OpTestUtil()
self.opTestSensors = OpTestSensors(i_bmcIP, i_bmcUser, i_bmcPasswd,
i_bmcUserIpmi, i_bmcPasswdIpmi, i_ffdcDir, i_hostip,
i_hostuser, i_hostPasswd)
##
# @brief This function will test BMC Cold reset vs Host FW status
# 1. When system is in runtime issue BMC Cold reset.
# 2. Check Host FW services and drivers.
# 3. Run sensors command
# 4. Get list of chips
# 5. This is expected to fail.
# https://github.com/open-power/op-build/issues/482
# 6. Reboot the system at the end of test.
#
# @return BMC_CONST.FW_SUCCESS or BMC_CONST.FW_FAILED
#
def test_bmc_cold_reset_effects(self):
print "Test BMC Cold reset effects versus Host Firmware Status"
self.cv_SYSTEM.sys_bmc_power_on_validate_host()
print "Issue BMC Cold reset"
result = True
try:
self.cv_SYSTEM.sys_cold_reset_bmc()
l_dir = BMC_CONST.SKIBOOT_WORKING_DIR
self.cv_HOST.host_clone_skiboot_source(l_dir)
self.cv_HOST.host_compile_xscom_utilities(l_dir)
l_con = self.cv_SYSTEM.sys_get_ipmi_console()
self.cv_IPMI.ipmi_host_login(l_con)
self.cv_IPMI.ipmi_host_set_unique_prompt(l_con)
self.cv_IPMI.run_host_cmd_on_ipmi_console("uname -a")
self.cv_IPMI.run_host_cmd_on_ipmi_console("cd %s/external/xscom-utils/; ./getscom -l" % l_dir)
self.opTestSensors.test_hwmon_driver()
self.cv_SYSTEM.sys_ipmi_close_console(l_con)
except:
result = False
pass
print "Gathering the OPAL msg logs"
self.cv_HOST.host_gather_opal_msg_log()
self.cv_IPMI.ipmi_power_off()
self.cv_SYSTEM.sys_bmc_power_on_validate_host()
if result is False:
raise OpTestError("MC Cold reset vs Host FW Test failed")