Changes in ipmi/test_ipmi_sel.robot

	- Verify Clear SEL After Cold Reset

Removed ipmi raw cold reset command and added IPMI MC Reset Cold (RUN)

Modified Fetch Any Sensor From Sensor List keyword, Omitted discrete sensor and randomly selected
one threshold based sensor in lib/ipmi_client.robot.

Signed-off-by: ganesanb <ganesanb@ami.com>
Change-Id: I7fb4880bcd4681ec2bb40a27d632bdc0be98f9d3
diff --git a/ipmi/test_ipmi_sel.robot b/ipmi/test_ipmi_sel.robot
index e2269ba..b4b743d 100644
--- a/ipmi/test_ipmi_sel.robot
+++ b/ipmi/test_ipmi_sel.robot
@@ -9,11 +9,6 @@
 Test Setup       Test Setup Execution
 Test Teardown    FFDC On Test Case Fail
 
-*** Variables ***
-
-${sensor_number}      0x17
-
-
 *** Test Cases ***
 
 Verify IPMI SEL Version
@@ -71,7 +66,7 @@
     [Teardown]  Run Keywords  FFDC On Test Case Fail  AND  Run IPMI Standard Command  sel clear
 
     # Get any sensor available from sensor list.
-    ${sensor_name}=  Fetch Any Sensor From Sensor List
+    ${sensor_name}=  Fetch One Threshold Sensor From Sensor List
 
     # Get Sensor ID from SDR get "sensor".
     ${sensor_data1}=  Fetch Sensor Details From SDR  ${sensor_name}  Sensor ID
@@ -149,7 +144,7 @@
 
     ELSE
         # Get any Sensor available from Sensor list
-        ${sensor_name}=  Fetch Any Sensor From Sensor List
+        ${sensor_name}=  Fetch One Threshold Sensor From Sensor List
 
         # Get Sensor ID from SDR Get "sensor" and Identify Sensor ID.
         ${sensor_data1}=  Fetch Sensor Details From SDR  ${sensor_name}  Sensor ID
@@ -260,10 +255,7 @@
     ${reserve_id}=  Split String  ${resp}
 
     # Run Cold Reset.
-    ${resp}=  Run IPMI Standard Command
-    ...  raw ${IPMI_RAW_CMD['Cold Reset']['reset'][0]}
-    Wait Until Keyword Succeeds  3 min  10 sec  Is BMC Unpingable
-    Wait Until Keyword Succeeds  3 min  10 sec  Is BMC Operational
+    IPMI MC Reset Cold (off)
 
     ${cmd}=  Catenate  ${IPMI_RAW_CMD['SEL_entry']['Clear_SEL'][0]} 0x${reserve_id[0]}
     ...  0x${reserve_id[1]} ${IPMI_RAW_CMD['SEL_entry']['Clear_SEL'][1]}
diff --git a/lib/ipmi_client.robot b/lib/ipmi_client.robot
index d6b944c..8bee9da 100755
--- a/lib/ipmi_client.robot
+++ b/lib/ipmi_client.robot
@@ -462,26 +462,27 @@
     [Return]  ${resp}
 
 
-Fetch Any Sensor From Sensor List
-    [Documentation]  Find any sensor name randomly from Sensor list.
+Fetch One Threshold Sensor From Sensor List
+    [Documentation]  Fetch one threshold sensor randomly from Sensor list.
+
+    @{sensor_name_list}=  Create List
 
     ${resp}=  Run IPMI Standard Command  sensor
+    @{sensor_list}=  Split To Lines  ${resp}
 
-    # Find total number of sensor.
-    ${data}=  Split To Lines  ${resp}
-    ${length}=  Get Length  ${data}
+    # Omit the discrete sensor and create an threshold sensor name list
+    FOR  ${sensor}  IN  @{sensor_list}
+      ${discrete_sensor_status}=  Run Keyword And Return Status  Should Contain  ${sensor}  discrete
+      Continue For Loop If  '${discrete_sensor_status}' == 'True'
+      ${sensor_details}=  Split String  ${sensor}  |
+      ${get_sensor_name}=  Get From List  ${sensor_details}  0
+      ${sensor_name}=  Set Variable  ${get_sensor_name.strip()}
+      Append To List  ${sensor_name_list}  ${sensor_name}
+    END
 
-    # Identify any one sensor.
-    ${sensor_index}=  Evaluate  random.randint(1, ${length})  modules=random
-    ${sensor_data}=  Set Variable  ${data[${sensor_index}-1]}
-    ${sensor}=  Split String  ${sensor_data}  |
+    ${random_sensor_name}=  Evaluate  random.choice(${sensor_name_list})  random
 
-    # Retrieve Sensor Name and return.
-    ${sensor_name}=  Set Variable  ${sensor[0]}
-    ${sensor_name}=  Remove Whitespace  ${sensor_name}
-
-    [Return]  ${sensor_name}
-
+    [Return]  ${random_sensor_name}
 
 Fetch Sensor Details From SDR
     [Documentation]  Identify the sensors from sdr get and fetch sensor details required.