| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 1 | *** Settings *** | 
 | 2 |  | 
 | 3 | Documentation    Module to test IPMI SEL Time functionality. | 
| George Keishing | 6e64126 | 2022-05-05 10:46:22 -0500 | [diff] [blame] | 4 | ...              Pre-requisite Condition : Client Machine and BMC should be in | 
 | 5 | ...              Same TimeZone (example : UST) | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 6 | ... | 
| George Keishing | 6e64126 | 2022-05-05 10:46:22 -0500 | [diff] [blame] | 7 | ...              IPMI Raw command variables are defined under | 
 | 8 | ...              ../data/ipmi_raw_command_table.py | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 9 | ... | 
| George Keishing | 6e64126 | 2022-05-05 10:46:22 -0500 | [diff] [blame] | 10 | ...              Test the Set/Get SEL Time functionality and compare the result against | 
 | 11 | ...              BMC Native command (date). | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 12 | ... | 
 | 13 | ...              Set the Time Sync Mode from NTP to Manual to Set SEL Time. | 
 | 14 | ...              Time Sync Mode change performed via REDFISH URI. | 
| George Keishing | 6e64126 | 2022-05-05 10:46:22 -0500 | [diff] [blame] | 15 | ...              Performs the change in Time Sync Mode with Test Setup and Teardown Execution | 
 | 16 | ...              with default NETWORK_TIMEOUT provided under ../lib/resource.robot. | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 17 | ... | 
| George Keishing | 6e64126 | 2022-05-05 10:46:22 -0500 | [diff] [blame] | 18 | ...              NETWORK_RESTART_TIME added for Set SEL Time and Add SEL Entry as the corresponding | 
 | 19 | ...              command takes approx 5 seconds for the operation to reflect. | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 20 | ... | 
 | 21 | ...              Current SEL time identified via BMC Native command (date) and perform SEL Time operations. | 
 | 22 | ... | 
 | 23 | ...              Script Verifies SEL Time for various scenarios such as, | 
 | 24 | ...              Get current time from BMC and add future year and compare against BMC native command (date), | 
 | 25 | ...              Gets BMC Current Time and Adds 15 minutes and compare against BMC native command (date), | 
 | 26 | ...              Gets BMC Current Time and subtracts 1 day and compare against BMC native command (date), | 
 | 27 | ...              Add SEL Entry for all the above scenarios and compare against BMC native command (date). | 
 | 28 |  | 
| ganesanb | d0c4b80 | 2023-04-28 18:29:38 +0000 | [diff] [blame] | 29 | Resource         ../lib/ipmi_client.robot | 
 | 30 | Resource         ../lib/openbmc_ffdc.robot | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 31 | Library          DateTime | 
 | 32 | Library          Collections | 
 | 33 | Library          String | 
 | 34 | Library          ../lib/ipmi_utils.py | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 35 | Variables        ../data/ipmi_raw_cmd_table.py | 
 | 36 |  | 
 | 37 | Test Setup       Test Setup Execution | 
 | 38 | Test Teardown    Test Teardown Execution | 
 | 39 |  | 
| Matt Fischer | 6fb70d9 | 2023-10-24 19:06:33 -0600 | [diff] [blame] | 40 | Test Tags       IPMI_SEL_Time | 
| George Keishing | 87dc442 | 2023-10-20 12:56:30 +0530 | [diff] [blame] | 41 |  | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 42 | *** Variables *** | 
 | 43 |  | 
 | 44 | ${NETWORK_RESTART_TIME}   5s | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 45 | @{time_difference_list}  +8760:153:25  -87600:453:120  +175200:40:15  -43800:10:05  +20:35:12  -8760:00:00 | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 46 |  | 
| George Keishing | a91601b | 2023-03-21 09:35:49 +0530 | [diff] [blame] | 47 | # Based on 13th byte of add SEL entry command as per IPMI spec | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 48 | # event_dir and event_type variable value needs to be given. | 
 | 49 | ${sel_no_entry_msg}  SEL has no entries | 
 | 50 | ${event_type}        Lower Non-critical going low | 
 | 51 | ${event_dir}         Asserted | 
 | 52 | # number_of_times_sel_entry_added this variable is used in Verify Multiple Set SEL Time With Multiple Add SEL Entry | 
 | 53 | # test case. Need to give how many sel should be added with multiple date and time. | 
 | 54 | ${number_of_times_sel_entry_added}    6 | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 55 |  | 
 | 56 | *** Test Cases *** | 
 | 57 |  | 
 | 58 | Verify Default Get SEL Time | 
 | 59 |     [Documentation]  Verify IPMI Get SEL Time. | 
 | 60 |     [Tags]  Verify_Default_Get_SEL_Time | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 61 |  | 
 | 62 |     # Gets the current SEL time via Get SEL Time Command. | 
 | 63 |     ${resp}=  Get SEL Time Command | 
 | 64 |     Should Not Be Empty  ${resp} | 
 | 65 |  | 
 | 66 |  | 
