1*** Settings *** 2Documentation Code update utility 3 4Resource ../../lib/rest_client.robot 5Resource ../../lib/connection_client.robot 6Resource ../../lib/utils.robot 7Library OperatingSystem 8 9*** Variables *** 10 11${BMC_UPD_METHOD} /org/openbmc/control/flash/bmc/action/update 12${BMC_UPD_ATTR} /org/openbmc/control/flash/bmc 13 14*** Keywords *** 15 16Preserve BMC Network Setting 17 [Documentation] Preserve Network setting 18 ${policy} = Set Variable ${1} 19 ${value} = create dictionary data=${policy} 20 Write Attribute ${BMC_UPD_ATTR} preserve_network_settings data=${value} 21 ${data}= Read Properties ${BMC_UPD_ATTR} 22 should be equal as strings ${data['preserve_network_settings']} ${1} 23 ... msg=0 indicates network is not preserved 24 25 26Activate BMC flash image 27 [Documentation] Activate and verify the update status 28 ... The status could be either one of these 29 ... 'Deferred for mounted filesystem. reboot BMC to apply.' 30 ... 'Image ready to apply.' 31 @{img_path} = Create List /tmp/flashimg 32 ${data} = create dictionary data=@{img_path} 33 ${resp}= openbmc post request ${BMC_UPD_METHOD} data=${data} 34 should be equal as strings ${resp.status_code} ${HTTP_OK} 35 36 ${data}= Read Properties ${BMC_UPD_ATTR} 37 should be equal as strings ${data["filename"]} /tmp/flashimg 38 should contain ${data['status']} to apply 39 40 41SCP Tar Image File to BMC 42 [arguments] ${filepath} 43 Open Connection for SCP 44 scp.Put File ${filepath} /tmp/flashimg 45 46 47Check If File Exist 48 [Arguments] ${filepath} 49 Log \n PATH: ${filepath} 50 OperatingSystem.File Should Exist ${filepath} 51 ... msg=${filepath} doesn't exist [ ERROR ] 52 53 Set Global Variable ${FILE_PATH} ${filepath} 54 55 56System Readiness Test 57 ${l_status} = Run Keyword and Return Status 58 ... Verify Ping and REST Authentication 59 Run Keyword If '${l_status}' == '${False}' 60 ... Fail msg=System not in ideal state to use [ERROR] 61 62 63Validate BMC Version 64 [Arguments] ${args}=post 65 # Check BMC installed version 66 Open Connection And Log In 67 ${version} ${stderr}= Execute Command cat /etc/version 68 ... return_stderr=True 69 Should Be Empty ${stderr} 70 # The File name contains the version installed 71 Run Keyword If '${args}' == 'before' 72 ... Should not Contain ${FILE_PATH} ${version} 73 ... msg=Same version already installed 74 ... ELSE 75 ... Should Contain ${FILE_PATH} ${version} 76 ... msg=Code update Failed 77 78 79Trigger Warm Reset via Reboot 80 [Documentation] The reboot commands execute successfully but 81 ... returns negative value 1 82 Open Connection And Log In 83 84 ${rc}= SSHLibrary.Execute Command 85 ... /sbin/reboot return_stdout=False return_rc=True 86 Should Be Equal As Integers ${rc} ${-1} 87