blob: 8b7b3c52a17ca74f64e8d2800dd6ebd5bd8802d2 [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
22 # The services listed bellow restart policy should be "always"
23 # 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
George Keishingede30002017-02-02 09:33:07 -060049 Execute Command On BMC kill -9 ${MainPID}
50 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
79 ${attr}= Execute Command On BMC ${cmd}
80 [Return] ${attr}