| George Keishing | 70deec0 | 2022-05-04 14:23:22 -0500 | [diff] [blame] | 67 | Verify Set SEL Time On NTP Mode | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 68 |     [Documentation]   IPMI Set SEL Time without NTP | 
| George Keishing | 70deec0 | 2022-05-04 14:23:22 -0500 | [diff] [blame] | 69 |     [Tags]  Verify_Set_SEL_Time_On_NTP_Mode | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 70 |  | 
 | 71 |     # Get current time from BMC and add future year (here, 5years). | 
 | 72 |     ${sel_date}=  Get Specific Sel Date  5 | 
 | 73 |  | 
 | 74 |     # Gives Hexa decimal raw command data request with the prefix of 0x. | 
 | 75 |     ${sel_date_raw}=  Converting Date to HexaDecimal  ${sel_date} | 
 | 76 |  | 
 | 77 |     ${Set_sel_time}=  Run Keyword and Expect Error  *${IPMI_RAW_CMD['SEL_entry']['Set_SEL_Time'][2]}* | 
 | 78 |     ...  Run IPMI Command  ${IPMI_RAW_CMD['SEL_entry']['Set_SEL_Time'][0]} ${sel_date_raw} | 
 | 79 |     Should Contain  ${Set_sel_time}  ${IPMI_RAW_CMD['SEL_entry']['Set_SEL_Time'][1]} | 
 | 80 |  | 
 | 81 |  | 
 | 82 | Verify SEL Set Time For Specific Time | 
 | 83 |     [Documentation]  Verify IPMI Set SEL Time. | 
 | 84 |     [Tags]  Verify_SEL_Set_Time_For_Specific_Time | 
 | 85 |  | 
 | 86 |     # Get current time from BMC and add future year (here, 5years). | 
 | 87 |     ${sel_date}=  Get Specific Sel Date  5 | 
 | 88 |  | 
 | 89 |     # Gives Hexa decimal raw command data request with the prefix of 0x. | 
 | 90 |     ${sel_date_raw}=  Converting Date to HexaDecimal  ${sel_date} | 
 | 91 |  | 
 | 92 |     # Set SEL Entry command. | 
 | 93 |     Set SEL Time Entry Via Raw Command  ${sel_date_raw} | 
 | 94 |  | 
 | 95 |     # Get SEL Time command. | 
 | 96 |     ${get_sel_time}=  Check Current Date Time Via IPMI | 
 | 97 |  | 
 | 98 |     # Identify Time difference and find the difference is less than 6 seconds. | 
 | 99 |     # Command execution may happen at the end of millisecond so considered 6 seconds as difference. | 
 | 100 |     ${time_difference}=  Get Time Difference  ${get_sel_time}  ${sel_date} | 
 | 101 |     Should Be True  0<=${time_difference}<=5 | 
 | 102 |     ...  msg=Set SEL Time Not Working | 
 | 103 |  | 
 | 104 |     # Get BMC time (native) and compare with set sel time given. | 
 | 105 |     ${bmc_time}=  Get Current Date from BMC | 
 | 106 |  | 
 | 107 |     ${difference}=  Get Time Difference  ${bmc_time}  ${sel_date} | 
 | 108 |     Should Be True  0<=${difference}<=6 | 
 | 109 |  | 
 | 110 |  | 
 | 111 | Verify Set SEL Time With Future Date And Time | 
 | 112 |     [Documentation]  Verify IPMI Get SEL Time by adding 15 minutes from current time. | 
 | 113 |     [Tags]  Verify_Set_SEL_Time_With_Future_Date_And_Time | 
 | 114 |  | 
 | 115 |     # Gets BMC Current Time and Adds 15 minutes and sets the SEL Time. | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 116 |     ${sel_time}  ${set_sel_time}=  Identify SEL Time  +06:15:00 | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 117 |  | 
 | 118 |     # Set SEL Time via IPMI command. | 
 | 119 |     Set SEL Time Via IPMI  ${sel_time} | 
 | 120 |  | 
 | 121 |     # Get SEL Time Command. | 
 | 122 |     ${get_sel_time}=  Check Current Date Time Via IPMI | 
 | 123 |  | 
 | 124 |     # Difference of time between set sel time and get time. | 
 | 125 |     ${difference}=  Get Time Difference  ${get_sel_time}  ${set_sel_time} | 
 | 126 |     Should Be True  0<=${difference}<=2 | 
 | 127 |  | 
 | 128 |     # Difference of time between BMC Date and Get SEL Time. | 
 | 129 |     ${bmc_time}=  Get Current Date from BMC | 
| Sridevi Ramesh | 52b71f8 | 2025-03-21 04:18:26 -0500 | [diff] [blame] | 130 |     ${difference}=  Get Time Difference  ${bmc_time}  ${get_sel_time} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 131 |     Should Be True  0<=${difference}<=2 | 
 | 132 |  | 
 | 133 |  | 
 | 134 | Verify Set SEL Time With Past Date And Time | 
 | 135 |     [Documentation]  Verify IPMI Get SEL Time for yime delay of 1 day from current dat and time. | 
 | 136 |     [Tags]  Verify_Set_SEL_Time_With_Past_Date_And_Time | 
 | 137 |  | 
 | 138 |     # Gets BMC current time and subtracts 1 day and sets the SEL Time. | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 139 |     ${sel_time}  ${set_sel_time}=  Identify SEL Time  -24:00:00 | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 140 |  | 
 | 141 |     ${status}=  Run Keyword And Return Status  Should Not Contain  ${sel_time}  1969 | 
 | 142 |     ...  msg=Date cannot be less than 1970. | 
 | 143 |  | 
 | 144 |     IF  '${status}' == '${TRUE}' | 
 | 145 |         # Set SEL Time via IPMI command. | 
 | 146 |         Set SEL Time Via IPMI  ${sel_time} | 
 | 147 |         # Get SEL Time Command. | 
 | 148 |         ${get_sel_time}=  Check Current Date Time Via IPMI | 
 | 149 |         # Difference of time between set sel time and get time. | 
 | 150 |         ${difference}=  Get Time Difference  ${get_sel_time}  ${set_sel_time} | 
 | 151 |         Should Be True  0<=${difference}<=2 | 
 | 152 |         # Difference of time between BMC Date and Get SEL Time. | 
 | 153 |         ${bmc_time}=  Get Current Date from BMC | 
