George Keishing | 78ea2dc | 2016-11-18 04:33:45 -0600 | [diff] [blame] | 1 | *** Settings *** |
| 2 | Documentation 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) |
Rahul Maheshwari | 2c72504 | 2017-01-29 22:55:28 -0600 | [diff] [blame] | 8 | ... - BMC state is "Ready" |
| 9 | ... - HOST state is "Off" |
George Keishing | efc3ff2 | 2017-12-12 11:49:25 -0600 | [diff] [blame] | 10 | ... - Boot policy is "ALWAYS_POWER_OFF" |
George Keishing | 34d4b8d | 2016-12-07 08:35:29 -0600 | [diff] [blame] | 11 | ... Power cycle system via PDU if specified |
George Keishing | 0bd59f1 | 2016-12-14 10:39:21 -0600 | [diff] [blame] | 12 | ... Prune archived journal logs |
George Keishing | 78ea2dc | 2016-11-18 04:33:45 -0600 | [diff] [blame] | 13 | |
George Keishing | 78ea2dc | 2016-11-18 04:33:45 -0600 | [diff] [blame] | 14 | Resource ../lib/utils.robot |
George Keishing | 34d4b8d | 2016-12-07 08:35:29 -0600 | [diff] [blame] | 15 | Resource ../lib/pdu/pdu.robot |
Rahul Maheshwari | 9bd3abc | 2017-02-07 00:51:30 -0600 | [diff] [blame] | 16 | Resource ../lib/state_manager.robot |
Michael Walsh | 1b0ceb2 | 2017-05-31 16:03:01 -0500 | [diff] [blame] | 17 | Resource ../lib/bmc_network_utils.robot |
Sunil M | ec6fe31 | 2017-06-19 04:21:25 -0500 | [diff] [blame] | 18 | Resource ../lib/bmc_cleanup.robot |
George Keishing | 27a1f20 | 2017-08-30 22:40:26 -0500 | [diff] [blame] | 19 | Resource ../lib/dump_utils.robot |
George Keishing | 78ea2dc | 2016-11-18 04:33:45 -0600 | [diff] [blame] | 20 | |
| 21 | *** Variables *** |
| 22 | ${HOST_SETTING} /org/openbmc/settings/host0 |
| 23 | |
Gunnar Mills | 7c8923f | 2016-12-12 21:19:52 -0600 | [diff] [blame] | 24 | *** Test Cases *** |
George Keishing | 78ea2dc | 2016-11-18 04:33:45 -0600 | [diff] [blame] | 25 | |
George Keishing | 62f9430 | 2017-01-31 07:00:52 -0600 | [diff] [blame] | 26 | Get To Stable State |
Rahul Maheshwari | 2c72504 | 2017-01-29 22:55:28 -0600 | [diff] [blame] | 27 | [Documentation] BMC cleanup drive to stable state |
| 28 | ... 1. PDU powercycle if specified |
| 29 | ... 1. Ping Test |
| 30 | ... 2. SSH Connection session Test |
| 31 | ... 3. REST Connection session Test |
| 32 | ... 4. Reboot BMC if REST Test failed |
| 33 | ... 5. Get BMC in Ready state if its not in this state |
| 34 | ... 6. Get Host in Off state if its not in this state |
| 35 | ... 7. Update restore policy |
Sunil M | 89fb0f5 | 2017-05-26 05:25:33 -0500 | [diff] [blame] | 36 | ... 8. Verify and Update MAC address. |
George Keishing | 62f9430 | 2017-01-31 07:00:52 -0600 | [diff] [blame] | 37 | [Tags] Get_To_Stable_State |
George Keishing | 78ea2dc | 2016-11-18 04:33:45 -0600 | [diff] [blame] | 38 | |
Rahul Maheshwari | 2c72504 | 2017-01-29 22:55:28 -0600 | [diff] [blame] | 39 | Run Keyword And Ignore Error Powercycle System Via PDU |
George Keishing | 34d4b8d | 2016-12-07 08:35:29 -0600 | [diff] [blame] | 40 | |
George Keishing | 59fa048 | 2017-03-02 10:01:09 -0600 | [diff] [blame] | 41 | Wait For Host To Ping ${OPENBMC_HOST} 2 mins |
| 42 | Run Keyword And Ignore Error |
| 43 | ... Open Connection And Log In host=${OPENBMC_HOST} |
George Keishing | 78ea2dc | 2016-11-18 04:33:45 -0600 | [diff] [blame] | 44 | |
George Keishing | 59fa048 | 2017-03-02 10:01:09 -0600 | [diff] [blame] | 45 | Wait Until Keyword Succeeds |
| 46 | ... 1 min 30 sec Initialize OpenBMC |
George Keishing | 78ea2dc | 2016-11-18 04:33:45 -0600 | [diff] [blame] | 47 | |
Rahul Maheshwari | 9bd3abc | 2017-02-07 00:51:30 -0600 | [diff] [blame] | 48 | ${ready_status}= Run Keyword And Return Status Is BMC Ready |
| 49 | Run Keyword If '${ready_status}' == '${False}' Put BMC State Ready |
George Keishing | 78ea2dc | 2016-11-18 04:33:45 -0600 | [diff] [blame] | 50 | |
Rahul Maheshwari | 9bd3abc | 2017-02-07 00:51:30 -0600 | [diff] [blame] | 51 | ${host_off_status}= Run Keyword And Return Status Is Host Off |
| 52 | Run Keyword If '${host_off_status}' == '${False}' Initiate Host PowerOff |
George Keishing | 78ea2dc | 2016-11-18 04:33:45 -0600 | [diff] [blame] | 53 | |
George Keishing | 0bd59f1 | 2016-12-14 10:39:21 -0600 | [diff] [blame] | 54 | Prune Journal Log |
| 55 | |
George Keishing | efc3ff2 | 2017-12-12 11:49:25 -0600 | [diff] [blame] | 56 | Run Keyword And Ignore Error Set BMC Power Policy ${ALWAYS_POWER_OFF} |
George Keishing | 78ea2dc | 2016-11-18 04:33:45 -0600 | [diff] [blame] | 57 | |
George Keishing | 6bbce53 | 2017-09-21 13:03:55 -0500 | [diff] [blame] | 58 | # TODO: Enable MAC AES check latter. |
| 59 | # Reference : openbmc/openbmc-test-automation#998 |
| 60 | #Run Keyword If '${MAC_ADDRESS}' != '${EMPTY}' |
| 61 | #... Check And Reset MAC |
| 62 | |
| 63 | # TODO: Add new UBI File system cleanup. |
| 64 | # Reference : openbmc/openbmc-test-automation#998 |
| 65 | #${rc}= Execute Command find ${CLEANUP_DIR_PATH} |
| 66 | #... return_stdout=False return_rc=True |
| 67 | #Run Keyword If '${CLEANUP_DIR_PATH}' != '${EMPTY}' and ${rc} == 0 |
| 68 | #... Cleanup Dir |
Sunil M | ec6fe31 | 2017-06-19 04:21:25 -0500 | [diff] [blame] | 69 | |
Sunil M | 5dc827d | 2017-10-17 03:49:31 -0500 | [diff] [blame] | 70 | Run Keyword And Ignore Error Delete All Error Logs |
| 71 | Run Keyword And Ignore Error Delete All Dumps |
George Keishing | 457bb3a | 2018-02-22 01:16:10 -0600 | [diff] [blame] | 72 | Run Keyword And Ignore Error Remove Journald Logs |
George Keishing | 78ea2dc | 2016-11-18 04:33:45 -0600 | [diff] [blame] | 73 | |
| 74 | *** Keywords *** |
| 75 | |
George Keishing | 78ea2dc | 2016-11-18 04:33:45 -0600 | [diff] [blame] | 76 | BMC Online Test |
| 77 | [Documentation] BMC ping, SSH, REST connection Test |
| 78 | |
Gunnar Mills | 597ffa0 | 2016-12-06 11:26:53 -0600 | [diff] [blame] | 79 | ${l_status}= Run Keyword and Return Status |
George Keishing | 78ea2dc | 2016-11-18 04:33:45 -0600 | [diff] [blame] | 80 | ... Verify Ping and REST Authentication |
| 81 | Run Keyword If '${l_status}' == '${False}' |
| 82 | ... Fail msg=System not in ideal state to continue [ERROR] |
| 83 | |
| 84 | |
George Keishing | 78ea2dc | 2016-11-18 04:33:45 -0600 | [diff] [blame] | 85 | Update Policy Setting |
| 86 | [Documentation] Update the given restore policy |
Gunnar Mills | 3803280 | 2016-12-12 13:43:40 -0600 | [diff] [blame] | 87 | [Arguments] ${policy} |
George Keishing | 78ea2dc | 2016-11-18 04:33:45 -0600 | [diff] [blame] | 88 | |
Gunnar Mills | 597ffa0 | 2016-12-06 11:26:53 -0600 | [diff] [blame] | 89 | ${valueDict}= create dictionary data=${policy} |
George Keishing | 78ea2dc | 2016-11-18 04:33:45 -0600 | [diff] [blame] | 90 | Write Attribute ${HOST_SETTING} power_policy data=${valueDict} |
| 91 | ${currentPolicy}= Read Attribute ${HOST_SETTING} power_policy |
| 92 | Should Be Equal ${currentPolicy} ${policy} |
| 93 | |
George Keishing | d5123f7 | 2016-12-07 09:54:51 -0600 | [diff] [blame] | 94 | |
| 95 | Trigger Warm Reset via Reboot |
| 96 | [Documentation] Execute reboot command on the remote BMC and |
| 97 | ... returns immediately. This keyword "Start Command" |
| 98 | ... returns nothing and does not wait for the command |
| 99 | ... execution to be finished. |
| 100 | Open Connection And Log In |
| 101 | |
| 102 | Start Command /sbin/reboot |
George Keishing | 34d4b8d | 2016-12-07 08:35:29 -0600 | [diff] [blame] | 103 | |
| 104 | |
| 105 | Powercycle System Via PDU |
| 106 | [Documentation] AC cycle the system via PDU |
| 107 | |
| 108 | Validate Parameters |
| 109 | PDU Power Cycle |
| 110 | Check If BMC is Up 5 min 10 sec |
| 111 | |
| 112 | |
| 113 | Validate Parameters |
| 114 | Should Not Be Empty ${PDU_IP} |
| 115 | Should Not Be Empty ${PDU_TYPE} |
| 116 | Should Not Be Empty ${PDU_SLOT_NO} |
| 117 | Should Not Be Empty ${PDU_USERNAME} |
| 118 | Should Not Be Empty ${PDU_PASSWORD} |