| *** Settings *** |
| Documentation Verify Auto Restart policy for set of mission critical |
| ... services needed for functioning on BMC. |
| |
| Resource ../../lib/resource.robot |
| 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 below 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. |
| |
| BMC Execute Command 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} |