| Sridevi Ramesh | 52b71f8 | 2025-03-21 04:18:26 -0500 | [diff] [blame] | 154 |         ${difference}=  Get Time Difference  ${bmc_time}  ${get_sel_time} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 155 |         Should Be True  0<=${difference}<=2 | 
 | 156 |     ELSE | 
 | 157 |         FAIL  SEL Time cannot set Date less than 1970 | 
 | 158 |     END | 
 | 159 |  | 
 | 160 |  | 
 | 161 | Verify SEL Set Time For Invalid Data Request | 
 | 162 |     [Documentation]  Verify IPMI Get SEL Time for invalid data request | 
 | 163 |     [Tags]  Verify_SEL_Set_Time_For_Invalid_Data_Request | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 164 |  | 
 | 165 |     # Gets BMC current date via date command. | 
 | 166 |     ${current_date}=  Get Current Date from BMC | 
 | 167 |  | 
 | 168 |     # Gives hexa decimal Raw command data request with the prefix of 0x. | 
 | 169 |     ${sel_date_raw}=  Converting Date to HexaDecimal  ${current_date} | 
 | 170 |  | 
 | 171 |     # Set Invalid SEL Time with one extra request byte. | 
 | 172 |     ${Set_seltime_invalid}=  Run Keyword and Expect Error  *${IPMI_RAW_CMD['SEL_entry']['Set_SEL_Time'][4]}* | 
 | 173 |     ...  Run IPMI Command  ${IPMI_RAW_CMD['SEL_entry']['Set_SEL_Time'][0]} ${sel_date_raw} 0x00 | 
 | 174 |     Should Contain  ${Set_seltime_invalid}  ${IPMI_RAW_CMD['SEL_entry']['Set_SEL_Time'][3]} | 
 | 175 |  | 
 | 176 |  | 
 | 177 | Verify SEL Set Time For Incomplete Data Request | 
 | 178 |     [Documentation]  Verify IPMI Get SEL Time for invalid data with one byte less request data. | 
 | 179 |     [Tags]  Verify_SEL_Set_Time_For_Incomplete_Data_Request | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 180 |  | 
 | 181 |     # Gets BMC current date via date command. | 
 | 182 |     ${current_date}=  Get Current Date from BMC | 
 | 183 |  | 
 | 184 |     # Gives hexa decimal raw command data request with the prefix of 0x. | 
 | 185 |     ${sel_date_raw}=  Converting Date to HexaDecimal  ${current_date} | 
 | 186 |  | 
 | 187 |     # For data request less than expected byes, remove last byte. | 
 | 188 |     ${sel_date_raw}=  Split String  ${sel_date_raw} | 
 | 189 |     Remove From List  ${sel_date_raw}  -1 | 
 | 190 |     ${sel_date_raw}=  Evaluate  " ".join(${sel_date_raw}) | 
 | 191 |  | 
 | 192 |     # Set incomplete SEL Time with one less request byte. | 
| George Keishing | 6e64126 | 2022-05-05 10:46:22 -0500 | [diff] [blame] | 193 |     ${Set_seltime_incomplete}= | 
 | 194 |     ...  Run Keyword and Expect Error  *${IPMI_RAW_CMD['SEL_entry']['Set_SEL_Time'][4]}* | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 195 |     ...  Run IPMI Command  ${IPMI_RAW_CMD['SEL_entry']['Set_SEL_Time'][0]} ${sel_date_raw} | 
 | 196 |     Should Contain  ${Set_seltime_incomplete}  ${IPMI_RAW_CMD['SEL_entry']['Set_SEL_Time'][3]} | 
 | 197 |  | 
 | 198 |  | 
 | 199 | Verify SEL Time In SEL Entry | 
 | 200 |     [Documentation]  Verify Configured SEL Time reflects in newly added SEL Entry. | 
 | 201 |     [Tags]  Verify_SEL_Time_In_SEL_Entry | 
 | 202 |  | 
 | 203 |     Clear The SEL | 
 | 204 |  | 
 | 205 |    # change to manual, get current time and add future year (here, 5years). | 
 | 206 |     ${sel_date}=  Get Specific Sel Date  5 | 
 | 207 |  | 
 | 208 |     # Gives hexa decimal raw command data request with the prefix of 0x. | 
 | 209 |     ${sel_date_raw}=  Converting Date to HexaDecimal  ${sel_date} | 
 | 210 |  | 
 | 211 |     # Set SEL Entry Command. | 
 | 212 |     Set SEL Time Entry Via Raw Command  ${sel_date_raw} | 
 | 213 |  | 
 | 214 |     # Get SEL Time Command. | 
 | 215 |     ${get_sel_time}=  Check Current Date Time Via IPMI | 
 | 216 |  | 
 | 217 |     # Identify Time difference and find the difference is less than 6 seconds. | 
 | 218 |     # Command execution may happen at the end of millisecond so considered 6 seconds as difference. | 
 | 219 |     ${time_difference}=  Get Time Difference  ${get_sel_time}  ${sel_date} | 
 | 220 |     Should Be True  0<=${time_difference}<=5 | 
 | 221 |     ...  msg=Set SEL Time Not Working | 
 | 222 |  | 
 | 223 |     # Get BMC time (native) and compare with set sel time given. | 
 | 224 |     ${bmc_time}=  Get Current Date from BMC | 
 | 225 |  | 
 | 226 |     ${difference}=  Get Time Difference  ${bmc_time}  ${sel_date} | 
 | 227 |     Should Be True  0<=${difference}<=6 | 
 | 228 |  | 
 | 229 |     # Get any Sensor available from Sensor list. | 
