[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.
main
Adriaan de Groot 6 years ago
parent 8f0db9dc74
commit 5a2ae7a250

@ -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):

@ -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:

Loading…
Cancel
Save