| *** Settings *** |
| Documentation Verify Auto Restart policy for set of mission critical |
| ... services needed for functioning on BMC. |
| |
| Resource ../lib/resource.txt |
| Resource ../lib/connection_client.robot |
| Resource ../lib/openbmc_ffdc.robot |
| Resource ../lib/utils.robot |
| |
| Suite Setup Open Connection And Log In |
| Suite Teardown Close All Connections |
| Test Teardown FFDC On Test Case Fail |
| |
| *** Variables *** |
| ${LOG_SERVICE} xyz.openbmc_project.Logging.service |
| |
| *** Test Cases *** |
| |
| Verify OpenBMC Services Auto Restart Policy |
| [Documentation] Kill active services and expect auto restart. |
| [Tags] Verify_OpenBMC_Services_Auto_Restart_Policy |
| # The services listed bellow restart policy should be "always" |
| # Command output: |
| # systemctl -p Restart show xyz.openbmc_project.Logging.service | cat |
| # Restart=always |
| @{services}= |
| ... Create List xyz.openbmc_project.Logging.service |
| ... xyz.openbmc_project.ObjectMapper.service |
| ... xyz.openbmc_project.State.BMC.service |
| ... xyz.openbmc_project.State.Chassis.service |
| ... xyz.openbmc_project.State.Host.service |
| : FOR ${SERVICE} IN @{services} |
| \ Check Service Autorestart ${SERVICE} |
| |
| |
| Kill Services And Expect Service Restart |
| [Documentation] Kill the service and it must restart. |
| [Tags] Kill_Services_And_Expect_Service_Restart |
| |
| # Get the MainPID and service state. |
| ${MainPID}= Get Service Attribute MainPID ${LOG_SERVICE} |
| Should Not Be Equal ${0} ${MainPID} |
| ... msg=Logging service not restarted. |
| |
| ${ActiveState}= Get Service Attribute ActiveState ${LOG_SERVICE} |
| Should Be Equal active ${ActiveState} |
| ... msg=Logging Service not in active state. |
| |
| Execute Command On BMC kill -9 ${MainPID} |
| Sleep 10s reason=Wait for service to restart. |
| |
| ${MainPID}= Get Service Attribute MainPID ${LOG_SERVICE} |
| Should Not Be Equal ${0} ${MainPID} |
| ... msg=Logging service not restarted. |
| |
| ${ActiveState}= Get Service Attribute ActiveState ${LOG_SERVICE} |
| Should Be Equal active ${ActiveState} |
| ... msg=Logging service not in active state. |
| |
| |
| *** Keywords *** |
| |
| Check Service Autorestart |
| [Documentation] Check if given policy is "always". |
| [Arguments] ${servicename} |
| # servicename Qualified service name |
| ${restart_policy}= Get Service Attribute Restart ${servicename} |
| Should Be Equal always ${restart_policy} |
| ... msg=Incorrect policy for ${servicename} |
| |
| |
| Get Service Attribute |
| [Documentation] Get service attribute policy output. |
| [Arguments] ${option} ${servicename} |
| # option systemctl supported options |
| # servicename Qualified service name |
| ${cmd}= Set Variable |
| ... systemctl -p ${option} show ${servicename} | cut -d = -f2 |
| ${attr}= Execute Command On BMC ${cmd} |
| [Return] ${attr} |