| ganesanb | 02d1966 | 2022-05-24 15:24:23 +0530 | [diff] [blame] | 230 |     ${sensor_name}=  Fetch One Threshold Sensor From Sensor List | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 231 |  | 
 | 232 |     # Get Sensor ID from SDR Get "sensor". | 
 | 233 |     ${sensor_data1}=  Fetch Sensor Details From SDR  ${sensor_name}  Sensor ID | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 234 |     ${sensor_number}=  Get Bytes From SDR Sensor  ${sensor_data1} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 235 |  | 
 | 236 |     # Get Sensor Type from SDR Get "sensor". | 
 | 237 |     ${sensor_data2}=  Fetch Sensor Details From SDR  ${sensor_name}  Sensor Type (Threshold) | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 238 |     ${sensor_type_id}=  Get Bytes From SDR Sensor  ${sensor_data2} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 239 |  | 
 | 240 |     # Add SEL Entry. | 
 | 241 |     ${sel_create_resp}=  Create SEL  ${sensor_type_id}  ${sensor_number} | 
 | 242 |  | 
 | 243 |     # Finds the last added sel entry. | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 244 |     ${resp}=  Verify SEL Added  ${sensor_name} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 245 |  | 
 | 246 |     # Fetches the date of the last added SEL Entry. | 
 | 247 |     ${sel_entry_date}=  Fetch Added SEL Date  ${resp} | 
 | 248 |  | 
 | 249 |     # Identify and find the time difference is less than 60 seconds. | 
 | 250 |     # Finding the sensor details and execution may take up to a minute. | 
 | 251 |     # Compare  date and time of Set SEL with sel entry. | 
 | 252 |     ${d}=  Get Time Difference  ${sel_entry_date}  ${sel_date} | 
 | 253 |     Should Be True  0<=${d}<=60 | 
 | 254 |  | 
 | 255 |  | 
 | 256 | Verify SEL Time In SEL Entry For Future Date and Time | 
 | 257 |     [Documentation]  Verify configured SEL Time (Future Date & Time) in added SEL Entry. | 
 | 258 |     [Tags]  Verify_SEL_Time_In_SEL_Entry_For_Future_Date_and_Time | 
 | 259 |  | 
 | 260 |     Clear The SEL | 
 | 261 |  | 
 | 262 |     # Gets BMC Current Time and Adds 15 minutes and sets the SEL Time. | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 263 |     ${sel_time}  ${set_sel_time}=  Identify SEL Time  +06:15:00 | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 264 |  | 
 | 265 |     # Set SEL Time via IPMI command. | 
 | 266 |     Set SEL Time Via IPMI  ${sel_time} | 
 | 267 |  | 
 | 268 |     # Get SEL Time Command. | 
 | 269 |     ${get_sel_time}=  Check Current Date Time Via IPMI | 
 | 270 |  | 
 | 271 |     # Difference of time between set sel time and get time. | 
 | 272 |     ${difference}=  Get Time Difference  ${get_sel_time}  ${set_sel_time} | 
 | 273 |     Should Be True  0<=${difference}<=2 | 
 | 274 |  | 
 | 275 |     # Difference of time between BMC Date and Get SEL Time. | 
 | 276 |     ${bmc_time}=  Get Current Date from BMC | 
| Sridevi Ramesh | 52b71f8 | 2025-03-21 04:18:26 -0500 | [diff] [blame] | 277 |     ${difference}=  Get Time Difference  ${bmc_time}  ${get_sel_time} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 278 |     Should Be True  0<=${difference}<=2 | 
 | 279 |  | 
 | 280 |     # Get any Sensor available from Sensor list. | 
| ganesanb | 02d1966 | 2022-05-24 15:24:23 +0530 | [diff] [blame] | 281 |     ${sensor_name}=  Fetch One Threshold Sensor From Sensor List | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 282 |  | 
 | 283 |     # Get Sensor ID from SDR Get "sensor". | 
 | 284 |     ${sensor_data1}=  Fetch Sensor Details From SDR  ${sensor_name}  Sensor ID | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 285 |     ${sensor_number}=  Get Bytes From SDR Sensor  ${sensor_data1} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 286 |  | 
 | 287 |     # Get Sensor Type from SDR Get "sensor". | 
 | 288 |     ${sensor_data2}=  Fetch Sensor Details From SDR  ${sensor_name}  Sensor Type (Threshold) | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 289 |     ${sensor_type_id}=  Get Bytes From SDR Sensor  ${sensor_data2} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 290 |  | 
 | 291 |     # Add SEL Entry. | 
 | 292 |     ${sel_create_resp}=  Create SEL  ${sensor_type_id}  ${sensor_number} | 
 | 293 |  | 
 | 294 |     # Finds the last added sel entry. | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 295 |     ${resp}=  Verify SEL Added  ${sensor_name} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 296 |  | 
 | 297 |     # Fetches the date of the last added SEL Entry. | 
 | 298 |     ${sel_entry_date}=  Fetch Added SEL Date  ${resp} | 
 | 299 |  | 
 | 300 |     # Identify and find the time difference is less than 60 seconds. | 
 | 301 |     # Finding the sensor details and execution may take up to a minute. | 
 | 302 |     # Compare  date and time of Set SEL with sel entry. | 
 | 303 |     ${d}=  Get Time Difference  ${sel_entry_date}  ${set_sel_time} | 
 | 304 |     Should Be True  0<=${d}<=60 | 
 | 305 |  | 
 | 306 |  | 
 | 307 | Verify SEL Time In SEL Entry For Past Date And Time | 
 | 308 |     [Documentation]  Verify configured SEL Time (Past Date & Time) in added SEL Entry. | 
