*** Settings ***
Documentation          This suite is for testing System time in Open BMC.

Resource               ../lib/rest_client.robot
Resource               ../lib/ipmi_client.robot
Resource               ../lib/openbmc_ffdc.robot
Resource               ../lib/state_manager.robot
Resource               ../lib/resource.txt

Library                OperatingSystem
Library                DateTime

Test Setup             Open Connection And Log In
Test Teardown          Post Test Case Execution

Force Tags  Clock_Time

*** Variables ***
${SYSTEM_TIME_INVALID}      01/01/1969 00:00:00
${SYSTEM_TIME_VALID}        02/29/2016 09:10:00
${SYSTEM_TIME_VALID_EPOCH}  1456737000  #Equivalent epoch time for 02/29/2016 09:10:00
${ALLOWED_TIME_DIFF}        3
${SETTING_HOST}             ${SETTINGS_URI}host0

*** Test Cases ***

Get System Time
    [Documentation]  Get system time using IPMI and verify that it matches
    ...              with BMC date time.
    [Tags]  Get_System_Time

    ${resp}=  Run IPMI Standard Command  sel time get
    ${ipmidate}=  Convert Date  ${resp}  date_format=%m/%d/%Y %H:%M:%S
    ...  exclude_millis=yes
    ${bmcdate}=  Get BMC Time Using IPMI
    ${diff}=  Subtract Date From Date  ${bmcdate}  ${ipmidate}
    ${diff}=  Convert To Number  ${diff}
    Should Be True  ${diff} < ${ALLOWED_TIME_DIFF}
    ...  Open BMC time does not match with IPMI sel time

Set Valid System Time
    [Documentation]  Set system time using IPMI and verify that it is
    ...              correctly set in BMC.
    [Tags]  Set_Valid_System_Time

    Set Time Owner  HOST
    Set Time Mode  MANUAL

    ${resp}=  Run IPMI Standard Command  sel time set "${SYSTEM_TIME_VALID}"
    ${setdate}=  Convert Date  ${SYSTEM_TIME_VALID}
    ...  date_format=%m/%d/%Y %H:%M:%S  exclude_millis=yes
    ${bmcdate}=  Get BMC Time Using IPMI
    ${diff}=  Subtract Date From Date  ${bmcdate}  ${setdate}
    ${diff}=  Convert To Number  ${diff}
    Should Be True  ${diff} < ${ALLOWED_TIME_DIFF}
    ...  Open BMC time does not match with set time

Set Invalid System Time
    [Documentation]  Set system time with invalid time using IPMI and verify
    ...              that it should throw error.
    [Tags]  Set_Invalid_System_Time

    Set Time Owner  HOST
    Set Time Mode  MANUAL

    ${msg}=  Run Keyword And Expect Error  *  Run IPMI Standard Command
    ...  sel time set "${SYSTEM_TIME_INVALID}"
    Should Start With  ${msg}  Specified time could not be parsed

Set System Time with no time
    [Documentation]  Set system time with no time using IPMI and verify
    ...              that it should throw error.
    [Tags]  Set_System_Time_with_no_time

    Set Time Owner  HOST
    Set Time Mode  MANUAL

    ${msg}=  Run Keyword And Expect Error  *  Run IPMI Standard Command
    ...  sel time set ""
    Should Start With  ${msg}  Specified time could not be parsed


Set BMC Time With BMC And Manual
    #Operation    Owner  Mode    Status  BMC Time  Host Time
    Set BMC Time  BMC    MANUAL  ok      Set       Change

    [Documentation]  Set BMC time when time owner is BMC and time mode is
    ...              manual.
    [Tags]  Set_BMC_Time_With_BMC_And_Manual
    [Template]  Set Time Using REST

Set BMC Time With Both And Manual
    #Operation    Owner  Mode    Status  BMC Time  Host Time
    Set BMC Time  BOTH   MANUAL  ok      Set       Change

    [Documentation]  Set BMC time when time owner is Both and time mode is
    ...              manual.
    [Tags]  Set_BMC_Time_With_Both_And_Manual
    [Template]  Set Time Using REST


Set BMC Time With Split And Manual
    #Operation    Owner  Mode    Status  BMC Time  Host Time
    Set BMC Time  SPLIT  MANUAL  ok      Set       No Change

    [Documentation]  Set BMC time when time owner is Split and time mode is
    ...              manual.
    [Tags]  Set_BMC_Time_With_Split_And_Manual
    [Template]  Set Time Using REST

Set BMC Time With BMC And NTP
    #Operation    Owner  Mode    Status  BMC Time  Host Time
    Set BMC Time  BMC    NTP     error   Not Set   No Change

    [Documentation]  Set BMC time when time owner is BMC and time mode is
    ...              NTP.
    [Tags]  Set_BMC_Time_With_BMC_And_NTP
    [Template]  Set Time Using REST

Set BMC Time With Host And Manual
    #Operation    Owner  Mode    Status  BMC Time  Host Time
    Set BMC Time  HOST   MANUAL  error   Not Set   No Change
    [Documentation]  Set BMC time when time owner is Host and time mode is
    ...              Manual.
    [Tags]  Set_BMC_Time_With_Host_And_Manual
    [Template]  Set Time Using REST

Set BMC Time With Both And NTP
    #Operation    Owner  Mode    Status  BMC Time  Host Time
    Set BMC Time  BOTH   NTP     error   Not Set   No Change

    [Documentation]  Set BMC time when time owner is Both and time mode is
    ...              NTP.
    [Tags]  Set_BMC_Time_With_Both_And_NTP
    [Template]  Set Time Using REST

Set BMC Time With Split And NTP
    #Operation    Owner  Mode    Status  BMC Time  Host Time
    Set BMC Time  SPLIT  NTP     error   Not Set   No Change

    [Documentation]  Set BMC time when time owner is Split and time mode is
    ...              NTP.
    [Tags]  Set_BMC_Time_With_Split_And_NTP
    [Template]  Set Time Using REST

Set Host Time With Host And Manual
    #Operation     Owner  Mode    Status  BMC Time  Host Time
    Set Host Time  HOST   MANUAL  ok      Change    Set

    [Documentation]  Set host time when time owner is host and time mode is
    ...              manual.
    [Tags]  Set_Host_Time_With_Host_And_Manual
    [Template]  Set Time Using REST

Set Host Time With Both And Manual
    #Operation     Owner  Mode    Status  BMC Time  Host Time
    Set Host Time  BOTH   MANUAL  ok      Change    Set

    [Documentation]  Set host time when time owner is both and time mode is
    ...              manual.
    [Tags]  Set_Host_Time_With_Both_And_Manual
    [Template]  Set Time Using REST

Set Host Time With Both And NTP
    #Operation     Owner  Mode    Status  BMC Time   Host Time
    Set Host Time  BOTH   NTP     error   No Change  Not Set

    [Documentation]  Set host time when time owner is both and time mode is
    ...              NTP.
    [Tags]  Set_Host_Time_With_Both_And_NTP
    [Template]  Set Time Using REST

Set Host Time With Split And Manual
    #Operation     Owner  Mode    Status  BMC Time   Host Time
    Set Host Time  SPLIT  MANUAL  ok      No Change  Set

    [Documentation]  Set host time when time owner is split and time mode is
    ...              manual.
    [Tags]  Set_Host_Time_With_Split_And_Manual
    [Template]  Set Time Using REST

Set Host Time With Split And NTP
    #Operation     Owner  Mode    Status   BMC Time   HOST Time
    Set Host Time  SPLIT  NTP     ok       No Change  Set

    [Documentation]  Set host time when time owner is split and time mode is
    ...              NTP.
    [Tags]  Set_Host_Time_With_Split_And_NTP
    [Template]  Set Time Using REST

Set Host Time With BMC And Manual
    #Operation     Owner  Mode    Status   BMC Time   HOST Time
    Set Host Time  BMC    MANUAL  error    No Change  Not Set
    [Documentation]  Set host time when time owner is BMC and time mode is
    ...              Manual.
    [Tags]  Set_Host_Time_With_BMC_And_Manual
    [Template]  Set Time Using REST

Set Host Time With BMC Owner NTP
    #Operation     Owner  Mode    Status   BMC Time   HOST Time
    Set Host Time  BMC    NTP     error    No Change  Not Set
    [Documentation]  Set host time when time owner is BMC and time mode is
    ...              NTP.
    [Tags]  Set_Host_Time_With_BMC_And_NTP
    [Template]  Set Time Using REST

Set Invalid Time Mode
    [Documentation]  Set time mode with invalid value using REST and verify
    ...              that it should throw error.
    [Tags]  Set_Invalid_Time_Mode

    ${timemode}=  Set Variable  abc
    ${valueDict}=  Create Dictionary  data=${timemode}

    ${resp}=  OpenBMC Put Request
    ...  ${SETTING_HOST}/attr/time_mode  data=${valueDict}
    ${jsondata}=  to JSON  ${resp.content}
    Should Be Equal  ${jsondata['status']}  error

    ${mode}=  Read Attribute  ${SETTING_HOST}  time_mode
    Should Not Be Equal  ${mode}  abc

