1
0

runtime: publish SUPPORT-261007-FINAL-RESIDUAL-RECONCILE-99790R1

This commit is contained in:
homelab-runtime-publisher
2026-10-07 17:41:53 +00:00
parent 3878adf03b
commit 0eaefe0bb1
4 changed files with 298 additions and 458 deletions
File diff suppressed because one or more lines are too long
@@ -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
+8 -8
View File
File diff suppressed because one or more lines are too long
+108 -450
View File
@@ -1,15 +1,15 @@
CHAT_OUTPUT_BEGIN
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
COMPONENT=final-residual-reconcile
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
COMMAND_SHA256=885666c9d57f84edfa9d1fd3234f1fc6888d360c338bd60d7fd2e00a0f9bd8eb
COMMAND_SHA256=367c6baa88b591c06ca5b94cc56542a6f153b1366aa0dd9c0fd3d7c61ab02a44
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGE_DECLARED=false
@@ -24,463 +24,121 @@ MUTATION_OUTCOME=NO_MUTATION
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=45a7d0df223ce5a48be093a0e3ef84cd7ce33615fa53ded2c8b7fdc3ce4e468c
SANITIZED_OUTPUT_SHA256=45a7d0df223ce5a48be093a0e3ef84cd7ce33615fa53ded2c8b7fdc3ce4e468c
RAW_EVIDENCE_SHA256=75302e0c11eb8854e1c54ca078376b96299cd40b32f3bde2ce6d573ea642584a
SANITIZED_OUTPUT_SHA256=75302e0c11eb8854e1c54ca078376b96299cd40b32f3bde2ce6d573ea642584a
OUTPUT_BEGIN
CT112_DNS_VM130_FINAL_RCA=V1
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_STATUS=0
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
CT112_STATUS=running
REC|CT112_CONFIG|features: nesting=1
REC|CT112_CONFIG|rootfs: local-lvm:vm-112-disk-0,size=8G
REC|CT112_CONFIG|unprivileged: 1
REC|CT112_API|KEY=rootfs|VOLID_SHA256=21a1228ea539097d621b44cc86b77b3de95b0487a5e074f6644ac3ed80376ef8|OPTS_SHA256=ebbd4ffc7a6d79cb0293f44d7e93509b8e2c9feb6cf8faa8098a6d09ed8dde99
REC|CT112_API|KEY=unprivileged|VALUE_SHA256=6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b
REC|CT112_API|KEY=features|VALUE_SHA256=9202e3e75af57ec143fd326adec10e608231ac71dd55a48ddf6b77bcb174539b
REC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm112|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm190|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM
REC|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
REC|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
REC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=app-hbarhub|root_cause=APP_QUORUM_NOT_FRESH
REC|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
REC|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
REC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=app-hbarhub|root_cause=APP_QUORUM_NOT_FRESH
REC|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
REC|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
REC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=app-hbarhub|root_cause=APP_QUORUM_NOT_FRESH
REC|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
REC|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
REC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=app-hbarhub|root_cause=APP_QUORUM_NOT_FRESH
REC|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
REC|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
REC|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
REC|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
REC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm170|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM
REC|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
REC|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
REC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm171|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|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
REC|BACKUP_AUDIT_RECENT|ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm9130|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM
REC|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
BACKUP_AUDIT_CURRENT_RESULT=exit-code
BACKUP_AUDIT_CURRENT_EXEC=1
REC|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
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
BACKUP_EXEC_SHA256=894f8ea346b53a3d7846dbd6eeb5b89333957eb6d7a4f2f64fd4557cae176e1c
REC|CT112_SOURCE_FILE|IDX=1|BASENAME=pve282.py|SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012|SIZE=6195
SRC|CT112|1|26: need(core.valid_hash(expected_config) and job.get('config_sha256')==expected_config,'CT112_PLAN_CONFIG_ANCHOR')
SRC|CT112|1|32: need(TARGET_VMID in by_id,'CT112_MISSING_FROM_ACCEPTED265')
SRC|CT112|1|38: need(len(selected)==1,'CT112_NOT_UNIQUE')
SRC|CT112|1|41: need(job.get('compression_dependent') is False and job.get('configured_full_cycle_fits') is True,'CT112_FULL_CYCLE_SPACE_UNPROVEN')
SRC|CT112|1|42: disks=job.get('disks');need(type(disks) is list and len(disks)==1,'CT112_SINGLE_ROOTFS_REQUIRED')
SRC|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')
SRC|CT112|1|46: need(type(size) is int and 0<size<=stream.MAX_BYTES and size==disk.get('configured_size_bytes'),'CT112_ROOTFS_SIZE_INVALID')
SRC|CT112|1|59: need(rc==0,'CT112_GATE_READ_FAILED')
SRC|CT112|1|61: except (ValueError,UnicodeError):raise old.PVEError('CT112_GATE_JSON') from None
REC|CT112_SOURCE_FILE|IDX=2|BASENAME=wrapper.py|SHA256=84d2da3fa7c8ab1d9e15db88b6f3835be9c8815bd50ea78022c67adff2f16056|SIZE=5055
SRC|CT112|2|6:CT_ID='guest-pve01-lxc-112'
SRC|CT112|2|12: if spec is None or spec.loader is None: raise RuntimeError('MODULE_SPEC')
SRC|CT112|2|33: if type(due) is not int or due<=0: raise legacy.BackupError('CT112_CADENCE')
SRC|CT112|2|44: r=ct112.run_target(t,state_writer=legacy.write_state)
SRC|CT112|2|47: except BaseException:
SRC|CT112|2|48: try: legacy.write_state(CT_ID,'FAIL',reason='CT112_PIPELINE_FAILED')
SRC|CT112|2|49: except BaseException: pass
SRC|CT112|2|50: raise legacy.BackupError('CT112_PIPELINE_FAILED') from None
SRC|CT112|2|56: if legacy.PART_SIZE!=536870912: raise RuntimeError('LEGACY_PART_SIZE')
SRC|CT112|2|57: if len(legacy.REMOTES)!=13 or len({p for _,p in legacy.REMOTES})!=13: raise RuntimeError('LEGACY_REMOTES')
SRC|CT112|2|59: if not isinstance(d,list) or len(d)<28: raise RuntimeError('LEGACY_DEFAULT_TARGET_COUNT')
SRC|CT112|2|61: if {t.get('logical_id') for t in d if isinstance(t,dict) and t.get('green1')}!=want: raise RuntimeError('LEGACY_DEFAULT_GREEN_SET')
SRC|CT112|2|62: if legacy._pve_dumpdir_spec('lxc')!=(0o710,100000) or legacy._pve_dumpdir_spec('qemu')!=(0o700,0): raise RuntimeError('LEGACY_DUMPDIR_SPEC')
SRC|CT112|2|63: if legacy.GUEST266_SHA!='86433bc424d5fa5017c20f7a237c82874b02357a3283660d8a6b0039ef2bc868': raise RuntimeError('LEGACY_GUEST266_SHA')
SRC|CT112|2|64: if legacy.P282_SHA!='73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012': raise RuntimeError('LEGACY_P282_SHA')
SRC|CT112|2|71: if len(eff)!=29 or sum(1 for x in eff if x.get('logical_id')==CT_ID)!=1: raise RuntimeError('EFFECTIVE_TARGETS')
SRC|CT112|2|73: if [x['logical_id'] for x in legacy_rows]!=list(LEGACY_IDS) or ct.get('vmid')!=112: raise RuntimeError('REPRESENTATIVE_PARTITION')
SRC|CT112|2|74: if ct112.selftest() is not True: raise RuntimeError('CT112_HANDLER_SELFTEST')
SRC|CT112|2|81: except OSError as e:
REC|CT112_SOURCE_FILE|IDX=3|BASENAME=representative_driver.py|SHA256=b3050a8f95e6d9826a4f0786cd3ca32012b6ab10486d10e4981b50b8a0affff2|SIZE=4214
SRC|CT112|3|25:CT112_ID='guest-pve01-lxc-112'
SRC|CT112|3|26:REPRESENTATIVE_IDS=(CT112_ID,)+LEGACY_IDS
SRC|CT112|3|53: return legacy, selected[CT112_ID]
SRC|CT112|3|65: except BaseException:
SRC|CT112|3|67: except FileNotFoundError: pass
SRC|CT112|3|72: def write_state(logical_id,result,**kw):
SRC|CT112|3|77: return write_state
SRC|CT112|3|86: previous=getattr(engine,'write_state',None)
SRC|CT112|3|89: engine.write_state=_state_writer(STATE_ROOT)
SRC|CT112|3|93: engine.write_state=previous
SRC|CT112|3|97: raise ContractError('CT112_RESULT_SCHEMA')
SRC|CT112|3|98: if result.get('logical_id')!=CT112_ID or result.get('status')!='OK':
SRC|CT112|3|99: raise ContractError('CT112_RESULT_STATUS')
SRC|CT112|3|101: raise ContractError('CT112_RESTORE_NOT_VERIFIED')
SRC|CT112|3|103: raise ContractError('CT112_LOCAL_PAYLOAD_REMAINS')
SRC|CT112|3|108: raise ContractError('CT112_CALLBACK_REQUIRED')
REC|CT112_SOURCE_FILE|IDX=4|BASENAME=ct112_handler.py|SHA256=e7b027de9a53d7219dd80c9d8e05f0eae0f53db90a53363c64dfa016815c0d00|SIZE=7923
SRC|CT112|4|9:CT_ID='guest-pve01-lxc-112'
SRC|CT112|4|27: if p.returncode!=0 or len(p.stdout)>4*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 0<size<=stream.MAX_BYTES and size==disk.get('configured_size_bytes'),'CT112_ROOTFS_SIZE_INVALID')
SRC|CT112|5|59: need(rc==0,'CT112_GATE_READ_FAILED')
SRC|CT112|5|61: except (ValueError,UnicodeError):raise old.PVEError('CT112_GATE_JSON') from None
REC|CT112_SOURCE_FILE|IDX=6|BASENAME=wrapper.py|SHA256=e5b0cd618eb7925da84255a8d7e348ae513da5953937d0bce8c3a139b965c3b2|SIZE=5055
SRC|CT112|6|6:CT_ID='guest-pve01-lxc-112'
SRC|CT112|6|12: if spec is None or spec.loader is None: raise RuntimeError('MODULE_SPEC')
SRC|CT112|6|33: if type(due) is not int or due<=0: raise legacy.BackupError('CT112_CADENCE')
SRC|CT112|6|44: r=ct112.run_target(t,state_writer=legacy.write_state)
SRC|CT112|6|47: except BaseException:
SRC|CT112|6|48: try: legacy.write_state(CT_ID,'FAIL',reason='CT112_PIPELINE_FAILED')
SRC|CT112|6|49: except BaseException: pass
SRC|CT112|6|50: raise legacy.BackupError('CT112_PIPELINE_FAILED') from None
SRC|CT112|6|56: if legacy.PART_SIZE!=536870912: raise RuntimeError('LEGACY_PART_SIZE')
SRC|CT112|6|57: if len(legacy.REMOTES)!=13 or len({p for _,p in legacy.REMOTES})!=13: raise RuntimeError('LEGACY_REMOTES')
SRC|CT112|6|59: if not isinstance(d,list) or len(d)<28: raise RuntimeError('LEGACY_DEFAULT_TARGET_COUNT')
SRC|CT112|6|61: if {t.get('logical_id') for t in d if isinstance(t,dict) and t.get('green1')}!=want: raise RuntimeError('LEGACY_DEFAULT_GREEN_SET')
SRC|CT112|6|62: if legacy._pve_dumpdir_spec('lxc')!=(0o710,100000) or legacy._pve_dumpdir_spec('qemu')!=(0o700,0): raise RuntimeError('LEGACY_DUMPDIR_SPEC')
SRC|CT112|6|63: if legacy.GUEST266_SHA!='86433bc424d5fa5017c20f7a237c82874b02357a3283660d8a6b0039ef2bc868': raise RuntimeError('LEGACY_GUEST266_SHA')
SRC|CT112|6|64: if legacy.P282_SHA!='73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012': raise RuntimeError('LEGACY_P282_SHA')
SRC|CT112|6|71: if len(eff)!=29 or sum(1 for x in eff if x.get('logical_id')==CT_ID)!=1: raise RuntimeError('EFFECTIVE_TARGETS')
SRC|CT112|6|73: if [x['logical_id'] for x in legacy_rows]!=list(LEGACY_IDS) or ct.get('vmid')!=112: raise RuntimeError('REPRESENTATIVE_PARTITION')
SRC|CT112|6|74: if ct112.selftest() is not True: raise RuntimeError('CT112_HANDLER_SELFTEST')
SRC|CT112|6|81: except OSError as e:
REC|CT112_SOURCE_FILE|IDX=7|BASENAME=representative_driver.py|SHA256=b3050a8f95e6d9826a4f0786cd3ca32012b6ab10486d10e4981b50b8a0affff2|SIZE=4214
SRC|CT112|7|25:CT112_ID='guest-pve01-lxc-112'
SRC|CT112|7|26:REPRESENTATIVE_IDS=(CT112_ID,)+LEGACY_IDS
SRC|CT112|7|53: return legacy, selected[CT112_ID]
SRC|CT112|7|65: except BaseException:
SRC|CT112|7|67: except FileNotFoundError: pass
SRC|CT112|7|72: def write_state(logical_id,result,**kw):
SRC|CT112|7|77: return write_state
SRC|CT112|7|86: previous=getattr(engine,'write_state',None)
SRC|CT112|7|89: engine.write_state=_state_writer(STATE_ROOT)
SRC|CT112|7|93: engine.write_state=previous
SRC|CT112|7|97: raise ContractError('CT112_RESULT_SCHEMA')
SRC|CT112|7|98: if result.get('logical_id')!=CT112_ID or result.get('status')!='OK':
SRC|CT112|7|99: raise ContractError('CT112_RESULT_STATUS')
SRC|CT112|7|101: raise ContractError('CT112_RESTORE_NOT_VERIFIED')
SRC|CT112|7|103: raise ContractError('CT112_LOCAL_PAYLOAD_REMAINS')
SRC|CT112|7|108: raise ContractError('CT112_CALLBACK_REQUIRED')
REC|CT112_SOURCE_FILE|IDX=8|BASENAME=ct112_handler.py|SHA256=e7b027de9a53d7219dd80c9d8e05f0eae0f53db90a53363c64dfa016815c0d00|SIZE=7923
SRC|CT112|8|9:CT_ID='guest-pve01-lxc-112'
SRC|CT112|8|27: if p.returncode!=0 or len(p.stdout)>4*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 0<size<=stream.MAX_BYTES and size==disk.get('configured_size_bytes'),'CT112_ROOTFS_SIZE_INVALID')
SRC|CT112|9|59: need(rc==0,'CT112_GATE_READ_FAILED')
SRC|CT112|9|61: except (ValueError,UnicodeError):raise old.PVEError('CT112_GATE_JSON') from None
REC|CT112_SOURCE_FILE|IDX=10|BASENAME=wrapper.py|SHA256=d58b8bc842ac3ba3f1f9cf3dc844dd1445c196e0e93fda8ce5f4a0fd18f2e115|SIZE=5055
SRC|CT112|10|6:CT_ID='guest-pve01-lxc-112'
SRC|CT112|10|12: if spec is None or spec.loader is None: raise RuntimeError('MODULE_SPEC')
SRC|CT112|10|33: if type(due) is not int or due<=0: raise legacy.BackupError('CT112_CADENCE')
SRC|CT112|10|44: r=ct112.run_target(t,state_writer=legacy.write_state)
SRC|CT112|10|47: except BaseException:
SRC|CT112|10|48: try: legacy.write_state(CT_ID,'FAIL',reason='CT112_PIPELINE_FAILED')
SRC|CT112|10|49: except BaseException: pass
SRC|CT112|10|50: raise legacy.BackupError('CT112_PIPELINE_FAILED') from None
SRC|CT112|10|56: if legacy.PART_SIZE!=536870912: raise RuntimeError('LEGACY_PART_SIZE')
SRC|CT112|10|57: if len(legacy.REMOTES)!=13 or len({p for _,p in legacy.REMOTES})!=13: raise RuntimeError('LEGACY_REMOTES')
SRC|CT112|10|59: if not isinstance(d,list) or len(d)<28: raise RuntimeError('LEGACY_DEFAULT_TARGET_COUNT')
SRC|CT112|10|61: if {t.get('logical_id') for t in d if isinstance(t,dict) and t.get('green1')}!=want: raise RuntimeError('LEGACY_DEFAULT_GREEN_SET')
SRC|CT112|10|62: if legacy._pve_dumpdir_spec('lxc')!=(0o710,100000) or legacy._pve_dumpdir_spec('qemu')!=(0o700,0): raise RuntimeError('LEGACY_DUMPDIR_SPEC')
SRC|CT112|10|63: if legacy.GUEST266_SHA!='86433bc424d5fa5017c20f7a237c82874b02357a3283660d8a6b0039ef2bc868': raise RuntimeError('LEGACY_GUEST266_SHA')
SRC|CT112|10|64: if legacy.P282_SHA!='73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012': raise RuntimeError('LEGACY_P282_SHA')
SRC|CT112|10|71: if len(eff)!=29 or sum(1 for x in eff if x.get('logical_id')==CT_ID)!=1: raise RuntimeError('EFFECTIVE_TARGETS')
SRC|CT112|10|73: if [x['logical_id'] for x in legacy_rows]!=list(LEGACY_IDS) or ct.get('vmid')!=112: raise RuntimeError('REPRESENTATIVE_PARTITION')
SRC|CT112|10|74: if ct112.selftest() is not True: raise RuntimeError('CT112_HANDLER_SELFTEST')
SRC|CT112|10|81: except OSError as e:
REC|CT112_SOURCE_FILE|IDX=11|BASENAME=representative_driver.py|SHA256=b3050a8f95e6d9826a4f0786cd3ca32012b6ab10486d10e4981b50b8a0affff2|SIZE=4214
SRC|CT112|11|25:CT112_ID='guest-pve01-lxc-112'
SRC|CT112|11|26:REPRESENTATIVE_IDS=(CT112_ID,)+LEGACY_IDS
SRC|CT112|11|53: return legacy, selected[CT112_ID]
SRC|CT112|11|65: except BaseException:
SRC|CT112|11|67: except FileNotFoundError: pass
SRC|CT112|11|72: def write_state(logical_id,result,**kw):
SRC|CT112|11|77: return write_state
SRC|CT112|11|86: previous=getattr(engine,'write_state',None)
SRC|CT112|11|89: engine.write_state=_state_writer(STATE_ROOT)
SRC|CT112|11|93: engine.write_state=previous
SRC|CT112|11|97: raise ContractError('CT112_RESULT_SCHEMA')
SRC|CT112|11|98: if result.get('logical_id')!=CT112_ID or result.get('status')!='OK':
SRC|CT112|11|99: raise ContractError('CT112_RESULT_STATUS')
SRC|CT112|11|101: raise ContractError('CT112_RESTORE_NOT_VERIFIED')
SRC|CT112|11|103: raise ContractError('CT112_LOCAL_PAYLOAD_REMAINS')
SRC|CT112|11|108: raise ContractError('CT112_CALLBACK_REQUIRED')
REC|CT112_SOURCE_FILE|IDX=12|BASENAME=ct112_handler.py|SHA256=1bad56934074d19bd17ec71471d562b3f3d1d4c2d8fdfbad1897048b50c09c06|SIZE=9799
SRC|CT112|12|9:CT_ID='guest-pve01-lxc-112'
SRC|CT112|12|27: if p.returncode!=0 or len(p.stdout)>4*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 0<size<=stream.MAX_BYTES and size==disk.get('configured_size_bytes'),'CT112_ROOTFS_SIZE_INVALID')
SRC|CT112|14|59: need(rc==0,'CT112_GATE_READ_FAILED')
SRC|CT112|14|61: except (ValueError,UnicodeError):raise old.PVEError('CT112_GATE_JSON') from None
REC|CT112_SOURCE_FILE|IDX=15|BASENAME=pve282.py|SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012|SIZE=6195
SRC|CT112|15|26: need(core.valid_hash(expected_config) and job.get('config_sha256')==expected_config,'CT112_PLAN_CONFIG_ANCHOR')
SRC|CT112|15|32: need(TARGET_VMID in by_id,'CT112_MISSING_FROM_ACCEPTED265')
SRC|CT112|15|38: need(len(selected)==1,'CT112_NOT_UNIQUE')
SRC|CT112|15|41: need(job.get('compression_dependent') is False and job.get('configured_full_cycle_fits') is True,'CT112_FULL_CYCLE_SPACE_UNPROVEN')
SRC|CT112|15|42: disks=job.get('disks');need(type(disks) is list and len(disks)==1,'CT112_SINGLE_ROOTFS_REQUIRED')
SRC|CT112|15|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|15|46: need(type(size) is int and 0<size<=stream.MAX_BYTES and size==disk.get('configured_size_bytes'),'CT112_ROOTFS_SIZE_INVALID')
SRC|CT112|15|59: need(rc==0,'CT112_GATE_READ_FAILED')
SRC|CT112|15|61: except (ValueError,UnicodeError):raise old.PVEError('CT112_GATE_JSON') from None
REC|CT112_SOURCE_FILE|IDX=16|BASENAME=wrapper.py|SHA256=8e6ad619c39105d9c238c0a9f0bd9265dba941f65729cbe03e9f1acbd90ba6cd|SIZE=5055
SRC|CT112|16|6:CT_ID='guest-pve01-lxc-112'
SRC|CT112|16|12: if spec is None or spec.loader is None: raise RuntimeError('MODULE_SPEC')
SRC|CT112|16|33: if type(due) is not int or due<=0: raise legacy.BackupError('CT112_CADENCE')
SRC|CT112|16|44: r=ct112.run_target(t,state_writer=legacy.write_state)
SRC|CT112|16|47: except BaseException:
SRC|CT112|16|48: try: legacy.write_state(CT_ID,'FAIL',reason='CT112_PIPELINE_FAILED')
SRC|CT112|16|49: except BaseException: pass
SRC|CT112|16|50: raise legacy.BackupError('CT112_PIPELINE_FAILED') from None
SRC|CT112|16|56: if legacy.PART_SIZE!=536870912: raise RuntimeError('LEGACY_PART_SIZE')
SRC|CT112|16|57: if len(legacy.REMOTES)!=13 or len({p for _,p in legacy.REMOTES})!=13: raise RuntimeError('LEGACY_REMOTES')
SRC|CT112|16|59: if not isinstance(d,list) or len(d)<28: raise RuntimeError('LEGACY_DEFAULT_TARGET_COUNT')
SRC|CT112|16|61: if {t.get('logical_id') for t in d if isinstance(t,dict) and t.get('green1')}!=want: raise RuntimeError('LEGACY_DEFAULT_GREEN_SET')
SRC|CT112|16|62: if legacy._pve_dumpdir_spec('lxc')!=(0o710,100000) or legacy._pve_dumpdir_spec('qemu')!=(0o700,0): raise RuntimeError('LEGACY_DUMPDIR_SPEC')
SRC|CT112|16|63: if legacy.GUEST266_SHA!='86433bc424d5fa5017c20f7a237c82874b02357a3283660d8a6b0039ef2bc868': raise RuntimeError('LEGACY_GUEST266_SHA')
SRC|CT112|16|64: if legacy.P282_SHA!='73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012': raise RuntimeError('LEGACY_P282_SHA')
SRC|CT112|16|71: if len(eff)!=29 or sum(1 for x in eff if x.get('logical_id')==CT_ID)!=1: raise RuntimeError('EFFECTIVE_TARGETS')
SRC|CT112|16|73: if [x['logical_id'] for x in legacy_rows]!=list(LEGACY_IDS) or ct.get('vmid')!=112: raise RuntimeError('REPRESENTATIVE_PARTITION')
SRC|CT112|16|74: if ct112.selftest() is not True: raise RuntimeError('CT112_HANDLER_SELFTEST')
SRC|CT112|16|81: except OSError as e:
REC|CT112_SOURCE_FILE|IDX=17|BASENAME=representative_driver.py|SHA256=b3050a8f95e6d9826a4f0786cd3ca32012b6ab10486d10e4981b50b8a0affff2|SIZE=4214
SRC|CT112|17|25:CT112_ID='guest-pve01-lxc-112'
SRC|CT112|17|26:REPRESENTATIVE_IDS=(CT112_ID,)+LEGACY_IDS
SRC|CT112|17|53: return legacy, selected[CT112_ID]
SRC|CT112|17|65: except BaseException:
SRC|CT112|17|67: except FileNotFoundError: pass
SRC|CT112|17|72: def write_state(logical_id,result,**kw):
SRC|CT112|17|77: return write_state
SRC|CT112|17|86: previous=getattr(engine,'write_state',None)
SRC|CT112|17|89: engine.write_state=_state_writer(STATE_ROOT)
SRC|CT112|17|93: engine.write_state=previous
SRC|CT112|17|97: raise ContractError('CT112_RESULT_SCHEMA')
SRC|CT112|17|98: if result.get('logical_id')!=CT112_ID or result.get('status')!='OK':
SRC|CT112|17|99: raise ContractError('CT112_RESULT_STATUS')
SRC|CT112|17|101: raise ContractError('CT112_RESTORE_NOT_VERIFIED')
SRC|CT112|17|103: raise ContractError('CT112_LOCAL_PAYLOAD_REMAINS')
SRC|CT112|17|108: raise ContractError('CT112_CALLBACK_REQUIRED')
REC|CT112_SOURCE_FILE|IDX=18|BASENAME=ct112_handler.py|SHA256=5d42a45a1a21c38f71d9ae805e831d2ed8dd24b111ad5972b1fd6c01f909e689|SIZE=9461
SRC|CT112|18|9:CT_ID='guest-pve01-lxc-112'
SRC|CT112|18|27: if p.returncode!=0 or len(p.stdout)>4*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<size<=stream.MAX_BYTES and size==disk.get('configured_size_bytes'),'CT112_ROOTFS_SIZE_INVALID')
SRC|CT112|19|59: need(rc==0,'CT112_GATE_READ_FAILED')
SRC|CT112|19|61: except (ValueError,UnicodeError):raise old.PVEError('CT112_GATE_JSON') from None
REC|CT112_SOURCE_FILE|IDX=20|BASENAME=wrapper.py|SHA256=ed04b2634fcba72bdf07811135aed8fd609e849afcde456d433f305be5bb956a|SIZE=4099
SRC|CT112|20|6:CT_ID='guest-pve01-lxc-112'
SRC|CT112|20|12: if spec is None or spec.loader is None: raise RuntimeError('MODULE_SPEC')
SRC|CT112|20|33: if type(due) is not int or due<=0: raise legacy.BackupError('CT112_CADENCE')
SRC|CT112|20|44: r=ct112.run_target(t,state_writer=legacy.write_state)
SRC|CT112|20|47: except BaseException:
SRC|CT112|20|48: try: legacy.write_state(CT_ID,'FAIL',reason='CT112_PIPELINE_FAILED')
SRC|CT112|20|49: except BaseException: pass
SRC|CT112|20|50: raise legacy.BackupError('CT112_PIPELINE_FAILED') from None
SRC|CT112|20|57: if rc!=0: raise RuntimeError('LEGACY_SELFTEST')
SRC|CT112|20|59: if len(eff)!=29 or sum(1 for x in eff if x.get('logical_id')==CT_ID)!=1: raise RuntimeError('EFFECTIVE_TARGETS')
SRC|CT112|20|61: if [x['logical_id'] for x in legacy_rows]!=list(LEGACY_IDS) or ct.get('vmid')!=112: raise RuntimeError('REPRESENTATIVE_PARTITION')
SRC|CT112|20|62: if ct112.selftest() is not True: raise RuntimeError('CT112_HANDLER_SELFTEST')
SRC|CT112|20|69: except OSError as e:
CT112_SOURCE_FILE_COUNT=20
REC|CT112_STATE_FILE|IDX=1|BASENAME=ct112.json|PATH_SHA256=4650ea76820591a6e992aec1b18082b7e81a1ddb2613556f7c8139c0036ec824|SHA256=64f302f9156d0fd91c340023caf8f003810b8a66c84d446dccc063cbbb01a8cd|SIZE=609
REC|CT112_STATE_FIELD|IDX=1|KEY=logical_id|VALUE=ct112
REC|CT112_STATE_FIELD|IDX=1|KEY=result|VALUE=SUCCESS
REC|CT112_STATE_FIELD|IDX=1|KEY=last_success_epoch|VALUE=1791348739
REC|CT112_STATE_FIELD|IDX=1|KEY=last_attempt_epoch|VALUE=1791348739
REC|CT112_STATE_FIELD|IDX=1|KEY=generation|VALUE=v2-ct112-20261007T045109Z-ce9503fc59c5
REC|CT112_STATE_FILE|IDX=2|BASENAME=guest-pve01-lxc-112.json|PATH_SHA256=5211dfc0645d177de3ac4e85db86b9e305060b84bbebcf62f0aa6aa8b88b13ca|SHA256=b737b8c81c6e16f480c8227f0645e5236e412cf22de0da6af83ff6d6dc37e4bb|SIZE=845
REC|CT112_STATE_FIELD|IDX=2|KEY=logical_id|VALUE=guest-pve01-lxc-112
REC|CT112_STATE_FIELD|IDX=2|KEY=result|VALUE=FAIL
REC|CT112_STATE_FIELD|IDX=2|KEY=reason|VALUE=CT112_PIPELINE_FAILED
REC|CT112_STATE_FIELD|IDX=2|KEY=last_success_epoch|VALUE=1790297001
REC|CT112_STATE_FIELD|IDX=2|KEY=last_attempt_epoch|VALUE=1791375479
CT112_STATE_FILE_COUNT=2
REC|ISSUE|BACKUP_NOT_GREEN
REC|ISSUE|BACKUP_ISSUE_PRESENT
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
REC|DNS_LXC_IP|VMID=110|NODE=pve01|IDX=1|IP_SHA256=9ebe3b0dd23e6c9ec496e66c9839ed8f735dcb0a28ba79109f6c906bfd4e0b3e|MATCH_NS=false
REC|DNS_LXC_IP|VMID=111|NODE=pve02|IDX=1|IP_SHA256=69dcd1b083ef51977c3fae0424def26fc5f0d590c28b53735f2db42667916b50|MATCH_NS=false
REC|DNS_LXC_IP|VMID=112|NODE=pve01|IDX=1|IP_SHA256=93c04616b24b22434ca85ae6520617ebcdbfdd82da63c7611397e6d2b8add93c|MATCH_NS=false
REC|DNS_LXC_IP|VMID=113|NODE=pve02|IDX=1|IP_SHA256=1d87ab378dbfd41bf18b819fd8ed963783f05c4523af0b7302ac8ddb3d09e596|MATCH_NS=false
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