1*** Settings *** 2 3Documentation Module to test IPMI Get BIOS POST Code Command. 4Resource ../lib/ipmi_client.robot 5Resource ../lib/boot_utils.robot 6Library ../lib/ipmi_utils.py 7Variables ../data/ipmi_raw_cmd_table.py 8 9*** Variables *** 10${power_state_change} 10 11${host_reboot_time} 360 12 13*** Test Cases *** 14 15IPMI Chassis Status On 16 [Documentation] This test case verifies system power on status 17 ... using IPMI Get Chassis status command. 18 [Tags] IPMI_Chassis_Status_On 19 20 # Check the chassis status. 21 Verify Host PowerOn Via IPMI 22 ${resp}= Run IPMI Standard Command chassis power status 23 Should Be Equal As Strings '${resp}' 'Chassis Power is on' 24 25Test Get BIOS POST Code via IPMI Raw Command 26 [Documentation] Get BIOS POST Code via IPMI raw command. 27 [Tags] Test_Get_BIOS_POST_Code_via_IPMI_Raw_Command 28 29 ${resp}= Run IPMI Standard Command raw ${IPMI_RAW_CMD['BIOS_POST_Code']['Get'][0]} 30 Sleep 10 31 32 Verify POST Code Response Length ${resp} 33 34Test Get BIOS POST Code via IPMI Raw Command After Power Cycle 35 [Documentation] Get BIOS POST Code via IPMI raw command after power cycle. 36 [Tags] Test_Get_BIOS_POST_Code_via_IPMI_Raw_Command_After_Power_Cycle 37 38 ${resp}= Run IPMI Standard Command chassis power cycle 39 Sleep ${power_state_change} 40 Should Contain ${resp} Chassis Power Control: Cycle 41 sleep ${host_reboot_time} 42 ${ipmi_state}= Get Host State Via External IPMI 43 Valid Value ipmi_state ['on'] 44 45 ${resp}= Run IPMI Standard Command raw ${IPMI_RAW_CMD['BIOS_POST_Code']['Get'][0]} 46 Sleep ${host_reboot_time} 47 48 Verify POST Code Response Length ${resp} 49 50Test Get BIOS POST Code via IPMI Raw Command With Host Powered Off 51 [Documentation] Get BIOS POST Code via IPMI raw command after power off. 52 [Tags] Test_Get_BIOS_POST_Code_via_IPMI_Raw_Command_With_Host_Powered_Off 53 54 ${resp}= Run IPMI Standard Command chassis power off 55 Sleep ${power_state_change} 56 Should Contain ${resp} Chassis Power Control: Down/Off 57 58 ${resp}= Run IPMI Standard Command raw ${IPMI_RAW_CMD['BIOS_POST_Code']['Get'][0]} fail_on_err=0 59 Should Contain ${resp} ${IPMI_RAW_CMD['BIOS_POST_Code']['Get'][3]} 60 61 # Turn host back on. 62 IPMI Power On stack_mode=skip quiet=1 63 Verify Host PowerOn Via IPMI 64 ${resp}= Run IPMI Standard Command chassis power status 65 Should Be Equal As Strings '${resp}' 'Chassis Power is on' 66 67*** Keywords *** 68 69Verify Host PowerOn Via IPMI 70 [Documentation] Verify host power on operation using external IPMI command. 71 [Tags] Verify_Host_PowerOn_Via_IPMI 72 73 IPMI Power On stack_mode=skip quiet=1 74 ${ipmi_state}= Get Host State Via External IPMI 75 Valid Value ipmi_state ['on'] 76 77 78Verify POST Code Response Length 79 [Documentation] Verify the BIOS POST Code response byte length. 80 [Tags] Verify_POST_Code_Response_Length 81 [Arguments] ${resp} 82 83 # Description of argument(s): 84 # resp The complete response bytes from 85 # Get BIOS POST Code command returned 86 # in one string. 87 88 @{resp_bytes}= Split String ${resp} 89 ${string_length}= Get Length ${resp_bytes} 90 91 # Convert response byte length to integer. 92 ${value}= Get Slice From List ${resp_bytes} 2 4 93 Reverse List ${value} 94 ${byte_length_string}= Evaluate "".join(${value}) 95 ${byte_length_integer}= Convert To Integer ${byte_length_string} 16 96 ${true_length}= Evaluate (${string_length} - 4) 97 98 Should Be Equal ${true_length} ${byte_length_integer} 99 100