Files
esh-pfi-infrastructure/playbooks/svos-releases/nh3-svos-d14dc94-v0.0.24-interface.yaml
T

30 lines
1.8 KiB
YAML

# nh3-svos v0.0.24 step 2: restart ONLY svos-interface onto app-interface 0.0.8 (U22: verbs summaries + summary, namespace
# interface-summaries; the store state/apps/interface/summaries.sqlite3 is created at start). Raises a held card for
# app-interface: the WHOLE interface answers wrong-revision until Prime approves (about 30 s at v0.0.18). Run only after
# the judge's card is approved, with Prime at the board. Then Prime's two grants on ns:interface-summaries.
steps:
- name: current is d14dc94 and the judge's new revision is pinned
sudo: true
shell: |
readlink /opt/svos/current | grep -q d14dc94
python3 -c "
import sqlite3
c = sqlite3.connect('file:/var/lib/svos/state/svos.db?mode=ro', uri=True)
r = c.execute(\"select revision, state from app_manifests where slug='app-judge' order by revision desc limit 1\").fetchone(); print('judge', r)
assert r[1] == 'pinned', 'judge card not approved yet'"
changed_when: "false"
- name: Restart ONLY svos-interface (raises the held card)
sudo: true
shell: systemctl restart svos-interface; sleep 8; systemctl is-active svos-interface
verify:
- name: Interface on d14dc94; its manifest revision and card
sudo: true
shell: |
pid=$(systemctl show svos-interface -p MainPID --value); grep -q /opt/svos/releases/d14dc94 /proc/$pid/maps && echo "interface pid $pid on d14dc94"
python3 -c "
import sqlite3
c = sqlite3.connect('file:/var/lib/svos/state/svos.db?mode=ro', uri=True)
for r in c.execute(\"select slug, revision, substr(sha256,1,12), state from app_manifests where slug='app-interface' order by revision desc limit 2\"): print(r)
for r in c.execute(\"select id, kind, state, created_at, expires_at from cards where slug='app-interface' and kind='manifest' order by created_at desc limit 1\"): print(r)"
changed_when: "false"