blob: 48d4623c2531fba0bf3a92b46c39473127dd604e [file] [log] [blame]
Chris Austenb29d2e82016-06-07 12:25:35 -05001*** Settings ***
George Keishingede30002017-02-02 09:33:07 -06002Documentation Verify Auto Restart policy for set of mission critical
3... services needed for functioning on BMC.
Chris Austenb29d2e82016-06-07 12:25:35 -05004
George Keishingede30002017-02-02 09:33:07 -06005Resource ../lib/resource.txt
6Resource ../lib/connection_client.robot
7Resource ../lib/openbmc_ffdc.robot
8Resource ../lib/utils.robot
Chris Austenb29d2e82016-06-07 12:25:35 -05009
George Keishingede30002017-02-02 09:33:07 -060010Suite Setup Open Connection And Log In
11Suite Teardown Close All Connections
12Test Teardown FFDC On Test Case Fail
13
14*** Variables ***
15${LOG_SERVICE} xyz.openbmc_project.Logging.service
Chris Austenb29d2e82016-06-07 12:25:35 -050016
17*** Test Cases ***
George Keishingede30002017-02-02 09:33:07 -060018
19Verify OpenBMC Services Auto Restart Policy
20 [Documentation] Kill active services and expect auto restart.
21 [Tags] Verify_OpenBMC_Services_Auto_Restart_Policy
Gunnar Mills917ba1a2018-04-08 16:42:12 -050022 # The services listed below restart policy should be "always"
George Keishingede30002017-02-02 09:33:07 -060023 # Command output:
24 # systemctl -p Restart show xyz.openbmc_project.Logging.service | cat
25 # Restart=always
26 @{services}=
27 ... Create List xyz.openbmc_project.Logging.service
28 ... xyz.openbmc_project.ObjectMapper.service
29 ... xyz.openbmc_project.State.BMC.service
30 ... xyz.openbmc_project.State.Chassis.service
31 ... xyz.openbmc_project.State.Host.service
32 : FOR ${SERVICE} IN @{services}
33 \ Check Service Autorestart ${SERVICE}
Chris Austenb29d2e82016-06-07 12:25:35 -050034
George Keishingc4f06d732016-09-02 07:06:53 -050035
George Keishingede30002017-02-02 09:33:07 -060036Kill Services And Expect Service Restart
37 [Documentation] Kill the service and it must restart.
38 [Tags] Kill_Services_And_Expect_Service_Restart
George Keishingc4f06d732016-09-02 07:06:53 -050039
George Keishingede30002017-02-02 09:33:07 -060040 # Get the MainPID and service state.
41 ${MainPID}= Get Service Attribute MainPID ${LOG_SERVICE}
42 Should Not Be Equal ${0} ${MainPID}
43 ... msg=Logging service not restarted.
George Keishingc4f06d732016-09-02 07:06:53 -050044
George Keishingede30002017-02-02 09:33:07 -060045 ${ActiveState}= Get Service Attribute ActiveState ${LOG_SERVICE}
46 Should Be Equal active ${ActiveState}
47 ... msg=Logging Service not in active state.
George Keishingc4f06d732016-09-02 07:06:53 -050048
Joy Onyerikwub9922612018-05-14 12:36:57 -050049 BMC Execute Command kill -9 ${MainPID}
George Keishingede30002017-02-02 09:33:07 -060050 Sleep 10s reason=Wait for service to restart.
George Keishingc4f06d732016-09-02 07:06:53 -050051
George Keishingede30002017-02-02 09:33:07 -060052 ${MainPID}= Get Service Attribute MainPID ${LOG_SERVICE}
53 Should Not Be Equal ${0} ${MainPID}
54 ... msg=Logging service not restarted.
55
56 ${ActiveState}= Get Service Attribute ActiveState ${LOG_SERVICE}
57 Should Be Equal active ${ActiveState}
58 ... msg=Logging service not in active state.
Chris Austenb29d2e82016-06-07 12:25:35 -050059
George Keishingc4f06d732016-09-02 07:06:53 -050060
Chris Austenb29d2e82016-06-07 12:25:35 -050061*** Keywords ***
George Keishingc4f06d732016-09-02 07:06:53 -050062
Chris Austenb29d2e82016-06-07 12:25:35 -050063Check Service Autorestart
George Keishingede30002017-02-02 09:33:07 -060064 [Documentation] Check if given policy is "always".
65 [Arguments] ${servicename}
66 # servicename Qualified service name
67 ${restart_policy}= Get Service Attribute Restart ${servicename}
68 Should Be Equal always ${restart_policy}
69 ... msg=Incorrect policy for ${servicename}
Chris Austenb29d2e82016-06-07 12:25:35 -050070
George Keishingc4f06d732016-09-02 07:06:53 -050071
George Keishingede30002017-02-02 09:33:07 -060072Get Service Attribute
73 [Documentation] Get service attribute policy output.
74 [Arguments] ${option} ${servicename}
75 # option systemctl supported options
76 # servicename Qualified service name
77 ${cmd}= Set Variable
78 ... systemctl -p ${option} show ${servicename} | cut -d = -f2
Joy Onyerikwub9922612018-05-14 12:36:57 -050079 ${attr} ${stderr} ${rc}= BMC Execute Command ${cmd}
George Keishingede30002017-02-02 09:33:07 -060080 [Return] ${attr}