[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.
This commit is contained in:
Adriaan de Groot 2018-06-27 09:33:02 -04:00
parent 8f0db9dc74
commit 5a2ae7a250
2 changed files with 13 additions and 7 deletions

View File

@ -48,15 +48,18 @@ class OpenrcController:
""" """
for svc in self.services.get(state, []): for svc in self.services.get(state, []):
service_path = self.root + self.initdDir + "/" + svc["name"] name = svc["name"]
runlevel_path = self.root + self.runlevelsDir + "/" + svc["runlevel"] 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(service_path):
if exists(runlevel_path): if exists(runlevel_path):
target_env_call(["rc-update", state, svc["name"], svc["runlevel"]]) target_env_call(["rc-update", state, name, runlevel])
else: else:
warning("Target runlevel {} does not exist for {}.".format(svc["runlevel"], svc["name"])) warning("Target runlevel {} does not exist for {}.".format(runlevel, name))
else: 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): def run(self):

View File

@ -18,13 +18,16 @@ runlevelsDir: /etc/runlevels
# has a list of entries as value, and each entry has two # has a list of entries as value, and each entry has two
# fields: # fields:
# - name: the service name # - 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: # # Example services:
# # - add foo1 to default
# # - add foo2 to nonetwork
# # - remove foo3 from default
# services: # services:
# add: # add:
# - name: foo1 # - name: foo1
# runlevel: default
# - name: foo2 # - name: foo2
# runlevel: nonetwork # runlevel: nonetwork
# del: # del: