Added keywords to fix IPMI sensor testcases
Changes:
- Get Available Sensors
- Get Sensor Id For Sensor
Tested:
- Tested with /ipmi/test_ipmi_sensor.robot
Change-Id: Ic128ef2aebb6b288e3f0f7fe7fcdc7ff667a7e99
Signed-off-by: srichn28 <srichn28@in.ibm.com>
diff --git a/ipmi/test_ipmi_sensor.robot b/ipmi/test_ipmi_sensor.robot
index 28d9906..60aefeb 100644
--- a/ipmi/test_ipmi_sensor.robot
+++ b/ipmi/test_ipmi_sensor.robot
@@ -485,3 +485,69 @@
Run keyword if '${data}[MemberId]' == 'ps0_input_voltage'
... Should Be Equal As Numbers ${data['${redfish_threshold_id}']} ${ipmi_threshold_reading}
END
+
+
+Get Available Sensors
+ [Documentation] Get all the available sensors for the required component.
+ ... Returns a list of available sensors.
+ [Arguments] ${sensor_component}
+
+ # Description of argument(s):
+ # sensor_component sensor component name.(e.g.:cpu)
+
+ ${resp}= Run IPMI Standard Command sdr elist
+ ${sensor_list}= Create List
+ ${sensors}= Get Lines Containing String ${resp} ${sensor_component}
+ ${sensors}= Split To Lines ${sensors}
+
+ # Example of IPMI sdr elist command.
+
+ # dcm0_cpu0 | 41h | ok | 3.1 | Presence detected
+ # dcm0_cpu1 | 42h | ok | 3.2 | Presence detected, Disabled
+ # dcm1_cpu0 | 43h | ok | 3.3 | Presence detected
+ # dcm1_cpu1 | 44h | ok | 3.4 | Presence detected, Disabled
+ # dcm2_cpu0 | 45h | ns | 3.5 | Disabled
+ # dcm2_cpu1 | 46h | ns | 3.6 | Disabled
+ # dcm3_cpu0 | 47h | ns | 3.7 | Disabled
+ # dcm3_cpu1 | 48h | ns | 3.8 | Disabled
+
+ FOR ${line} IN @{sensors}
+ ${sensor_name}= Set Variable ${line.split('|')[0].strip()}
+
+ # Adding sensors to the list whose presence is detected.
+ ${contains}= Evaluate "Presence detected" in "${line}"
+ Run Keyword IF "${contains}" == "True"
+ ... Append To List ${sensor_list} ${sensor_name}
+ END
+
+ # Example of output for ${sensor_list}
+ # ['dcm0_cpu0', 'dcm0_cpu1', 'dcm1_cpu0', 'dcm1_cpu1']
+
+ [RETURN] ${sensor_list}
+
+
+Get Sensor Id For Sensor
+ [Documentation] Returns the sensor ID value for the given sensor.
+ [Arguments] ${sensor_name}
+
+ # Description of argument(s):
+ # sensor_name Name of sensor whose ID is required(e.g.: dcm0_cpu0, dcm0_cpu1 etc).
+
+ ${get_resp}= Run IPMI Standard Command sensor get ${sensor_name}
+
+ # Example of sensor get command.
+
+ # Locating sensor record...
+ # Sensor ID : dcm0_cpu0 (0x41)
+ # Entity ID : 3.1
+ # Sensor Type (Discrete): Processor
+ # States Asserted : Processor
+ # [Presence detected]
+
+ ${line}= Get Lines Containing String ${get_resp} Sensor ID
+ ${sensor_id}= Set Variable ${line[-5:-1]}
+
+ # Example of output for ${sensor_id} is 0x41.
+
+ [RETURN] ${sensor_id}
+