| George Keishing | 70deec0 | 2022-05-04 14:23:22 -0500 | [diff] [blame] | 309 |     [Tags]  Verify_SEL_Time_In_SEL_Entry_For_Past_Date_And_Time | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 310 |  | 
 | 311 |     Clear The SEL | 
 | 312 |  | 
 | 313 |     # Gets BMC Current Time and subtracts 1 day and sets the SEL Time. | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 314 |     ${sel_time}  ${set_sel_time}=  Identify SEL Time  -24:00:00 | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 315 |  | 
 | 316 |     ${status}=  Run Keyword And Return Status  Should Not Contain  ${sel_time}  1969 | 
 | 317 |     ...  msg=Date cannot be less than 1970 | 
 | 318 |  | 
 | 319 |     IF  '${status}' == '${TRUE}' | 
 | 320 |         # Set SEL Time via IPMI command. | 
 | 321 |         Set SEL Time Via IPMI  ${sel_time} | 
 | 322 |         # Get SEL Time Command. | 
 | 323 |         ${get_sel_time}=  Check Current Date Time Via IPMI | 
 | 324 |         # Difference of time between set sel time and get time. | 
 | 325 |         ${difference}=  Get Time Difference  ${get_sel_time}  ${set_sel_time} | 
 | 326 |         Should Be True  0<=${difference}<=2 | 
 | 327 |         # Difference of time between BMC Date and Get SEL Time. | 
 | 328 |         ${bmc_time}=  Get Current Date from BMC | 
| Sridevi Ramesh | 52b71f8 | 2025-03-21 04:18:26 -0500 | [diff] [blame] | 329 |         ${difference}=  Get Time Difference  ${bmc_time}  ${get_sel_time} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 330 |         Should Be True  0<=${difference}<=2 | 
 | 331 |  | 
 | 332 |         # Get any Sensor available from Sensor list. | 
| ganesanb | 02d1966 | 2022-05-24 15:24:23 +0530 | [diff] [blame] | 333 |         ${sensor_name}=  Fetch One Threshold Sensor From Sensor List | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 334 |         # Get Sensor ID from SDR Get "sensor". | 
 | 335 |         ${sensor_data1}=  Fetch Sensor Details From SDR  ${sensor_name}  Sensor ID | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 336 |         ${sensor_number}=  Get Bytes From SDR Sensor  ${sensor_data1} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 337 |  | 
 | 338 |         # Get Sensor Type from SDR Get "sensor". | 
 | 339 |         ${sensor_data2}=  Fetch Sensor Details From SDR  ${sensor_name}  Sensor Type (Threshold) | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 340 |         ${sensor_type_id}=  Get Bytes From SDR Sensor  ${sensor_data2} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 341 |  | 
 | 342 |         # Add SEL Entry. | 
 | 343 |         ${sel_create_resp}=  Create SEL  ${sensor_type_id}  ${sensor_number} | 
 | 344 |  | 
 | 345 |         # Finds the last added sel entry. | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 346 |         ${resp}=  Verify SEL Added  ${sensor_name} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 347 |  | 
 | 348 |         # Fetches the date of the last added SEL Entry. | 
 | 349 |         ${sel_entry_date}=  Fetch Added SEL Date  ${resp} | 
 | 350 |  | 
 | 351 |         # Identify and find the time difference is less than 60 seconds. | 
 | 352 |         # Finding the sensor details and execution may take up to a minute. | 
 | 353 |         # Compare  date and time of Set SEL with sel entry. | 
 | 354 |         ${d}=  Get Time Difference  ${sel_entry_date}  ${set_sel_time} | 
 | 355 |         Should Be True  0<=${d}<=60 | 
 | 356 |     ELSE | 
 | 357 |         FAIL  SEL Time cannot set Date less than 1970. | 
 | 358 |     END | 
 | 359 |  | 
 | 360 |  | 
 | 361 | Verify Multiple Set SEL Time With Multiple Add SEL Entry | 
 | 362 |     [Documentation]  Verify SEL time in multiple addition Of SEL entry. | 
 | 363 |     [Tags]  Verify_Multiple_Set_SEL_Time_With_Multiple_Add_SEL_Entry | 
 | 364 |  | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 365 |     FOR  ${i}  IN RANGE  ${number_of_times_sel_entry_added} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 366 |  | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 367 |       ${sel_time}  ${set_sel_time}=  Identify SEL Time  ${time_difference_list[${i}]} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 368 |  | 
 | 369 |       # Set SEL Time via IPMI command. | 
 | 370 |       Set SEL Time Via IPMI  ${sel_time} | 
 | 371 |  | 
 | 372 |       # Clear the SEL. | 
 | 373 |       Clear The SEL | 
 | 374 |  | 
 | 375 |       # Get any Sensor available from Sensor list. | 
