blob: ced0622d3bd905d41bfb68bb43cce993441eb065 [file] [log] [blame]
Sushma M M8f254b52020-04-23 06:16:39 -05001*** Settings ***
2Documentation Test IPMI FRU data.
3
George Keishinge4a75492020-05-13 13:56:09 -05004Resource ../lib/ipmi_client.robot
Sushma M M8f254b52020-04-23 06:16:39 -05005Resource ../lib/openbmc_ffdc.robot
6Library ../lib/ipmi_utils.py
7
8
9Suite Setup Suite Setup Execution
10Suite Teardown Suite Teardown Execution
11Test Teardown Test Teardown Execution
12
13
14*** Variables ***
srichn287c51c152022-10-16 23:39:29 -050015&{ipmi_redfish_fru_field_map} product_serial=SerialNumber product_part_number=PartNumber
Sushma M M8f254b52020-04-23 06:16:39 -050016
17*** Test Cases ***
18
19Test FRU Info Of Power Supplies
20 [Documentation] Verify FRU info of power supply via IPMI and Redfish.
21 [Tags] Test_FRU_Info_Of_Power_Supplies
22
23 # IPMI FRU info.
Tony Lee79940a52021-10-12 17:04:13 +080024 ${ipmi_fru_component_info}= Get Component FRU Info ${COMPONENT_NAME_OF_POWER_SUPPLY}
Sushma M M8f254b52020-04-23 06:16:39 -050025 ... ${fru_objs}
26
27 # Redfish FRU info.
George Keishinga91601b2023-03-21 09:35:49 +053028 ${redfish_power_details}= Redfish.Get Members List
29 ... /redfish/v1/Chassis/${CHASSIS_ID}/PowerSubsystem/PowerSupplies
srichn287c51c152022-10-16 23:39:29 -050030 ${redfish_power_dict}= Create List
31 FOR ${power_supply} IN @{redfish_power_details}
32 ${redfish_power_supply_reading}= Redfish.Get Properties ${power_supply}
33 Append To List ${redfish_power_dict} ${redfish_power_supply_reading}
34 END
35 Verify IPMI and Redfish subcomponents ${redfish_power_dict}
Sushma M M8f254b52020-04-23 06:16:39 -050036 ... ${ipmi_fru_component_info}
37
38*** Keywords ***
39
40Verify IPMI and Redfish subcomponents
41 [Documentation] Get IPMI And Redfish subcomponents of FRU and verify.
42 [Arguments] ${redfish_fru_info} ${ipmi_fru_info}
43
44 # Description of argument(s):
45 # ${ipmi_fru_info} IPMI FRU component values.
46 # ${redfish_fru_info} Redfish FRU component values.
47
48 ${sub_component_count}= Get Length ${redfish_fru_info}
49
50 # Fetch each subcomponent value of IPMI and Redfish and compare.
51 FOR ${sub_component_index} IN RANGE 0 ${sub_component_count}
52 ${ipmi_fru_sub_component}=
53 ... Get From List ${ipmi_fru_info} ${sub_component_index}
54 ${redfish_fru_sub_component}=
55 ... Get From List ${redfish_fru_info} ${sub_component_index}
56 Compare IPMI And Redfish FRU Component ${ipmi_fru_sub_component}
57 ... ${redfish_fru_sub_component}
58 END
59
60
61Compare IPMI And Redfish FRU Component
62 [Documentation] Compare IPMI And Redfish FRU Component data objects.
63 [Arguments] ${ipmi_fru_component_obj} ${redfish_fru_component_obj}
64
65 # Description of argument(s):
66 # ${ipmi_fru_component_obj} IPMI FRU component data in dictionary.
67 # Example:
68 # FRU Device Description : powersupply0 (ID 75)
69 # Board Mfg Date : Sun Dec 31 18:00:00 1995
70 # Board Product : powersupply0
71 # Board Serial : 71G303
72 # Board Part Number : 01KL471
73 # ${redfish_fru_component_obj} Redfish FRU component data in dictionary.
74 # Example:
75 # "Name": "powersupply0",
76 # "PartNumber": "01KL471",
77 # "PowerInputWatts": 114.0,
78 # "SerialNumber": "71G303",
79
80 # Get key_map from ipmi_redfish_fru_field_map.
81 ${key_map}= Get Dictionary Items ${ipmi_redfish_fru_field_map}
82
83 FOR ${key} ${value} IN @{key_map}
Sushma M Mbd0fcfc2020-06-09 02:16:48 -050084 Exit For Loop IF "${value}" == "${EMPTY}"
Sushma M M8f254b52020-04-23 06:16:39 -050085 Should Contain ${redfish_fru_component_obj['${value}']}
86 ... ${ipmi_fru_component_obj['${key}']}
87 ... msg=Comparison failed.
88 END
89
90
91Suite Setup Execution
92 [Documentation] Do test setup initialization.
93
srichn287c51c152022-10-16 23:39:29 -050094 ${status} ${fru_objs}= Run Keyword And Ignore Error Get Fru Info
95 Log To Console FRU: ${fru_objs}
Sushma M M8f254b52020-04-23 06:16:39 -050096 Set Suite Variable ${fru_objs}
97 Redfish.Login
98
99
100Suite Teardown Execution
101 [Documentation] Do the post suite teardown.
102
103 Redfish.Logout
104
105
106Test Teardown Execution
107 [Documentation] Do the post test teardown.
108
srichn287c51c152022-10-16 23:39:29 -0500109 FFDC On Test Case Fail