From 245ff285430ff07d23ed4fcb88753e1f8c8f0d21 Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Thu, 5 Mar 2026 23:45:09 +0100 Subject: svc_s6rc: update for bundlewrap 5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Robert Günzler --- items/svc_s6rc.py | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) (limited to 'items/svc_s6rc.py') diff --git a/items/svc_s6rc.py b/items/svc_s6rc.py index 4f98e38..d5e8fc7 100644 --- a/items/svc_s6rc.py +++ b/items/svc_s6rc.py @@ -98,7 +98,6 @@ class SvcS6RC(Item): "running": True, } ITEM_TYPE_NAME = "svc_s6rc" - REQUIRED_ATTRIBUTES = [] def __repr__(self): return "".format( @@ -108,6 +107,23 @@ class SvcS6RC(Item): self.attributes["generate"], ) + def fix(self, status): + if status.correct: + return + + if self.attributes["generate"]: + if not have_generate_template(self.node, self.attributes["generate"]): + raise Exception(f"No template provides `{self.attributes["generate"]}`") + + if status.cdict["generated"] != status.sdict["generated"]: + generate_service(self.node, self.attributes["generate"], self.name) + + if status.cdict["registered"] != status.sdict["registered"]: + register_service(self.node, self.attributes["bundle"], self.name) + + if status.cdict["running"] != status.sdict["running"]: + run_service(self.node, self.name) + def get_canned_actions(self): return { "reload": { @@ -123,14 +139,16 @@ class SvcS6RC(Item): }, } - def cdict(self): + @property + def expected_state(self): return { "running": self.attributes["running"], "generated": self.attributes["generate"] != None, "registered": self.attributes["bundle"] != None, } - def sdict(self): + @property + def actual_state(self): return { "running": is_service_running(self.node, self.name), "generated": ( @@ -143,19 +161,4 @@ class SvcS6RC(Item): ), } - def fix(self, status): - if status.correct: - return - - if self.attributes["generate"]: - if not have_generate_template(self.node, self.attributes["generate"]): - raise Exception(f"No template provides `{self.attributes["generate"]}`") - - if status.cdict["generated"] != status.sdict["generated"]: - generate_service(self.node, self.attributes["generate"], self.name) - - if status.cdict["registered"] != status.sdict["registered"]: - register_service(self.node, self.attributes["bundle"], self.name) - - if status.cdict["running"] != status.sdict["running"]: - run_service(self.node, self.name) + # TODO: validate attributes -- cgit 1.4.1