1*** Settings *** 2 3Documentation Module to test IPMI management controller ID functionality. 4Resource ../lib/ipmi_client.robot 5Resource ../lib/openbmc_ffdc.robot 6Variables ../data/ipmi_raw_cmd_table.py 7 8Test Teardown FFDC On Test Case Fail 9 10Test Tags IPMI_MC_ID 11 12*** Variables *** 13 14${new_mc_id}= HOST 15 16 17*** Test Cases *** 18 19Verify Get And Set Management Controller ID String 20 [Documentation] Verify get and set management controller ID string. 21 [Tags] Verify_Get_And_Set_Management_Controller_ID_String 22 # Get the value of the managemment controller ID string. 23 # Example: 24 # Get Management Controller Identifier String: witherspoon 25 26 ${cmd_output}= Wait Until Keyword Succeeds 15 sec 5 sec 27 ... Run IPMI Standard Command dcmi get_mc_id_string 28 29 # Extract management controller ID from cmd_output. 30 ${initial_mc_id}= Fetch From Right ${cmd_output} :${SPACE} 31 32 # Set the management controller ID string to other value. 33 # Example: 34 # Set Management Controller Identifier String Command: HOST 35 36 Set Management Controller ID String ${new_mc_id} 37 38 # Get the management controller ID and verify. 39 Get Management Controller ID String And Verify ${new_mc_id} 40 41 # Set the value back to the initial value and verify. 42 Set Management Controller ID String ${initial_mc_id} 43 44 # Get the management controller ID and verify. 45 Get Management Controller ID String And Verify ${initial_mc_id} 46 47 48Test Management Controller ID String Status via IPMI 49 [Documentation] Test management controller ID string status via IPMI. 50 [Tags] Test_Management_Controller_ID_String_Status_via_IPMI 51 # Disable management controller ID string status via IPMI and verify. 52 Run IPMI Standard Command dcmi set_conf_param dhcp_config 0x00 53 Verify Management Controller ID String Status disable 54 55 # Enable management controller ID string status via IPMI and verify. 56 Run IPMI Standard Command dcmi set_conf_param dhcp_config 0x01 57 Verify Management Controller ID String Status enable 58 59 60Test Management Controller ID String Status via Raw IPMI 61 [Documentation] Test management controller ID string status via IPMI. 62 [Tags] Test_Management_Controller_ID_String_Status_via_Raw_IPMI 63 # Disable management controller ID string status via raw IPMI and verify. 64 Run IPMI Standard Command raw ${IPMI_RAW_CMD['conf_param']['Disabled'][0]} 65 Verify Management Controller ID String Status disable 66 67 # Enable management controller ID string status via raw IPMI and verify. 68 Run IPMI Standard Command raw ${IPMI_RAW_CMD['conf_param']['Enabled'][0]} 69 Verify Management Controller ID String Status enable 70 71 72*** Keywords *** 73 74Set Management Controller ID String 75 [Documentation] Set the management controller ID string. 76 [Arguments] ${string} 77 78 # Description of argument(s): 79 # string Management Controller ID String to be set 80 81 ${set_mc_id_string}= Run IPMI Standard Command 82 ... dcmi set_mc_id_string ${string} 83 84 85Get Management Controller ID String And Verify 86 [Documentation] Get the management controller ID string. 87 [Arguments] ${string} 88 89 # Description of argument(s): 90 # string Management Controller ID string 91 92 ${get_mc_id}= Run IPMI Standard Command dcmi get_mc_id_string 93 Should Contain ${get_mc_id} ${string} 94 ... msg=Command failed: get_mc_id. 95 96 97Verify Management Controller ID String Status 98 [Documentation] Verify management controller ID string status via IPMI. 99 [Arguments] ${status} 100 101 # Example of dcmi get_conf_param command output: 102 # DHCP Discovery method : 103 # Management Controller ID String is disabled 104 # Vendor class identifier DCMI IANA and Vendor class-specific Informationa are disabled 105 # Initial timeout interval : 4 seconds 106 # Server contact timeout interval : 120 seconds 107 # Server contact retry interval : 64 seconds 108 109 ${resp}= Run IPMI Standard Command dcmi get_conf_param 110 ${resp}= Get Lines Containing String ${resp} 111 ... Management Controller ID String case_insensitive=True 112 Should Contain ${resp} ${status} 113 ... msg=Management controller ID string is not ${status} 114