From 0eaefe0bb1f8f928c7d4114ea18db9f10d4a052e Mon Sep 17 00:00:00 2001 From: homelab-runtime-publisher Date: Wed, 7 Oct 2026 17:41:53 +0000 Subject: [PATCH] runtime: publish SUPPORT-261007-FINAL-RESIDUAL-RECONCILE-99790R1 --- ...1007-FINAL-RESIDUAL-RECONCILE-99790R1.json | 38 ++ ...61007-FINAL-RESIDUAL-RECONCILE-99790R1.txt | 144 +++++ runtime/latest.json | 16 +- runtime/latest.txt | 558 ++++-------------- 4 files changed, 298 insertions(+), 458 deletions(-) create mode 100644 runtime/history/SUPPORT-261007-FINAL-RESIDUAL-RECONCILE-99790R1.json create mode 100644 runtime/history/SUPPORT-261007-FINAL-RESIDUAL-RECONCILE-99790R1.txt diff --git a/runtime/history/SUPPORT-261007-FINAL-RESIDUAL-RECONCILE-99790R1.json b/runtime/history/SUPPORT-261007-FINAL-RESIDUAL-RECONCILE-99790R1.json new file mode 100644 index 00000000..d2f5fe83 --- /dev/null +++ b/runtime/history/SUPPORT-261007-FINAL-RESIDUAL-RECONCILE-99790R1.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SUPPORT-261007-FINAL-RESIDUAL-RECONCILE-99790R1", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "read-only", + "component": "final-residual-reconcile", + "started_at_utc": "2026-10-07T17:41:46Z", + "finished_at_utc": "2026-10-07T17:41:52Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "367c6baa88b591c06ca5b94cc56542a6f153b1366aa0dd9c0fd3d7c61ab02a44", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": false, + "result_contract_valid": true, + "result_contract_status": null, + "result_contract_error": null, + "command_rc": 0, + "changes_made": false, + "rollback_started": false, + "rollback_restored": null, + "mutation_outcome": "NO_MUTATION", + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "75302e0c11eb8854e1c54ca078376b96299cd40b32f3bde2ce6d573ea642584a", + "sanitized_output_sha256": "75302e0c11eb8854e1c54ca078376b96299cd40b32f3bde2ce6d573ea642584a", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "FINAL_RESIDUAL_RECONCILE=V1\nMODE=read-only\nNO_MUTATION=true\nBACKUP_V2_ACTIVE=inactive\nBACKUP_V2_SUBSTATE=dead\nBACKUP_V2_RESULT=success\nBACKUP_V2_EXEC=0\nBACKUP_V2_TIMER_ACTIVE=active\nBACKUP_V2_TIMER_ENABLED=enabled\nBACKUP_V2_LAST_TRIGGER=Wed 2026-10-07 20:05:53 MSK\nREC|BACKUP_JOURNAL|IDX=1|SCHEDULE_TARGET=vm210\nREC|BACKUP_JOURNAL|IDX=2|SCHEDULE_RESULT=SUCCESS\nREC|BACKUP_JOURNAL|IDX=3|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler.\nREC|BACKUP_JOURNAL|IDX=4|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler...\nREC|BACKUP_JOURNAL|IDX=5|SCHEDULE_TARGET=control-bootstrap-v2\nREC|BACKUP_JOURNAL|IDX=6|SCHEDULE_RESULT=SUCCESS\nREC|BACKUP_JOURNAL|IDX=7|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler.\nREC|BACKUP_JOURNAL|IDX=8|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler...\nREC|BACKUP_JOURNAL|IDX=9|SCHEDULE_TARGET=xf-newfi\nREC|BACKUP_JOURNAL|IDX=10|SCHEDULE_RESULT=SUCCESS\nREC|BACKUP_JOURNAL|IDX=11|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler.\nREC|BACKUP_JOURNAL|IDX=12|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler...\nREC|BACKUP_JOURNAL|IDX=13|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler.\nREC|BACKUP_JOURNAL|IDX=14|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler...\nREC|BACKUP_JOURNAL|IDX=15|SCHEDULE_TARGET=vm170\nREC|BACKUP_JOURNAL|IDX=16|SCHEDULE_RESULT=SUCCESS\nREC|BACKUP_JOURNAL|IDX=17|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler.\nREC|BACKUP_JOURNAL|IDX=18|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler...\nREC|BACKUP_JOURNAL|IDX=19|SCHEDULE_TARGET=vm171\nREC|BACKUP_JOURNAL|IDX=20|SCHEDULE_RESULT=SUCCESS\nREC|BACKUP_JOURNAL|IDX=21|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler.\nREC|BACKUP_JOURNAL|IDX=22|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler...\nREC|BACKUP_JOURNAL|IDX=23|SCHEDULE_TARGET=guest-pve01-lxc-112\nREC|BACKUP_JOURNAL|IDX=24|SCHEDULE_RESULT=FAIL\nREC|BACKUP_JOURNAL|IDX=25|SCHEDULE_REASON=CT112_PIPELINE_FAILED\nREC|BACKUP_JOURNAL|IDX=26|homelab-backup-v2.service: Main process exited, code=exited, status=2/INVALIDARGUMENT\nREC|BACKUP_JOURNAL|IDX=27|homelab-backup-v2.service: Failed with result 'exit-code'.\nREC|BACKUP_JOURNAL|IDX=28|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler...\nREC|BACKUP_JOURNAL|IDX=29|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler.\nREC|BACKUP_JOURNAL|IDX=30|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler...\nREC|BACKUP_JOURNAL|IDX=31|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler.\nREC|BACKUP_JOURNAL|IDX=32|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler...\nREC|BACKUP_JOURNAL|IDX=33|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler.\nREC|BACKUP_JOURNAL|IDX=34|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler...\nREC|BACKUP_JOURNAL|IDX=35|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler.\nREC|BACKUP_JOURNAL|IDX=36|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler...\nREC|BACKUP_JOURNAL|IDX=37|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler.\nREC|BACKUP_JOURNAL|IDX=38|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler...\nREC|BACKUP_JOURNAL|IDX=39|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler.\nREC|BACKUP_JOURNAL|IDX=40|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler...\nREC|BACKUP_JOURNAL|IDX=41|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler.\nREC|BACKUP_JOURNAL|IDX=42|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler...\nREC|BACKUP_JOURNAL|IDX=43|SCHEDULE_TARGET=vm9130\nREC|BACKUP_JOURNAL|IDX=44|SCHEDULE_RESULT=SUCCESS\nREC|BACKUP_JOURNAL|IDX=45|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler.\nBACKUP_JOURNAL_REC_COUNT=45\nBACKUP_LATEST_TARGET=vm9130\nBACKUP_LATEST_SCHEDULE_RESULT=SUCCESS\nBACKUP_LATEST_SCHEDULE_REASON=CT112_PIPELINE_FAILED\nREC|BACKUP_LATEST_SUMMARY|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_LATEST_ISSUE|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm9130|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM\nREC|BACKUP_STATE_FILE|NAME=vm9130|IDX=1|BASENAME=vm9130.json|PATH_SHA256=69f0cd43f29cb9b3b69236a4c1c98ea84b8e1cc4c60f4a6d9d92ca6f7714b45a|SHA256=f1ffe560699fe8c69829856fb3d46b8009d0f54b5e7c6c792a9f16b1b07f86b4\nREC|BACKUP_STATE|NAME=vm9130|KEY=logical_id|VALUE=vm9130\nREC|BACKUP_STATE|NAME=vm9130|KEY=result|VALUE=SUCCESS\nREC|BACKUP_STATE|NAME=vm9130|KEY=last_success_epoch|VALUE=1791394058\nREC|BACKUP_STATE|NAME=vm9130|KEY=last_attempt_epoch|VALUE=1791394058\nREC|BACKUP_STATE|NAME=vm9130|KEY=generation|VALUE=v2-vm9130-20261007T170553Z-af222125d3ff\nREC|BACKUP_STATE_COUNT|NAME=vm9130|COUNT=1\nREC|BACKUP_STATE_FILE|NAME=ct112|IDX=1|BASENAME=ct112.json|PATH_SHA256=4650ea76820591a6e992aec1b18082b7e81a1ddb2613556f7c8139c0036ec824|SHA256=64f302f9156d0fd91c340023caf8f003810b8a66c84d446dccc063cbbb01a8cd\nREC|BACKUP_STATE|NAME=ct112|KEY=logical_id|VALUE=ct112\nREC|BACKUP_STATE|NAME=ct112|KEY=result|VALUE=SUCCESS\nREC|BACKUP_STATE|NAME=ct112|KEY=last_success_epoch|VALUE=1791348739\nREC|BACKUP_STATE|NAME=ct112|KEY=last_attempt_epoch|VALUE=1791348739\nREC|BACKUP_STATE|NAME=ct112|KEY=generation|VALUE=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_STATE_COUNT|NAME=ct112|COUNT=1\nREC|BACKUP_STATE_FILE|NAME=guest-pve01-lxc-112|IDX=1|BASENAME=guest-pve01-lxc-112.json|PATH_SHA256=5211dfc0645d177de3ac4e85db86b9e305060b84bbebcf62f0aa6aa8b88b13ca|SHA256=b737b8c81c6e16f480c8227f0645e5236e412cf22de0da6af83ff6d6dc37e4bb\nREC|BACKUP_STATE|NAME=guest-pve01-lxc-112|KEY=logical_id|VALUE=guest-pve01-lxc-112\nREC|BACKUP_STATE|NAME=guest-pve01-lxc-112|KEY=result|VALUE=FAIL\nREC|BACKUP_STATE|NAME=guest-pve01-lxc-112|KEY=reason|VALUE=CT112_PIPELINE_FAILED\nREC|BACKUP_STATE|NAME=guest-pve01-lxc-112|KEY=last_success_epoch|VALUE=1790297001\nREC|BACKUP_STATE|NAME=guest-pve01-lxc-112|KEY=last_attempt_epoch|VALUE=1791375479\nREC|BACKUP_STATE_COUNT|NAME=guest-pve01-lxc-112|COUNT=1\nDNS_NS_PRESENT=true\nDNS_NS_SHA256=876800f2ea41ad454f6f8fa25eac5fc4ef898632dd7f6cc6f0093c1848498853\nRESOLV_REAL_BASENAME=resolv.conf\nDNS_NS_ROUTE_DEV=lo\nDNS_NS_ROUTE_VIA_SHA256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nDNS_NS_NEIGH_PRESENT=false\nDNS_NS_MAC_PRESENT=false\nDNS_NS_MAC_SHA256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nDNS_NS_MAC_GUEST_MATCH_COUNT=0\nDNS_NS_VERSION_PRESENT=true\nDNS_NS_VERSION_SHA256=74844e10a6a274835e7e7fb592c77d77ffc2834ff36210aee16afa6e52c8140e\nREC|DNS_NS_ANSWER|HOST_SHA256=04cb4a04e408d91abb9c63701ae969abf16d8a12b6f4f144c5edf2c28e03256b|A_SHA256=4e29a2729bbc40663066bdae0c5a3d627070fba621f5c8c70639f4782afbc67d|MATCH_OLD_EDGE=true|MATCH_HOME=false\nREC|DNS_NS_ANSWER|HOST_SHA256=f82516c01629ad410f4283562836dcc4a5329ef48321bd7fea094eb81dbe2b1b|A_SHA256=4e29a2729bbc40663066bdae0c5a3d627070fba621f5c8c70639f4782afbc67d|MATCH_OLD_EDGE=true|MATCH_HOME=false\nREC|DNS_NS_ANSWER|HOST_SHA256=abf0fb2953cd2b6ecb240845eaab02af07cc1cf8b8605b08310211adc990eae9|A_SHA256=4e29a2729bbc40663066bdae0c5a3d627070fba621f5c8c70639f4782afbc67d|MATCH_OLD_EDGE=true|MATCH_HOME=false\nDNS_NS_OLD_EDGE_MATCH_COUNT=3\nDNS_NS_HOME_MATCH_COUNT=0\nDNS_NS_NETBIRD_PEER_MATCH_COUNT=0\nREC|ISSUE|LOCAL_DNS_RETURNS_OLD_EDGE\nVM130_NODE=pve03\nVM130_QGA_RC=0\nREC|VM130|CFG_PRESENT=true\nREC|VM130|CFG_SHA256=9012ece867ad7efa1b2d07020c1cdfc9d3a63f86fde9117bdd7435eef29a9735\nREC|VM130|CFG_MATCH_HIST_ORIGINAL=true\nREC|VM130|WG_EDGE01_LINK_PRESENT=true\nREC|VM130|WG_EDGE01_UNIT_ACTIVE=active\nREC|VM130|WG_EDGE01_UNIT_ENABLED=enabled\nREC|VM130|PRIORITY101_COUNT=0\nREC|VM130|WG_EDGE01_HANDSHAKE_NONZERO=0\nREC|VM130|GOOGLE_RC=0\nREC|VM130|FAILED_UNIT_COUNT=0\n" +} diff --git a/runtime/history/SUPPORT-261007-FINAL-RESIDUAL-RECONCILE-99790R1.txt b/runtime/history/SUPPORT-261007-FINAL-RESIDUAL-RECONCILE-99790R1.txt new file mode 100644 index 00000000..37b93de8 --- /dev/null +++ b/runtime/history/SUPPORT-261007-FINAL-RESIDUAL-RECONCILE-99790R1.txt @@ -0,0 +1,144 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=SUPPORT-261007-FINAL-RESIDUAL-RECONCILE-99790R1 +STATUS=OK +RC=0 +HOST=pve01 +MODE=read-only +COMPONENT=final-residual-reconcile +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=367c6baa88b591c06ca5b94cc56542a6f153b1366aa0dd9c0fd3d7c61ab02a44 +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=false +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=NOT_APPLICABLE +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=0 +CHANGES_MADE=false +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=NO_MUTATION +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=75302e0c11eb8854e1c54ca078376b96299cd40b32f3bde2ce6d573ea642584a +SANITIZED_OUTPUT_SHA256=75302e0c11eb8854e1c54ca078376b96299cd40b32f3bde2ce6d573ea642584a +OUTPUT_BEGIN +FINAL_RESIDUAL_RECONCILE=V1 +MODE=read-only +NO_MUTATION=true +BACKUP_V2_ACTIVE=inactive +BACKUP_V2_SUBSTATE=dead +BACKUP_V2_RESULT=success +BACKUP_V2_EXEC=0 +BACKUP_V2_TIMER_ACTIVE=active +BACKUP_V2_TIMER_ENABLED=enabled +BACKUP_V2_LAST_TRIGGER=Wed 2026-10-07 20:05:53 MSK +REC|BACKUP_JOURNAL|IDX=1|SCHEDULE_TARGET=vm210 +REC|BACKUP_JOURNAL|IDX=2|SCHEDULE_RESULT=SUCCESS +REC|BACKUP_JOURNAL|IDX=3|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler. +REC|BACKUP_JOURNAL|IDX=4|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler... +REC|BACKUP_JOURNAL|IDX=5|SCHEDULE_TARGET=control-bootstrap-v2 +REC|BACKUP_JOURNAL|IDX=6|SCHEDULE_RESULT=SUCCESS +REC|BACKUP_JOURNAL|IDX=7|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler. +REC|BACKUP_JOURNAL|IDX=8|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler... +REC|BACKUP_JOURNAL|IDX=9|SCHEDULE_TARGET=xf-newfi +REC|BACKUP_JOURNAL|IDX=10|SCHEDULE_RESULT=SUCCESS +REC|BACKUP_JOURNAL|IDX=11|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler. +REC|BACKUP_JOURNAL|IDX=12|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler... +REC|BACKUP_JOURNAL|IDX=13|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler. +REC|BACKUP_JOURNAL|IDX=14|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler... +REC|BACKUP_JOURNAL|IDX=15|SCHEDULE_TARGET=vm170 +REC|BACKUP_JOURNAL|IDX=16|SCHEDULE_RESULT=SUCCESS +REC|BACKUP_JOURNAL|IDX=17|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler. +REC|BACKUP_JOURNAL|IDX=18|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler... +REC|BACKUP_JOURNAL|IDX=19|SCHEDULE_TARGET=vm171 +REC|BACKUP_JOURNAL|IDX=20|SCHEDULE_RESULT=SUCCESS +REC|BACKUP_JOURNAL|IDX=21|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler. +REC|BACKUP_JOURNAL|IDX=22|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler... +REC|BACKUP_JOURNAL|IDX=23|SCHEDULE_TARGET=guest-pve01-lxc-112 +REC|BACKUP_JOURNAL|IDX=24|SCHEDULE_RESULT=FAIL +REC|BACKUP_JOURNAL|IDX=25|SCHEDULE_REASON=CT112_PIPELINE_FAILED +REC|BACKUP_JOURNAL|IDX=26|homelab-backup-v2.service: Main process exited, code=exited, status=2/INVALIDARGUMENT +REC|BACKUP_JOURNAL|IDX=27|homelab-backup-v2.service: Failed with result 'exit-code'. +REC|BACKUP_JOURNAL|IDX=28|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler... +REC|BACKUP_JOURNAL|IDX=29|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler. +REC|BACKUP_JOURNAL|IDX=30|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler... +REC|BACKUP_JOURNAL|IDX=31|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler. +REC|BACKUP_JOURNAL|IDX=32|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler... +REC|BACKUP_JOURNAL|IDX=33|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler. +REC|BACKUP_JOURNAL|IDX=34|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler... +REC|BACKUP_JOURNAL|IDX=35|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler. +REC|BACKUP_JOURNAL|IDX=36|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler... +REC|BACKUP_JOURNAL|IDX=37|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler. +REC|BACKUP_JOURNAL|IDX=38|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler... +REC|BACKUP_JOURNAL|IDX=39|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler. +REC|BACKUP_JOURNAL|IDX=40|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler... +REC|BACKUP_JOURNAL|IDX=41|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler. +REC|BACKUP_JOURNAL|IDX=42|Starting homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler... +REC|BACKUP_JOURNAL|IDX=43|SCHEDULE_TARGET=vm9130 +REC|BACKUP_JOURNAL|IDX=44|SCHEDULE_RESULT=SUCCESS +REC|BACKUP_JOURNAL|IDX=45|Finished homelab-backup-v2.service - Homelab Backup V2 manifest-driven scheduler. +BACKUP_JOURNAL_REC_COUNT=45 +BACKUP_LATEST_TARGET=vm9130 +BACKUP_LATEST_SCHEDULE_RESULT=SUCCESS +BACKUP_LATEST_SCHEDULE_REASON=CT112_PIPELINE_FAILED +REC|BACKUP_LATEST_SUMMARY|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK +REC|BACKUP_LATEST_ISSUE|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm9130|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM +REC|BACKUP_STATE_FILE|NAME=vm9130|IDX=1|BASENAME=vm9130.json|PATH_SHA256=69f0cd43f29cb9b3b69236a4c1c98ea84b8e1cc4c60f4a6d9d92ca6f7714b45a|SHA256=f1ffe560699fe8c69829856fb3d46b8009d0f54b5e7c6c792a9f16b1b07f86b4 +REC|BACKUP_STATE|NAME=vm9130|KEY=logical_id|VALUE=vm9130 +REC|BACKUP_STATE|NAME=vm9130|KEY=result|VALUE=SUCCESS +REC|BACKUP_STATE|NAME=vm9130|KEY=last_success_epoch|VALUE=1791394058 +REC|BACKUP_STATE|NAME=vm9130|KEY=last_attempt_epoch|VALUE=1791394058 +REC|BACKUP_STATE|NAME=vm9130|KEY=generation|VALUE=v2-vm9130-20261007T170553Z-af222125d3ff +REC|BACKUP_STATE_COUNT|NAME=vm9130|COUNT=1 +REC|BACKUP_STATE_FILE|NAME=ct112|IDX=1|BASENAME=ct112.json|PATH_SHA256=4650ea76820591a6e992aec1b18082b7e81a1ddb2613556f7c8139c0036ec824|SHA256=64f302f9156d0fd91c340023caf8f003810b8a66c84d446dccc063cbbb01a8cd +REC|BACKUP_STATE|NAME=ct112|KEY=logical_id|VALUE=ct112 +REC|BACKUP_STATE|NAME=ct112|KEY=result|VALUE=SUCCESS +REC|BACKUP_STATE|NAME=ct112|KEY=last_success_epoch|VALUE=1791348739 +REC|BACKUP_STATE|NAME=ct112|KEY=last_attempt_epoch|VALUE=1791348739 +REC|BACKUP_STATE|NAME=ct112|KEY=generation|VALUE=v2-ct112-20261007T045109Z-ce9503fc59c5 +REC|BACKUP_STATE_COUNT|NAME=ct112|COUNT=1 +REC|BACKUP_STATE_FILE|NAME=guest-pve01-lxc-112|IDX=1|BASENAME=guest-pve01-lxc-112.json|PATH_SHA256=5211dfc0645d177de3ac4e85db86b9e305060b84bbebcf62f0aa6aa8b88b13ca|SHA256=b737b8c81c6e16f480c8227f0645e5236e412cf22de0da6af83ff6d6dc37e4bb +REC|BACKUP_STATE|NAME=guest-pve01-lxc-112|KEY=logical_id|VALUE=guest-pve01-lxc-112 +REC|BACKUP_STATE|NAME=guest-pve01-lxc-112|KEY=result|VALUE=FAIL +REC|BACKUP_STATE|NAME=guest-pve01-lxc-112|KEY=reason|VALUE=CT112_PIPELINE_FAILED +REC|BACKUP_STATE|NAME=guest-pve01-lxc-112|KEY=last_success_epoch|VALUE=1790297001 +REC|BACKUP_STATE|NAME=guest-pve01-lxc-112|KEY=last_attempt_epoch|VALUE=1791375479 +REC|BACKUP_STATE_COUNT|NAME=guest-pve01-lxc-112|COUNT=1 +DNS_NS_PRESENT=true +DNS_NS_SHA256=876800f2ea41ad454f6f8fa25eac5fc4ef898632dd7f6cc6f0093c1848498853 +RESOLV_REAL_BASENAME=resolv.conf +DNS_NS_ROUTE_DEV=lo +DNS_NS_ROUTE_VIA_SHA256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +DNS_NS_NEIGH_PRESENT=false +DNS_NS_MAC_PRESENT=false +DNS_NS_MAC_SHA256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +DNS_NS_MAC_GUEST_MATCH_COUNT=0 +DNS_NS_VERSION_PRESENT=true +DNS_NS_VERSION_SHA256=74844e10a6a274835e7e7fb592c77d77ffc2834ff36210aee16afa6e52c8140e +REC|DNS_NS_ANSWER|HOST_SHA256=04cb4a04e408d91abb9c63701ae969abf16d8a12b6f4f144c5edf2c28e03256b|A_SHA256=4e29a2729bbc40663066bdae0c5a3d627070fba621f5c8c70639f4782afbc67d|MATCH_OLD_EDGE=true|MATCH_HOME=false +REC|DNS_NS_ANSWER|HOST_SHA256=f82516c01629ad410f4283562836dcc4a5329ef48321bd7fea094eb81dbe2b1b|A_SHA256=4e29a2729bbc40663066bdae0c5a3d627070fba621f5c8c70639f4782afbc67d|MATCH_OLD_EDGE=true|MATCH_HOME=false +REC|DNS_NS_ANSWER|HOST_SHA256=abf0fb2953cd2b6ecb240845eaab02af07cc1cf8b8605b08310211adc990eae9|A_SHA256=4e29a2729bbc40663066bdae0c5a3d627070fba621f5c8c70639f4782afbc67d|MATCH_OLD_EDGE=true|MATCH_HOME=false +DNS_NS_OLD_EDGE_MATCH_COUNT=3 +DNS_NS_HOME_MATCH_COUNT=0 +DNS_NS_NETBIRD_PEER_MATCH_COUNT=0 +REC|ISSUE|LOCAL_DNS_RETURNS_OLD_EDGE +VM130_NODE=pve03 +VM130_QGA_RC=0 +REC|VM130|CFG_PRESENT=true +REC|VM130|CFG_SHA256=9012ece867ad7efa1b2d07020c1cdfc9d3a63f86fde9117bdd7435eef29a9735 +REC|VM130|CFG_MATCH_HIST_ORIGINAL=true +REC|VM130|WG_EDGE01_LINK_PRESENT=true +REC|VM130|WG_EDGE01_UNIT_ACTIVE=active +REC|VM130|WG_EDGE01_UNIT_ENABLED=enabled +REC|VM130|PRIORITY101_COUNT=0 +REC|VM130|WG_EDGE01_HANDSHAKE_NONZERO=0 +REC|VM130|GOOGLE_RC=0 +REC|VM130|FAILED_UNIT_COUNT=0 + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 32b3e450..d2f5fe83 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "SUPPORT-261007-CT112-DNS-VM130-FINAL-RCA-99789R1", + "command_id": "SUPPORT-261007-FINAL-RESIDUAL-RECONCILE-99790R1", "status": "OK", "rc": 0, "host": "pve01", "mode": "read-only", - "component": "ct112-dns-vm130-final-rca", - "started_at_utc": "2026-10-07T17:33:19Z", - "finished_at_utc": "2026-10-07T17:33:27Z", + "component": "final-residual-reconcile", + "started_at_utc": "2026-10-07T17:41:46Z", + "finished_at_utc": "2026-10-07T17:41:52Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "885666c9d57f84edfa9d1fd3234f1fc6888d360c338bd60d7fd2e00a0f9bd8eb", + "command_sha256": "367c6baa88b591c06ca5b94cc56542a6f153b1366aa0dd9c0fd3d7c61ab02a44", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "45a7d0df223ce5a48be093a0e3ef84cd7ce33615fa53ded2c8b7fdc3ce4e468c", - "sanitized_output_sha256": "45a7d0df223ce5a48be093a0e3ef84cd7ce33615fa53ded2c8b7fdc3ce4e468c", + "raw_evidence_sha256": "75302e0c11eb8854e1c54ca078376b96299cd40b32f3bde2ce6d573ea642584a", + "sanitized_output_sha256": "75302e0c11eb8854e1c54ca078376b96299cd40b32f3bde2ce6d573ea642584a", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "CT112_DNS_VM130_FINAL_RCA=V1\nMODE=read-only\nNO_MUTATION=true\nBACKUP_V2_ACTIVE=inactive\nBACKUP_V2_RESULT=success\nBACKUP_V2_EXEC_STATUS=0\nBACKUP_V2_TIMER_ACTIVE=active\nBACKUP_V2_TIMER_ENABLED=enabled\nBACKUP_V2_LAST_TRIGGER=Wed 2026-10-07 20:05:53 MSK\nCT112_STATUS=running\nREC|CT112_CONFIG|features: nesting=1\nREC|CT112_CONFIG|rootfs: local-lvm:vm-112-disk-0,size=8G\nREC|CT112_CONFIG|unprivileged: 1\nREC|CT112_API|KEY=rootfs|VOLID_SHA256=21a1228ea539097d621b44cc86b77b3de95b0487a5e074f6644ac3ed80376ef8|OPTS_SHA256=ebbd4ffc7a6d79cb0293f44d7e93509b8e2c9feb6cf8faa8098a6d09ed8dde99\nREC|CT112_API|KEY=unprivileged|VALUE_SHA256=6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b\nREC|CT112_API|KEY=features|VALUE_SHA256=9202e3e75af57ec143fd326adec10e608231ac71dd55a48ddf6b77bcb174539b\nREC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm112|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=RED|ACTIVE_COUNT=15|ISSUE_COUNT=1|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=806|legacy_age_seconds=2887672|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=2672|legacy_age_seconds=2889538|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=4429|legacy_age_seconds=2891296|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=6259|legacy_age_seconds=2893125|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=8029|legacy_age_seconds=2894896|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=9846|legacy_age_seconds=2896712|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=11569|legacy_age_seconds=2898436|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm190|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=RED|ACTIVE_COUNT=15|ISSUE_COUNT=1|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=13388|legacy_age_seconds=2900254|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=app-hbarhub|root_cause=APP_QUORUM_NOT_FRESH\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=RED|ACTIVE_COUNT=15|ISSUE_COUNT=1|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=15284|legacy_age_seconds=2902150|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=app-hbarhub|root_cause=APP_QUORUM_NOT_FRESH\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=RED|ACTIVE_COUNT=15|ISSUE_COUNT=1|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=17030|legacy_age_seconds=2903896|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=app-hbarhub|root_cause=APP_QUORUM_NOT_FRESH\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=RED|ACTIVE_COUNT=15|ISSUE_COUNT=1|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=18878|legacy_age_seconds=2905744|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=app-hbarhub|root_cause=APP_QUORUM_NOT_FRESH\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=RED|ACTIVE_COUNT=15|ISSUE_COUNT=1|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=20605|legacy_age_seconds=2907471|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=22404|legacy_age_seconds=2909270|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm170|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=RED|ACTIVE_COUNT=15|ISSUE_COUNT=1|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=24230|legacy_age_seconds=2911096|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm171|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=RED|ACTIVE_COUNT=15|ISSUE_COUNT=1|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=26024|legacy_age_seconds=2912890|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=27830|legacy_age_seconds=2914696|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=29630|legacy_age_seconds=2916496|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=31388|legacy_age_seconds=2918254|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=33230|legacy_age_seconds=2920096|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=34964|legacy_age_seconds=2921830|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=36884|legacy_age_seconds=2923750|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=38636|legacy_age_seconds=2925502|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=40370|legacy_age_seconds=2927236|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=42230|legacy_age_seconds=2929096|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=GREEN|ACTIVE_COUNT=15|ISSUE_COUNT=0|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_AUDIT_RECENT|TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=44048|legacy_age_seconds=2930914|replica_count=2|state_id=ct112|generation=v2-ct112-20261007T045109Z-ce9503fc59c5\nREC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm9130|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM\nREC|BACKUP_AUDIT_RECENT|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=RED|ACTIVE_COUNT=15|ISSUE_COUNT=1|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nBACKUP_AUDIT_CURRENT_RESULT=exit-code\nBACKUP_AUDIT_CURRENT_EXEC=1\nREC|BACKUP_LATEST_SUMMARY|SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=RED|ACTIVE_COUNT=15|ISSUE_COUNT=1|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK\nREC|BACKUP_LATEST_ISSUE|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm9130|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM\nBACKUP_EXEC_SHA256=894f8ea346b53a3d7846dbd6eeb5b89333957eb6d7a4f2f64fd4557cae176e1c\nREC|CT112_SOURCE_FILE|IDX=1|BASENAME=pve282.py|SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012|SIZE=6195\nSRC|CT112|1|26: need(core.valid_hash(expected_config) and job.get('config_sha256')==expected_config,'CT112_PLAN_CONFIG_ANCHOR')\nSRC|CT112|1|32: need(TARGET_VMID in by_id,'CT112_MISSING_FROM_ACCEPTED265')\nSRC|CT112|1|38: need(len(selected)==1,'CT112_NOT_UNIQUE')\nSRC|CT112|1|41: need(job.get('compression_dependent') is False and job.get('configured_full_cycle_fits') is True,'CT112_FULL_CYCLE_SPACE_UNPROVEN')\nSRC|CT112|1|42: disks=job.get('disks');need(type(disks) is list and len(disks)==1,'CT112_SINGLE_ROOTFS_REQUIRED')\nSRC|CT112|1|44: need(disk.get('slot')=='rootfs' and disk.get('class')=='managed-volume' and disk.get('backup_setting') in ('included','included_default_rootfs'),'CT112_MANAGED_ROOTFS_REQUIRED')\nSRC|CT112|1|46: need(type(size) is int and 04*1024*1024:raise RuntimeError('PVESH_READ_FAILED')\nSRC|CT112|4|29: except (ValueError,UnicodeError):raise RuntimeError('PVESH_JSON') from None\nSRC|CT112|4|33: if t.sha(b)!=PLAN_SHA:raise RuntimeError('PLAN_REFERENCE_IDENTITY')\nSRC|CT112|4|35: except (ValueError,UnicodeError):raise RuntimeError('PLAN_REFERENCE_JSON') from None\nSRC|CT112|4|39: if not stat.S_ISREG(st.st_mode) or st.st_uid!=0 or st.st_size>1024*1024:raise RuntimeError('VZDUMP_DEFAULTS_FILE')\nSRC|CT112|4|45: if not isinstance(rows,list) or not isinstance(stores,list):raise RuntimeError('PVE_RESOURCE_SCHEMA')\nSRC|CT112|4|50: if type(vmid) is not int:raise RuntimeError('PVE_VMID_SCHEMA')\nSRC|CT112|4|57: if not stat.S_ISREG(st.st_mode) or st.st_uid!=0 or not (st.st_mode&0o111) or _sha(path)!=want:raise RuntimeError('TOOL_IDENTITY')\nSRC|CT112|4|63: if len(entries)!=13 or len({x['account_id'] for x in entries})!=13:raise RuntimeError('RCLONE_INVENTORY')\nSRC|CT112|4|64: if hashlib.sha256(binding.encode()).hexdigest()!=BINDING_FP:raise RuntimeError('RCLONE_BINDING')\nSRC|CT112|4|83: if e!=self.entries or bind!=self.binding:raise RuntimeError('RCLONE_SEMANTIC_DRIFT')\nSRC|CT112|4|100:def run_target(target,state_writer=None):\nSRC|CT112|4|101: if not isinstance(target,dict) or target.get('logical_id')!=CT_ID or target.get('vmid')!=112:return (_ for _ in ()).throw(RuntimeError('CT112_DESCRIPTOR'))\nSRC|CT112|4|102: if _sha(PLAN,1024*1024)!=PLAN_SHA:raise RuntimeError('PLAN_REFERENCE_IDENTITY')\nSRC|CT112|4|109: if _sha(PVESH)!=pvesh_sha:raise RuntimeError('PVESH_CHANGED')\nSRC|CT112|4|117: if e!=entries or b!=binding:raise RuntimeError('RCLONE_SEMANTIC_DRIFT')\nSRC|CT112|4|127: if not isinstance(reps,list) or len(reps)!=2 or len({x.get('account_id') for x in reps})!=2:raise RuntimeError('REPLICA_PHYSICAL_INDEPENDENCE')\nSRC|CT112|4|128: if r.get('archive_cloud_restore_verified') is not True or r.get('local_payload_files_remaining')!=0:raise RuntimeError('CT112_RESTORE_CONTRACT')\nSRC|CT112|4|131: if work.exists():raise RuntimeError('CT112_WORKSPACE_CLEANUP')\nSRC|CT112|4|135: except BaseException:\nSRC|CT112|4|137: except BaseException:pass\nREC|CT112_SOURCE_FILE|IDX=5|BASENAME=pve282.py|SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012|SIZE=6195\nSRC|CT112|5|26: need(core.valid_hash(expected_config) and job.get('config_sha256')==expected_config,'CT112_PLAN_CONFIG_ANCHOR')\nSRC|CT112|5|32: need(TARGET_VMID in by_id,'CT112_MISSING_FROM_ACCEPTED265')\nSRC|CT112|5|38: need(len(selected)==1,'CT112_NOT_UNIQUE')\nSRC|CT112|5|41: need(job.get('compression_dependent') is False and job.get('configured_full_cycle_fits') is True,'CT112_FULL_CYCLE_SPACE_UNPROVEN')\nSRC|CT112|5|42: disks=job.get('disks');need(type(disks) is list and len(disks)==1,'CT112_SINGLE_ROOTFS_REQUIRED')\nSRC|CT112|5|44: need(disk.get('slot')=='rootfs' and disk.get('class')=='managed-volume' and disk.get('backup_setting') in ('included','included_default_rootfs'),'CT112_MANAGED_ROOTFS_REQUIRED')\nSRC|CT112|5|46: need(type(size) is int and 04*1024*1024:raise RuntimeError('PVESH_READ_FAILED')\nSRC|CT112|8|29: except (ValueError,UnicodeError):raise RuntimeError('PVESH_JSON') from None\nSRC|CT112|8|33: if t.sha(b)!=PLAN_SHA:raise RuntimeError('PLAN_REFERENCE_IDENTITY')\nSRC|CT112|8|35: except (ValueError,UnicodeError):raise RuntimeError('PLAN_REFERENCE_JSON') from None\nSRC|CT112|8|39: if not stat.S_ISREG(st.st_mode) or st.st_uid!=0 or st.st_size>1024*1024:raise RuntimeError('VZDUMP_DEFAULTS_FILE')\nSRC|CT112|8|45: if not isinstance(rows,list) or not isinstance(stores,list):raise RuntimeError('PVE_RESOURCE_SCHEMA')\nSRC|CT112|8|50: if type(vmid) is not int:raise RuntimeError('PVE_VMID_SCHEMA')\nSRC|CT112|8|57: if not stat.S_ISREG(st.st_mode) or st.st_uid!=0 or not (st.st_mode&0o111) or _sha(path)!=want:raise RuntimeError('TOOL_IDENTITY')\nSRC|CT112|8|63: if len(entries)!=13 or len({x['account_id'] for x in entries})!=13:raise RuntimeError('RCLONE_INVENTORY')\nSRC|CT112|8|64: if hashlib.sha256(binding.encode()).hexdigest()!=BINDING_FP:raise RuntimeError('RCLONE_BINDING')\nSRC|CT112|8|83: if e!=self.entries or bind!=self.binding:raise RuntimeError('RCLONE_SEMANTIC_DRIFT')\nSRC|CT112|8|100:def run_target(target,state_writer=None):\nSRC|CT112|8|101: if not isinstance(target,dict) or target.get('logical_id')!=CT_ID or target.get('vmid')!=112:return (_ for _ in ()).throw(RuntimeError('CT112_DESCRIPTOR'))\nSRC|CT112|8|102: if _sha(PLAN,1024*1024)!=PLAN_SHA:raise RuntimeError('PLAN_REFERENCE_IDENTITY')\nSRC|CT112|8|109: if _sha(PVESH)!=pvesh_sha:raise RuntimeError('PVESH_CHANGED')\nSRC|CT112|8|117: if e!=entries or b!=binding:raise RuntimeError('RCLONE_SEMANTIC_DRIFT')\nSRC|CT112|8|127: if not isinstance(reps,list) or len(reps)!=2 or len({x.get('account_id') for x in reps})!=2:raise RuntimeError('REPLICA_PHYSICAL_INDEPENDENCE')\nSRC|CT112|8|128: if r.get('archive_cloud_restore_verified') is not True or r.get('local_payload_files_remaining')!=0:raise RuntimeError('CT112_RESTORE_CONTRACT')\nSRC|CT112|8|131: if work.exists():raise RuntimeError('CT112_WORKSPACE_CLEANUP')\nSRC|CT112|8|135: except BaseException:\nSRC|CT112|8|137: except BaseException:pass\nREC|CT112_SOURCE_FILE|IDX=9|BASENAME=pve282.py|SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012|SIZE=6195\nSRC|CT112|9|26: need(core.valid_hash(expected_config) and job.get('config_sha256')==expected_config,'CT112_PLAN_CONFIG_ANCHOR')\nSRC|CT112|9|32: need(TARGET_VMID in by_id,'CT112_MISSING_FROM_ACCEPTED265')\nSRC|CT112|9|38: need(len(selected)==1,'CT112_NOT_UNIQUE')\nSRC|CT112|9|41: need(job.get('compression_dependent') is False and job.get('configured_full_cycle_fits') is True,'CT112_FULL_CYCLE_SPACE_UNPROVEN')\nSRC|CT112|9|42: disks=job.get('disks');need(type(disks) is list and len(disks)==1,'CT112_SINGLE_ROOTFS_REQUIRED')\nSRC|CT112|9|44: need(disk.get('slot')=='rootfs' and disk.get('class')=='managed-volume' and disk.get('backup_setting') in ('included','included_default_rootfs'),'CT112_MANAGED_ROOTFS_REQUIRED')\nSRC|CT112|9|46: need(type(size) is int and 04*1024*1024:raise RuntimeError('PVESH_READ_FAILED')\nSRC|CT112|12|29: except (ValueError,UnicodeError):raise RuntimeError('PVESH_JSON') from None\nSRC|CT112|12|33: if t.sha(b)!=PLAN_SHA:raise RuntimeError('PLAN_REFERENCE_IDENTITY')\nSRC|CT112|12|35: except (ValueError,UnicodeError):raise RuntimeError('PLAN_REFERENCE_JSON') from None\nSRC|CT112|12|39: if not stat.S_ISREG(st.st_mode) or st.st_uid!=0 or st.st_size>1024*1024:raise RuntimeError('VZDUMP_DEFAULTS_FILE')\nSRC|CT112|12|45: if not isinstance(rows,list) or not isinstance(stores,list):raise RuntimeError('PVE_RESOURCE_SCHEMA')\nSRC|CT112|12|50: if type(vmid) is not int:raise RuntimeError('PVE_VMID_SCHEMA')\nSRC|CT112|12|57: if type(plan) is not dict or plan.get('schema_version')!=1 or plan.get('node')!='pve01':raise RuntimeError('CT112_PLAN_SCHEMA')\nSRC|CT112|12|59: if type(jobs) is not list or type(plan.get('local_guest_count')) is not int or plan.get('local_guest_count')!=len(jobs):raise RuntimeError('CT112_PLAN_SCHEMA')\nSRC|CT112|12|60: if plan.get('global_blockers')!=[]:raise RuntimeError('CT112_GLOBAL_BLOCKERS')\nSRC|CT112|12|62: if len(vmids)!=len(jobs) or len(vmids)!=len(set(vmids)):raise RuntimeError('CT112_PLAN_MEMBERSHIP')\nSRC|CT112|12|64: if len(matches)!=1:raise RuntimeError('CT112_PLAN_MEMBERSHIP')\nSRC|CT112|12|67: if job.get('node')!='pve01' or job.get('type')!='lxc':raise RuntimeError('CT112_PLAN_IDENTITY')\nSRC|CT112|12|68: if job.get('coverage_eligible') is not True or job.get('blockers')!=[]:raise RuntimeError('CT112_PLAN_BLOCKED')\nSRC|CT112|12|69: if job.get('compression_dependent') is not False or job.get('configured_full_cycle_fits') is not True:raise RuntimeError('CT112_CAPACITY_POLICY')\nSRC|CT112|12|70: if type(job.get('configured_archive_bound_bytes')) is not int or job.get('archive_cap_bytes')!=job.get('configured_archive_bound_bytes'):raise RuntimeError('CT112_CAPACITY_BOUND')\nSRC|CT112|12|71: if expected_config is not None and job.get('config_sha256')!=expected_config:raise RuntimeError('CT112_CONFIG_DRIFT')\nSRC|CT112|12|76: if type(pair) is not tuple or len(pair)!=2 or any(type(n) is not int for n in pair):raise RuntimeError('PVE_IDMAP_HOST_MAPPING_SCHEMA')\nSRC|CT112|12|84: if not stat.S_ISREG(st.st_mode) or st.st_uid!=0 or not (st.st_mode&0o111) or _sha(path)!=want:raise RuntimeError('TOOL_IDENTITY')\nSRC|CT112|12|90: if len(entries)!=13 or len({x['account_id'] for x in entries})!=13:raise RuntimeError('RCLONE_INVENTORY')\nSRC|CT112|12|91: if hashlib.sha256(binding.encode()).hexdigest()!=BINDING_FP:raise RuntimeError('RCLONE_BINDING')\nSRC|CT112|12|110: if e!=self.entries or bind!=self.binding:raise RuntimeError('RCLONE_SEMANTIC_DRIFT')\nSRC|CT112|12|127:def run_target(target,state_writer=None):\nSRC|CT112|12|128: if not isinstance(target,dict) or target.get('logical_id')!=CT_ID or target.get('vmid')!=112:return (_ for _ in ()).throw(RuntimeError('CT112_DESCRIPTOR'))\nSRC|CT112|12|129: if _sha(PLAN,1024*1024)!=PLAN_SHA:raise RuntimeError('PLAN_REFERENCE_IDENTITY')\nSRC|CT112|12|137: if _sha(PVESH)!=pvesh_sha:raise RuntimeError('PVESH_CHANGED')\nSRC|CT112|12|146: if e!=entries or b!=binding:raise RuntimeError('RCLONE_SEMANTIC_DRIFT')\nSRC|CT112|12|156: if not isinstance(reps,list) or len(reps)!=2 or len({x.get('account_id') for x in reps})!=2:raise RuntimeError('REPLICA_PHYSICAL_INDEPENDENCE')\nSRC|CT112|12|157: if r.get('archive_cloud_restore_verified') is not True or r.get('local_payload_files_remaining')!=0:raise RuntimeError('CT112_RESTORE_CONTRACT')\nSRC|CT112|12|160: if work.exists():raise RuntimeError('CT112_WORKSPACE_CLEANUP')\nSRC|CT112|12|164: except BaseException:\nSRC|CT112|12|166: except BaseException:pass\nREC|CT112_SOURCE_FILE|IDX=13|BASENAME=representative_driver.py|SHA256=b3050a8f95e6d9826a4f0786cd3ca32012b6ab10486d10e4981b50b8a0affff2|SIZE=4214\nSRC|CT112|13|25:CT112_ID='guest-pve01-lxc-112'\nSRC|CT112|13|26:REPRESENTATIVE_IDS=(CT112_ID,)+LEGACY_IDS\nSRC|CT112|13|53: return legacy, selected[CT112_ID]\nSRC|CT112|13|65: except BaseException:\nSRC|CT112|13|67: except FileNotFoundError: pass\nSRC|CT112|13|72: def write_state(logical_id,result,**kw):\nSRC|CT112|13|77: return write_state\nSRC|CT112|13|86: previous=getattr(engine,'write_state',None)\nSRC|CT112|13|89: engine.write_state=_state_writer(STATE_ROOT)\nSRC|CT112|13|93: engine.write_state=previous\nSRC|CT112|13|97: raise ContractError('CT112_RESULT_SCHEMA')\nSRC|CT112|13|98: if result.get('logical_id')!=CT112_ID or result.get('status')!='OK':\nSRC|CT112|13|99: raise ContractError('CT112_RESULT_STATUS')\nSRC|CT112|13|101: raise ContractError('CT112_RESTORE_NOT_VERIFIED')\nSRC|CT112|13|103: raise ContractError('CT112_LOCAL_PAYLOAD_REMAINS')\nSRC|CT112|13|108: raise ContractError('CT112_CALLBACK_REQUIRED')\nREC|CT112_SOURCE_FILE|IDX=14|BASENAME=pve282.py|SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012|SIZE=6195\nSRC|CT112|14|26: need(core.valid_hash(expected_config) and job.get('config_sha256')==expected_config,'CT112_PLAN_CONFIG_ANCHOR')\nSRC|CT112|14|32: need(TARGET_VMID in by_id,'CT112_MISSING_FROM_ACCEPTED265')\nSRC|CT112|14|38: need(len(selected)==1,'CT112_NOT_UNIQUE')\nSRC|CT112|14|41: need(job.get('compression_dependent') is False and job.get('configured_full_cycle_fits') is True,'CT112_FULL_CYCLE_SPACE_UNPROVEN')\nSRC|CT112|14|42: disks=job.get('disks');need(type(disks) is list and len(disks)==1,'CT112_SINGLE_ROOTFS_REQUIRED')\nSRC|CT112|14|44: need(disk.get('slot')=='rootfs' and disk.get('class')=='managed-volume' and disk.get('backup_setting') in ('included','included_default_rootfs'),'CT112_MANAGED_ROOTFS_REQUIRED')\nSRC|CT112|14|46: need(type(size) is int and 04*1024*1024:raise RuntimeError('PVESH_READ_FAILED')\nSRC|CT112|18|29: except (ValueError,UnicodeError):raise RuntimeError('PVESH_JSON') from None\nSRC|CT112|18|33: if t.sha(b)!=PLAN_SHA:raise RuntimeError('PLAN_REFERENCE_IDENTITY')\nSRC|CT112|18|35: except (ValueError,UnicodeError):raise RuntimeError('PLAN_REFERENCE_JSON') from None\nSRC|CT112|18|39: if not stat.S_ISREG(st.st_mode) or st.st_uid!=0 or st.st_size>1024*1024:raise RuntimeError('VZDUMP_DEFAULTS_FILE')\nSRC|CT112|18|45: if not isinstance(rows,list) or not isinstance(stores,list):raise RuntimeError('PVE_RESOURCE_SCHEMA')\nSRC|CT112|18|50: if type(vmid) is not int:raise RuntimeError('PVE_VMID_SCHEMA')\nSRC|CT112|18|57: if type(plan) is not dict or plan.get('schema_version')!=1 or plan.get('node')!='pve01':raise RuntimeError('CT112_PLAN_SCHEMA')\nSRC|CT112|18|59: if type(jobs) is not list or type(plan.get('local_guest_count')) is not int or plan.get('local_guest_count')!=len(jobs):raise RuntimeError('CT112_PLAN_SCHEMA')\nSRC|CT112|18|60: if plan.get('global_blockers')!=[]:raise RuntimeError('CT112_GLOBAL_BLOCKERS')\nSRC|CT112|18|62: if len(vmids)!=len(jobs) or len(vmids)!=len(set(vmids)):raise RuntimeError('CT112_PLAN_MEMBERSHIP')\nSRC|CT112|18|64: if len(matches)!=1:raise RuntimeError('CT112_PLAN_MEMBERSHIP')\nSRC|CT112|18|67: if job.get('node')!='pve01' or job.get('type')!='lxc':raise RuntimeError('CT112_PLAN_IDENTITY')\nSRC|CT112|18|68: if job.get('coverage_eligible') is not True or job.get('blockers')!=[]:raise RuntimeError('CT112_PLAN_BLOCKED')\nSRC|CT112|18|69: if job.get('compression_dependent') is not False or job.get('configured_full_cycle_fits') is not True:raise RuntimeError('CT112_CAPACITY_POLICY')\nSRC|CT112|18|70: if type(job.get('configured_archive_bound_bytes')) is not int or job.get('archive_cap_bytes')!=job.get('configured_archive_bound_bytes'):raise RuntimeError('CT112_CAPACITY_BOUND')\nSRC|CT112|18|71: if expected_config is not None and job.get('config_sha256')!=expected_config:raise RuntimeError('CT112_CONFIG_DRIFT')\nSRC|CT112|18|76: if not stat.S_ISREG(st.st_mode) or st.st_uid!=0 or not (st.st_mode&0o111) or _sha(path)!=want:raise RuntimeError('TOOL_IDENTITY')\nSRC|CT112|18|82: if len(entries)!=13 or len({x['account_id'] for x in entries})!=13:raise RuntimeError('RCLONE_INVENTORY')\nSRC|CT112|18|83: if hashlib.sha256(binding.encode()).hexdigest()!=BINDING_FP:raise RuntimeError('RCLONE_BINDING')\nSRC|CT112|18|102: if e!=self.entries or bind!=self.binding:raise RuntimeError('RCLONE_SEMANTIC_DRIFT')\nSRC|CT112|18|119:def run_target(target,state_writer=None):\nSRC|CT112|18|120: if not isinstance(target,dict) or target.get('logical_id')!=CT_ID or target.get('vmid')!=112:return (_ for _ in ()).throw(RuntimeError('CT112_DESCRIPTOR'))\nSRC|CT112|18|121: if _sha(PLAN,1024*1024)!=PLAN_SHA:raise RuntimeError('PLAN_REFERENCE_IDENTITY')\nSRC|CT112|18|129: if _sha(PVESH)!=pvesh_sha:raise RuntimeError('PVESH_CHANGED')\nSRC|CT112|18|138: if e!=entries or b!=binding:raise RuntimeError('RCLONE_SEMANTIC_DRIFT')\nSRC|CT112|18|148: if not isinstance(reps,list) or len(reps)!=2 or len({x.get('account_id') for x in reps})!=2:raise RuntimeError('REPLICA_PHYSICAL_INDEPENDENCE')\nSRC|CT112|18|149: if r.get('archive_cloud_restore_verified') is not True or r.get('local_payload_files_remaining')!=0:raise RuntimeError('CT112_RESTORE_CONTRACT')\nSRC|CT112|18|152: if work.exists():raise RuntimeError('CT112_WORKSPACE_CLEANUP')\nSRC|CT112|18|156: except BaseException:\nSRC|CT112|18|158: except BaseException:pass\nREC|CT112_SOURCE_FILE|IDX=19|BASENAME=pve282.py|SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012|SIZE=6195\nSRC|CT112|19|26: need(core.valid_hash(expected_config) and job.get('config_sha256')==expected_config,'CT112_PLAN_CONFIG_ANCHOR')\nSRC|CT112|19|32: need(TARGET_VMID in by_id,'CT112_MISSING_FROM_ACCEPTED265')\nSRC|CT112|19|38: need(len(selected)==1,'CT112_NOT_UNIQUE')\nSRC|CT112|19|41: need(job.get('compression_dependent') is False and job.get('configured_full_cycle_fits') is True,'CT112_FULL_CYCLE_SPACE_UNPROVEN')\nSRC|CT112|19|42: disks=job.get('disks');need(type(disks) is list and len(disks)==1,'CT112_SINGLE_ROOTFS_REQUIRED')\nSRC|CT112|19|44: need(disk.get('slot')=='rootfs' and disk.get('class')=='managed-volume' and disk.get('backup_setting') in ('included','included_default_rootfs'),'CT112_MANAGED_ROOTFS_REQUIRED')\nSRC|CT112|19|46: need(type(size) is int and 04*1024*1024:raise RuntimeError('PVESH_READ_FAILED') -SRC|CT112|4|29: except (ValueError,UnicodeError):raise RuntimeError('PVESH_JSON') from None -SRC|CT112|4|33: if t.sha(b)!=PLAN_SHA:raise RuntimeError('PLAN_REFERENCE_IDENTITY') -SRC|CT112|4|35: except (ValueError,UnicodeError):raise RuntimeError('PLAN_REFERENCE_JSON') from None -SRC|CT112|4|39: if not stat.S_ISREG(st.st_mode) or st.st_uid!=0 or st.st_size>1024*1024:raise RuntimeError('VZDUMP_DEFAULTS_FILE') -SRC|CT112|4|45: if not isinstance(rows,list) or not isinstance(stores,list):raise RuntimeError('PVE_RESOURCE_SCHEMA') -SRC|CT112|4|50: if type(vmid) is not int:raise RuntimeError('PVE_VMID_SCHEMA') -SRC|CT112|4|57: if not stat.S_ISREG(st.st_mode) or st.st_uid!=0 or not (st.st_mode&0o111) or _sha(path)!=want:raise RuntimeError('TOOL_IDENTITY') -SRC|CT112|4|63: if len(entries)!=13 or len({x['account_id'] for x in entries})!=13:raise RuntimeError('RCLONE_INVENTORY') -SRC|CT112|4|64: if hashlib.sha256(binding.encode()).hexdigest()!=BINDING_FP:raise RuntimeError('RCLONE_BINDING') -SRC|CT112|4|83: if e!=self.entries or bind!=self.binding:raise RuntimeError('RCLONE_SEMANTIC_DRIFT') -SRC|CT112|4|100:def run_target(target,state_writer=None): -SRC|CT112|4|101: if not isinstance(target,dict) or target.get('logical_id')!=CT_ID or target.get('vmid')!=112:return (_ for _ in ()).throw(RuntimeError('CT112_DESCRIPTOR')) -SRC|CT112|4|102: if _sha(PLAN,1024*1024)!=PLAN_SHA:raise RuntimeError('PLAN_REFERENCE_IDENTITY') -SRC|CT112|4|109: if _sha(PVESH)!=pvesh_sha:raise RuntimeError('PVESH_CHANGED') -SRC|CT112|4|117: if e!=entries or b!=binding:raise RuntimeError('RCLONE_SEMANTIC_DRIFT') -SRC|CT112|4|127: if not isinstance(reps,list) or len(reps)!=2 or len({x.get('account_id') for x in reps})!=2:raise RuntimeError('REPLICA_PHYSICAL_INDEPENDENCE') -SRC|CT112|4|128: if r.get('archive_cloud_restore_verified') is not True or r.get('local_payload_files_remaining')!=0:raise RuntimeError('CT112_RESTORE_CONTRACT') -SRC|CT112|4|131: if work.exists():raise RuntimeError('CT112_WORKSPACE_CLEANUP') -SRC|CT112|4|135: except BaseException: -SRC|CT112|4|137: except BaseException:pass -REC|CT112_SOURCE_FILE|IDX=5|BASENAME=pve282.py|SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012|SIZE=6195 -SRC|CT112|5|26: need(core.valid_hash(expected_config) and job.get('config_sha256')==expected_config,'CT112_PLAN_CONFIG_ANCHOR') -SRC|CT112|5|32: need(TARGET_VMID in by_id,'CT112_MISSING_FROM_ACCEPTED265') -SRC|CT112|5|38: need(len(selected)==1,'CT112_NOT_UNIQUE') -SRC|CT112|5|41: need(job.get('compression_dependent') is False and job.get('configured_full_cycle_fits') is True,'CT112_FULL_CYCLE_SPACE_UNPROVEN') -SRC|CT112|5|42: disks=job.get('disks');need(type(disks) is list and len(disks)==1,'CT112_SINGLE_ROOTFS_REQUIRED') -SRC|CT112|5|44: need(disk.get('slot')=='rootfs' and disk.get('class')=='managed-volume' and disk.get('backup_setting') in ('included','included_default_rootfs'),'CT112_MANAGED_ROOTFS_REQUIRED') -SRC|CT112|5|46: need(type(size) is int and 04*1024*1024:raise RuntimeError('PVESH_READ_FAILED') -SRC|CT112|8|29: except (ValueError,UnicodeError):raise RuntimeError('PVESH_JSON') from None -SRC|CT112|8|33: if t.sha(b)!=PLAN_SHA:raise RuntimeError('PLAN_REFERENCE_IDENTITY') -SRC|CT112|8|35: except (ValueError,UnicodeError):raise RuntimeError('PLAN_REFERENCE_JSON') from None -SRC|CT112|8|39: if not stat.S_ISREG(st.st_mode) or st.st_uid!=0 or st.st_size>1024*1024:raise RuntimeError('VZDUMP_DEFAULTS_FILE') -SRC|CT112|8|45: if not isinstance(rows,list) or not isinstance(stores,list):raise RuntimeError('PVE_RESOURCE_SCHEMA') -SRC|CT112|8|50: if type(vmid) is not int:raise RuntimeError('PVE_VMID_SCHEMA') -SRC|CT112|8|57: if not stat.S_ISREG(st.st_mode) or st.st_uid!=0 or not (st.st_mode&0o111) or _sha(path)!=want:raise RuntimeError('TOOL_IDENTITY') -SRC|CT112|8|63: if len(entries)!=13 or len({x['account_id'] for x in entries})!=13:raise RuntimeError('RCLONE_INVENTORY') -SRC|CT112|8|64: if hashlib.sha256(binding.encode()).hexdigest()!=BINDING_FP:raise RuntimeError('RCLONE_BINDING') -SRC|CT112|8|83: if e!=self.entries or bind!=self.binding:raise RuntimeError('RCLONE_SEMANTIC_DRIFT') -SRC|CT112|8|100:def run_target(target,state_writer=None): -SRC|CT112|8|101: if not isinstance(target,dict) or target.get('logical_id')!=CT_ID or target.get('vmid')!=112:return (_ for _ in ()).throw(RuntimeError('CT112_DESCRIPTOR')) -SRC|CT112|8|102: if _sha(PLAN,1024*1024)!=PLAN_SHA:raise RuntimeError('PLAN_REFERENCE_IDENTITY') -SRC|CT112|8|109: if _sha(PVESH)!=pvesh_sha:raise RuntimeError('PVESH_CHANGED') -SRC|CT112|8|117: if e!=entries or b!=binding:raise RuntimeError('RCLONE_SEMANTIC_DRIFT') -SRC|CT112|8|127: if not isinstance(reps,list) or len(reps)!=2 or len({x.get('account_id') for x in reps})!=2:raise RuntimeError('REPLICA_PHYSICAL_INDEPENDENCE') -SRC|CT112|8|128: if r.get('archive_cloud_restore_verified') is not True or r.get('local_payload_files_remaining')!=0:raise RuntimeError('CT112_RESTORE_CONTRACT') -SRC|CT112|8|131: if work.exists():raise RuntimeError('CT112_WORKSPACE_CLEANUP') -SRC|CT112|8|135: except BaseException: -SRC|CT112|8|137: except BaseException:pass -REC|CT112_SOURCE_FILE|IDX=9|BASENAME=pve282.py|SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012|SIZE=6195 -SRC|CT112|9|26: need(core.valid_hash(expected_config) and job.get('config_sha256')==expected_config,'CT112_PLAN_CONFIG_ANCHOR') -SRC|CT112|9|32: need(TARGET_VMID in by_id,'CT112_MISSING_FROM_ACCEPTED265') -SRC|CT112|9|38: need(len(selected)==1,'CT112_NOT_UNIQUE') -SRC|CT112|9|41: need(job.get('compression_dependent') is False and job.get('configured_full_cycle_fits') is True,'CT112_FULL_CYCLE_SPACE_UNPROVEN') -SRC|CT112|9|42: disks=job.get('disks');need(type(disks) is list and len(disks)==1,'CT112_SINGLE_ROOTFS_REQUIRED') -SRC|CT112|9|44: need(disk.get('slot')=='rootfs' and disk.get('class')=='managed-volume' and disk.get('backup_setting') in ('included','included_default_rootfs'),'CT112_MANAGED_ROOTFS_REQUIRED') -SRC|CT112|9|46: need(type(size) is int and 04*1024*1024:raise RuntimeError('PVESH_READ_FAILED') -SRC|CT112|12|29: except (ValueError,UnicodeError):raise RuntimeError('PVESH_JSON') from None -SRC|CT112|12|33: if t.sha(b)!=PLAN_SHA:raise RuntimeError('PLAN_REFERENCE_IDENTITY') -SRC|CT112|12|35: except (ValueError,UnicodeError):raise RuntimeError('PLAN_REFERENCE_JSON') from None -SRC|CT112|12|39: if not stat.S_ISREG(st.st_mode) or st.st_uid!=0 or st.st_size>1024*1024:raise RuntimeError('VZDUMP_DEFAULTS_FILE') -SRC|CT112|12|45: if not isinstance(rows,list) or not isinstance(stores,list):raise RuntimeError('PVE_RESOURCE_SCHEMA') -SRC|CT112|12|50: if type(vmid) is not int:raise RuntimeError('PVE_VMID_SCHEMA') -SRC|CT112|12|57: if type(plan) is not dict or plan.get('schema_version')!=1 or plan.get('node')!='pve01':raise RuntimeError('CT112_PLAN_SCHEMA') -SRC|CT112|12|59: if type(jobs) is not list or type(plan.get('local_guest_count')) is not int or plan.get('local_guest_count')!=len(jobs):raise RuntimeError('CT112_PLAN_SCHEMA') -SRC|CT112|12|60: if plan.get('global_blockers')!=[]:raise RuntimeError('CT112_GLOBAL_BLOCKERS') -SRC|CT112|12|62: if len(vmids)!=len(jobs) or len(vmids)!=len(set(vmids)):raise RuntimeError('CT112_PLAN_MEMBERSHIP') -SRC|CT112|12|64: if len(matches)!=1:raise RuntimeError('CT112_PLAN_MEMBERSHIP') -SRC|CT112|12|67: if job.get('node')!='pve01' or job.get('type')!='lxc':raise RuntimeError('CT112_PLAN_IDENTITY') -SRC|CT112|12|68: if job.get('coverage_eligible') is not True or job.get('blockers')!=[]:raise RuntimeError('CT112_PLAN_BLOCKED') -SRC|CT112|12|69: if job.get('compression_dependent') is not False or job.get('configured_full_cycle_fits') is not True:raise RuntimeError('CT112_CAPACITY_POLICY') -SRC|CT112|12|70: if type(job.get('configured_archive_bound_bytes')) is not int or job.get('archive_cap_bytes')!=job.get('configured_archive_bound_bytes'):raise RuntimeError('CT112_CAPACITY_BOUND') -SRC|CT112|12|71: if expected_config is not None and job.get('config_sha256')!=expected_config:raise RuntimeError('CT112_CONFIG_DRIFT') -SRC|CT112|12|76: if type(pair) is not tuple or len(pair)!=2 or any(type(n) is not int for n in pair):raise RuntimeError('PVE_IDMAP_HOST_MAPPING_SCHEMA') -SRC|CT112|12|84: if not stat.S_ISREG(st.st_mode) or st.st_uid!=0 or not (st.st_mode&0o111) or _sha(path)!=want:raise RuntimeError('TOOL_IDENTITY') -SRC|CT112|12|90: if len(entries)!=13 or len({x['account_id'] for x in entries})!=13:raise RuntimeError('RCLONE_INVENTORY') -SRC|CT112|12|91: if hashlib.sha256(binding.encode()).hexdigest()!=BINDING_FP:raise RuntimeError('RCLONE_BINDING') -SRC|CT112|12|110: if e!=self.entries or bind!=self.binding:raise RuntimeError('RCLONE_SEMANTIC_DRIFT') -SRC|CT112|12|127:def run_target(target,state_writer=None): -SRC|CT112|12|128: if not isinstance(target,dict) or target.get('logical_id')!=CT_ID or target.get('vmid')!=112:return (_ for _ in ()).throw(RuntimeError('CT112_DESCRIPTOR')) -SRC|CT112|12|129: if _sha(PLAN,1024*1024)!=PLAN_SHA:raise RuntimeError('PLAN_REFERENCE_IDENTITY') -SRC|CT112|12|137: if _sha(PVESH)!=pvesh_sha:raise RuntimeError('PVESH_CHANGED') -SRC|CT112|12|146: if e!=entries or b!=binding:raise RuntimeError('RCLONE_SEMANTIC_DRIFT') -SRC|CT112|12|156: if not isinstance(reps,list) or len(reps)!=2 or len({x.get('account_id') for x in reps})!=2:raise RuntimeError('REPLICA_PHYSICAL_INDEPENDENCE') -SRC|CT112|12|157: if r.get('archive_cloud_restore_verified') is not True or r.get('local_payload_files_remaining')!=0:raise RuntimeError('CT112_RESTORE_CONTRACT') -SRC|CT112|12|160: if work.exists():raise RuntimeError('CT112_WORKSPACE_CLEANUP') -SRC|CT112|12|164: except BaseException: -SRC|CT112|12|166: except BaseException:pass -REC|CT112_SOURCE_FILE|IDX=13|BASENAME=representative_driver.py|SHA256=b3050a8f95e6d9826a4f0786cd3ca32012b6ab10486d10e4981b50b8a0affff2|SIZE=4214 -SRC|CT112|13|25:CT112_ID='guest-pve01-lxc-112' -SRC|CT112|13|26:REPRESENTATIVE_IDS=(CT112_ID,)+LEGACY_IDS -SRC|CT112|13|53: return legacy, selected[CT112_ID] -SRC|CT112|13|65: except BaseException: -SRC|CT112|13|67: except FileNotFoundError: pass -SRC|CT112|13|72: def write_state(logical_id,result,**kw): -SRC|CT112|13|77: return write_state -SRC|CT112|13|86: previous=getattr(engine,'write_state',None) -SRC|CT112|13|89: engine.write_state=_state_writer(STATE_ROOT) -SRC|CT112|13|93: engine.write_state=previous -SRC|CT112|13|97: raise ContractError('CT112_RESULT_SCHEMA') -SRC|CT112|13|98: if result.get('logical_id')!=CT112_ID or result.get('status')!='OK': -SRC|CT112|13|99: raise ContractError('CT112_RESULT_STATUS') -SRC|CT112|13|101: raise ContractError('CT112_RESTORE_NOT_VERIFIED') -SRC|CT112|13|103: raise ContractError('CT112_LOCAL_PAYLOAD_REMAINS') -SRC|CT112|13|108: raise ContractError('CT112_CALLBACK_REQUIRED') -REC|CT112_SOURCE_FILE|IDX=14|BASENAME=pve282.py|SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012|SIZE=6195 -SRC|CT112|14|26: need(core.valid_hash(expected_config) and job.get('config_sha256')==expected_config,'CT112_PLAN_CONFIG_ANCHOR') -SRC|CT112|14|32: need(TARGET_VMID in by_id,'CT112_MISSING_FROM_ACCEPTED265') -SRC|CT112|14|38: need(len(selected)==1,'CT112_NOT_UNIQUE') -SRC|CT112|14|41: need(job.get('compression_dependent') is False and job.get('configured_full_cycle_fits') is True,'CT112_FULL_CYCLE_SPACE_UNPROVEN') -SRC|CT112|14|42: disks=job.get('disks');need(type(disks) is list and len(disks)==1,'CT112_SINGLE_ROOTFS_REQUIRED') -SRC|CT112|14|44: need(disk.get('slot')=='rootfs' and disk.get('class')=='managed-volume' and disk.get('backup_setting') in ('included','included_default_rootfs'),'CT112_MANAGED_ROOTFS_REQUIRED') -SRC|CT112|14|46: need(type(size) is int and 04*1024*1024:raise RuntimeError('PVESH_READ_FAILED') -SRC|CT112|18|29: except (ValueError,UnicodeError):raise RuntimeError('PVESH_JSON') from None -SRC|CT112|18|33: if t.sha(b)!=PLAN_SHA:raise RuntimeError('PLAN_REFERENCE_IDENTITY') -SRC|CT112|18|35: except (ValueError,UnicodeError):raise RuntimeError('PLAN_REFERENCE_JSON') from None -SRC|CT112|18|39: if not stat.S_ISREG(st.st_mode) or st.st_uid!=0 or st.st_size>1024*1024:raise RuntimeError('VZDUMP_DEFAULTS_FILE') -SRC|CT112|18|45: if not isinstance(rows,list) or not isinstance(stores,list):raise RuntimeError('PVE_RESOURCE_SCHEMA') -SRC|CT112|18|50: if type(vmid) is not int:raise RuntimeError('PVE_VMID_SCHEMA') -SRC|CT112|18|57: if type(plan) is not dict or plan.get('schema_version')!=1 or plan.get('node')!='pve01':raise RuntimeError('CT112_PLAN_SCHEMA') -SRC|CT112|18|59: if type(jobs) is not list or type(plan.get('local_guest_count')) is not int or plan.get('local_guest_count')!=len(jobs):raise RuntimeError('CT112_PLAN_SCHEMA') -SRC|CT112|18|60: if plan.get('global_blockers')!=[]:raise RuntimeError('CT112_GLOBAL_BLOCKERS') -SRC|CT112|18|62: if len(vmids)!=len(jobs) or len(vmids)!=len(set(vmids)):raise RuntimeError('CT112_PLAN_MEMBERSHIP') -SRC|CT112|18|64: if len(matches)!=1:raise RuntimeError('CT112_PLAN_MEMBERSHIP') -SRC|CT112|18|67: if job.get('node')!='pve01' or job.get('type')!='lxc':raise RuntimeError('CT112_PLAN_IDENTITY') -SRC|CT112|18|68: if job.get('coverage_eligible') is not True or job.get('blockers')!=[]:raise RuntimeError('CT112_PLAN_BLOCKED') -SRC|CT112|18|69: if job.get('compression_dependent') is not False or job.get('configured_full_cycle_fits') is not True:raise RuntimeError('CT112_CAPACITY_POLICY') -SRC|CT112|18|70: if type(job.get('configured_archive_bound_bytes')) is not int or job.get('archive_cap_bytes')!=job.get('configured_archive_bound_bytes'):raise RuntimeError('CT112_CAPACITY_BOUND') -SRC|CT112|18|71: if expected_config is not None and job.get('config_sha256')!=expected_config:raise RuntimeError('CT112_CONFIG_DRIFT') -SRC|CT112|18|76: if not stat.S_ISREG(st.st_mode) or st.st_uid!=0 or not (st.st_mode&0o111) or _sha(path)!=want:raise RuntimeError('TOOL_IDENTITY') -SRC|CT112|18|82: if len(entries)!=13 or len({x['account_id'] for x in entries})!=13:raise RuntimeError('RCLONE_INVENTORY') -SRC|CT112|18|83: if hashlib.sha256(binding.encode()).hexdigest()!=BINDING_FP:raise RuntimeError('RCLONE_BINDING') -SRC|CT112|18|102: if e!=self.entries or bind!=self.binding:raise RuntimeError('RCLONE_SEMANTIC_DRIFT') -SRC|CT112|18|119:def run_target(target,state_writer=None): -SRC|CT112|18|120: if not isinstance(target,dict) or target.get('logical_id')!=CT_ID or target.get('vmid')!=112:return (_ for _ in ()).throw(RuntimeError('CT112_DESCRIPTOR')) -SRC|CT112|18|121: if _sha(PLAN,1024*1024)!=PLAN_SHA:raise RuntimeError('PLAN_REFERENCE_IDENTITY') -SRC|CT112|18|129: if _sha(PVESH)!=pvesh_sha:raise RuntimeError('PVESH_CHANGED') -SRC|CT112|18|138: if e!=entries or b!=binding:raise RuntimeError('RCLONE_SEMANTIC_DRIFT') -SRC|CT112|18|148: if not isinstance(reps,list) or len(reps)!=2 or len({x.get('account_id') for x in reps})!=2:raise RuntimeError('REPLICA_PHYSICAL_INDEPENDENCE') -SRC|CT112|18|149: if r.get('archive_cloud_restore_verified') is not True or r.get('local_payload_files_remaining')!=0:raise RuntimeError('CT112_RESTORE_CONTRACT') -SRC|CT112|18|152: if work.exists():raise RuntimeError('CT112_WORKSPACE_CLEANUP') -SRC|CT112|18|156: except BaseException: -SRC|CT112|18|158: except BaseException:pass -REC|CT112_SOURCE_FILE|IDX=19|BASENAME=pve282.py|SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012|SIZE=6195 -SRC|CT112|19|26: need(core.valid_hash(expected_config) and job.get('config_sha256')==expected_config,'CT112_PLAN_CONFIG_ANCHOR') -SRC|CT112|19|32: need(TARGET_VMID in by_id,'CT112_MISSING_FROM_ACCEPTED265') -SRC|CT112|19|38: need(len(selected)==1,'CT112_NOT_UNIQUE') -SRC|CT112|19|41: need(job.get('compression_dependent') is False and job.get('configured_full_cycle_fits') is True,'CT112_FULL_CYCLE_SPACE_UNPROVEN') -SRC|CT112|19|42: disks=job.get('disks');need(type(disks) is list and len(disks)==1,'CT112_SINGLE_ROOTFS_REQUIRED') -SRC|CT112|19|44: need(disk.get('slot')=='rootfs' and disk.get('class')=='managed-volume' and disk.get('backup_setting') in ('included','included_default_rootfs'),'CT112_MANAGED_ROOTFS_REQUIRED') -SRC|CT112|19|46: need(type(size) is int and 0