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