Skip to content

Commit 603f8d7

Browse files
authored
Merge pull request #1798 from nickanderson/ENT-6073/master
ENT-6073/master: Aligned systemd services behavior for service_policy => "enable|enabled|disable|disabled"
2 parents 7edf467 + 3d3e1bc commit 603f8d7

1 file changed

Lines changed: 12 additions & 9 deletions

File tree

lib/services.cf

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ bundle agent standard_services(service,state)
8282
# @brief Standard services bundle, used by CFEngine by default
8383
# @author CFEngine AS
8484
# @param service Name of service to control
85-
# @param state The desired state for that service: "start", "restart", "reload", "stop", or "disable"
85+
# @param state The desired state for that service: "start", "restart", "reload", "stop", or "disable". "enable", "enabled", and "disabled" are also able to be used when systemd is detected.
8686
#
8787
# This bundle is used by CFEngine if you don't specify a services
8888
# handler explicitly, and will work with systemd or chkconfig or other
@@ -200,13 +200,16 @@ bundle agent standard_services(service,state)
200200
"can_start_service" expression => reglist(@(systemd_service_info), "CanStart=yes");
201201
"can_reload_service" expression => reglist(@(systemd_service_info), "CanReload=yes");
202202

203-
"request_start" expression => strcmp("start", "$(state)");
204-
"request_stop" expression => strcmp("stop", "$(state)");
205-
"request_reload" expression => strcmp("reload", "$(state)");
206-
"request_restart" expression => strcmp("restart", "$(state)");
207-
"request_disable" expression => strcmp("disable", "$(state)");
203+
"request_start" expression => strcmp("start", "$(state)");
204+
"request_stop" expression => strcmp("stop", "$(state)");
205+
"request_reload" expression => strcmp("reload", "$(state)");
206+
"request_restart" expression => strcmp("restart", "$(state)");
207+
"request_disable" expression => strcmp("disable", "$(state)");
208+
"request_disabled" expression => strcmp("disabled", "$(state)");
209+
"request_enable" expression => strcmp("enable", "$(state)");
210+
"request_enabled" expression => strcmp("enabled", "$(state)");
208211

209-
"action_custom" expression => "!(request_start|request_stop|request_reload|request_restart|request_disable)";
212+
"action_custom" expression => "!(request_start|request_stop|request_reload|request_restart|request_disable|request_disabled|request_enable|request_enabled)";
210213
"action_start" expression => "request_start.!service_active.can_start_service";
211214
"action_stop" expression => "request_stop.service_active.can_stop_service";
212215
"action_reload" expression => "request_reload.service_active.can_reload_service";
@@ -220,10 +223,10 @@ bundle agent standard_services(service,state)
220223
};
221224

222225
# Starting a service implicitly enables it
223-
"action_enable" expression => "request_start.!service_enabled";
226+
"action_enable" expression => "(request_start|request_enable|request_enabled).!service_enabled";
224227

225228
# Respectively, stopping it implicitly disables it
226-
"action_disable" expression => "(request_disable|request_stop).service_enabled";
229+
"action_disable" expression => "(request_disable|request_disabled|request_stop).service_enabled";
227230

228231
commands:
229232
systemd.service_loaded:: # note this class is defined in `inventory/linux.cf`

0 commit comments

Comments
 (0)