Publish curated Unraid-AppOps-Gateway source from 5f1a0fc2fdd07082637995b2c8b4514a1ecbbbb8

This commit is contained in:
Public Source Publisher committed 2026-10-10 02:57:17 +00:00
1 parent 9787d16330
commit 75269a32eb
8 files changed
+920 -8

No files matched your search

@@ -228,6 +228,124 @@ def test_positive_preserves_resources_and_windows_then_idempotent(module, proven
module.quiesce(revision="e" * 40, projects={}, driver=driver)
@pytest.fixture
def smart_database(proven):
# Synthetic dependency graph over two existing running identities; this
# models retained sessions, not a claim that mock-ats uses this production DB.
driver, receipt = proven
project = "workmesh-runtime-19421"
pg = next(row for row in driver.state["rows"]
if row["composeLabels"]["com.docker.compose.project"] == project
and row["composeLabels"]["com.docker.compose.service"] == "postgres")
clients = [row for row in driver.state["rows"]
if row["composeLabels"]["com.docker.compose.project"] == project
and row["composeLabels"]["com.docker.compose.service"] in {"api", "mock-ats"}]
assert len(clients) == 2 and all(row["state"]["Running"] for row in clients)
driver.state["rows"] = [pg] + [row for row in driver.state["rows"] if row is not pg]
original_term = driver.term
pending = False
waits = []
def term(cid):
nonlocal pending
if cid == pg["id"] and pg["state"]["Running"]:
pending = True
driver.effects.append(("TERM", cid))
else:
original_term(cid)
if pending and all(not row["state"]["Running"] for row in clients):
pg["state"].update(Running=False, Status="exited", Pid=0,
FinishedAt="2026-10-10T00:00:00Z")
def wait(cid):
waits.append(sum(effect[0] == "TERM" for effect in driver.effects))
return not next(row for row in driver.state["rows"] if row["id"] == cid)["state"]["Running"]
driver.term, driver.wait_exited = term, wait
return driver, receipt, pg, clients, waits
def test_two_clients_receive_term_before_waiting_for_smart_database_shutdown(module, smart_database):
driver, receipt, pg, clients, waits = smart_database
result = module.quiesce(revision="d" * 40, projects={}, driver=driver)
assert result["status"] == "quiesced"
assert all(not row["state"]["Running"] for row in [pg, *clients])
assert waits and all(count == 12 for count in waits)
assert receipt["value"]["phase"] == "complete"
assert sum(effect[0] == "TERM" for effect in driver.effects) == 12
def test_old_partial_receipt_resumes_two_passes_without_rewriting_origin(module, smart_database, monkeypatch):
from types import SimpleNamespace
driver, holder, pg, clients, _ = smart_database
baseline = copy.deepcopy(driver.state)
original = {
"schema": module.SCHEMA, "revision": module.REVIEWED_RECEIPT_PREDECESSOR,
"manifestDigest": module._digest(module.OBSERVATION), "phase": "quiescing",
"baseline": baseline, "registrations": copy.deepcopy(driver.runners[:2]),
"registrationProgress": {"9": "disabled", "22": "disabled"},
"progress": {pg["id"]: "term_intent"}, "guards": driver.capture_guards(),
"guardProgress": {"runner": "installed", "host": "installed"},
}
driver.disable_restart(pg["id"])
driver.term(pg["id"])
assert pg["state"]["Running"] and all(row["state"]["Running"] for row in clients)
for runner in driver.runners[:2]:
runner["disabled"] = True
holder["value"] = original
frozen = (original["revision"], original["manifestDigest"], module._digest(baseline))
release = {"controllerVersion": "2.1.21", "sourceRepository": module.fleet.SOURCE_REPOSITORY,
"sourceRevision": "e" * 40, "sourceTree": "f" * 40}
monkeypatch.setitem(sys.modules, "status_server", SimpleNamespace(_require_controller_release=lambda: release))
driver.accepts_reviewed_receipt_predecessor = module.ControllerDriver({}).accepts_reviewed_receipt_predecessor
assert module.preflight(revision="e" * 40, projects={}, driver=driver)["status"] == "partial"
assert module.quiesce(revision="e" * 40, projects={}, driver=driver)["status"] == "quiesced"
final = holder["value"]
assert (final["revision"], final["manifestDigest"], module._digest(final["baseline"])) == frozen
assert all(not row["state"]["Running"] for row in [pg, *clients])
assert module.quiesce(revision="e" * 40, projects={}, driver=driver)["status"] == "already_quiesced"
@pytest.mark.parametrize("change", ["origin", "manifest", "revision", "tree", "repository", "version", "missing-reader"])
def test_predecessor_resume_rejects_foreign_receipt_or_current_source(module, proven, monkeypatch, change):
from types import SimpleNamespace
driver, holder = proven
driver.timeout = True
module.quiesce(revision=module.REVIEWED_RECEIPT_PREDECESSOR, projects={}, driver=driver)
release = {"controllerVersion": "2.1.21", "sourceRepository": module.fleet.SOURCE_REPOSITORY,
"sourceRevision": "e" * 40, "sourceTree": "f" * 40}
monkeypatch.setitem(sys.modules, "status_server", SimpleNamespace(_require_controller_release=lambda: release))
if change == "origin":
holder["value"]["revision"] = "a" * 40
elif change == "manifest":
holder["value"]["manifestDigest"] = "a" * 64
elif change == "revision":
release["sourceRevision"] = "a" * 40
elif change == "tree":
release["sourceTree"] = "invalid"
elif change == "repository":
release["sourceRepository"] = "jens/foreign"
elif change == "version":
release["controllerVersion"] = "2.1.22"
if change != "missing-reader":
driver.accepts_reviewed_receipt_predecessor = module.ControllerDriver({}).accepts_reviewed_receipt_predecessor
before = len(driver.effects)
with pytest.raises(module.QuiescenceError, match="maintenance_owner_changed"):
module.quiesce(revision="e" * 40, projects={}, driver=driver)
assert len(driver.effects) == before
def test_predecessor_failure_projection_preserves_effect_uncertainty(module, proven):
driver, _ = proven
driver.timeout = True
module.quiesce(revision=module.REVIEWED_RECEIPT_PREDECESSOR, projects={}, driver=driver)
result = module.failure_projection("e" * 40)
assert result["status"] == "partial" and result["guardHeld"] is True
assert result["effectsPerformed"] is True
def test_mount_order_is_canonical_for_fixed_current_and_resume_baseline(module, proven):
driver, _ = proven
baseline = copy.deepcopy(driver.state)