*** Settings ***
Documentation     This suite is used for testing the error logging
...               capability from the host

Resource          ../lib/rest_client.robot
Resource          ../lib/utils.robot
Resource          ../lib/connection_client.robot
Resource          ../lib/openbmc_ffdc.robot

Library           Collections

Suite Setup       Open Connection And Log In
Suite Teardown    Close All Connections
Test Teardown     Log FFDC

*** Variables ***
&{NIL}  data=@{EMPTY}
${SYSTEM_SHUTDOWN_TIME}     1min
${WAIT_FOR_SERVICES_UP}     3min

*** Test Cases ***

valid path to logs
    [Documentation]     Test list all events
    [Tags]  CI
    ${resp} =   openbmc get request     /org/openbmc/records/events/
    should be equal as strings      ${resp.status_code}     ${HTTP_OK}

clear any logs
    [Documentation]     Test delete all events
    [Tags]  CI  clear_any_logs
    ${resp} =   openbmc post request     /org/openbmc/records/events/action/clear    data=${NIL}
    should be equal as strings      ${resp.status_code}     ${HTTP_OK}
    ${resp} =   openbmc get request     /org/openbmc/records/events/
    ${json} =   to json         ${resp.content}
    Should Be Empty     ${json['data']}

write a log
    [Documentation]     Test create event
    [Tags]  CI  write_a_log
    create a test log

Message attribute should match
    [Documentation]     Check message attribute for created event
    [Tags]  CI
    ${uri} =      create a test log
    ${content} =     Read Attribute      ${uri}   message
    Should Be Equal     ${content}      A Test event log just happened

Severity attribute should match
    [Documentation]     Check severity attribute for created event
    [Tags]  CI
    ${uri} =      create a test log
    ${content}=     Read Attribute      ${uri}   severity
    Should Be Equal     ${content}      Info

data_bytes attribute should match
    [Documentation]     Check data_bytes attribute for created event
    [Tags]  CI
    @{data_list} =   Create List     ${48}  ${0}  ${19}  ${127}  ${136}  ${255}
    ${uri} =      create a test log
    ${content} =   Read Attribute      ${uri}   debug_data
    Lists Should Be Equal     ${content}      ${data_list}

delete the log
    [Documentation]     Test the delete event
    [Tags]  CI
    ${uri} =     create a test log
    ${deluri} =  catenate    SEPARATOR=   ${uri}   /action/delete
    ${resp} =    openbmc post request     ${deluri}    data=${NIL}
    should be equal as strings      ${resp.status_code}     ${HTTP_OK}
    ${resp} =    openbmc get request     ${deluri}
    should be equal as strings      ${resp.status_code}     ${HTTP_NOT_FOUND}

2nd delete should fail
    [Documentation]     Negative scnenario to delete already deleted event
    [Tags]  CI
    ${uri} =     create a test log
    ${deluri} =  catenate    SEPARATOR=   ${uri}   /action/delete
    ${resp} =    openbmc post request     ${deluri}    data=${NIL}
    should be equal as strings      ${resp.status_code}     ${HTTP_OK}
    ${resp} =    openbmc post request     ${deluri}    data=${NIL}
    should be equal as strings      ${resp.status_code}     ${HTTP_NOT_FOUND}

Intermixed delete
    [Documentation]     This testcase does the following sequence
    ...                 Steps:
    ...                     write three logs
    ...                     delete middle log
    ...                     middle log should not exist
    [Tags]  CI
    ${event1}=      create a test log
    ${event2}=      create a test log
    ${event3}=      create a test log
    ${deluri} =  catenate    SEPARATOR=   ${event2}   /action/delete
    ${resp} =    openbmc post request     ${deluri}    data=${NIL}
    should be equal as strings      ${resp.status_code}     ${HTTP_OK}
    ${resp}=   openbmc get request   ${event2}
    should be equal as strings      ${resp.status_code}     ${HTTP_NOT_FOUND}

