docs: pick up proton bridge unit convergence
This commit is contained in:
@@ -126,8 +126,8 @@ REQUIRED_RUNTIME_SURFACES = {
|
||||
REQUIRED_RUNTIME_GAPS = {
|
||||
"proton-runtime-gate-repair-source-lock-refresh",
|
||||
"proton-rclone-service-posture-disabled",
|
||||
"proton-bridge-native-units-disabled-docker-route-active",
|
||||
"stale-protonmail-bridge-container",
|
||||
"proton-bridge-systemd-auto-restart",
|
||||
"proton-rclone-child-unregistered",
|
||||
"secondbrain-apply-blocked",
|
||||
"desktop-adapter-exposure-blocked",
|
||||
@@ -202,6 +202,7 @@ def main() -> int:
|
||||
"PACR-010",
|
||||
"PACR-011",
|
||||
"PACR-012",
|
||||
"PACR-013",
|
||||
"status: candidate",
|
||||
"owner: jp",
|
||||
]:
|
||||
@@ -365,22 +366,24 @@ def main() -> int:
|
||||
candidate = proton.get("child_workspace_candidate", {})
|
||||
expected_candidate = {
|
||||
"path": "../proton-rclone",
|
||||
"commit": "c740d1ee6acfdb1d62b56cb38f2121a26e07ae1e",
|
||||
"commit": "7f2ee159c3c3d3f7167100c189099215bb9a02d8",
|
||||
"validator_command": "python3 tools/validate_proton_rclone_child.py",
|
||||
"validator_result_observed": "ok",
|
||||
"core_registration_candidate_packet": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-core-registration-candidate-packet.json",
|
||||
"live_redacted_health_proof": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-live-redacted-health.json",
|
||||
"runtime_gate_repair_proof": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-runtime-gate-repair-proof.json",
|
||||
"bridge_unit_convergence_proof": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-bridge-unit-convergence-proof.json",
|
||||
"current_runtime_state_reconciliation": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-current-runtime-state-reconciliation.json",
|
||||
}
|
||||
for key, expected in expected_candidate.items():
|
||||
if candidate.get(key) != expected:
|
||||
errors.append(f"proton_rclone_child_candidate_mismatch:{key}")
|
||||
expected_hashes = {
|
||||
"readonly_contract": "47bcbdf69152c709c728cca725a88c92de418280705357a57ea658ca9b24d607",
|
||||
"live_redacted_health": "26ce58fe5ca74a66342dd3b28e223227eac74f6b91ee18a7cdd6acfae720579c",
|
||||
"runtime_gate_repair_proof": "b200fa1f446165185821f6c3b51825b517b00777d502d30ce90665cfee1cd6a1",
|
||||
"current_runtime_state_reconciliation": "0bfeb8f5d0977f43ffd04c468d445cf22fbeca8578d59fb38e014094a5e4cd07",
|
||||
"readonly_contract": "46e860c8f16ad6c327efc89ca49894f60aa69857a69247d935b21e70a335c0cb",
|
||||
"live_redacted_health": "eebbb75e69c407f6b1a82fc847c30185bfa3b28d95848ea501333141a3c50edf",
|
||||
"runtime_gate_repair_proof": "e9ebe2268209b6e9262a2d651d0baf9170c710e425fc591891f8b4ed81f21fbb",
|
||||
"current_runtime_state_reconciliation": "5437470ec25331efa116c061d0b8dc97507df81d098267501cc06cd4e39112e0",
|
||||
"bridge_unit_convergence_proof": "8a7c07e331ff3b49ff5462caa9a691fd29f6e4db7fb4c968e8a44a99b152c46b",
|
||||
}
|
||||
hashes = candidate.get("source_hashes", {})
|
||||
for key, expected in expected_hashes.items():
|
||||
@@ -467,11 +470,12 @@ def main() -> int:
|
||||
if docker.get("sdo-contacts-gate") != "up":
|
||||
errors.append("proton_rclone_contacts_gate_state_not_up")
|
||||
units = {item.get("name"): item for item in inventory.get("systemd_user_units", [])}
|
||||
if units.get("proton-bridge.service", {}).get("observed_state") != "activating-auto-restart":
|
||||
errors.append("proton_rclone_proton_bridge_gap_not_captured")
|
||||
for unit in ["rclone-rc.service", "rclone-proxy.service"]:
|
||||
for unit in ["proton-bridge.service", "proton-bridge-proxy.service", "rclone-rc.service", "rclone-proxy.service"]:
|
||||
if units.get(unit, {}).get("unit_file_state") != "disabled":
|
||||
errors.append(f"proton_rclone_rclone_unit_not_disabled:{unit}")
|
||||
errors.append(f"proton_rclone_unit_not_disabled:{unit}")
|
||||
for unit in ["proton-bridge.service", "proton-bridge-proxy.service"]:
|
||||
if units.get(unit, {}).get("observed_state") != "inactive-dead":
|
||||
errors.append(f"proton_rclone_bridge_unit_not_inactive:{unit}")
|
||||
rclone = inventory.get("rclone", {})
|
||||
if rclone.get("remote") != "proton:":
|
||||
errors.append("proton_rclone_remote_missing")
|
||||
@@ -527,11 +531,12 @@ def main() -> int:
|
||||
errors.append("proton_rclone_contacts_gate_repair_not_complete")
|
||||
for gate in [
|
||||
"registered_child_workspace",
|
||||
"systemd_bridge_convergence",
|
||||
"secondbrain_durable_apply",
|
||||
]:
|
||||
if remaining_gates.get(gate) != "blocked-follow-up":
|
||||
errors.append(f"proton_rclone_remaining_gate_missing:{gate}")
|
||||
if remaining_gates.get("systemd_bridge_convergence") != "complete-child-local-docker-route-active":
|
||||
errors.append("proton_rclone_bridge_convergence_not_complete")
|
||||
if remaining_gates.get("seed_package_pickup") != "blocked-after-runtime-repair-source-lock-refresh":
|
||||
errors.append("proton_rclone_seed_pickup_gate_invalid")
|
||||
|
||||
@@ -933,8 +938,8 @@ def main() -> int:
|
||||
posture = runtime.get("supervisor_posture", {})
|
||||
expected_posture = {
|
||||
"mac_mini_bluebubbles": "package-validator-ok-redacted",
|
||||
"proton_bridge_service": "activating-auto-restart",
|
||||
"proton_bridge_proxy_service": "activating-auto-restart",
|
||||
"proton_bridge_service": "inactive-disabled",
|
||||
"proton_bridge_proxy_service": "inactive-disabled",
|
||||
"rclone_rc_service": "disabled-inactive",
|
||||
"rclone_proxy_service": "disabled-inactive",
|
||||
}
|
||||
@@ -982,6 +987,8 @@ def main() -> int:
|
||||
errors.append("runtime_snapshot_email_gate_repair_not_complete")
|
||||
if remaining_gates.get("proton_contacts_gate_repair") != "complete-child-local":
|
||||
errors.append("runtime_snapshot_contacts_gate_repair_not_complete")
|
||||
if remaining_gates.get("proton_bridge_systemd_convergence") != "complete-child-local-docker-route-active":
|
||||
errors.append("runtime_snapshot_bridge_convergence_not_complete")
|
||||
for gate in [
|
||||
"proton_rclone_child_registration",
|
||||
"secondbrain_durable_apply",
|
||||
|
||||
Reference in New Issue
Block a user