From 3878adf03b946c0e950d2433f01480895a490728 Mon Sep 17 00:00:00 2001 From: homelab-runtime-publisher Date: Wed, 7 Oct 2026 17:33:28 +0000 Subject: [PATCH] runtime: publish SUPPORT-261007-CT112-DNS-VM130-FINAL-RCA-99789R1 --- ...007-CT112-DNS-VM130-FINAL-RCA-99789R1.json | 38 ++ ...1007-CT112-DNS-VM130-FINAL-RCA-99789R1.txt | 486 +++++++++++++++++ runtime/latest.json | 16 +- runtime/latest.txt | 492 ++++++++++++++++-- 4 files changed, 982 insertions(+), 50 deletions(-) create mode 100644 runtime/history/SUPPORT-261007-CT112-DNS-VM130-FINAL-RCA-99789R1.json create mode 100644 runtime/history/SUPPORT-261007-CT112-DNS-VM130-FINAL-RCA-99789R1.txt diff --git a/runtime/history/SUPPORT-261007-CT112-DNS-VM130-FINAL-RCA-99789R1.json b/runtime/history/SUPPORT-261007-CT112-DNS-VM130-FINAL-RCA-99789R1.json new file mode 100644 index 00000000..32b3e450 --- /dev/null +++ b/runtime/history/SUPPORT-261007-CT112-DNS-VM130-FINAL-RCA-99789R1.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SUPPORT-261007-CT112-DNS-VM130-FINAL-RCA-99789R1", + "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", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "885666c9d57f84edfa9d1fd3234f1fc6888d360c338bd60d7fd2e00a0f9bd8eb", + "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": "45a7d0df223ce5a48be093a0e3ef84cd7ce33615fa53ded2c8b7fdc3ce4e468c", + "sanitized_output_sha256": "45a7d0df223ce5a48be093a0e3ef84cd7ce33615fa53ded2c8b7fdc3ce4e468c", + "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 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