1*** Settings *** 2Documentation This module will take whatever action is necessary 3... to bring the BMC to a stable, standby state. For our 4... purposes, a stable state is defined as: 5... - BMC is communicating 6... (pinging, sshing and REST commands working) 7... - Power state is 0 (off) 8... - BMC state is "Ready" 9... - HOST state is "Off" 10... - Boot policy is "RESTORE_LAST_STATE" 11... Power cycle system via PDU if specified 12... Prune archived journal logs 13 14Resource ../lib/utils.robot 15Resource ../lib/pdu/pdu.robot 16Resource ../lib/state_manager.robot 17Resource ../lib/bmc_network_utils.robot 18Resource ../lib/bmc_cleanup.robot 19 20*** Variables *** 21${HOST_SETTING} /org/openbmc/settings/host0 22 23*** Test Cases *** 24 25Get To Stable State 26 [Documentation] BMC cleanup drive to stable state 27 ... 1. PDU powercycle if specified 28 ... 1. Ping Test 29 ... 2. SSH Connection session Test 30 ... 3. REST Connection session Test 31 ... 4. Reboot BMC if REST Test failed 32 ... 5. Get BMC in Ready state if its not in this state 33 ... 6. Get Host in Off state if its not in this state 34 ... 7. Update restore policy 35 ... 8. Verify and Update MAC address. 36 [Tags] Get_To_Stable_State 37 38 Run Keyword And Ignore Error Powercycle System Via PDU 39 40 Wait For Host To Ping ${OPENBMC_HOST} 2 mins 41 Run Keyword And Ignore Error 42 ... Open Connection And Log In host=${OPENBMC_HOST} 43 44 Wait Until Keyword Succeeds 45 ... 1 min 30 sec Initialize OpenBMC 46 47 ${ready_status}= Run Keyword And Return Status Is BMC Ready 48 Run Keyword If '${ready_status}' == '${False}' Put BMC State Ready 49 50 ${host_off_status}= Run Keyword And Return Status Is Host Off 51 Run Keyword If '${host_off_status}' == '${False}' Initiate Host PowerOff 52 53 Prune Journal Log 54 55 Run Keyword And Ignore Error Update Policy Setting RESTORE_LAST_STATE 56 57 Run Keyword If '${MAC_ADDRESS}' != '${EMPTY}' 58 ... Check And Reset MAC 59 60 Run Keyword If '${CLEANUP_DIR_PATH}' != '${EMPTY}' 61 ... Cleanup Dir 62 63 64*** Keywords *** 65 66Reboot and Wait for BMC Online 67 [Documentation] Reboot BMC and wait for it to come online 68 ... and boot to standby 69 70 Trigger Warm Reset via Reboot 71 Wait Until Keyword Succeeds 72 ... 5 min 10 sec BMC Online Test 73 74 Wait For BMC Standby 75 76 77BMC Online Test 78 [Documentation] BMC ping, SSH, REST connection Test 79 80 ${l_status}= Run Keyword and Return Status 81 ... Verify Ping and REST Authentication 82 Run Keyword If '${l_status}' == '${False}' 83 ... Fail msg=System not in ideal state to continue [ERROR] 84 85 86Wait For BMC Standby 87 [Documentation] Wait Until BMC standby post BMC reboot 88 89 @{states}= Create List BMC_READY HOST_POWERED_OFF 90 Wait Until Keyword Succeeds 91 ... 10 min 10 sec Verify BMC State ${states} 92 93 94Get BMC State and Expect Standby 95 [Documentation] Get BMC state and should be at standby 96 97 @{states}= Create List BMC_READY HOST_POWERED_OFF 98 ${bmc_state}= Get BMC State Deprecated 99 Should Contain ${states} ${bmc_state} 100 101 102Update Policy Setting 103 [Documentation] Update the given restore policy 104 [Arguments] ${policy} 105 106 ${valueDict}= create dictionary data=${policy} 107 Write Attribute ${HOST_SETTING} power_policy data=${valueDict} 108 ${currentPolicy}= Read Attribute ${HOST_SETTING} power_policy 109 Should Be Equal ${currentPolicy} ${policy} 110 111 112Trigger Warm Reset via Reboot 113 [Documentation] Execute reboot command on the remote BMC and 114 ... returns immediately. This keyword "Start Command" 115 ... returns nothing and does not wait for the command 116 ... execution to be finished. 117 Open Connection And Log In 118 119 Start Command /sbin/reboot 120 121 122Powercycle System Via PDU 123 [Documentation] AC cycle the system via PDU 124 125 Validate Parameters 126 PDU Power Cycle 127 Check If BMC is Up 5 min 10 sec 128 129 130Validate Parameters 131 Should Not Be Empty ${PDU_IP} 132 Should Not Be Empty ${PDU_TYPE} 133 Should Not Be Empty ${PDU_SLOT_NO} 134 Should Not Be Empty ${PDU_USERNAME} 135 Should Not Be Empty ${PDU_PASSWORD} 136