| *** Settings *** |
| |
| Documentation Module to test IPMI System Info Parameters functionality. |
| ... Following parameters are verified in the script, |
| ... 1. Set In Progress - param 0, |
| ... 2. System Firmware Version - param 1, |
| ... 3. System Name - param 2, |
| ... 4. Primary OS Name - param 3, |
| ... 5. OS Name - param 4, |
| ... 6. Present OS Version Number - param 5. |
| |
| Resource ../lib/ipmi_client.robot |
| Resource ../lib/openbmc_ffdc.robot |
| Library Collections |
| Library String |
| Library ../lib/ipmi_utils.py |
| Variables ../data/ipmi_raw_cmd_table.py |
| |
| Suite Setup Suite Setup Execution |
| Test Teardown Run Keywords Restore Default Configuration AND FFDC On Test Case Fail |
| |
| Force Tags IPMI_SystemInfo_Parameters |
| |
| *** Variables *** |
| |
| # Converting to hexadecimal provides 14 bytes so string length is 0e for param 3, 4, 5. |
| ${valid_os_version_name} Version2.12345 |
| ${invalid_os_version} ${valid_os_version_name}${6789} |
| |
| |
| *** Test Cases *** |
| |
| Verify System Info Set In Progress |
| [Documentation] Verify Set In Progress of System Info Parameter, |
| ... to set the set-in-progress and set complete state via IPMI, |
| ... and verify whether the state is updated and restored as expected. |
| [Tags] Verify_System_Info_Set_In_Progress |
| |
| # Set In Progress - set complete. |
| Set System Info Set In Progress 0x00 |
| |
| # Get System Info Parameter for param 0 - Set In Progress. |
| # Check if set-in-progress set to set complete. |
| ${complete}= Get System Info Set In Progress |
| # ${complete[0]} - parameter version. |
| # ${complete[1]} - Configuration parameter data, |
| # here, 01h (set in progress). |
| Should Be Equal ${complete[1]} 00 |
| |
| # Set In Progress - set in progress. |
| Set System Info Set In Progress 0x01 |
| |
| # Get System Info Parameter for param 0 - Set In Progress. |
| # Check if set-in-progress set to set inprogress. |
| ${inprogress}= Get System Info Set In Progress |
| # ${inprogress[0]} - parameter version. |
| # ${inprogress[1]} - Configuration parameter data, |
| # here, 01h (set in progress). |
| Should Be Equal ${inprogress[1]} 01 |
| |
| |
| Verify System Info Set In Progress After BMC Reboot |
| [Documentation] Verify Set In Progress changes to default, |
| ... after bmc reboot of System Info Parameter via IPMI, |
| ... and verify whether the default setting is reflected. |
| [Tags] Verify_System_Info_Set_In_Progress_After_BMC_Reboot |
| |
| # Set the parameter 0 - Set_In_Progress to set in progress state. |
| Set System Info Set In Progress 0x01 |
| # Get System Info Parameter for param 0 - Set In Progress. |
| # Check if set-in-progress set to set in progress. |
| ${inprogress}= Get System Info Set In Progress |
| # ${inprogress[0]} - parameter version. |
| # ${inprogress[1]} - Configuration parameter data, |
| # here, 01h (set in progress). |
| Should Be Equal ${inprogress[1]} 01 |
| |
| # Reboot BMC. |
| IPMI MC Reset Cold (run) |
| |
| # Since the param 0 - Set In Progress is volatile, |
| # Default value should be updated after BMC reboot. |
| ${state}= Get System Info Set In Progress |
| # ${state[0]} - parameter version. |
| # ${state[1]} - Configuration parameter data, |
| # here, 00h (set complete), 01h (set in progress), |
| # 10 (commit write), 11 (reserved). |
| Should Be Equal ${state[1]} ${set_in_progress} |
| |
| |
| Verify Get System Info Set In Progress With Invalid Data Length |
| [Documentation] Verify Get System Info Parameter Set In Progress via IPMI with extra bytes, |
| ... and expect to get the error message for invalid length. |
| [Tags] Verify_Get_System_Info_Set_In_Progress_With_Invalid_Data_Length |
| |
| # Check if the Get System Info Parameter for param 0 - set in progress throws |
| # error for invalid data length. |
| Run Keyword and Expect Error *${IPMI_RAW_CMD['System_Info']['param0_Set_In_Progress']['Get'][1]}* |
| ... Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param0_Set_In_Progress']['Get'][0]} 0x00 |
| |
| |
| Verify Set System Info Set In Progress With Invalid Data Length |
| [Documentation] Verify Set System Info Parameter Set In Progress via IPMI with extra bytes, |
| ... and expect to get the error message for invalid length. |
| [Tags] Verify_Set_System_Info_Set_In_Progress_With_Invalid_Data_Length |
| |
| # Check if the Set System Info Parameter for param 0 - set in progress throws |
| # error for invalid data length. |
| Run Keyword and Expect Error *${IPMI_RAW_CMD['System_Info']['param0_Set_In_Progress']['Set'][1]}* |
| ... Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param0_Set_In_Progress']['Set'][0]} 0x00 0x00 |
| |
| |
| Verify Set System Info Set In Progress With Invalid State |
| [Documentation] Verify Set System Info Parameter Set In Progress via IPMI invalid state, |
| ... and expect to get the error message for invalid data. |
| [Tags] Verify_Set_System_Info_Set_In_Progress_With_Invalid_State |
| |
| # Check if the Set System Info Parameter for param 0 - set in progress throws error for invalid State. |
| Run Keyword and Expect Error *${IPMI_RAW_CMD['System_Info']['param0_Set_In_Progress']['Set'][2]}* |
| ... Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param0_Set_In_Progress']['Set'][0]} 0x04 |
| |
| |
| Verify System Info System Firmware Version |
| [Documentation] Verify System Firmware Version of System Info Parameter via IPMI, |
| ... and verify whether the version is updated. |
| [Tags] Verify_System_Info_System_Firmware_Version |
| |
| # Generate a random 14 byte data, |
| # i,e 16-byte block for system firmware name string data. |
| # data 1 - Encoding string type, |
| # data 2 - string length (in bytes, 1-based), |
| # data 3 to 16 - system firmware name string data - 14 bytes. |
| ${firmware_version}= Generate Random String 14 [LETTERS] |
| ${firmware_version} ${fw_hex_data}= Identify Request Data ${firmware_version} |
| # Consider random string generated is 'zwclMXwfczMvcY'. |
| # Set the System Firmware Version of System Info Parameter. |
| Set System Firmware Version ${firmware_version} |
| # Get the response of System Firmware Version, |
| # and compare against randomly generated data bytes. |
| ${fw_version}= Get System Firmware Version |
| # The response data will something be like, |
| # ${fw_version}= ["11","00","00","0e","7a","77","63","6c","4d","58","77","66","63","7a","4d","76"]. |
| Should Be Equal ${fw_version[4:]} ${fw_hex_data} |
| |
| |
| Verify Get System Info System Firmware Version With Invalid Data Length |
| [Documentation] Verify Get System Info Parameter System Firmware Version via IPMI with extra bytes, |
| ... and expect to get the error message for invalid length. |
| [Tags] Verify_Get_System_Info_System_Firmware_Version_With_Invalid_Data_Length |
| |
| # Check if the Get System Info Parameter for param 1 - System Firmware Version throws |
| # error for invalid data length. |
| Run Keyword and Expect Error *${IPMI_RAW_CMD['System_Info']['param1_System_Firmware_Version']['Get'][1]}* |
| ... Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param1_System_Firmware_Version']['Get'][0]} 0x00 |
| |
| |
| Verify Set System Info System Firmware Version With Invalid Data Length |
| [Documentation] Verify Set System Info Parameter System Firmware Version via IPMI with extra bytes, |
| ... and expect to get the error message for invalid length. |
| [Tags] Verify_Set_System_Info_System_Firmware_Version_With_Invalid_Data_Length |
| |
| # Generate a random 15 byte data, |
| # i,e 16-byte block for system firmware name string data, |
| # data 1 - Encoding string type, |
| # data 2 - string length (in bytes, 1-based), |
| # data 3 to 16 - system firmware name string data - 14 bytes, |
| # data 17 - extra byte. |
| ${firmware_version}= Generate Random String 15 [LETTERS] |
| ${firmware_version} ${fw_hex_data}= Identify Request Data ${firmware_version} |
| # Consider random string generated is 'zwclMXwfczMvcYz'. |
| # The request data bytes will be 15 bytes, in which 14 bytes are only expected. |
| # Check if the Set System Info Parameter for param 1 - System Firmware Version throws |
| # error for invalid request data. |
| Run Keyword and Expect Error *${IPMI_RAW_CMD['System_Info']['param1_System_Firmware_Version']['Set'][1]}* |
| ... Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param1_System_Firmware_Version']['Set'][0]} ${firmware_version} |
| |
| |
| Verify System Info System Name |
| [Documentation] Verify System Name of System Info Parameter via IPMI by setting, |
| ... a random system name and verify whether it is updated as expected. |
| [Tags] Verify_System_Info_System_Name |
| |
| # Generate a random 14 byte data, |
| # i,e 16-byte block for system firmware name string data, |
| # data 1 - Encoding string type, |
| # data 2 - string length (in bytes, 1-based), |
| # data 3 to 16 - system firmware name string data - 14 bytes. |
| ${system_name}= Generate Random String 14 [LETTERS] |
| ${system_name} ${name_hex_data}= Identify Request Data ${system_name} |
| # Consider random string generated is 'zwclMXwfczMvcY'. |
| |
| # Set System Name for System Info Parameter. |
| Set System Name ${system_name} |
| |
| # Get the response of System Name, |
| # and compare against randomly generated data bytes. |
| ${sys_name}= Get System Name |
| # The response data will something be like, |
| # ${sys_name}= ["11","00","00","0e","7a","77","63","6c","4d","58","77","66","63","7a","4d","76"]. |
| Should Be Equal ${sys_name[4:]} ${name_hex_data} |
| |
| |
| Verify Get System Info System Name With Invalid Data Length |
| [Documentation] Verify Get System Info Parameter System Name via IPMI with extra bytes, |
| ... and expect to get the error message for invalid length. |
| [Tags] Verify_Get_System_Info_System_Name_With_Invalid_Data_Length |
| |
| # Check if the Get System Info Parameter for param 2 - System Name throws error |
| # for invalid request data length. |
| Run Keyword and Expect Error *${IPMI_RAW_CMD['System_Info']['param2_System_Name']['Get'][1]}* |
| ... Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param2_System_Name']['Get'][0]} 0x00 |
| |
| |
| Verify Set System Info System Name With Invalid Data Length |
| [Documentation] Verify Set System Info Parameter System Name via IPMI with extra bytes, |
| ... and expect to get the error message for invalid length. |
| [Tags] Verify_Set_System_Info_System_Name_With_Invalid_Data_Length |
| |
| # Generate a random 15 byte data, |
| # i,e 16-byte block for system firmware name string data, |
| # data 1 - Encoding string type, |
| # data 2 - string length (in bytes, 1-based), |
| # data 3 to 16 - system firmware name string data - 14 bytes, |
| # data 17 - extra byte. |
| ${system_name}= Generate Random String 15 [LETTERS] |
| ${system_name} ${name_hex_data}= Identify Request Data ${system_name} |
| # Consider random string generated is 'zwclMXwfczMvcYz'. |
| # The request data bytes will be 15 bytes, in which 14 bytes are only expected. |
| |
| # Check if the Set System Info Parameter for param 2 - System Name throws error for invalid request data. |
| Run Keyword and Expect Error *${IPMI_RAW_CMD['System_Info']['param2_System_Name']['Set'][1]}* |
| ... Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param2_System_Name']['Set'][0]} ${system_name} |
| |
| |
| Verify System Info Primary OS Name |
| [Documentation] Verify Primary OS Name of System Info Parameter via IPMI, |
| ... by setting a valid os version and verify whether it is updated as expected. |
| [Tags] Verify_System_Info_Primary_OS_Name |
| |
| # os_version_name given in variable section which is a 14 byte data. |
| ${os_name} ${os_hex_data}= Identify Request Data ${valid_os_version_name} |
| |
| # Set Primary OS Name of System Info Parameter. |
| Set Primary OS Name ${os_name} |
| |
| # Get Primary OS Name of System Info Parameter. |
| # Compare with the assigned os version name data. |
| ${pr_os}= Get Primary OS Name |
| # The response data will something be like, |
| # ${pr_os}= ["11","00","00","0e","56","65","72","73","69","6f","6e","32","2e","31","32","33"]. |
| Should Be Equal ${pr_os[4:]} ${os_hex_data} |
| |
| |
| Verify Get System Info Primary OS Name With Invalid Data Length |
| [Documentation] Verify Get System Info Parameter Primary OS Name via IPMI with extra bytes, |
| ... and expect to get the error message for invalid length. |
| [Tags] Verify_Get_System_Info_Primary_OS_Name_With_Invalid_Data_Length |
| |
| # Check if the Get System Info Parameter for param 3 - Primary OS Name throws |
| # error for invalid request data. |
| Run Keyword and Expect Error |
| ... *${IPMI_RAW_CMD['System_Info']['param3_Primary_Operating_System_Name']['Get'][1]}* |
| ... Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param3_Primary_Operating_System_Name']['Get'][0]} 0x00 |
| |
| |
| Verify Set System Info Primary OS Name With Invalid Data Length |
| [Documentation] Verify setting invalid os version name to Primary OS Name, |
| ... of Set System Info Parameter via IPMI, |
| ... and expect to get the error message for invalid length. |
| [Tags] Verify_Set_System_Info_Primary_OS_Name_With_Invalid_Data_Length |
| |
| # invalid_os_version given in variable section which is a 15 byte data, |
| # The actual request byte should be 16 byte data where, |
| # data 1 - Encoding string type, |
| # data 2 - string length (in bytes, 1-based), |
| # data 3 to 16 - system firmware name string data - 14 bytes, |
| # Here 15 bytes so, data 17 - extra byte. |
| ${os_name} ${name_hex_data}= Identify Request Data ${invalid_os_version} |
| |
| # Check if the Set System Info Parameter for param 3 - Primary OS Name throws error |
| # for invalid data request. |
| Run Keyword and Expect Error |
| ... *${IPMI_RAW_CMD['System_Info']['param3_Primary_Operating_System_Name']['Set'][1]}* |
| ... Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param3_Primary_Operating_System_Name']['Set'][0]} ${os_name} |
| |
| |
| Verify System Info OS Name |
| [Documentation] Verify setting valid os version to OS Name, |
| ... of System Info Parameter via IPMI and verify whether it updates as expected. |
| [Tags] Verify_System_Info_OS_Name |
| |
| # os_version_name given in variable section which is a 14 byte data. |
| ${os_name} ${os_hex_data}= Identify Request Data ${valid_os_version_name} |
| |
| # Set OS Name of System Info Parameters. |
| Set OS Name ${os_name} |
| |
| # Get the OS Name and compare against given os_version_name. |
| ${sysos}= Get OS Name |
| # The response data will something be like, |
| # ${sysos}= ["11","00","00","0e","56","65","72","73","69","6f","6e","32","2e","31","32","33"]. |
| Should Be Equal ${sysos[4:]} ${os_hex_data} |
| |
| |
| Verify System Info OS Name After BMC Reboot |
| [Documentation] Verify setting valid os version name for OS Name, |
| ... of System Info Parameter and verify it changes to default after BMC Reboot via IPMI. |
| [Tags] Verify_System_Info_OS_Name_After_BMC_Reboot |
| |
| # os_version_name given in variable section which is a 14 byte data. |
| ${os_name} ${os_hex_data}= Identify Request Data ${valid_os_version_name} |
| |
| # Set OS Name of System Info Parameters. |
| Set OS Name ${os_name} |
| |
| # Get the OS Name and compare against given os_version_name. |
| ${sysos}= Get OS Name |
| # The response data will something be like, |
| # ${sysos}= ["11","00","00","0e","56","65","72","73","69","6f","6e","32","2e","31","32","33"]. |
| Should Be Equal ${sysos[4:]} ${os_hex_data} |
| |
| # Cold Reset via IPMI |
| IPMI MC Reset Cold (run) |
| |
| # Since OS Name is volatile, |
| # compare with response data of Get OS Name, |
| # with default OS Name. |
| ${sysos}= Get OS Name |
| # Should return default response data. |
| Should Be Equal ${sysos[2:]} ${default_os_name} |
| |
| |
| Verify Get System Info OS Name With Invalid Data Length |
| [Documentation] Verify OS Name of Get System Info Parameter via IPMI, |
| ... with extra bytes, and expect to get the error message for invalid length. |
| [Tags] Verify_Get_System_Info_OS_Name_With_Invalid_Data_Length |
| |
| # Check if the Get System Info Parameter for param 4 - OS Name throws error for invalid request data. |
| Run Keyword and Expect Error *${IPMI_RAW_CMD['System_Info']['param4_Operating_System_Name']['Get'][1]}* |
| ... Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param4_Operating_System_Name']['Get'][0]} 0x00 |
| |
| |
| Verify Set System Info OS Name With Invalid Data Length |
| [Documentation] Verify setting invalid os version name to OS Name, |
| ... of Get System Info Parameter via IPMI, |
| ... and expect to get the error message for invalid length. |
| [Tags] Verify_Set_System_Info_OS_Name_With_Invalid_Data_Length |
| |
| # invalid_os_version given in variable section which is a 15 byte data, |
| # The actual request byte should be 16 byte data where, |
| # data 1 - Encoding string type, |
| # data 2 - string length (in bytes, 1-based), |
| # data 3 to 16 - system firmware name string data - 14 bytes, |
| # Here 15 bytes so, data 17 - extra byte. |
| ${os_name} ${name_hex_data}= Identify Request Data ${invalid_os_version} |
| |
| # Check if the Set System Info Parameter for param 4 - OS Name throws error for invalid request data. |
| Run Keyword and Expect Error *${IPMI_RAW_CMD['System_Info']['param4_Operating_System_Name']['Set'][1]}* |
| ... Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param4_Operating_System_Name']['Set'][0]} ${os_name} |
| |
| |
| Verify System Info Present OS Version Number |
| [Documentation] Verify setting valid os version for Present OS Version Number, |
| ... of System Info Parameter via IPMI and verify whether it is updated as expected. |
| [Tags] Verify_System_Info_Present_OS_Version_Number |
| |
| # os_version_name given in variable section which is a 14 byte data. |
| ${os_name} ${os_hex_data}= Identify Request Data ${valid_os_version_name} |
| |
| # Set Present OS Version Number for System Info Parameters. |
| Set Present OS Version Number ${os_name} |
| |
| # Get Present OS Version Number for System Info Parameters, |
| # compare with response data of Get OS Name, |
| # with assigned os version name. |
| ${os_version}= Get Present OS Version Number |
| # The response data will something be like, |
| # ${os_version}= ["11","00","00","0e","56","65","72","73","69","6f","6e","32","2e","31","32","33"]. |
| Should Be Equal ${os_version[4:]} ${os_hex_data} |
| |
| |
| Verify Get System Info Present OS Version Number With Invalid Data Length |
| [Documentation] Verify Get System Info Parameter Present OS Version Number via IPMI, |
| ... with extra bytes, and expect to get the error message for invalid length. |
| [Tags] Verify_Get_System_Info_Present_OS_Version_Number_With_Invalid_Data_Length |
| |
| # Check if the Get System Info Parameter for param 5 - Present OS Version Number throws |
| # error for invalid request data. |
| Run Keyword and Expect Error |
| ... *${IPMI_RAW_CMD['System_Info']['param5_Present_OS_Version_number']['Get'][1]}* |
| ... Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param5_Present_OS_Version_number']['Get'][0]} 0x00 |
| |
| |
| Verify Set System Info Present OS Version Number With Invalid Data Length |
| [Documentation] Verify setting invalid os version to Present OS Version Number |
| ... of Set System Info Parameter via IPMI, |
| ... and expect to get the error message for invalid length. |
| [Tags] Verify_Set_System_Info_Present_OS_Version_Number_With_Invalid_Data_Length |
| |
| # invalid_os_version given in variable section which is a 15 byte data. |
| # The actual request byte should be 16 byte data where, |
| # data 1 - Encoding string type, |
| # data 2 - string length (in bytes, 1-based), |
| # data 3 to 16 - system firmware name string data - 14 bytes, |
| # Here 15 bytes so, data 17 - extra byte. |
| ${os_name} ${name_hex_data}= Identify Request Data ${invalid_os_version} |
| |
| # Check if the Set System Info Parameter for param 5 - Present OS Version Number throws |
| # error for invalid request data. |
| Run Keyword and Expect Error |
| ... *${IPMI_RAW_CMD['System_Info']['param5_Present_OS_Version_number']['Set'][1]}* |
| ... Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param5_Present_OS_Version_number']['Set'][0]} ${os_name} |
| |
| |
| *** Keywords *** |
| |
| Identify Request Data |
| [Documentation] Convert string to hexadecimal request data with and without prefix 0x. |
| [Arguments] ${string} |
| |
| # Given a string, convert to hexadecimal and prefix with 0x. |
| # Consider random string generated ${string} is 'zwc'. |
| ${fw_ver_hex_list}= Create List |
| ${hex_data_list}= Create List |
| ${resp_data_list}= Split String With Index ${string} 1 |
| # ${resp_data_list} will be ['z', 'w', 'c']. |
| FOR ${data} IN @{resp_data_list} |
| # prefixes 0x by default. |
| # Example : 0x00. |
| ${hex_value}= Evaluate hex(ord("${data}")) |
| # provides only hexadecimal bytes. |
| # Example : 00. |
| ${hex}= Evaluate hex(ord("${data}"))[2:] |
| # With prefix 0x. |
| Append To List ${fw_ver_hex_list} ${hex_value} |
| # Without prefix. |
| Append To List ${hex_data_list} ${hex} |
| END |
| ${fw_ver_hex}= Evaluate " ".join(${fw_ver_hex_list}) |
| |
| RETURN ${fw_ver_hex} ${hex_data_list} |
| |
| |
| Get System Info Set In Progress |
| [Documentation] Run Get system info parameter command for set-in-progress and return response data. |
| |
| # Get System Info Parameter for param 0 - Set In Progress. |
| ${resp}= Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param0_Set_In_Progress']['Get'][0]} |
| ${resp}= Split String ${resp} |
| |
| RETURN ${resp} |
| |
| |
| Set System Info Set In Progress |
| [Documentation] Set System Info Set In Progress with valid state via IPMI. |
| [Arguments] ${state} |
| |
| # Set System Info Parameter for param 0 - Set In Progress. |
| # ${state} can be can be any - 00 | 01 | 10 | 11. |
| Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param0_Set_In_Progress']['Set'][0]} ${state} |
| |
| |
| Get System Firmware Version |
| [Documentation] Run Get system info parameter command for system firmware version |
| ... and return response data. |
| |
| # Get System Info Parameter for param 1 - System Firmware Version. |
| ${resp}= Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param1_System_Firmware_Version']['Get'][0]} |
| ${resp}= Split String ${resp} |
| |
| RETURN ${resp} |
| |
| |
| Set System Firmware Version |
| [Documentation] Set System Firmware Version for System Info with valid version. |
| [Arguments] ${version} |
| |
| # Set System Info Parameter for param 1 - System Firmware Version. |
| # ${version} can be any 14 data. |
| Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param1_System_Firmware_Version']['Set'][0]} ${version} |
| |
| |
| Get System Name |
| [Documentation] Run system info parameter command for system name and return response data. |
| |
| # Get System Info Parameter for param 2 - System Name. |
| ${resp}= Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param2_System_Name']['Get'][0]} |
| ${resp}= Split String ${resp} |
| |
| RETURN ${resp} |
| |
| |
| Set System Name |
| [Documentation] Set System Name for System Info with valid name. |
| [Arguments] ${sys_name} |
| |
| # Set System Info Parameter for param 2 - System Name. |
| # ${sys_name} can be any 14 byte data. |
| Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param2_System_Name']['Set'][0]} ${sys_name} |
| |
| |
| Get Primary OS Name |
| [Documentation] Run Get System Info command for primary OS name and return response data. |
| |
| # Get System Info Parameter for param 3 - Primary OS Name. |
| ${resp}= Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param3_Primary_Operating_System_Name']['Get'][0]} |
| ${resp}= Split String ${resp} |
| |
| RETURN ${resp} |
| |
| |
| Set Primary OS Name |
| [Documentation] Set Primary OS Name for System Info with valid os name. |
| [Arguments] ${os_name} |
| |
| # Set System Info Parameter for param 3 - Primary OS Name. |
| # ${os_name} can be any 14 byte data. |
| Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param3_Primary_Operating_System_Name']['Set'][0]} ${os_name} |
| |
| |
| Get OS Name |
| [Documentation] Run get System Info command for OS name and return response data. |
| |
| # Get System Info Parameter for param 4 - OS Name. |
| ${resp}= Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param4_Operating_System_Name']['Get'][0]} |
| ${resp}= Split String ${resp} |
| |
| RETURN ${resp} |
| |
| |
| Set OS Name |
| [Documentation] Set OS Name for System Info with valid os name. |
| [Arguments] ${os_name} |
| |
| # Set System Info Parameter for param 4 - OS Name. |
| # ${os_name} can be any 14 byte data. |
| Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param4_Operating_System_Name']['Set'][0]} ${os_name} |
| |
| |
| Get Present OS Version Number |
| [Documentation] Run Get System Info command for present os version name and return response. |
| |
| # Get System Info Parameter for param 5 - Present OS Version Number. |
| ${resp}= Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param5_Present_OS_Version_number']['Get'][0]} |
| ${resp}= Split String ${resp} |
| |
| RETURN ${resp} |
| |
| |
| Set Present OS Version Number |
| [Documentation] Set Present OS Version Number for System Info with valid os version. |
| [Arguments] ${os_name} |
| |
| # Set System Info Parameter for param 5 - Present OS Version Number. |
| # ${os_name} can be any 14 byte data |
| Run IPMI Command |
| ... ${IPMI_RAW_CMD['System_Info']['param5_Present_OS_Version_number']['Set'][0]} ${os_name} |
| |
| |
| Add Prefix To List Objects And Join String |
| [Documentation] Adding prefix '0x' to each list object and join the string. |
| [Arguments] ${list} |
| |
| # ${list} contains list of hexadecimal data. |
| |
| # Prefix Bytes with 0x for each data bytes and makes a string of request bytes. |
| # Prefix Bytes function under lib/ipmi_utils.py. |
| # Prefixes every list item with 0x and returns list of prefixed hexadecimal data. |
| ${prefix_list}= Prefix Bytes ${list} |
| ${prefix_list}= Evaluate " ".join(${prefix_list}) |
| |
| RETURN ${prefix_list} |
| |
| |
| Suite Setup Execution |
| [Documentation] Suite setup execution to fetch all the default response bytes, |
| ... prefix each byte with 0x and make them a suite variable. |
| |
| # Get Default Values of each parameters. |
| # Set In Progress - param 0. |
| ${resp}= Get System Info Set In Progress |
| # Configuration parameter data - 11 xx (xx can be any - 00 | 01 | 10 | 11). |
| ${set_in_progress}= Set Variable ${resp[1]} |
| |
| Set Suite Variable ${set_in_progress} |
| |
| # System Firmware Version - param 1. |
| ${resp}= Get System Firmware Version |
| # Configuration parameter data - 11 x1 x2 xx xx xx xx .. xx (xx - 14 bytes). |
| # x1 - encoding, x2 - string length in bytes. |
| ${sys_fw_version}= Set Variable ${resp[2:]} |
| # Prefix all bytes with 0x. |
| ${sys_fw_version_string}= Add Prefix To List Objects And Join String ${sys_fw_version} |
| |
| Set Suite Variable ${sys_fw_version} |
| Set Suite Variable ${sys_fw_version_string} |
| |
| # System Name - param 2. |
| ${resp}= Get System Name |
| # Configuration parameter data - 11 x1 x2 xx xx xx xx .. xx (xx - 14 bytes). |
| # x1 - encoding, x2 - string length in bytes. |
| ${sys_name_default}= Set Variable ${resp[2:]} |
| # Prefix all bytes with 0x. |
| ${sys_name_hex_default}= Add Prefix To List Objects And Join String ${sys_name_default} |
| |
| Set Suite Variable ${sys_name_default} |
| Set Suite Variable ${sys_name_hex_default} |
| |
| # Primary OS Name - param 3. |
| ${resp}= Get Primary OS Name |
| # Configuration parameter data - 11 x1 x2 xx xx xx xx .. xx (xx - 14 bytes). |
| # x1 - encoding, x2 - string length in bytes. |
| ${primary_os_name}= Set Variable ${resp[2:]} |
| # Prefix all bytes with 0x. |
| ${primary_os_name_hex}= Add Prefix To List Objects And Join String ${primary_os_name} |
| |
| Set Suite Variable ${primary_os_name} |
| Set Suite Variable ${primary_os_name_hex} |
| |
| # OS Name - param 4. |
| ${resp}= Get OS Name |
| # Configuration parameter data - 11 x1 x2 xx xx xx xx .. xx (xx - 14 bytes). |
| # x1 - encoding, x2 - string length in bytes. |
| ${default_os_name}= Set Variable ${resp[2:]} |
| # Prefix all bytes with 0x. |
| ${default_os_name_hex}= Add Prefix To List Objects And Join String ${default_os_name} |
| |
| Set Suite Variable ${default_os_name} |
| Set Suite Variable ${default_os_name_hex} |
| |
| # Present OS Version Number - param 5. |
| ${resp}= Get Present OS Version Number |
| # Configuration parameter data - 11 x1 x2 xx xx xx xx .. xx (xx - 14 bytes). |
| # x1 - encoding, x2 - string length in bytes. |
| ${present_os_num}= Set Variable ${resp[2:]} |
| # Prefix all bytes with 0x. |
| ${present_os_num_hex}= Add Prefix To List Objects And Join String ${present_os_num} |
| |
| Set Suite Variable ${present_os_num} |
| Set Suite Variable ${present_os_num_hex} |
| |
| |
| Restore Default Configuration |
| [Documentation] Restore all system info parameter response data to, |
| ... default data obtained from suite setup. |
| |
| # All variable to set are suite variables declared in suite setup. |
| |
| # Set In Progress - param 0. |
| Set System Info Set In Progress 0x${set_in_progress} |
| |
| # System Firmware Version - param 1. |
| Run IPMI Command 0x06 0x58 0x01 0x00 ${sys_fw_version_string} |
| |
| # System Name - param 2. |
| Run IPMI Command 0x06 0x58 0x02 0x00 ${sys_name_hex_default} |
| |
| # Primary OS Name - param 3. |
| Run IPMI Command 0x06 0x58 0x03 0x00 ${primary_os_name_hex} |
| |
| # OS Name - param 4. |
| Run IPMI Command 0x06 0x58 0x04 0x00 ${default_os_name_hex} |
| |
| # Present OS Version Number - param 5. |
| Run IPMI Command 0x06 0x58 0x05 0x00 ${present_os_num_hex} |