xref: /openbmc/openbmc-test-automation/redfish/managers/test_managers_bmc_time.robot (revision 4055c9658c29bb49cb783271af27ed8f69765753)
10e3bc6daSSivas SRR*** Settings ***
20e3bc6daSSivas SRRDocumentation    Test BMC manager time functionality.
30e3bc6daSSivas SRRResource                     ../../lib/openbmc_ffdc.robot
4365b8f93SAnvesh-Kumar_RayankulaResource                     ../../lib/bmc_date_and_time_utils.robot
50e3bc6daSSivas SRR
609083a85SMichael WalshTest Setup                   Printn
70e3bc6daSSivas SRRTest Teardown                Test Teardown Execution
820fe0325SSivas SRRSuite Setup                  Suite Setup Execution
9ade5f6ebSGeorge KeishingSuite Teardown               Suite Teardown Execution
100e3bc6daSSivas SRR
116fb70d98SMatt FischerTest Tags                   Managers_BMC_Time
1279fcf231SGeorge Keishing
130e3bc6daSSivas SRR*** Variables ***
1479fcf231SGeorge Keishing
150e3bc6daSSivas SRR${max_time_diff_in_seconds}  6
169e00ff37SSivas SRR${date_time_with_offset}     2019-04-25T26:24:46+00:00
173d500892Ssarandev3${invalid_datetime}          2019-04-251T12:24:46+00:00
180e3bc6daSSivas SRR
190e3bc6daSSivas SRR*** Test Cases ***
200e3bc6daSSivas SRR
210e3bc6daSSivas SRRVerify Redfish BMC Time
220e3bc6daSSivas SRR    [Documentation]  Verify that date/time obtained via redfish matches
230e3bc6daSSivas SRR    ...  date/time obtained via BMC command line.
240e3bc6daSSivas SRR    [Tags]  Verify_Redfish_BMC_Time
250e3bc6daSSivas SRR
260e3bc6daSSivas SRR    ${redfish_date_time}=  Redfish Get DateTime
270e3bc6daSSivas SRR    ${cli_date_time}=  CLI Get BMC DateTime
280e3bc6daSSivas SRR    ${time_diff}=  Subtract Date From Date  ${cli_date_time}
290e3bc6daSSivas SRR    ...  ${redfish_date_time}
300e3bc6daSSivas SRR    ${time_diff}=  Evaluate  abs(${time_diff})
310e3bc6daSSivas SRR    Rprint Vars  redfish_date_time  cli_date_time  time_diff
320e3bc6daSSivas SRR    Should Be True  ${time_diff} < ${max_time_diff_in_seconds}
330e3bc6daSSivas SRR    ...  The difference between Redfish time and CLI time exceeds the allowed time difference.
340e3bc6daSSivas SRR
350e3bc6daSSivas SRR
368a53dadfSSivas SRRVerify Set Time Using Redfish
378a53dadfSSivas SRR    [Documentation]  Verify set time using redfish API.
388a53dadfSSivas SRR    [Tags]  Verify_Set_Time_Using_Redfish
398a53dadfSSivas SRR
4087e4e55bSAnusha Dathatri    Set Time To Manual Mode
4179b04aabSSushil Singh
428a53dadfSSivas SRR    ${old_bmc_time}=  CLI Get BMC DateTime
438a53dadfSSivas SRR    # Add 3 days to current date.
448a53dadfSSivas SRR    ${new_bmc_time}=  Add Time to Date  ${old_bmc_time}  3 Days
458a53dadfSSivas SRR    Redfish Set DateTime  ${new_bmc_time}
468a53dadfSSivas SRR    ${cli_bmc_time}=  CLI Get BMC DateTime
478a53dadfSSivas SRR    ${time_diff}=  Subtract Date From Date  ${cli_bmc_time}
488a53dadfSSivas SRR    ...  ${new_bmc_time}
498a53dadfSSivas SRR    ${time_diff}=  Evaluate  abs(${time_diff})
508a53dadfSSivas SRR    Rprint Vars   old_bmc_time  new_bmc_time  cli_bmc_time  time_diff  max_time_diff_in_seconds
518a53dadfSSivas SRR    Should Be True  ${time_diff} < ${max_time_diff_in_seconds}
528a53dadfSSivas SRR    ...  The difference between Redfish time and CLI time exceeds the allowed time difference.
538a53dadfSSivas SRR    # Setting back to old bmc time.
548a53dadfSSivas SRR    Redfish Set DateTime  ${old_bmc_time}
558a53dadfSSivas SRR
568a53dadfSSivas SRR
579e00ff37SSivas SRRVerify Set DateTime With Offset Using Redfish
58*4055c965Ssarandev3    [Documentation]  Verify error while setting DateTime with offset using redfish API.
599e00ff37SSivas SRR    [Tags]  Verify_Set_DateTime_With_Offset_Using_Redfish
609e00ff37SSivas SRR    [Teardown]  Run Keywords  Redfish Set DateTime  AND  FFDC On Test Case Fail
619e00ff37SSivas SRR
62*4055c965Ssarandev3    Redfish Set DateTime  ${date_time_with_offset}  invalid
639e00ff37SSivas SRR
649e00ff37SSivas SRR
653f152ae6SSivas SRRVerify Set DateTime With Invalid Data Using Redfish
663f152ae6SSivas SRR    [Documentation]  Verify error while setting invalid DateTime using Redfish.
673f152ae6SSivas SRR    [Tags]  Verify_Set_DateTime_With_Invalid_Data_Using_Redfish
683f152ae6SSivas SRR
69*4055c965Ssarandev3    Redfish Set DateTime  ${invalid_datetime}  invalid
703f152ae6SSivas SRR
713f152ae6SSivas SRR
724d64599dSSivas SRRVerify DateTime Persists After Reboot
734d64599dSSivas SRR    [Documentation]  Verify date persists after BMC reboot.
744d64599dSSivas SRR    [Tags]  Verify_DateTime_Persists_After_Reboot
754d64599dSSivas SRR
764d64599dSSivas SRR    # Synchronize BMC date/time to local system date/time.
774d64599dSSivas SRR    ${local_system_time}=  Get Current Date
784d64599dSSivas SRR    Redfish Set DateTime  ${local_system_time}
794d64599dSSivas SRR    Redfish OBMC Reboot (off)
804d64599dSSivas SRR    Redfish.Login
814d64599dSSivas SRR    ${bmc_time}=  CLI Get BMC DateTime
824d64599dSSivas SRR    ${local_system_time}=  Get Current Date
834d64599dSSivas SRR    ${time_diff}=  Subtract Date From Date  ${bmc_time}
844d64599dSSivas SRR    ...  ${local_system_time}
854d64599dSSivas SRR    ${time_diff}=  Evaluate  abs(${time_diff})
864d64599dSSivas SRR    Rprint Vars   local_system_time  bmc_time  time_diff  max_time_diff_in_seconds
874d64599dSSivas SRR    Should Be True  ${time_diff} < ${max_time_diff_in_seconds}
884d64599dSSivas SRR    ...  The difference between Redfish time and CLI time exceeds the allowed time difference.
894d64599dSSivas SRR
904d64599dSSivas SRR
914ad9f431SAnusha DathatriVerify Immediate Consumption Of BMC Date
924ad9f431SAnusha Dathatri    [Documentation]  Verify immediate change in BMC date time.
934ad9f431SAnusha Dathatri    [Tags]  Verify_Immediate_Consumption_Of_BMC_Date
944ad9f431SAnusha Dathatri    [Setup]  Run Keywords  Set Time To Manual Mode  AND
95*4055c965Ssarandev3    ...  Redfish Set DateTime
964ad9f431SAnusha Dathatri    [Teardown]  Run Keywords  FFDC On Test Case Fail  AND
97*4055c965Ssarandev3    ...  Redfish Set DateTime
984ad9f431SAnusha Dathatri    [Template]  Set BMC Date And Verify
994ad9f431SAnusha Dathatri
1004ad9f431SAnusha Dathatri    # host_state
1014ad9f431SAnusha Dathatri    on
1024ad9f431SAnusha Dathatri    off
1034ad9f431SAnusha Dathatri
1044ad9f431SAnusha Dathatri
105f031ca1aSaravinth0510
1060e3bc6daSSivas SRR*** Keywords ***
1070e3bc6daSSivas SRR
1084d64599dSSivas SRR
1090e3bc6daSSivas SRRTest Teardown Execution
1100e3bc6daSSivas SRR    [Documentation]  Do the post test teardown.
1110e3bc6daSSivas SRR
1120e3bc6daSSivas SRR    FFDC On Test Case Fail
1130e3bc6daSSivas SRR
1140e3bc6daSSivas SRR
11520fe0325SSivas SRRSuite Setup Execution
11620fe0325SSivas SRR    [Documentation]  Do the suite level setup.
11720fe0325SSivas SRR
11820fe0325SSivas SRR    Printn
11920fe0325SSivas SRR    Redfish.Login
12010822663STony Lee    Get NTP Initial Status
1213937eaa9Sganesanb    ${old_date_time}=  CLI Get BMC DateTime
1223937eaa9Sganesanb    ${year_status}=  Run Keyword And Return Status  Should Not Contain  ${old_date_time}  ${year_without_ntp}
1233937eaa9Sganesanb    Run Keyword If  ${year_status} == False
1243937eaa9Sganesanb    ...  Enable NTP And Add NTP Address
12587e4e55bSAnusha Dathatri    Set Time To Manual Mode
12610822663STony Lee
127ade5f6ebSGeorge Keishing
128ade5f6ebSGeorge KeishingSuite Teardown Execution
129ade5f6ebSGeorge Keishing    [Documentation]  Do the suite level teardown.
1309e00ff37SSivas SRR
13187e4e55bSAnusha Dathatri    Set Time To Manual Mode
13210822663STony Lee    Restore NTP Status
133ade5f6ebSGeorge Keishing    Redfish.Logout
134