1*** Settings *** 2Documentation NTP configuration and verification 3 ... tests. 4 5Resource ../../lib/openbmc_ffdc.robot 6Resource ../../lib/bmc_date_and_time_utils.robot 7 8Test Setup Printn 9Test Teardown FFDC On Test Case Fail 10Suite Setup Suite Setup Execution 11Suite Teardown Suite Teardown Execution 12 13 14*** Variables *** 15 16${ntp_server_1} 9.9.9.9 17${ntp_server_2} 2.2.3.3 18&{original_ntp} &{EMPTY} 19 20*** Test Cases *** 21 22Verify NTP Server Set 23 [Documentation] Patch NTP servers and verify NTP servers is set. 24 [Tags] Verify_NTP_Server_Set 25 [Setup] Set NTP state ${True} 26 27 Redfish.Patch ${REDFISH_NW_PROTOCOL_URI} 28 ... body={'NTP':{'NTPServers': ['${ntp_server_1}', '${ntp_server_2}']}} 29 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}] 30 31 # NTP network take few seconds to reload. 32 Wait Until Keyword Succeeds 30 sec 10 sec Verify NTP Servers Are Populated 33 34 35Verify NTP Server Value Not Duplicated 36 [Documentation] Verify NTP servers value not same for both primary and secondary server. 37 [Tags] Verify_NTP_Server_Value_Not_Duplicated 38 39 Redfish.Patch ${REDFISH_NW_PROTOCOL_URI} 40 ... body={'NTP':{'NTPServers': ['${ntp_server_1}', '${ntp_server_1}']}} 41 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}] 42 ${network_protocol}= Redfish.Get Properties ${REDFISH_NW_PROTOCOL_URI} 43 Should Contain X Times ${network_protocol["NTP"]["NTPServers"]} ${ntp_server_1} 1 44 ... msg=NTP primary and secondary server values should not be same. 45 46 47Verify NTP Server Setting Persist After BMC Reboot 48 [Documentation] Verify NTP server setting persist after BMC reboot. 49 [Tags] Verify_NTP_Server_Setting_Persist_After_BMC_Reboot 50 [Setup] Set NTP state ${True} 51 52 Redfish.Patch ${REDFISH_NW_PROTOCOL_URI} 53 ... body={'NTP':{'NTPServers': ['${ntp_server_1}', '${ntp_server_2}']}} 54 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}] 55 Redfish OBMC Reboot (off) 56 Redfish.Login 57 58 # NTP network take few seconds to reload. 59 Wait Until Keyword Succeeds 30 sec 10 sec Verify NTP Servers Are Populated 60 61 62Verify Enable NTP 63 [Documentation] Verify NTP protocol mode can be enabled. 64 [Teardown] Restore NTP Mode 65 [Tags] Verify_Enable_NTP 66 67 ${original_ntp}= Redfish.Get Attribute ${REDFISH_NW_PROTOCOL_URI} NTP 68 Set Suite Variable ${original_ntp} 69 Rprint Vars original_ntp 70 # The following patch command should set the ["NTP"]["ProtocolEnabled"] property to "True". 71 Redfish.Patch ${REDFISH_NW_PROTOCOL_URI} body={'NTP':{'ProtocolEnabled': ${True}}} 72 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}] 73 Wait Until Keyword Succeeds 1 min 5 sec 74 ... Verify System Time Sync Status ${True} 75 ${ntp}= Redfish.Get Attribute ${REDFISH_NW_PROTOCOL_URI} NTP 76 Rprint Vars ntp 77 Valid Value ntp["ProtocolEnabled"] valid_values=[True] 78 79 80Verify Set DateTime With NTP Enabled 81 [Documentation] Verify whether set managers dateTime is restricted with NTP enabled. 82 [Tags] Verify_Set_DateTime_With_NTP_Enabled 83 84 Redfish.Patch ${REDFISH_NW_PROTOCOL_URI} body={'NTP':{'ProtocolEnabled': ${True}}} 85 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}] 86 ${ntp}= Redfish.Get Attribute ${REDFISH_NW_PROTOCOL_URI} NTP 87 Valid Value ntp["ProtocolEnabled"] valid_values=[True] 88 ${local_system_time}= Get Current Date 89 Redfish Set DateTime ${local_system_time} 90 ... valid_status_codes=[${HTTP_BAD_REQUEST}, ${HTTP_INTERNAL_SERVER_ERROR}] 91 92 93*** Keywords *** 94 95 96Suite Setup Execution 97 [Documentation] Do the suite level setup. 98 99 Printn 100 Redfish.Login 101 Get NTP Initial Status 102 ${old_date_time}= CLI Get BMC DateTime 103 ${year_status}= Run Keyword And Return Status Should Not Contain ${old_date_time} ${year_without_ntp} 104 Run Keyword If ${year_status} == False 105 ... Enable NTP And Add NTP Address 106 107 108Suite Teardown Execution 109 [Documentation] Do the suite level teardown. 110 111 Redfish.Patch ${REDFISH_NW_PROTOCOL_URI} 112 ... body={'NTP':{'NTPServers': ['${EMPTY}', '${EMPTY}']}} 113 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}] 114 Restore NTP Status 115 Redfish.Logout 116