diff options
| author | Robert Günzler <r@gnzler.io> | 2026-03-05 23:45:09 +0100 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2026-03-05 23:45:09 +0100 |
| commit | 245ff285430ff07d23ed4fcb88753e1f8c8f0d21 (patch) | |
| tree | 447dfee6041a626fbf58dc094c00d2f930283d48 | |
| parent | d59299b03e253ec6533287ea8b9be3e71a48dc9f (diff) | |
svc_s6rc: update for bundlewrap 5
Signed-off-by: Robert Günzler <r@gnzler.io>
| -rw-r--r-- | items/svc_s6rc.py | 41 |
1 files changed, 22 insertions, 19 deletions
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 "<SvcS6RC name:{} running:{} bundle:{} generate:{}>".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 |