restarting event process retains logs
    [Documentation]     This is to test events are in place even after the
    ...                 event service is restarted.
    [Tags]  CI
    ${resp} =   openbmc get request     /org/openbmc/records/events/
    ${json} =   to json         ${resp.content}
    ${logs_pre_restart}=    set variable    ${json['data']}

    ${uptime}=  Execute Command    systemctl restart obmc-phosphor-event.service
    Sleep   ${10}

    ${resp} =   openbmc get request     /org/openbmc/records/events/
    ${json} =   to json         ${resp.content}
    ${logs_post_restart}=   set variable    ${json['data']}
    List Should Contain Sub List    ${logs_post_restart}    ${logs_pre_restart}     msg=Failed to find all the eventlogs which are present before restart of event service

deleting log after obmc-phosphor-event.service restart
    [Documentation]     This is to test event can be deleted created prior to
    ...                 event service is restarted.
    [Tags]  CI
    ${uri}=         create a test log

    ${uptime}=  Execute Command    systemctl restart obmc-phosphor-event.service
    Sleep   ${10}

    ${deluri} =  catenate    SEPARATOR=   ${uri}   /action/delete
    ${resp} =    openbmc post request     ${deluri}    data=${NIL}
    should be equal as strings      ${resp.status_code}     ${HTTP_OK}

making new log after obmc-phosphor-event.service restart
    [Documentation]     This is for testing event creation after the
    ...                 event service is restarted.
    [Tags]  CI
    ${uptime}=  Execute Command    systemctl restart obmc-phosphor-event.service
    Sleep   ${10}

    create a test log

deleting new log after obmc-phosphor-event.service restart
    [Documentation]     This testcase is for testing deleted newly created event
    ...                 after event service is restarted.
    [Tags]  CI
    ${uptime}=  Execute Command    systemctl restart obmc-phosphor-event.service
    Sleep   ${10}

    ${uri}=     create a test log
    ${deluri} =  catenate    SEPARATOR=   ${uri}   /action/delete
    ${resp} =    openbmc post request     ${deluri}    data=${NIL}
    should be equal as strings      ${resp.status_code}     ${HTTP_OK}

Test events after openbmc reboot
    [Documentation]     This is to test event can be deleted created prior to
    ...                 openbmc reboot
    ...                 Steps:
    ...                     Create event,
    ...                     Reboot openbmc,
    ...                     Events should exist post reboot,
    ...                     Create two more events,
    ...                     Delete old and new event
    [Tags]      bmcreboot
    ${pre_reboot_event}=         create a test log

    ${output}=      Execute Command    /sbin/reboot
    Check If BMC is Up   5 min    10 sec

    ${resp} =    openbmc get request     ${pre_reboot_event}
    should be equal as strings      ${resp.status_code}     ${HTTP_OK}
    ${post_reboot_event1}=         create a test log
    ${post_reboot_event2}=         create a test log

    ${del_prereboot_uri} =  catenate    SEPARATOR=   ${pre_reboot_event}   /action/delete
    ${resp} =    openbmc post request     ${del_prereboot_uri}    data=${NIL}
    should be equal as strings      ${resp.status_code}     ${HTTP_OK}
    ${del_postreboot_uri} =  catenate    SEPARATOR=   ${post_reboot_event1}   /action/delete
    ${resp} =    openbmc post request     ${del_postreboot_uri}    data=${NIL}
    should be equal as strings      ${resp.status_code}     ${HTTP_OK}

clearing logs results in no logs
    [Documentation]     This testcase is for clearning the events when no logs present
    [Tags]  CI
    ${resp} =   openbmc post request     /org/openbmc/records/events/action/clear    data=${NIL}
    should be equal as strings      ${resp.status_code}     ${HTTP_OK}
    ${resp} =   openbmc get request     /org/openbmc/records/events/
    ${json} =   to json         ${resp.content}
    Should Be Empty     ${json['data']}
    ${resp} =   openbmc post request     /org/openbmc/records/events/action/clear    data=${NIL}
    should be equal as strings      ${resp.status_code}     ${HTTP_OK}


*** Keywords ***

create a test log
    [arguments]
    ${data} =   create dictionary   data=@{EMPTY}
    ${resp} =   openbmc post request     /org/openbmc/records/events/action/acceptTestMessage    data=${data}
    should be equal as strings      ${resp.status_code}     ${HTTP_OK}
    ${json} =   to json         ${resp.content}
    ${LOGID} =    convert to integer    ${json['data']}
    ${uri}=     catenate    SEPARATOR=   /org/openbmc/records/events/   ${LOGID}
    [return]  ${uri}