Set Invalid Time Owner
    [Documentation]  Set time owner with invalid value using REST and verify
    ...              that it should throw error.
    [Tags]  Set_Invalid_Time_Owner

    ${timeowner}=  Set Variable  xyz
    ${valueDict}=  Create Dictionary  data=${timeowner}

    ${resp}=  OpenBMC Put Request
    ...  ${SETTING_HOST}/attr/time_owner  data=${valueDict}
    ${jsondata}=  to JSON  ${resp.content}
    Should Be Equal  ${jsondata['status']}  error

    ${owner}=  Read Attribute  ${SETTING_HOST}  time_owner
    Should Not Be Equal  ${owner}  xyz


*** Keywords ***

Get BMC Time Using IPMI
    [Documentation]  Returns BMC time of the system via IPMI

    ${stdout}  ${stderr}  ${output}=
    ...  Execute Command  date "+%m/%d/%Y %H:%M:%S"
    ...  return_stdout=True  return_stderr= True  return_rc=True
    Should Be Equal  ${output}  ${0}  msg=${stderr}

    ${resp}=  Convert Date  ${stdout}  date_format=%m/%d/%Y %H:%M:%S
    ...  exclude_millis=yes
    Should Not Be Empty  ${resp}
    [Return]  ${resp}

Set Time Owner
    [Arguments]  ${args}
    [Documentation]  Set time owner of the system via REST

    ${timeowner}=  Set Variable  ${args}
    ${valueDict}=  Create Dictionary  data=${timeowner}

    ${resp}=  OpenBMC Put Request
    ...  ${SETTING_HOST}/attr/time_owner  data=${valueDict}
    ${jsondata}=  to JSON  ${resp.content}

    ${host_state}=  Get Host State

    Run Keyword If  '${host_state}' == 'Off'
    ...  Log  System is in off state so owner change will get applied.
    ...  ELSE   Run keyword
    ...  Initiate Host PowerOff

    ${owner}=  Read Attribute  ${SETTING_HOST}  time_owner
    Should Be Equal  ${owner}  ${args}

    ${current_mode}=
    ...  Read Attribute  ${TIME_MANAGER_URI.rstrip("/")}  curr_time_owner
    Should Be Equal  ${current_mode}  ${args}

    [Return]  ${jsondata['status']}

Set Time Mode
    [Arguments]  ${args}
    [Documentation]  Set time mode of the system via REST

    ${timemode}=  Set Variable  ${args}
    ${valueDict}=  Create Dictionary  data=${timemode}

    ${resp}=  OpenBMC Put Request
    ...  ${SETTING_HOST}/attr/time_mode  data=${valueDict}
    ${jsondata}=  to JSON  ${resp.content}
    Sleep  5s

    ${mode}=  Read Attribute  ${SETTING_HOST}  time_mode
    Should Be Equal  ${mode}  ${args}

    ${current_mode}=
    ...  Read Attribute  ${TIME_MANAGER_URI.rstrip("/")}  curr_time_mode
    Should Be Equal  ${current_mode}  ${args}

Get BMC Time Using REST
    [Documentation]  Returns BMC time of the system via REST
    ...              Time Format : YYYY-MM-DD hh:mm:ss.mil
    ...              eg. 2016-12-14 07:09:58.000

    @{time_owner}=  Create List  BMC
    ${data}=  Create Dictionary  data=@{time_owner}
    ${resp}=  OpenBMC Post Request
    ...  ${TIME_MANAGER_URI}action/GetTime  data=${data}
    ${jsondata}=  To JSON  ${resp.content}
    ${time_epoch}=  Get From List  ${jsondata["data"]}  0
    ${resp}=  Convert Date
    ...  ${time_epoch}  date_format=%a %b %d %H:%M:%S %Y %Z
    [Return]  ${resp}

Get HOST Time Using REST
    [Documentation]  Returns HOST time of the system via REST
    ...              Time Format : YYYY-MM-DD hh:mm:ss.mil
    ...              eg. 2016-12-14 07:09:58.000

    @{time_owner}=  Create List  HOST
    ${data}=  Create Dictionary  data=@{time_owner}
    ${resp}=  OpenBMC Post Request
    ...  ${TIME_MANAGER_URI}action/GetTime  data=${data}
    ${jsondata}=  To JSON  ${resp.content}
    ${time_epoch}=  Get From List  ${jsondata["data"]}   0
    ${resp}=  Convert Date
    ...  ${time_epoch}  date_format=%a %b %d %H:%M:%S %Y %Z
    [Return]  ${resp}