| ganesanb | 02d1966 | 2022-05-24 15:24:23 +0530 | [diff] [blame] | 376 |       ${sensor_name}=  Fetch One Threshold Sensor From Sensor List | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 377 |  | 
 | 378 |       # Get Sensor ID from SDR Get "sensor" and Identify Sensor ID. | 
 | 379 |       ${sensor_data1}=  Fetch Sensor Details From SDR  ${sensor_name}  Sensor ID | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 380 |       ${sensor_number}=  Get Bytes From SDR Sensor  ${sensor_data1} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 381 |  | 
 | 382 |       # Get Sensor Type from SDR Get "sensor" and identify Sensor Type. | 
 | 383 |       ${sensor_data2}=  Fetch Sensor Details From SDR  ${sensor_name}  Sensor Type (Threshold) | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 384 |       ${sensor_type_id}=  Get Bytes From SDR Sensor  ${sensor_data2} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 385 |  | 
 | 386 |       # Add SEL Entry. | 
 | 387 |       ${sel_create_resp}=  Create SEL  ${sensor_type_id}  ${sensor_number} | 
 | 388 |  | 
 | 389 |       # Finds the last added sel entry. | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 390 |       ${resp}=  Verify SEL Added  ${sensor_name} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 391 |  | 
 | 392 |       # Fetches the date of the last added SEL Entry. | 
 | 393 |       ${sel_entry_date}=  Fetch Added SEL Date  ${resp} | 
 | 394 |  | 
 | 395 |       # Identify and find the time difference is less than 60 seconds. | 
 | 396 |       # Finding the sensor details and execution may take up to a minute. | 
 | 397 |       # Compare  date and time of Set SEL with sel entry. | 
 | 398 |       ${d}=  Get Time Difference  ${sel_entry_date}  ${set_sel_time} | 
 | 399 |       Should Be True  ${d}<=60 | 
 | 400 |  | 
 | 401 |     END | 
 | 402 |  | 
 | 403 |  | 
 | 404 | *** Keywords *** | 
 | 405 |  | 
 | 406 | Time Sync Mode Change Through Redfish | 
 | 407 |     [Documentation]  Export IP, token and change the time sync to manual. | 
 | 408 |     [Arguments]   ${value} | 
 | 409 |  | 
 | 410 |     # Description of argument(s): | 
| George Keishing | 6d15bf1 | 2022-05-06 11:50:44 -0500 | [diff] [blame] | 411 |     # ${value}    Can be either ${FALSE} or ${TRUE}. | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 412 |  | 
 | 413 |     # May be changed to WebView. | 
 | 414 |  | 
 | 415 |     # Changing Time Sync Mode to Manual. | 
 | 416 |     Change Time Sync Mode Via Redfish  ${value} | 
 | 417 |  | 
 | 418 |  | 
 | 419 | Change Time Sync Mode Via Redfish | 
 | 420 |     [Documentation]  To change the time sync mode via Redfish. | 
 | 421 |     [Arguments]   ${value} | 
 | 422 |  | 
 | 423 |     # Description of argument(s): | 
| George Keishing | 6d15bf1 | 2022-05-06 11:50:44 -0500 | [diff] [blame] | 424 |     # ${value}    Can be either ${FALSE} or ${TRUE} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 425 |  | 
 | 426 |     # Creates request body for Redfish url. | 
 | 427 |     ${mode}=  Create Dictionary  ProtocolEnabled=${value} | 
 | 428 |     ${data}=  Create Dictionary  NTP=${mode} | 
 | 429 |  | 
 | 430 |     # Patches the obtained body to the given url. | 
 | 431 |     Redfish.patch  ${REDFISH_NW_PROTOCOL_URI}  body=&{data} | 
 | 432 |     ...   valid_status_codes=[${HTTP_NO_CONTENT}] | 
 | 433 |  | 
 | 434 |     Sleep  ${NETWORK_RESTART_TIME} | 
 | 435 |  | 
 | 436 |  | 
 | 437 | Get SEL Time Command | 
 | 438 |     [Documentation]  Get SEL Time command. | 
 | 439 |  | 
 | 440 |     # The response will be 8 byte timestamp in hexadecimal. | 
 | 441 |     # example: If current date and time is "Wed May  4 18:55:00 UTC 2022", | 
 | 442 |     # then, ${get_sel_time} will be "07 cc 72 62". | 
 | 443 |     ${get_sel_time}=  Run IPMI Command | 
 | 444 |     ...  ${IPMI_RAW_CMD['SEL_entry']['Get_SEL_Time'][0]} | 
 | 445 |  | 
| George Keishing | 409df05 | 2024-01-17 22:36:14 +0530 | [diff] [blame] | 446 |     RETURN    ${get_sel_time} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 447 |  | 
 | 448 |  | 
 | 449 | Set SEL Time Entry Via Raw Command | 
 | 450 |     [Documentation]  Set SEL Time command. | 
 | 451 |     [Arguments]  ${sel_date_raw} | 
 | 452 |  | 
 | 453 |     # Description of argument(s): | 
