blob: c088a66767bdb0bdefa1ebdb34944d3bb8d628c9 [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}"
Nandish-Matti66023b82023-04-07 01:09:04 -050085 FOR ${ipmi_fru_component} IN ${ipmi_fru_component_obj}
86 FOR ${redfish_fru_component} IN ${redfish_fru_component_obj}
87 Run Keyword If '${ipmi_fru_component['product_name']}' == '${redfish_fru_component['Name']}'
88 ... Should Contain ${redfish_fru_component_obj['${value}']}
89 ... ${ipmi_fru_component_obj['${key}']}
90 ... msg=Comparison failed.
91 END
92 END
Sushma M M8f254b52020-04-23 06:16:39 -050093 END
94
95
96Suite Setup Execution
97 [Documentation] Do test setup initialization.
98
srichn287c51c152022-10-16 23:39:29 -050099 ${status} ${fru_objs}= Run Keyword And Ignore Error Get Fru Info
100 Log To Console FRU: ${fru_objs}
Sushma M M8f254b52020-04-23 06:16:39 -0500101 Set Suite Variable ${fru_objs}
102 Redfish.Login
103
104
105Suite Teardown Execution
106 [Documentation] Do the post suite teardown.
107
108 Redfish.Logout
109
110
111Test Teardown Execution
112 [Documentation] Do the post test teardown.
113
srichn287c51c152022-10-16 23:39:29 -0500114 FFDC On Test Case Fail