Set Time Using REST
    [Arguments]  ${operation}  ${owner}  ${mode}  ${status}  ${bmc_time}
    ...  ${host_time}
    [Documentation]  Set BMC or Host time on system via REST.
    ...              Description of arguments:
    ...              operation :  Set BMC/Host time
    ...              owner: Time owner
    ...              mode:  Time mode
    ...              status:   Expected status of set BMC time URI
    ...              bmc_time:   Status of BMC time after operation
    ...              host_time:  Status of HOST time after operation
    ...                Set - Given time is set
    ...                Not Set - Given time is not set
    ...                Change - time is change
    ...                No Change - time is not change

    Set Time Owner  ${owner}
    Set Time Mode  ${mode}

    ${setdate}=  Convert Date  ${SYSTEM_TIME_VALID}
    ...  date_format=%m/%d/%Y %H:%M:%S  exclude_millis=yes

    @{bmc_date_list}=  Create List  BMC  ${setdate}
    @{host_date_list}=  Create List  HOST  ${SYSTEM_TIME_VALID_EPOCH}

    ${time_owner_date}=  Set Variable If
    ...  '${operation}' == 'Set BMC Time'  ${bmc_date_list}
    ...  '${operation}' == 'Set Host Time'  ${host_date_list}

    ${start_time}=  Get Current Date

    ${old_bmc_time}=  Get BMC Time Using REST
    ${old_host_time}=  Get HOST Time Using REST

    ${data}=  Create Dictionary  data=${time_owner_date}
    ${resp}=  OpenBMC Post Request
    ...  ${TIME_MANAGER_URI}action/SetTime  data=${data}
    ${jsondata}=  To JSON  ${resp.content}
    Should Be Equal As Strings  ${jsondata['status']}  ${status}

    ${new_bmc_time}=  Get BMC Time Using REST
    ${new_host_time}=  Get HOST Time Using REST

    ${end_time}=  Get Current Date
    ${time_duration}=  Subtract Date From Date  ${start_time}  ${end_time}
    ${time_duration}  Evaluate  abs(${time_duration})

    ${bmc_diff_set_new}=
    ...  Subtract Date From Date  ${setdate}  ${new_bmc_time}
    ${bmc_diff_set_new}=  Evaluate  abs(${bmc_diff_set_new})
    ${bmc_diff_old_new}=
    ...  Subtract Date From Date  ${old_bmc_time}  ${new_bmc_time}
    ${bmc_diff_old_new}=  Evaluate  abs(${bmc_diff_old_new})

    ${host_diff_set_new}=
    ...  Subtract Date From Date  ${setdate}  ${new_host_time}
    ${host_diff_set_new}=  Evaluate  abs(${host_diff_set_new})
    ${host_diff_old_new}=
    ...  Subtract Date From Date  ${old_host_time}  ${new_host_time}
    ${host_diff_old_new}=  Evaluate  abs(${host_diff_old_new})

    Run Keyword If   '${bmc_time}' == 'Not Set'
    ...    Should Be True  ${bmc_diff_set_new} >= ${time_duration}
    ...  ELSE IF  '${bmc_time}' == 'Set'
    ...    Should Be True  ${bmc_diff_set_new} <= ${time_duration}
    ...  ELSE IF  '${bmc_time}' == 'No Change'
    ...    Should Be True  ${bmc_diff_old_new} <= ${time_duration}
    ...  ELSE IF  '${bmc_time}' == 'Change'
    ...    Should Be True  ${bmc_diff_old_new} >= ${time_duration}

    Run Keyword If  '${host_time}' == 'No Change'
    ...    Should Be True  ${host_diff_old_new} <= ${time_duration}
    ...  ELSE IF  '${host_time}' == 'Change'
    ...    Should Be True  ${host_diff_old_new} >= ${time_duration}
    ...  ELSE IF  '${host_time}' == 'Not Set'
    ...    Should Be True  ${host_diff_set_new} >= ${time_duration}
    ...  ELSE IF  '${host_time}' == 'Set'
    ...    Should Be True  ${host_diff_set_new} <= ${time_duration}


Post Test Case Execution
    [Documentation]  Do the post test teardown.
    ...  1. Capture FFDC on test failure.
    ...  2. Sets defaults for time mode and owner.
    ...  3. Close all open SSH connections.

    FFDC On Test Case Fail
    Set Time Owner  BMC
    Set Time Mode  NTP
    Close All Connections