| George Keishing | 6d15bf1 | 2022-05-06 11:50:44 -0500 | [diff] [blame] | 454 |     # ${sel_date_raw}     Time to set in hexadecimal bytes. | 
 | 455 |     # Example: | 
 | 456 |     #    If date is 1st January 2022 12:30:00 PM, | 
 | 457 |     #    the hexadecimal timestamp is, 61D04948. | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 458 |     #    then the request bytes are, | 
 | 459 |     #    ${sel_date_raw}     0x48 0x49 0xd0 0x61 | 
 | 460 |  | 
 | 461 |     Run IPMI Command  ${IPMI_RAW_CMD['SEL_entry']['Set_SEL_Time'][0]} ${sel_date_raw} | 
 | 462 |     Sleep  ${NETWORK_RESTART_TIME} | 
 | 463 |  | 
 | 464 |  | 
 | 465 | Clear The SEL | 
 | 466 |     [Documentation]  Clear SEL Command. | 
 | 467 |  | 
 | 468 |     # Clear the SEL. | 
 | 469 |     ${out}=  Run IPMI Standard Command  sel clear | 
 | 470 |     Should Contain  ${out}  Clearing SEL | 
 | 471 |     Sleep  2s | 
 | 472 |  | 
 | 473 |  | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 474 | Verify SEL Added | 
 | 475 |     [Documentation]  Verify Added SEL. | 
 | 476 |     [Arguments]  ${sensor_name} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 477 |  | 
 | 478 |     # Description of argument(s): | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 479 |     # sensor_name         Name of the sensor. | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 480 |  | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 481 |     ${resp}=  Run IPMI Standard Command  sel elist | 
 | 482 |     Should Not Contain  ${resp}  ${sel_no_entry_msg} | 
 | 483 |     ${get_sel_entry}=  Get Lines Containing String  ${resp}  ${sensor_name} | 
 | 484 |     ${sel_entry}=  Get Lines Containing String  ${get_sel_entry}  ${event_type} | 
 | 485 |     Should Contain  ${sel_entry}  ${event_dir}  msg=Add SEL Entry failed. | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 486 |  | 
| George Keishing | 409df05 | 2024-01-17 22:36:14 +0530 | [diff] [blame] | 487 |     RETURN  ${sel_entry} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 488 |  | 
 | 489 |  | 
 | 490 | Check Current Date Time Via IPMI | 
 | 491 |     [Documentation]  Verify Current Date and Time Via IPMI user command. | 
 | 492 |  | 
 | 493 |     ${resp}=  Run IPMI Standard Command  sel time get | 
| George Keishing | 409df05 | 2024-01-17 22:36:14 +0530 | [diff] [blame] | 494 |     RETURN  ${resp} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 495 |  | 
 | 496 |  | 
 | 497 | Get Specific Sel Date | 
 | 498 |     [Documentation]  Gets initial time and adds year to the current date and returns future date. | 
 | 499 |     [Arguments]  ${year} | 
 | 500 |  | 
 | 501 |     # Description of argument(s): | 
| George Keishing | 6d15bf1 | 2022-05-06 11:50:44 -0500 | [diff] [blame] | 502 |     # ${year}             Can be any number of years (say 5 year). | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 503 |  | 
 | 504 |     ${current_date}=  Get Current Date from BMC | 
 | 505 |  | 
 | 506 |     # Converting given years to days by multiplying with 365days and adding the days to current date. | 
 | 507 |     ${days}=  Evaluate  365*${year}+1 | 
| George Keishing | 6d15bf1 | 2022-05-06 11:50:44 -0500 | [diff] [blame] | 508 |     ${date}=  Add Time To Date | 
 | 509 |     ...  ${current_date}  ${days}d  result_format=%m/%d/%Y %H:%M:%S  date_format=%m/%d/%Y %H:%M:%S | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 510 |  | 
| George Keishing | 409df05 | 2024-01-17 22:36:14 +0530 | [diff] [blame] | 511 |     RETURN   ${date} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 512 |  | 
 | 513 |  | 
 | 514 | Converting Date to HexaDecimal | 
 | 515 |     [Documentation]  Converting the date into hexa decimal values. | 
 | 516 |     [Arguments]  ${date} | 
 | 517 |  | 
 | 518 |     # Description of argument(s): | 
| George Keishing | 6d15bf1 | 2022-05-06 11:50:44 -0500 | [diff] [blame] | 519 |     # ${date}             Can be any date in format %m/%d/%Y %H:%M:%S. | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 520 |  | 
 | 521 |     ${epoch_date}=  Convert Date  ${date}  epoch  exclude_millis=yes  date_format=%m/%d/%Y %H:%M:%S | 
 | 522 |     ${date}=  Convert To Hex  ${epoch_date}  lowercase=yes | 
 | 523 |  | 
 | 524 |     # function calls from utils.py. | 
 | 525 |     # Length of the date byte should be 8 so that each bytes are separated. | 
 | 526 |     ${date}=  Zfill Data  ${date}  8 | 
 | 527 |     # To split every two characters to form one byte each. | 
 | 528 |     ${date}=  Split String With Index  ${date}  2 | 
 | 529 |     # Prefix every list index value with 0x. | 
 | 530 |     ${date}=  Prefix Bytes  ${date} | 
 | 531 |  | 
 | 532 |     # Reverse the bytes and join the list to form request Time stamp data. | 
 | 533 |     Reverse List  ${date} | 
 | 534 |     ${date}=  Evaluate  " ".join(${date}) | 
 | 535 |  | 
| George Keishing | 409df05 | 2024-01-17 22:36:14 +0530 | [diff] [blame] | 536 |     RETURN  ${date} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 537 |  | 
 | 538 |  | 
 | 539 | Get Time Difference | 
 | 540 |     [Documentation]  Converting the date into hexa decimal values. | 
 | 541 |     [Arguments]  ${date1}  ${date2} | 
 | 542 |  | 
 | 543 |     # Description of argument(s): | 
