From 35160c4b91f9314bdc54b314c591c6daca74cdf4 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Thu, 22 Feb 2024 12:12:49 +0200 Subject: radicle-node: ping all repositories in the web UI Signed-off-by: Lars Wirzenius Sponsored-by: author --- roles/radicle_node/files/rad-config-pin | 23 +++++++++++++++++++++++ roles/radicle_node/tasks/main.yml | 10 ++++++++++ 2 files changed, 33 insertions(+) create mode 100644 roles/radicle_node/files/rad-config-pin diff --git a/roles/radicle_node/files/rad-config-pin b/roles/radicle_node/files/rad-config-pin new file mode 100644 index 0000000..0e40f00 --- /dev/null +++ b/roles/radicle_node/files/rad-config-pin @@ -0,0 +1,23 @@ +#!/usr/bin/python3 + +import json, os, subprocess, sys + +rid = sys.argv[1] + +p = subprocess.run(["rad", "config", "show"], check=True, capture_output=True) +if p.returncode != 0: + sys.exit("rad config show failed") +config = json.loads(p.stdout.decode()) + +config["web"]["pinned"]["repositories"].append(rid) + +p = subprocess.run(["rad", "self", "--home"], check=True, capture_output=True) +if p.returncode != 0: + sys.exit("rad self --home failed") + +home = p.stdout.decode().strip() +filename = os.path.join(home, "config.json") +if os.path.exists(filename): + os.rename(filename, filename + ".bak") +with open(filename, "w") as f: + f.write(json.dumps(config, indent=4)) diff --git a/roles/radicle_node/tasks/main.yml b/roles/radicle_node/tasks/main.yml index b119aa9..4cb9bf8 100644 --- a/roles/radicle_node/tasks/main.yml +++ b/roles/radicle_node/tasks/main.yml @@ -128,11 +128,21 @@ "{{ radicle_node_scope }}" \ "{{ item.nid }}@{{ item.host }}:{{ item.port }}" +- name: "install script to add update Radicle repository pinning" + when: radicle_node_repositories is defined + copy: + src: rad-config-pin + dest: /home/_rad/rad-config-pin + owner: _rad + group: _rad + mode: 0755 + - name: "seed Radicle repositories" when: radicle_node_repositories is defined with_items: "{{ radicle_node_repositories }}" shell: | sudo -u _rad rad seed "{{ item.rid }}" + sudo -u _rad -i ./rad-config-pin "{{ item.rid }}" - name: "(re)start systemd unit for Radicle node" systemd: -- cgit v1.2.1