19f74d3afSCharles Paul Hofer*** Settings *** 29f74d3afSCharles Paul HoferDocumentation Update the PNOR code on a target BMC. 39f74d3afSCharles Paul Hofer... Execution Method: 49f74d3afSCharles Paul Hofer... python -m robot -v OPENBMC_HOST:<hostname> 59f74d3afSCharles Paul Hofer... -v DELETE_OLD_PNOR_IMAGES:<"true" or "false"> 69f74d3afSCharles Paul Hofer... -v IMAGE_FILE_PATH:<path/*.tar> host_code_update.robot 79f74d3afSCharles Paul Hofer... 89f74d3afSCharles Paul Hofer... Code update method BMC 99f74d3afSCharles Paul Hofer... Update work flow sequence: 109f74d3afSCharles Paul Hofer... - Upload image via REST 119f74d3afSCharles Paul Hofer... - Verify that the file exists on the BMC 129f74d3afSCharles Paul Hofer... - Check that software "Activation" is set to "Ready" 139f74d3afSCharles Paul Hofer... - Set "Requested Activation" to "Active" 149f74d3afSCharles Paul Hofer... - Wait for code update to complete 159f74d3afSCharles Paul Hofer... - Verify the new version 169f74d3afSCharles Paul Hofer 179f74d3afSCharles Paul HoferLibrary ../../lib/bmc_ssh_utils.py 189f74d3afSCharles Paul HoferLibrary ../../lib/code_update_utils.py 199f74d3afSCharles Paul HoferVariables ../../data/variables.py 209f74d3afSCharles Paul HoferResource ../../lib/boot_utils.robot 219f74d3afSCharles Paul HoferResource code_update_utils.robot 229f74d3afSCharles Paul HoferResource ../../lib/code_update_utils.robot 23*1eb85f57SGeorge KeishingResource ../../lib/openbmc_ffdc.robot 249f74d3afSCharles Paul HoferResource ../../lib/state_manager.robot 25*1eb85f57SGeorge KeishingResource ../../lib/dump_utils.robot 269f74d3afSCharles Paul Hofer 279f74d3afSCharles Paul HoferTest Teardown FFDC On Test Case Fail 289f74d3afSCharles Paul Hofer 299f74d3afSCharles Paul Hofer*** Variables *** 309f74d3afSCharles Paul Hofer 319f74d3afSCharles Paul Hofer${QUIET} ${1} 329f74d3afSCharles Paul Hofer${IMAGE_FILE_PATH} ${EMPTY} 339f74d3afSCharles Paul Hofer${DELETE_OLD_PNOR_IMAGES} false 34c1fa2bc9SCharles Paul Hofer${ALTERNATE_IMAGE_FILE_PATH} ${EMPTY} 359f74d3afSCharles Paul Hofer 369f74d3afSCharles Paul Hofer*** Test Cases *** 379f74d3afSCharles Paul Hofer 389f74d3afSCharles Paul HoferREST Host Code Update 399f74d3afSCharles Paul Hofer [Documentation] Do a PNOR code update by uploading image on BMC via REST. 409f74d3afSCharles Paul Hofer [Tags] REST_Host_Code_Update 419f74d3afSCharles Paul Hofer [Setup] Code Update Setup 429f74d3afSCharles Paul Hofer 439f74d3afSCharles Paul Hofer Upload And Activate Image ${IMAGE_FILE_PATH} 449f74d3afSCharles Paul Hofer OBMC Reboot (off) 459f74d3afSCharles Paul Hofer 469f74d3afSCharles Paul Hofer 479f74d3afSCharles Paul HoferPost Update Boot To OS 489f74d3afSCharles Paul Hofer [Documentation] Boot the host OS 499f74d3afSCharles Paul Hofer [Tags] Post_Update_Boot_To_OS 509f74d3afSCharles Paul Hofer [Teardown] Stop SOL Console Logging 519f74d3afSCharles Paul Hofer 529f74d3afSCharles Paul Hofer Run Keyword If '${PREV_TEST_STATUS}' == 'FAIL' 539f74d3afSCharles Paul Hofer ... Fail Code update failed. No need to boot to OS. 549f74d3afSCharles Paul Hofer Start SOL Console Logging 559f74d3afSCharles Paul Hofer REST Power On 569f74d3afSCharles Paul Hofer 579f74d3afSCharles Paul Hofer 589f74d3afSCharles Paul HoferHost Image Priority Attribute Test 599f74d3afSCharles Paul Hofer [Documentation] Set "Priority" attribute. 609f74d3afSCharles Paul Hofer [Tags] Host_Image_Priority_Attribute_Test 619f74d3afSCharles Paul Hofer [Template] Temporarily Set PNOR Attribute 629f74d3afSCharles Paul Hofer 639f74d3afSCharles Paul Hofer # Property Value 649f74d3afSCharles Paul Hofer Priority ${0} 659f74d3afSCharles Paul Hofer Priority ${1} 669f74d3afSCharles Paul Hofer Priority ${127} 679f74d3afSCharles Paul Hofer 689f74d3afSCharles Paul Hofer 699f74d3afSCharles Paul HoferSet RequestedActivation To None 709f74d3afSCharles Paul Hofer [Documentation] Set the RequestedActivation of the image to None and 719f74d3afSCharles Paul Hofer ... verify that it is in fact set to None. 729f74d3afSCharles Paul Hofer [Tags] Set_RequestedActivation_To_None 739f74d3afSCharles Paul Hofer 749f74d3afSCharles Paul Hofer ${software_objects}= Get Software Objects 759f74d3afSCharles Paul Hofer Set Host Software Property @{software_objects}[0] RequestedActivation 769f74d3afSCharles Paul Hofer ... ${REQUESTED_NONE} 779f74d3afSCharles Paul Hofer ${software_properties}= Get Host Software Property @{software_objects}[0] 789f74d3afSCharles Paul Hofer Should Be Equal As Strings &{software_properties}[RequestedActivation] 799f74d3afSCharles Paul Hofer ... ${REQUESTED_NONE} 809f74d3afSCharles Paul Hofer 819f74d3afSCharles Paul Hofer 829f74d3afSCharles Paul HoferSet RequestedActivation And Activation To Invalid Value 839f74d3afSCharles Paul Hofer [Documentation] Set the RequestedActivation and Activation propreties of 849f74d3afSCharles Paul Hofer ... the image to an invalid value and verify that it was not 859f74d3afSCharles Paul Hofer ... changed. 869f74d3afSCharles Paul Hofer [Template] Set Property To Invalid Value And Verify No Change 879f74d3afSCharles Paul Hofer [Tags] Set_RequestedActivation_And_Activation_To_Invalid_Value 889f74d3afSCharles Paul Hofer 899f74d3afSCharles Paul Hofer # Property Version Type 909f74d3afSCharles Paul Hofer RequestedActivation ${VERSION_PURPOSE_HOST} 919f74d3afSCharles Paul Hofer Activation ${VERSION_PURPOSE_HOST} 929f74d3afSCharles Paul Hofer 939f74d3afSCharles Paul Hofer 94c1fa2bc9SCharles Paul HoferUpload And Activate Multiple Host Images 95c1fa2bc9SCharles Paul Hofer [Documentation] Upload another PNOR image and verify that its state is 96c1fa2bc9SCharles Paul Hofer ... different from all others. 97c1fa2bc9SCharles Paul Hofer [Tags] Upload_And_Activate_Multiple_Host_Images 98c1fa2bc9SCharles Paul Hofer [Template] Activate Image And Verify No Duplicate Priorities 99c1fa2bc9SCharles Paul Hofer [Setup] Upload And Activate Multiple BMC Images Setup 100c1fa2bc9SCharles Paul Hofer 101c1fa2bc9SCharles Paul Hofer # Image File Path Image Purpose 102c1fa2bc9SCharles Paul Hofer ${ALTERNATE_IMAGE_FILE_PATH} ${VERSION_PURPOSE_HOST} 103c1fa2bc9SCharles Paul Hofer 104c1fa2bc9SCharles Paul Hofer 1059f74d3afSCharles Paul HoferDelete Host Image 1069f74d3afSCharles Paul Hofer [Documentation] Delete a PNOR image from the BMC and PNOR flash chip. 1079f74d3afSCharles Paul Hofer [Tags] Delete_Host_Image 1089f74d3afSCharles Paul Hofer [Setup] Initiate Host PowerOff 1099f74d3afSCharles Paul Hofer 1109f74d3afSCharles Paul Hofer ${software_objects}= Get Software Objects 1119f74d3afSCharles Paul Hofer ... version_type=${VERSION_PURPOSE_HOST} 1129f74d3afSCharles Paul Hofer ${num_images}= Get Length ${software_objects} 1139f74d3afSCharles Paul Hofer Should Be True 0 < ${num_images} 1149f74d3afSCharles Paul Hofer ... msg=There are no PNOR images on the BMC to delete. 1159f74d3afSCharles Paul Hofer Delete Image And Verify @{software_objects}[0] ${VERSION_PURPOSE_HOST} 1169f74d3afSCharles Paul Hofer 1179f74d3afSCharles Paul Hofer 1189f74d3afSCharles Paul Hofer*** Keywords *** 1199f74d3afSCharles Paul Hofer 1209f74d3afSCharles Paul HoferTemporarily Set PNOR Attribute 1219f74d3afSCharles Paul Hofer [Documentation] Update the PNOR attribute value. 1229f74d3afSCharles Paul Hofer [Arguments] ${attribute_name} ${attribute_value} 1239f74d3afSCharles Paul Hofer 1249f74d3afSCharles Paul Hofer # Description of argument(s): 1259f74d3afSCharles Paul Hofer # attribute_name Host software attribute name (e.g. "Priority"). 1269f74d3afSCharles Paul Hofer # attribute_value Value to be written. 1279f74d3afSCharles Paul Hofer 1289f74d3afSCharles Paul Hofer ${image_ids}= Get Software Objects 1299f74d3afSCharles Paul Hofer ${init_host_properties}= Get Host Software Property ${image_ids[0]} 1309f74d3afSCharles Paul Hofer ${initial_priority}= Set Variable ${init_host_properties["Priority"]} 1319f74d3afSCharles Paul Hofer 1329f74d3afSCharles Paul Hofer Set Host Software Property ${image_ids[0]} ${attribute_name} 1339f74d3afSCharles Paul Hofer ... ${attribute_value} 1349f74d3afSCharles Paul Hofer 1359f74d3afSCharles Paul Hofer ${cur_host_properties}= Get Host Software Property ${image_ids[0]} 1369f74d3afSCharles Paul Hofer Should Be Equal As Integers ${cur_host_properties["Priority"]} 1379f74d3afSCharles Paul Hofer ... ${attribute_value} 1389f74d3afSCharles Paul Hofer 1399f74d3afSCharles Paul Hofer # Revert to to initial value. 1409f74d3afSCharles Paul Hofer Set Host Software Property 1419f74d3afSCharles Paul Hofer ... ${image_ids[0]} ${attribute_name} ${initial_priority} 1429f74d3afSCharles Paul Hofer 1439f74d3afSCharles Paul Hofer 1449f74d3afSCharles Paul HoferCode Update Setup 1459f74d3afSCharles Paul Hofer [Documentation] Do code update test case setup. 146*1eb85f57SGeorge Keishing # - Clean up all existing BMC dumps. 147*1eb85f57SGeorge Keishing # - Clean up all currently install PNOR images. 1489f74d3afSCharles Paul Hofer 149*1eb85f57SGeorge Keishing Delete All Dumps 1509f74d3afSCharles Paul Hofer Run Keyword If 'true' == '${DELETE_OLD_PNOR_IMAGES}' 1519f74d3afSCharles Paul Hofer ... Delete All PNOR Images 1529f74d3afSCharles Paul Hofer 1539f74d3afSCharles Paul Hofer 154c1fa2bc9SCharles Paul HoferUpload And Activate Multiple BMC Images Setup 155c1fa2bc9SCharles Paul Hofer [Documentation] Check that the ALTERNATE_FILE_PATH variable is set. 156c1fa2bc9SCharles Paul Hofer 157c1fa2bc9SCharles Paul Hofer Should Not Be Empty ${ALTERNATE_IMAGE_FILE_PATH} 158c1fa2bc9SCharles Paul Hofer 159c1fa2bc9SCharles Paul Hofer 1609f74d3afSCharles Paul HoferGet PNOR Extended Version 1619f74d3afSCharles Paul Hofer [Documentation] Return the PNOR extended version. 1629f74d3afSCharles Paul Hofer [Arguments] ${manifest_path} 1639f74d3afSCharles Paul Hofer 1649f74d3afSCharles Paul Hofer # Description of argument(s): 1659f74d3afSCharles Paul Hofer # manifest_path Path of the MANIFEST file 1669f74d3afSCharles Paul Hofer # (e.g. "/tmp/images/abc123/MANIFEST"). 1679f74d3afSCharles Paul Hofer 1689f74d3afSCharles Paul Hofer ${version}= BMC Execute Command 1699f74d3afSCharles Paul Hofer ... grep extended_version= ${manifest_path} 1709f74d3afSCharles Paul Hofer [return] ${version.split(",")} 171