summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2024-02-22 12:12:49 +0200
committerLars Wirzenius <liw@liw.fi>2024-02-22 12:12:49 +0200
commit35160c4b91f9314bdc54b314c591c6daca74cdf4 (patch)
tree304c1e5329ab2f4c25070a2bcdbb7df3cd636fee
parentf74cdbf9acbd43bb34b3341aea38322aebd766f4 (diff)
downloaddebian-ansible-35160c4b91f9314bdc54b314c591c6daca74cdf4.tar.gz
radicle-node: ping all repositories in the web UI
Signed-off-by: Lars Wirzenius <liw@liw.fi> Sponsored-by: author
-rw-r--r--roles/radicle_node/files/rad-config-pin23
-rw-r--r--roles/radicle_node/tasks/main.yml10
2 files changed, 33 insertions, 0 deletions
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: