blob: 92a52609a146436076e7786c207d5bfdfd223011 [file] [log] [blame]
*** Settings ***
Documentation This suite is for testing syslog function of Open BMC.
Resource ../lib/rest_client.robot
Resource ../lib/utils.robot
Resource ../lib/ipmi_client.robot
Library OperatingSystem
Library SSHLibrary
*** Variables ***
${INVALID_SYSLOG_IP_ADDRESS} a.ab.c.d
${INVALID_SYSLOG_PORT} abc
${SYSTEM_SHUTDOWN_TIME} 1min
${WAIT_FOR_SERVICES_UP} 3min
*** Test Cases ***
Get all Syslog settings
[Documentation] ***GOOD PATH***
... This testcase is to get all syslog settings from
... open bmc system.\n
${ip_address} = Read Attribute /org/openbmc/LogManager/rsyslog ipaddr
Should Not Be Empty ${ip_address}
${port} = Read Attribute /org/openbmc/LogManager/rsyslog port
Should Not Be Empty ${port}
${status} = Read Attribute /org/openbmc/LogManager/rsyslog status
Should Not Be Empty ${status}
Enable syslog with port number and IP address
[Documentation] ***GOOD PATH***
... This testcase is to enable syslog with both ip address
... and port number of remote system.\n
${resp} = Enable Syslog Setting ${SYSLOG_IP_ADDRESS} ${SYSLOG_PORT}
Should Be Equal ${resp} ok
${ip}= Read Attribute /org/openbmc/LogManager/rsyslog ipaddr
Should Be Equal ${ip} ${SYSLOG_IP_ADDRESS}
${port}= Read Attribute /org/openbmc/LogManager/rsyslog port
Should Be Equal ${port} ${SYSLOG_PORT}
Enable syslog without IP address and port number
[Documentation] ***GOOD PATH***
... This testcase is to enable syslog without changing ip address
... and port number.\n
${resp} = Enable Syslog Setting ${EMPTY} ${EMPTY}
Should Be Equal ${resp} ok
${status}= Read Attribute /org/openbmc/LogManager/rsyslog status
Should Be Equal ${status} Enabled
Enable syslog with only IP address
[Documentation] ***GOOD PATH***
... This testcase is to enable syslog with only ip address.\n
${resp} = Enable Syslog Setting ${SYSLOG_IP_ADDRESS} ${EMPTY}
Should Be Equal ${resp} ok
${ip}= Read Attribute /org/openbmc/LogManager/rsyslog ipaddr
Should Be Equal ${ip} ${SYSLOG_IP_ADDRESS}
${status}= Read Attribute /org/openbmc/LogManager/rsyslog status
Should Be Equal ${status} Enabled
Enable Syslog with only port number
[Documentation] ***GOOD PATH***
... This testcase is to enable syslog with only port number.\n
${status}= Read Attribute /org/openbmc/LogManager/rsyslog status
Should Be Equal ${status} Enabled
${resp} = Enable Syslog Setting ${EMPTY} ${SYSLOG_PORT}
Should Be Equal ${resp} ok
${port}= Read Attribute /org/openbmc/LogManager/rsyslog port
Should Be Equal ${port} ${SYSLOG_PORT}
${status}= Read Attribute /org/openbmc/LogManager/rsyslog status
Should Be Equal ${status} Enabled
Disable Syslog
[Documentation] ***GOOD PATH***
... This testcase is to verify disabling syslog.\n
${resp} = Disable Syslog Setting ${EMPTY}
Should Be Equal ${resp} ok
${status}= Read Attribute /org/openbmc/LogManager/rsyslog status
Should Be Equal Disable ${status}
Enable invalid ip for Syslog remote server
[Documentation] ***BAD PATH***
... This testcase is to verify error while enabling syslog with
... invalid ip address.\n
${resp} = Enable Syslog Setting ${INVALID_SYSLOG_IP_ADDRESS} ${SYSLOG_PORT}
Should Be Equal ${resp} error
Enable invalid port for Syslog remote server
[Documentation] ***BAD PATH***
... This testcase is to verify error while enabling syslog with
... invalid port number.\n
${resp} = Enable Syslog Setting ${SYSLOG_IP_ADDRESS} ${INVALID_SYSLOG_PORT}
Should Be Equal ${resp} error
Persistency check for syslog setting
[Documentation] This test case is to verify that syslog setting does not change
... after service processor reboot.
${old_ip}= Read Attribute /org/openbmc/LogManager/rsyslog ipaddr
${old_port}= Read Attribute /org/openbmc/LogManager/rsyslog port
${old_status} = Read Attribute /org/openbmc/LogManager/rsyslog status
Open Connection And Log In
${output}= Execute Command /sbin/reboot
Sleep ${SYSTEM_SHUTDOWN_TIME}
Wait For Host To Ping ${OPENBMC_HOST}
Sleep ${WAIT_FOR_SERVICES_UP}
${ip_address} = Read Attribute /org/openbmc/LogManager/rsyslog ipaddr
${port} = Read Attribute /org/openbmc/LogManager/rsyslog port
${status} = Read Attribute /org/openbmc/LogManager/rsyslog status
Should Be Equal ${old_ip} ${ip_address}
Should Be Equal ${old_port} ${port}
Should Be Equal ${old_status} ${status}
*** Keywords ***
Enable Syslog Setting
[Arguments] ${ipaddr} ${port}
${MYDICT}= create Dictionary ipaddr=${ipaddr} port=${port}
@{rsyslog} = Create List ${MYDICT}
${data} = create dictionary data=@{rsyslog}
${resp} = openbmc post request /org/openbmc/LogManager/rsyslog/action/Enable data=${data}
${jsondata} = to json ${resp.content}
[return] ${jsondata['status']}
Disable Syslog Setting
[Arguments] ${args}
@{setting_list} = Create List ${args}
${data} = create dictionary data=@{setting_list}
${resp} = OpenBMC Post Request /org/openbmc/LogManager/rsyslog/action/Disable data=${data}
${jsondata} = to json ${resp.content}
[return] ${jsondata['status']}