From 5a2ae7a250b77391fcc6b656fb91b00720abe5d3 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 27 Jun 2018 09:33:02 -0400 Subject: [PATCH] [services-openrc] Simplify name extraction, default runlevel - If runlevel isn't set (at all) then use "default". For most systems that do not use multiple runlevels, this simplifies the configuration to just a list of service names to add or delete. --- src/modules/services-openrc/main.py | 13 ++++++++----- src/modules/services-openrc/services-openrc.conf | 7 +++++-- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/modules/services-openrc/main.py b/src/modules/services-openrc/main.py index 52e4838b3..27ea6ebb6 100644 --- a/src/modules/services-openrc/main.py +++ b/src/modules/services-openrc/main.py @@ -48,15 +48,18 @@ class OpenrcController: """ for svc in self.services.get(state, []): - service_path = self.root + self.initdDir + "/" + svc["name"] - runlevel_path = self.root + self.runlevelsDir + "/" + svc["runlevel"] + name = svc["name"] + runlevel = svc.get("runlevel", "default") + + service_path = self.root + self.initdDir + "/" + name + runlevel_path = self.root + self.runlevelsDir + "/" + runlevel if exists(service_path): if exists(runlevel_path): - target_env_call(["rc-update", state, svc["name"], svc["runlevel"]]) + target_env_call(["rc-update", state, name, runlevel]) else: - warning("Target runlevel {} does not exist for {}.".format(svc["runlevel"], svc["name"])) + warning("Target runlevel {} does not exist for {}.".format(runlevel, name)) else: - warning("Target service {} does not exist int {}.".format(svc["name"], self.initDir)) + warning("Target service {} does not exist int {}.".format(name, self.initDir)) def run(self): diff --git a/src/modules/services-openrc/services-openrc.conf b/src/modules/services-openrc/services-openrc.conf index 1d507e578..61440f692 100644 --- a/src/modules/services-openrc/services-openrc.conf +++ b/src/modules/services-openrc/services-openrc.conf @@ -18,13 +18,16 @@ runlevelsDir: /etc/runlevels # has a list of entries as value, and each entry has two # fields: # - name: the service name -# - runlevel: can hold any runlevel present on the target system +# - runlevel: can hold any runlevel present on the target system; +# if no runlevel is provided, "default" is assumed. # # # Example services: +# # - add foo1 to default +# # - add foo2 to nonetwork +# # - remove foo3 from default # services: # add: # - name: foo1 -# runlevel: default # - name: foo2 # runlevel: nonetwork # del: