blob: b3fe8692bc4bbff6f843812e1475cdf19297e0d0 [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/connection_client.robot
Resource ../lib/openbmc_ffdc.robot
Suite Setup Open Connection And Log In
Suite Teardown Close All Connections
Test Teardown FFDC On Test Case Fail
*** 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
... ${OPENBMC_BASE_URI}LogManager/rsyslog ipaddr
Should Not Be Empty ${ip_address}
${port}= Read Attribute
... ${OPENBMC_BASE_URI}LogManager/rsyslog port
Should Not Be Empty ${port}
${status}= Read Attribute
... ${OPENBMC_BASE_URI}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
... ${OPENBMC_BASE_URI}LogManager/rsyslog ipaddr
Should Be Equal ${ip} ${SYSLOG_IP_ADDRESS}
${port}= Read Attribute
... ${OPENBMC_BASE_URI}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
... ${OPENBMC_BASE_URI}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
... ${OPENBMC_BASE_URI}LogManager/rsyslog ipaddr
Should Be Equal ${ip} ${SYSLOG_IP_ADDRESS}
${status}= Read Attribute
... ${OPENBMC_BASE_URI}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
... ${OPENBMC_BASE_URI}LogManager/rsyslog status
Should Be Equal ${status} Enabled
${resp}= Enable Syslog Setting ${EMPTY} ${SYSLOG_PORT}
Should Be Equal ${resp} ok
${port}= Read Attribute
... ${OPENBMC_BASE_URI}LogManager/rsyslog port
Should Be Equal ${port} ${SYSLOG_PORT}
${status}= Read Attribute
... ${OPENBMC_BASE_URI}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
... ${OPENBMC_BASE_URI}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.
[Tags] bmcreboot
${old_ip}= Read Attribute
... ${OPENBMC_BASE_URI}LogManager/rsyslog ipaddr
${old_port}= Read Attribute
... ${OPENBMC_BASE_URI}LogManager/rsyslog port
${old_status}= Read Attribute
... ${OPENBMC_BASE_URI}LogManager/rsyslog status
${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
... ${OPENBMC_BASE_URI}LogManager/rsyslog ipaddr
${port}= Read Attribute
... ${OPENBMC_BASE_URI}LogManager/rsyslog port
${status}= Read Attribute
... ${OPENBMC_BASE_URI}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
... ${OPENBMC_BASE_URI}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
... ${OPENBMC_BASE_URI}LogManager/rsyslog/action/Disable data=${data}
${jsondata}= to json ${resp.content}
[Return] ${jsondata['status']}