52615d9139
gates / gates (push) Successful in 6m34s
The catalog published SABnzbd and NZBGet today (app-catalog 8ee687e). Here: - two cards in the media category on both language sets, each with the project's own logo and each saying IN BOLD that a paid Usenet subscription is the household's own - the published count 60 -> 62 everywhere it is stated; the category badges are derived from the cards now (media read 15 with 17 cards, otthon/home read 14 with 16 — both stale) - documentation/audits/usenet-2026-10-12/: both bench runs, both box steps and verdicts, the nine defects with their measurements, what a missing provider left unmeasured, the teardown - R-988 closed (moved to CLOSED-ITEMS in this commit); R-989 filed: the drill-catalog route of 09 §6.5 cannot be followed — that repo is private and no box has catalog credentials, so the templates were staged in the box's own catalog cache instead - walk.app_env: a SECRET field in app.yaml is stored ENC:, so that helper returns ciphertext — the docstring says so now, measured the hard way - STATUS.md and REPORT-usenet-2026-10-12.md Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0117kRTSgs3rJWUFGxyoWN6Y
55 lines
2.0 KiB
Python
55 lines
2.0 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""SABnzbd's box step, run again after the fixture was fixed.
|
|
|
|
The first attempt could not seed: `walk.GENERATED` holds no optional `type: secret` field, so the
|
|
fixture had no API key (the controller generates that one itself). The fixture reads it from the
|
|
app's own app.yaml now - the same place the household reads it.
|
|
|
|
The app is already installed at the TO pin from that attempt, so the step starts by removing it and
|
|
staging the FROM pin again: a ladder step has to begin where a household begins.
|
|
"""
|
|
import json
|
|
import os
|
|
import sys
|
|
import time
|
|
|
|
HERE = os.path.dirname(os.path.abspath(__file__))
|
|
sys.path.insert(0, HERE)
|
|
sys.path.insert(0, "/mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/pg-last-six-2026-09-30/tools")
|
|
sys.path.insert(0, "/mnt/5_hdd/felhom.eu/git/app-catalog-felhom.eu/scripts")
|
|
os.environ.setdefault("SC", "/tmp/usenet-walk")
|
|
|
|
import walk as w # noqa: E402
|
|
import boxwalk_usenet as bw # noqa: E402
|
|
import boxstep_usenet as bs # noqa: E402
|
|
|
|
APP, SUB = "sabnzbd", "usenet"
|
|
|
|
w.login()
|
|
st = w.stack(APP)
|
|
if st.get("deployed"):
|
|
w.say("removing the install from the first attempt (a ladder step starts where a household starts)")
|
|
w.remove(APP)
|
|
time.sleep(5)
|
|
|
|
w.say("staging the FROM pin again")
|
|
import stage_in_cache as stage # noqa: E402
|
|
stage.stage("frm")
|
|
time.sleep(5)
|
|
|
|
ok = w.deploy(APP, SUB, extra_values={"HDD_PATH": bw.DRIVE_ROOT})
|
|
w.say(f"deploy -> {ok}")
|
|
if not ok:
|
|
raise SystemExit("the install did not succeed")
|
|
w.say(f"the app answers: {w.wait_app(SUB, '/', want=('200', '303', '401', '403'), tries=40, delay=5)}")
|
|
|
|
# the key the household was given, read the way the fixture now reads it
|
|
import upgrade_fixtures_box as fxb # noqa: E402
|
|
fx = fxb.FIXTURES[APP]
|
|
w.say(f"the API key is readable: {bool(fx._key(w))} (length {len(fx._key(w))})")
|
|
|
|
v = bs.step(APP)
|
|
json.dump(v, open(os.path.join(bs.EV, "box-steps-sabnzbd.json"), "w"), indent=2, ensure_ascii=False)
|
|
print(json.dumps(v, indent=2, ensure_ascii=False))
|