| George Keishing | 6d15bf1 | 2022-05-06 11:50:44 -0500 | [diff] [blame] | 544 |     # ${date1}             Can be any date in format %m/%d/%Y %H:%M:%S. | 
 | 545 |     # ${date2}             Can be any date in format %m/%d/%Y %H:%M:%S. | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 546 |  | 
 | 547 |     ${epoch_date1}=  Convert Date  ${date1}  epoch  exclude_millis=yes  date_format=%m/%d/%Y %H:%M:%S | 
 | 548 |     ${epoch_date2}=  Convert Date  ${date2}  epoch  exclude_millis=yes  date_format=%m/%d/%Y %H:%M:%S | 
 | 549 |  | 
 | 550 |     ${diff}=  Evaluate  int(${epoch_date1}) - int(${epoch_date2}) | 
 | 551 |  | 
| George Keishing | 409df05 | 2024-01-17 22:36:14 +0530 | [diff] [blame] | 552 |     RETURN  ${diff} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 553 |  | 
 | 554 |  | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 555 | Identify SEL Time | 
 | 556 |     [Documentation]  Modify SEL Time From BMC For Set Sel Time Command. | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 557 |     [Arguments]  ${time} | 
 | 558 |  | 
 | 559 |     # Description of argument(s): | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 560 |     # time             Can be any number of hours or minutes in format %H:%M:%S. | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 561 |  | 
 | 562 |     # Gets BMC current date via date command. | 
 | 563 |     ${current_date}=  Get Current Date from BMC | 
 | 564 |  | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 565 |     ${modifying_date_status}=  Run Keyword And Return Status  Should Contain  ${time}  + | 
 | 566 |  | 
| Sridevi Ramesh | 8bd280d | 2025-09-21 07:03:43 -0500 | [diff] [blame] | 567 |     ${date_time}=  Set Variable If | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 568 |     ...  ${modifying_date_status} == True  ${time.split("+")[-1]} | 
 | 569 |     ...  ${modifying_date_status} == False  ${time.split("-")[-1]} | 
 | 570 |  | 
| Sridevi Ramesh | 8bd280d | 2025-09-21 07:03:43 -0500 | [diff] [blame] | 571 |     ${datetime} =  Set Variable If  ${modifying_date_status} == True | 
| ganesanb | 11fe27f | 2022-08-24 10:00:17 +0000 | [diff] [blame] | 572 |     ...    Add Time To Date | 
 | 573 |     ...    ${current_date}  ${date_time}  result_format=%m/%d/%Y %H:%M:%S  date_format=%m/%d/%Y %H:%M:%S | 
 | 574 |     ...  ELSE IF  ${modifying_date_status} == False | 
 | 575 |     ...    Subtract Time From Date | 
 | 576 |     ...    ${current_date}  ${date_time}  result_format=%m/%d/%Y %H:%M:%S  date_format=%m/%d/%Y %H:%M:%S | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 577 |  | 
 | 578 |     #Set SEL Time. | 
 | 579 |     ${quoted_date}=  Fetch Date  ${datetime} | 
 | 580 |  | 
| George Keishing | 409df05 | 2024-01-17 22:36:14 +0530 | [diff] [blame] | 581 |     RETURN  ${quoted_date}  ${datetime} | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 582 |  | 
 | 583 |  | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 584 | Set SEL Time Via IPMI | 
 | 585 |     [Documentation]  Set SEL Time for given date using IPMI. | 
 | 586 |     [Arguments]  ${date_time} | 
 | 587 |  | 
 | 588 |     # Description of argument(s): | 
| George Keishing | 6d15bf1 | 2022-05-06 11:50:44 -0500 | [diff] [blame] | 589 |     # ${date_time}       Can be any date in format %m/%d/%Y %H:%M:%S. | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 590 |  | 
 | 591 |     ${resp}=  Run IPMI Standard Command  sel time set "${date_time}" | 
 | 592 |     Should Not Contain  ${resp}  Unspecified error | 
 | 593 |  | 
 | 594 |  | 
 | 595 | Test Setup Execution | 
 | 596 |     [Documentation]  Test Setup Execution. | 
 | 597 |  | 
 | 598 |     Redfish.Login | 
 | 599 |     # Change timesync mode to manual with timeout as per resource.robot. | 
 | 600 |     Time Sync Mode Change Through Redfish   ${FALSE} | 
 | 601 |     Sleep  ${NETWORK_TIMEOUT} | 
| Sridevi Ramesh | 52b71f8 | 2025-03-21 04:18:26 -0500 | [diff] [blame] | 602 |     Printn | 
| chithrag | 0a8c878 | 2022-03-01 12:35:00 +0000 | [diff] [blame] | 603 |  | 
 | 604 |  | 
 | 605 | Test Teardown Execution | 
 | 606 |     [Documentation]  For execution of Test teardown. | 
 | 607 |  | 
 | 608 |     Clear The SEL | 
 | 609 |  | 
 | 610 |     # Change TimeSync mode to NTP with Timeout as per default resource.robot. | 
 | 611 |     Time Sync Mode Change Through Redfish  ${TRUE} | 
 | 612 |     Sleep  ${NETWORK_TIMEOUT} | 
 | 613 |     Redfish.Logout | 
 | 614 |     FFDC On Test Case Fail |