From af231884d270528f07e39e30c3a3503d7d74eacf Mon Sep 17 00:00:00 2001 From: homelab-runtime-publisher Date: Wed, 7 Oct 2026 23:15:40 +0000 Subject: [PATCH] runtime: publish SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1 --- ...T112-VZDUMP-BUILDER-RECONCILE-99810R1.json | 38 ++ ...CT112-VZDUMP-BUILDER-RECONCILE-99810R1.txt | 280 +++++++++++++ runtime/latest.json | 16 +- runtime/latest.txt | 386 +++++++++++------- 4 files changed, 570 insertions(+), 150 deletions(-) create mode 100644 runtime/history/SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1.json create mode 100644 runtime/history/SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1.txt diff --git a/runtime/history/SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1.json b/runtime/history/SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1.json new file mode 100644 index 00000000..7878a31a --- /dev/null +++ b/runtime/history/SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "read-only", + "component": "ct112-vzdump-builder-reconcile", + "started_at_utc": "2026-10-07T23:15:39Z", + "finished_at_utc": "2026-10-07T23:15:39Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "012284117e498efef3a42d8c73a49c9b08581631c8e0e5eec3b8df9636fa1ce7", + "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": "67c3c3bb1a82b0409816592bf0f17bc535b2a4e172261b39859692002a834c38", + "sanitized_output_sha256": "67c3c3bb1a82b0409816592bf0f17bc535b2a4e172261b39859692002a834c38", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "CT112_VZDUMP_BUILDER_RECONCILE=V1\nMODE=read-only\nNO_MUTATION=true\nBACKUP_SERVICE_RESULT=success\nBACKUP_TIMER_ACTIVE=active\nBACKUP_AUDIT=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\nWRAPPER_EXACT_COUNT=1\nLEGACY_HASH_MATCH=true\nCT112_HANDLER_HASH_MATCH=true\nGUEST266_PRESENT=true\nGUEST266_SHA_MATCH=true\nLEGACY_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3\nGUEST266_PATH_SHA256=71fee0e427fb01cb99ebb354c8aa5c0e984cb7f5f8a5992967165ee38e8693d6\nLEGACY__ISOLATED_GUEST266_DUMP_ARGV_PRESENT=true\nLEGACY__ISOLATED_GUEST266_DUMP_ARGV_ARGS=job,vzdump,scratch,now\nLEGACY__ISOLATED_GUEST266_DUMP_ARGV_ARGS_COUNT=4\nLEGACY__ISOLATED_GUEST266_DUMP_ARGV_CALL_NAMES=BackupError,_historical_graph_env,canonical_json,hexdigest,int,loads,run,sha256,str\nLEGACY__ISOLATED_GUEST266_DUMP_ARGV_REFERS_GUEST266=true\nLEGACY__ISOLATED_GUEST266_DUMP_ARGV_REFERS_DUMP_ARGV=true\nLEGACY__ISOLATED_GUEST266_DUMP_ARGV_AST_SHA256=c04abee41c3d45992982a4af1e295c9e9bbd458f825952083c3bced96b5e4ba8\nLEGACY_PROVEN_LXC_DUMP_ARGV_PRESENT=true\nLEGACY_PROVEN_LXC_DUMP_ARGV_ARGS=t,row,node,scratch\nLEGACY_PROVEN_LXC_DUMP_ARGV_ARGS_COUNT=4\nLEGACY_PROVEN_LXC_DUMP_ARGV_CALL_NAMES=BackupError,Path,_isolated_guest266_dump_argv,_lxc_job,all,any,index,int,isinstance,len,list,startswith,str,time,type,which\nLEGACY_PROVEN_LXC_DUMP_ARGV_REFERS_GUEST266=true\nLEGACY_PROVEN_LXC_DUMP_ARGV_REFERS_DUMP_ARGV=true\nLEGACY_PROVEN_LXC_DUMP_ARGV_AST_SHA256=b4d02b7cb3db8f9c20f3419b5749982dfe40aee812a90ff6da8a5f3e0e4238ef\nLEGACY__LXC_JOB_PRESENT=true\nLEGACY__LXC_JOB_ARGS=t,row,node\nLEGACY__LXC_JOB_ARGS_COUNT=3\nLEGACY__LXC_JOB_CALL_NAMES=bool,get,int,max,time\nLEGACY__LXC_JOB_REFERS_GUEST266=false\nLEGACY__LXC_JOB_REFERS_DUMP_ARGV=false\nLEGACY__LXC_JOB_AST_SHA256=4f807aba5212bb43b942434b148415f97bbb2b1a0113a0c7f59ab89f7f0c5573\nLEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_PRESENT=true\nLEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_ARGS=\nLEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_ARGS_COUNT=0\nLEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_CALL_NAMES=BackupError,Path,_historical_graph_env,get,hexdigest,items,loads,resolve,run,sha256,str\nLEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_REFERS_GUEST266=true\nLEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_REFERS_DUMP_ARGV=false\nLEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_AST_SHA256=a803373ab29ff38b9b9dfab5f6a88ef4ff765534a7613253beda38ef8cae0ba7\nSEARCH_ROOT_COUNT=2\nSCAN_PYFILE_COUNT=27\nSCANNED_SOURCE_BYTES=302599\nBUILDER_CANDIDATE_COUNT=16\nEXACT_DUMP_ARGV_FOUR_PARAM_COUNT=1\nREC|BUILDER_CANDIDATE|IDX=1|FUNCTION=dump_argv\nREC|BUILDER_CANDIDATE|IDX=1|SCORE=98\nREC|BUILDER_CANDIDATE|IDX=1|MODULE_BASENAME=pve265.py\nREC|BUILDER_CANDIDATE|IDX=1|MODULE_SHA256=cd2f634414a8e38a3789015aeca5a9b47821f77d7d1fa61dcdbdc866172963be\nREC|BUILDER_CANDIDATE|IDX=1|MODULE_PATH_SHA256=a3b2ce0dc30e17c1388bc76b409157514ad9e8244d1352e060a1801e4eea3fe3\nREC|BUILDER_CANDIDATE|IDX=1|POSITIONAL_ARGS=job,executable,tmpdir,now\nREC|BUILDER_CANDIDATE|IDX=1|REQUIRED_POSITIONALS=4\nREC|BUILDER_CANDIDATE|IDX=1|VZDUMP_LITERAL=false\nREC|BUILDER_CANDIDATE|IDX=1|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=1|MODE_FLAG=true\nREC|BUILDER_CANDIDATE|IDX=1|COMPRESS_FLAG=true\nREC|BUILDER_CANDIDATE|IDX=1|CALLS=need,path_ok,str,validate_job\nREC|BUILDER_CANDIDATE|IDX=2|FUNCTION=proven_lxc_dump_argv\nREC|BUILDER_CANDIDATE|IDX=2|SCORE=52\nREC|BUILDER_CANDIDATE|IDX=2|MODULE_BASENAME=legacy_engine.py\nREC|BUILDER_CANDIDATE|IDX=2|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nREC|BUILDER_CANDIDATE|IDX=2|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3\nREC|BUILDER_CANDIDATE|IDX=2|POSITIONAL_ARGS=t,row,node,scratch\nREC|BUILDER_CANDIDATE|IDX=2|REQUIRED_POSITIONALS=4\nREC|BUILDER_CANDIDATE|IDX=2|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=2|DUMPDIR_FLAG=true\nREC|BUILDER_CANDIDATE|IDX=2|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=2|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=2|CALLS=BackupError,Path,_isolated_guest266_dump_argv,_lxc_job,all,any,index,int,isinstance,len,list,startswith,str,time,type,which\nREC|BUILDER_CANDIDATE|IDX=3|FUNCTION=capture_pve_guest\nREC|BUILDER_CANDIDATE|IDX=3|SCORE=26\nREC|BUILDER_CANDIDATE|IDX=3|MODULE_BASENAME=legacy_engine.py\nREC|BUILDER_CANDIDATE|IDX=3|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nREC|BUILDER_CANDIDATE|IDX=3|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3\nREC|BUILDER_CANDIDATE|IDX=3|POSITIONAL_ARGS=t,gen,work\nREC|BUILDER_CANDIDATE|IDX=3|REQUIRED_POSITIONALS=3\nREC|BUILDER_CANDIDATE|IDX=3|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=3|DUMPDIR_FLAG=true\nREC|BUILDER_CANDIDATE|IDX=3|MODE_FLAG=true\nREC|BUILDER_CANDIDATE|IDX=3|COMPRESS_FLAG=true\nREC|BUILDER_CANDIDATE|IDX=3|CALLS=BackupError,Path,_default_unprivileged_lxc,_require_exact_source,_stream_argv_to_local,cluster_inventory,decode,get,int,is_file,len,mapped_scratch_probe,proven_lxc_dump_argv,run,splitlines,ssh_remote,stat,str,strip\nREC|BUILDER_CANDIDATE|IDX=4|FUNCTION=vps_ssh_argv\nREC|BUILDER_CANDIDATE|IDX=4|SCORE=25\nREC|BUILDER_CANDIDATE|IDX=4|MODULE_BASENAME=legacy_engine.py\nREC|BUILDER_CANDIDATE|IDX=4|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nREC|BUILDER_CANDIDATE|IDX=4|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3\nREC|BUILDER_CANDIDATE|IDX=4|POSITIONAL_ARGS=t\nREC|BUILDER_CANDIDATE|IDX=4|REQUIRED_POSITIONALS=1\nREC|BUILDER_CANDIDATE|IDX=4|VZDUMP_LITERAL=false\nREC|BUILDER_CANDIDATE|IDX=4|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=4|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=4|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=4|CALLS=str\nREC|BUILDER_CANDIDATE|IDX=5|FUNCTION=_isolated_guest266_dump_argv\nREC|BUILDER_CANDIDATE|IDX=5|SCORE=22\nREC|BUILDER_CANDIDATE|IDX=5|MODULE_BASENAME=legacy_engine.py\nREC|BUILDER_CANDIDATE|IDX=5|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nREC|BUILDER_CANDIDATE|IDX=5|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3\nREC|BUILDER_CANDIDATE|IDX=5|POSITIONAL_ARGS=job,vzdump,scratch,now\nREC|BUILDER_CANDIDATE|IDX=5|REQUIRED_POSITIONALS=4\nREC|BUILDER_CANDIDATE|IDX=5|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=5|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=5|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=5|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=5|CALLS=BackupError,_historical_graph_env,canonical_json,hexdigest,int,loads,run,sha256,str\nREC|BUILDER_CANDIDATE|IDX=6|FUNCTION=_stream_argv_to_local\nREC|BUILDER_CANDIDATE|IDX=6|SCORE=20\nREC|BUILDER_CANDIDATE|IDX=6|MODULE_BASENAME=legacy_engine.py\nREC|BUILDER_CANDIDATE|IDX=6|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nREC|BUILDER_CANDIDATE|IDX=6|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3\nREC|BUILDER_CANDIDATE|IDX=6|POSITIONAL_ARGS=node,argv,dest,timeout\nREC|BUILDER_CANDIDATE|IDX=6|REQUIRED_POSITIONALS=3\nREC|BUILDER_CANDIDATE|IDX=6|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=6|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=6|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=6|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=6|CALLS=BackupError,Path,hexdigest,is_file,join,open,run,sha256,stat,unlink\nREC|BUILDER_CANDIDATE|IDX=7|FUNCTION=produce\nREC|BUILDER_CANDIDATE|IDX=7|SCORE=17\nREC|BUILDER_CANDIDATE|IDX=7|MODULE_BASENAME=pve270.py\nREC|BUILDER_CANDIDATE|IDX=7|MODULE_SHA256=97015277a4f3f8129c0fd11eb70c06293026366f1f8232a97feeed513a2dbcef\nREC|BUILDER_CANDIDATE|IDX=7|MODULE_PATH_SHA256=08ea487b3621760e7f2a8be2d47f0253ba110c52f1f406729e907a7b7778b4af\nREC|BUILDER_CANDIDATE|IDX=7|POSITIONAL_ARGS=job,work,tools,guard\nREC|BUILDER_CANDIDATE|IDX=7|REQUIRED_POSITIONALS=4\nREC|BUILDER_CANDIDATE|IDX=7|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=7|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=7|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=7|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=7|CALLS=MappedScratch,Path,bounded_process,callable,canonical_bytes,capture_archive,check,close,create,dict,dump_argv,emit,exists,free_guard,get,guard,hash_file,int,list,listdir,loads,make_dir,min,need,private_dir,probe,read_secure,statvfs,str,time,validate_job,validate_mapping,validate_tools\nREC|BUILDER_CANDIDATE|IDX=8|FUNCTION=validate_ct\nREC|BUILDER_CANDIDATE|IDX=8|SCORE=17\nREC|BUILDER_CANDIDATE|IDX=8|MODULE_BASENAME=pve270.py\nREC|BUILDER_CANDIDATE|IDX=8|MODULE_SHA256=97015277a4f3f8129c0fd11eb70c06293026366f1f8232a97feeed513a2dbcef\nREC|BUILDER_CANDIDATE|IDX=8|MODULE_PATH_SHA256=08ea487b3621760e7f2a8be2d47f0253ba110c52f1f406729e907a7b7778b4af\nREC|BUILDER_CANDIDATE|IDX=8|POSITIONAL_ARGS=cfg,status,snaps,config_sha\nREC|BUILDER_CANDIDATE|IDX=8|REQUIRED_POSITIONALS=4\nREC|BUILDER_CANDIDATE|IDX=8|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=8|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=8|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=8|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=8|CALLS=all,any,canonical_bytes,get,len,need,sha,startswith,type\nREC|BUILDER_CANDIDATE|IDX=9|FUNCTION=produce\nREC|BUILDER_CANDIDATE|IDX=9|SCORE=17\nREC|BUILDER_CANDIDATE|IDX=9|MODULE_BASENAME=pve282.py\nREC|BUILDER_CANDIDATE|IDX=9|MODULE_SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012\nREC|BUILDER_CANDIDATE|IDX=9|MODULE_PATH_SHA256=9bb2d2e6bd6d829300d4f1dcfff8ee839cb2c55a3f88f1ed24f78194973da87b\nREC|BUILDER_CANDIDATE|IDX=9|POSITIONAL_ARGS=job,work,tools,guard\nREC|BUILDER_CANDIDATE|IDX=9|REQUIRED_POSITIONALS=4\nREC|BUILDER_CANDIDATE|IDX=9|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=9|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=9|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=9|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=9|CALLS=MappedScratch,Path,bounded_process,callable,canonical_bytes,capture_archive,check,close,create,dict,dump_argv,emit,exists,free_guard,get,guard,hash_file,int,list,listdir,loads,make_dir,min,need,private_dir,probe,read_secure,require_target,statvfs,str,time,validate_job,validate_mapping,validate_tools\nREC|BUILDER_CANDIDATE|IDX=10|FUNCTION=produce\nREC|BUILDER_CANDIDATE|IDX=10|SCORE=17\nREC|BUILDER_CANDIDATE|IDX=10|MODULE_BASENAME=pve282.py\nREC|BUILDER_CANDIDATE|IDX=10|MODULE_SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012\nREC|BUILDER_CANDIDATE|IDX=10|MODULE_PATH_SHA256=da0dee4dd13f6435d5c23bba253dfbdaae74b72c0a2fd02f8f0362866bd7eb77\nREC|BUILDER_CANDIDATE|IDX=10|POSITIONAL_ARGS=job,work,tools,guard\nREC|BUILDER_CANDIDATE|IDX=10|REQUIRED_POSITIONALS=4\nREC|BUILDER_CANDIDATE|IDX=10|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=10|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=10|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=10|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=10|CALLS=MappedScratch,Path,bounded_process,callable,canonical_bytes,capture_archive,check,close,create,dict,dump_argv,emit,exists,free_guard,get,guard,hash_file,int,list,listdir,loads,make_dir,min,need,private_dir,probe,read_secure,require_target,statvfs,str,time,validate_job,validate_mapping,validate_tools\nREC|BUILDER_CANDIDATE|IDX=11|FUNCTION=produce\nREC|BUILDER_CANDIDATE|IDX=11|SCORE=12\nREC|BUILDER_CANDIDATE|IDX=11|MODULE_BASENAME=pve265.py\nREC|BUILDER_CANDIDATE|IDX=11|MODULE_SHA256=cd2f634414a8e38a3789015aeca5a9b47821f77d7d1fa61dcdbdc866172963be\nREC|BUILDER_CANDIDATE|IDX=11|MODULE_PATH_SHA256=a3b2ce0dc30e17c1388bc76b409157514ad9e8244d1352e060a1801e4eea3fe3\nREC|BUILDER_CANDIDATE|IDX=11|POSITIONAL_ARGS=job,work,tools,guard,seconds\nREC|BUILDER_CANDIDATE|IDX=11|REQUIRED_POSITIONALS=4\nREC|BUILDER_CANDIDATE|IDX=11|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=11|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=11|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=11|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=11|CALLS=Path,bounded_process,callable,capture_archive,close,dict,dump_argv,free_guard,guard,hash_file,int,list,listdir,make_dir,min,need,private_dir,statvfs,str,time,validate_job,validate_tools\nREC|BUILDER_CANDIDATE|IDX=12|FUNCTION=host_mapping\nREC|BUILDER_CANDIDATE|IDX=12|SCORE=10\nREC|BUILDER_CANDIDATE|IDX=12|MODULE_BASENAME=pve270.py\nREC|BUILDER_CANDIDATE|IDX=12|MODULE_SHA256=97015277a4f3f8129c0fd11eb70c06293026366f1f8232a97feeed513a2dbcef\nREC|BUILDER_CANDIDATE|IDX=12|MODULE_PATH_SHA256=08ea487b3621760e7f2a8be2d47f0253ba110c52f1f406729e907a7b7778b4af\nREC|BUILDER_CANDIDATE|IDX=12|POSITIONAL_ARGS=\nREC|BUILDER_CANDIDATE|IDX=12|REQUIRED_POSITIONALS=0\nREC|BUILDER_CANDIDATE|IDX=12|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=12|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=12|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=12|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=12|CALLS=PVEError,Path,PerlPin,check,items,loads,need,read_secure,run,sha,validate_mapping\nREC|BUILDER_CANDIDATE|IDX=13|FUNCTION=_defaults\nREC|BUILDER_CANDIDATE|IDX=13|SCORE=10\nREC|BUILDER_CANDIDATE|IDX=13|MODULE_BASENAME=ct112_handler.py\nREC|BUILDER_CANDIDATE|IDX=13|MODULE_SHA256=e7b027de9a53d7219dd80c9d8e05f0eae0f53db90a53363c64dfa016815c0d00\nREC|BUILDER_CANDIDATE|IDX=13|MODULE_PATH_SHA256=67c03cae9afa0e9bc76b7dde46d38102df33ce78f5722a43bfc3d586f9e435d8\nREC|BUILDER_CANDIDATE|IDX=13|POSITIONAL_ARGS=\nREC|BUILDER_CANDIDATE|IDX=13|REQUIRED_POSITIONALS=0\nREC|BUILDER_CANDIDATE|IDX=13|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=13|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=13|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=13|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=13|CALLS=Path,RuntimeError,S_ISREG,read_text,stat\nREC|BUILDER_CANDIDATE|IDX=14|FUNCTION=selftest\nREC|BUILDER_CANDIDATE|IDX=14|SCORE=10\nREC|BUILDER_CANDIDATE|IDX=14|MODULE_BASENAME=ct112_handler.py\nREC|BUILDER_CANDIDATE|IDX=14|MODULE_SHA256=e7b027de9a53d7219dd80c9d8e05f0eae0f53db90a53363c64dfa016815c0d00\nREC|BUILDER_CANDIDATE|IDX=14|MODULE_PATH_SHA256=67c03cae9afa0e9bc76b7dde46d38102df33ce78f5722a43bfc3d586f9e435d8\nREC|BUILDER_CANDIDATE|IDX=14|POSITIONAL_ARGS=\nREC|BUILDER_CANDIDATE|IDX=14|REQUIRED_POSITIONALS=0\nREC|BUILDER_CANDIDATE|IDX=14|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=14|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=14|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=14|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=14|CALLS=_sha\nREC|BUILDER_CANDIDATE|IDX=15|FUNCTION=selftest\nREC|BUILDER_CANDIDATE|IDX=15|SCORE=10\nREC|BUILDER_CANDIDATE|IDX=15|MODULE_BASENAME=legacy_engine.py\nREC|BUILDER_CANDIDATE|IDX=15|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nREC|BUILDER_CANDIDATE|IDX=15|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3\nREC|BUILDER_CANDIDATE|IDX=15|POSITIONAL_ARGS=\nREC|BUILDER_CANDIDATE|IDX=15|REQUIRED_POSITIONALS=0\nREC|BUILDER_CANDIDATE|IDX=15|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=15|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=15|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=15|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=15|CALLS=_isolated_release_graph_selftest,_pve_dumpdir_spec,default_targets,get,is_file,len,print,proven_lxc_dump_argv\nREC|BUILDER_CANDIDATE|IDX=16|FUNCTION=run_target\nREC|BUILDER_CANDIDATE|IDX=16|SCORE=-10\nREC|BUILDER_CANDIDATE|IDX=16|MODULE_BASENAME=ct112_handler.py\nREC|BUILDER_CANDIDATE|IDX=16|MODULE_SHA256=e7b027de9a53d7219dd80c9d8e05f0eae0f53db90a53363c64dfa016815c0d00\nREC|BUILDER_CANDIDATE|IDX=16|MODULE_PATH_SHA256=67c03cae9afa0e9bc76b7dde46d38102df33ce78f5722a43bfc3d586f9e435d8\nREC|BUILDER_CANDIDATE|IDX=16|POSITIONAL_ARGS=target,state_writer\nREC|BUILDER_CANDIDATE|IDX=16|REQUIRED_POSITIONALS=1\nREC|BUILDER_CANDIDATE|IDX=16|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=16|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=16|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=16|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=16|CALLS=CloudLarge,LazyReader,RuntimeError,_baseline,_fresh_plan,_json_cmd,_private_config,_sha,_tool,close,exists,get,gmtime,host_mapping,int,isinstance,len,live_gate,mkdir,monotonic,no_active_tasks,produce,rmtree,run,run_flow,select112,state_writer,str,strftime,throw,time,token_hex,validate_mapping\nHISTORICAL_DUMP_ARGV_COUNT=0\nDECISION=PROVEN_UNIQUE_4PARAM_BUILDER_SOURCE_FOUND\nNEXT_GATE=TEST_BUILDER_IN_ISOLATED_LEGACY_SUBPROCESS_BEFORE_ANY_PATCH\nVZDUMP_BUILDER_PROBE_RC=0\nTASK_RESULT=CT112_VZDUMP_BUILDER_RECONCILE\nCHANGES_MADE=false\nROLLBACK_STARTED=false\nROLLBACK_RESTORED=null\nMUTATION_OUTCOME=NO_MUTATION\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1\",\"status\":\"OK\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n" +} diff --git a/runtime/history/SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1.txt b/runtime/history/SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1.txt new file mode 100644 index 00000000..720737d9 --- /dev/null +++ b/runtime/history/SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1.txt @@ -0,0 +1,280 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1 +STATUS=OK +RC=0 +HOST=pve01 +MODE=read-only +COMPONENT=ct112-vzdump-builder-reconcile +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=012284117e498efef3a42d8c73a49c9b08581631c8e0e5eec3b8df9636fa1ce7 +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=67c3c3bb1a82b0409816592bf0f17bc535b2a4e172261b39859692002a834c38 +SANITIZED_OUTPUT_SHA256=67c3c3bb1a82b0409816592bf0f17bc535b2a4e172261b39859692002a834c38 +OUTPUT_BEGIN +CT112_VZDUMP_BUILDER_RECONCILE=V1 +MODE=read-only +NO_MUTATION=true +BACKUP_SERVICE_RESULT=success +BACKUP_TIMER_ACTIVE=active +BACKUP_AUDIT=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 +WRAPPER_EXACT_COUNT=1 +LEGACY_HASH_MATCH=true +CT112_HANDLER_HASH_MATCH=true +GUEST266_PRESENT=true +GUEST266_SHA_MATCH=true +LEGACY_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3 +GUEST266_PATH_SHA256=71fee0e427fb01cb99ebb354c8aa5c0e984cb7f5f8a5992967165ee38e8693d6 +LEGACY__ISOLATED_GUEST266_DUMP_ARGV_PRESENT=true +LEGACY__ISOLATED_GUEST266_DUMP_ARGV_ARGS=job,vzdump,scratch,now +LEGACY__ISOLATED_GUEST266_DUMP_ARGV_ARGS_COUNT=4 +LEGACY__ISOLATED_GUEST266_DUMP_ARGV_CALL_NAMES=BackupError,_historical_graph_env,canonical_json,hexdigest,int,loads,run,sha256,str +LEGACY__ISOLATED_GUEST266_DUMP_ARGV_REFERS_GUEST266=true +LEGACY__ISOLATED_GUEST266_DUMP_ARGV_REFERS_DUMP_ARGV=true +LEGACY__ISOLATED_GUEST266_DUMP_ARGV_AST_SHA256=c04abee41c3d45992982a4af1e295c9e9bbd458f825952083c3bced96b5e4ba8 +LEGACY_PROVEN_LXC_DUMP_ARGV_PRESENT=true +LEGACY_PROVEN_LXC_DUMP_ARGV_ARGS=t,row,node,scratch +LEGACY_PROVEN_LXC_DUMP_ARGV_ARGS_COUNT=4 +LEGACY_PROVEN_LXC_DUMP_ARGV_CALL_NAMES=BackupError,Path,_isolated_guest266_dump_argv,_lxc_job,all,any,index,int,isinstance,len,list,startswith,str,time,type,which +LEGACY_PROVEN_LXC_DUMP_ARGV_REFERS_GUEST266=true +LEGACY_PROVEN_LXC_DUMP_ARGV_REFERS_DUMP_ARGV=true +LEGACY_PROVEN_LXC_DUMP_ARGV_AST_SHA256=b4d02b7cb3db8f9c20f3419b5749982dfe40aee812a90ff6da8a5f3e0e4238ef +LEGACY__LXC_JOB_PRESENT=true +LEGACY__LXC_JOB_ARGS=t,row,node +LEGACY__LXC_JOB_ARGS_COUNT=3 +LEGACY__LXC_JOB_CALL_NAMES=bool,get,int,max,time +LEGACY__LXC_JOB_REFERS_GUEST266=false +LEGACY__LXC_JOB_REFERS_DUMP_ARGV=false +LEGACY__LXC_JOB_AST_SHA256=4f807aba5212bb43b942434b148415f97bbb2b1a0113a0c7f59ab89f7f0c5573 +LEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_PRESENT=true +LEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_ARGS= +LEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_ARGS_COUNT=0 +LEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_CALL_NAMES=BackupError,Path,_historical_graph_env,get,hexdigest,items,loads,resolve,run,sha256,str +LEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_REFERS_GUEST266=true +LEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_REFERS_DUMP_ARGV=false +LEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_AST_SHA256=a803373ab29ff38b9b9dfab5f6a88ef4ff765534a7613253beda38ef8cae0ba7 +SEARCH_ROOT_COUNT=2 +SCAN_PYFILE_COUNT=27 +SCANNED_SOURCE_BYTES=302599 +BUILDER_CANDIDATE_COUNT=16 +EXACT_DUMP_ARGV_FOUR_PARAM_COUNT=1 +REC|BUILDER_CANDIDATE|IDX=1|FUNCTION=dump_argv +REC|BUILDER_CANDIDATE|IDX=1|SCORE=98 +REC|BUILDER_CANDIDATE|IDX=1|MODULE_BASENAME=pve265.py +REC|BUILDER_CANDIDATE|IDX=1|MODULE_SHA256=cd2f634414a8e38a3789015aeca5a9b47821f77d7d1fa61dcdbdc866172963be +REC|BUILDER_CANDIDATE|IDX=1|MODULE_PATH_SHA256=a3b2ce0dc30e17c1388bc76b409157514ad9e8244d1352e060a1801e4eea3fe3 +REC|BUILDER_CANDIDATE|IDX=1|POSITIONAL_ARGS=job,executable,tmpdir,now +REC|BUILDER_CANDIDATE|IDX=1|REQUIRED_POSITIONALS=4 +REC|BUILDER_CANDIDATE|IDX=1|VZDUMP_LITERAL=false +REC|BUILDER_CANDIDATE|IDX=1|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=1|MODE_FLAG=true +REC|BUILDER_CANDIDATE|IDX=1|COMPRESS_FLAG=true +REC|BUILDER_CANDIDATE|IDX=1|CALLS=need,path_ok,str,validate_job +REC|BUILDER_CANDIDATE|IDX=2|FUNCTION=proven_lxc_dump_argv +REC|BUILDER_CANDIDATE|IDX=2|SCORE=52 +REC|BUILDER_CANDIDATE|IDX=2|MODULE_BASENAME=legacy_engine.py +REC|BUILDER_CANDIDATE|IDX=2|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +REC|BUILDER_CANDIDATE|IDX=2|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3 +REC|BUILDER_CANDIDATE|IDX=2|POSITIONAL_ARGS=t,row,node,scratch +REC|BUILDER_CANDIDATE|IDX=2|REQUIRED_POSITIONALS=4 +REC|BUILDER_CANDIDATE|IDX=2|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=2|DUMPDIR_FLAG=true +REC|BUILDER_CANDIDATE|IDX=2|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=2|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=2|CALLS=BackupError,Path,_isolated_guest266_dump_argv,_lxc_job,all,any,index,int,isinstance,len,list,startswith,str,time,type,which +REC|BUILDER_CANDIDATE|IDX=3|FUNCTION=capture_pve_guest +REC|BUILDER_CANDIDATE|IDX=3|SCORE=26 +REC|BUILDER_CANDIDATE|IDX=3|MODULE_BASENAME=legacy_engine.py +REC|BUILDER_CANDIDATE|IDX=3|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +REC|BUILDER_CANDIDATE|IDX=3|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3 +REC|BUILDER_CANDIDATE|IDX=3|POSITIONAL_ARGS=t,gen,work +REC|BUILDER_CANDIDATE|IDX=3|REQUIRED_POSITIONALS=3 +REC|BUILDER_CANDIDATE|IDX=3|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=3|DUMPDIR_FLAG=true +REC|BUILDER_CANDIDATE|IDX=3|MODE_FLAG=true +REC|BUILDER_CANDIDATE|IDX=3|COMPRESS_FLAG=true +REC|BUILDER_CANDIDATE|IDX=3|CALLS=BackupError,Path,_default_unprivileged_lxc,_require_exact_source,_stream_argv_to_local,cluster_inventory,decode,get,int,is_file,len,mapped_scratch_probe,proven_lxc_dump_argv,run,splitlines,ssh_remote,stat,str,strip +REC|BUILDER_CANDIDATE|IDX=4|FUNCTION=vps_ssh_argv +REC|BUILDER_CANDIDATE|IDX=4|SCORE=25 +REC|BUILDER_CANDIDATE|IDX=4|MODULE_BASENAME=legacy_engine.py +REC|BUILDER_CANDIDATE|IDX=4|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +REC|BUILDER_CANDIDATE|IDX=4|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3 +REC|BUILDER_CANDIDATE|IDX=4|POSITIONAL_ARGS=t +REC|BUILDER_CANDIDATE|IDX=4|REQUIRED_POSITIONALS=1 +REC|BUILDER_CANDIDATE|IDX=4|VZDUMP_LITERAL=false +REC|BUILDER_CANDIDATE|IDX=4|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=4|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=4|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=4|CALLS=str +REC|BUILDER_CANDIDATE|IDX=5|FUNCTION=_isolated_guest266_dump_argv +REC|BUILDER_CANDIDATE|IDX=5|SCORE=22 +REC|BUILDER_CANDIDATE|IDX=5|MODULE_BASENAME=legacy_engine.py +REC|BUILDER_CANDIDATE|IDX=5|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +REC|BUILDER_CANDIDATE|IDX=5|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3 +REC|BUILDER_CANDIDATE|IDX=5|POSITIONAL_ARGS=job,vzdump,scratch,now +REC|BUILDER_CANDIDATE|IDX=5|REQUIRED_POSITIONALS=4 +REC|BUILDER_CANDIDATE|IDX=5|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=5|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=5|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=5|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=5|CALLS=BackupError,_historical_graph_env,canonical_json,hexdigest,int,loads,run,sha256,str +REC|BUILDER_CANDIDATE|IDX=6|FUNCTION=_stream_argv_to_local +REC|BUILDER_CANDIDATE|IDX=6|SCORE=20 +REC|BUILDER_CANDIDATE|IDX=6|MODULE_BASENAME=legacy_engine.py +REC|BUILDER_CANDIDATE|IDX=6|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +REC|BUILDER_CANDIDATE|IDX=6|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3 +REC|BUILDER_CANDIDATE|IDX=6|POSITIONAL_ARGS=node,argv,dest,timeout +REC|BUILDER_CANDIDATE|IDX=6|REQUIRED_POSITIONALS=3 +REC|BUILDER_CANDIDATE|IDX=6|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=6|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=6|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=6|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=6|CALLS=BackupError,Path,hexdigest,is_file,join,open,run,sha256,stat,unlink +REC|BUILDER_CANDIDATE|IDX=7|FUNCTION=produce +REC|BUILDER_CANDIDATE|IDX=7|SCORE=17 +REC|BUILDER_CANDIDATE|IDX=7|MODULE_BASENAME=pve270.py +REC|BUILDER_CANDIDATE|IDX=7|MODULE_SHA256=97015277a4f3f8129c0fd11eb70c06293026366f1f8232a97feeed513a2dbcef +REC|BUILDER_CANDIDATE|IDX=7|MODULE_PATH_SHA256=08ea487b3621760e7f2a8be2d47f0253ba110c52f1f406729e907a7b7778b4af +REC|BUILDER_CANDIDATE|IDX=7|POSITIONAL_ARGS=job,work,tools,guard +REC|BUILDER_CANDIDATE|IDX=7|REQUIRED_POSITIONALS=4 +REC|BUILDER_CANDIDATE|IDX=7|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=7|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=7|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=7|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=7|CALLS=MappedScratch,Path,bounded_process,callable,canonical_bytes,capture_archive,check,close,create,dict,dump_argv,emit,exists,free_guard,get,guard,hash_file,int,list,listdir,loads,make_dir,min,need,private_dir,probe,read_secure,statvfs,str,time,validate_job,validate_mapping,validate_tools +REC|BUILDER_CANDIDATE|IDX=8|FUNCTION=validate_ct +REC|BUILDER_CANDIDATE|IDX=8|SCORE=17 +REC|BUILDER_CANDIDATE|IDX=8|MODULE_BASENAME=pve270.py +REC|BUILDER_CANDIDATE|IDX=8|MODULE_SHA256=97015277a4f3f8129c0fd11eb70c06293026366f1f8232a97feeed513a2dbcef +REC|BUILDER_CANDIDATE|IDX=8|MODULE_PATH_SHA256=08ea487b3621760e7f2a8be2d47f0253ba110c52f1f406729e907a7b7778b4af +REC|BUILDER_CANDIDATE|IDX=8|POSITIONAL_ARGS=cfg,status,snaps,config_sha +REC|BUILDER_CANDIDATE|IDX=8|REQUIRED_POSITIONALS=4 +REC|BUILDER_CANDIDATE|IDX=8|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=8|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=8|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=8|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=8|CALLS=all,any,canonical_bytes,get,len,need,sha,startswith,type +REC|BUILDER_CANDIDATE|IDX=9|FUNCTION=produce +REC|BUILDER_CANDIDATE|IDX=9|SCORE=17 +REC|BUILDER_CANDIDATE|IDX=9|MODULE_BASENAME=pve282.py +REC|BUILDER_CANDIDATE|IDX=9|MODULE_SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012 +REC|BUILDER_CANDIDATE|IDX=9|MODULE_PATH_SHA256=9bb2d2e6bd6d829300d4f1dcfff8ee839cb2c55a3f88f1ed24f78194973da87b +REC|BUILDER_CANDIDATE|IDX=9|POSITIONAL_ARGS=job,work,tools,guard +REC|BUILDER_CANDIDATE|IDX=9|REQUIRED_POSITIONALS=4 +REC|BUILDER_CANDIDATE|IDX=9|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=9|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=9|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=9|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=9|CALLS=MappedScratch,Path,bounded_process,callable,canonical_bytes,capture_archive,check,close,create,dict,dump_argv,emit,exists,free_guard,get,guard,hash_file,int,list,listdir,loads,make_dir,min,need,private_dir,probe,read_secure,require_target,statvfs,str,time,validate_job,validate_mapping,validate_tools +REC|BUILDER_CANDIDATE|IDX=10|FUNCTION=produce +REC|BUILDER_CANDIDATE|IDX=10|SCORE=17 +REC|BUILDER_CANDIDATE|IDX=10|MODULE_BASENAME=pve282.py +REC|BUILDER_CANDIDATE|IDX=10|MODULE_SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012 +REC|BUILDER_CANDIDATE|IDX=10|MODULE_PATH_SHA256=da0dee4dd13f6435d5c23bba253dfbdaae74b72c0a2fd02f8f0362866bd7eb77 +REC|BUILDER_CANDIDATE|IDX=10|POSITIONAL_ARGS=job,work,tools,guard +REC|BUILDER_CANDIDATE|IDX=10|REQUIRED_POSITIONALS=4 +REC|BUILDER_CANDIDATE|IDX=10|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=10|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=10|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=10|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=10|CALLS=MappedScratch,Path,bounded_process,callable,canonical_bytes,capture_archive,check,close,create,dict,dump_argv,emit,exists,free_guard,get,guard,hash_file,int,list,listdir,loads,make_dir,min,need,private_dir,probe,read_secure,require_target,statvfs,str,time,validate_job,validate_mapping,validate_tools +REC|BUILDER_CANDIDATE|IDX=11|FUNCTION=produce +REC|BUILDER_CANDIDATE|IDX=11|SCORE=12 +REC|BUILDER_CANDIDATE|IDX=11|MODULE_BASENAME=pve265.py +REC|BUILDER_CANDIDATE|IDX=11|MODULE_SHA256=cd2f634414a8e38a3789015aeca5a9b47821f77d7d1fa61dcdbdc866172963be +REC|BUILDER_CANDIDATE|IDX=11|MODULE_PATH_SHA256=a3b2ce0dc30e17c1388bc76b409157514ad9e8244d1352e060a1801e4eea3fe3 +REC|BUILDER_CANDIDATE|IDX=11|POSITIONAL_ARGS=job,work,tools,guard,seconds +REC|BUILDER_CANDIDATE|IDX=11|REQUIRED_POSITIONALS=4 +REC|BUILDER_CANDIDATE|IDX=11|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=11|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=11|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=11|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=11|CALLS=Path,bounded_process,callable,capture_archive,close,dict,dump_argv,free_guard,guard,hash_file,int,list,listdir,make_dir,min,need,private_dir,statvfs,str,time,validate_job,validate_tools +REC|BUILDER_CANDIDATE|IDX=12|FUNCTION=host_mapping +REC|BUILDER_CANDIDATE|IDX=12|SCORE=10 +REC|BUILDER_CANDIDATE|IDX=12|MODULE_BASENAME=pve270.py +REC|BUILDER_CANDIDATE|IDX=12|MODULE_SHA256=97015277a4f3f8129c0fd11eb70c06293026366f1f8232a97feeed513a2dbcef +REC|BUILDER_CANDIDATE|IDX=12|MODULE_PATH_SHA256=08ea487b3621760e7f2a8be2d47f0253ba110c52f1f406729e907a7b7778b4af +REC|BUILDER_CANDIDATE|IDX=12|POSITIONAL_ARGS= +REC|BUILDER_CANDIDATE|IDX=12|REQUIRED_POSITIONALS=0 +REC|BUILDER_CANDIDATE|IDX=12|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=12|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=12|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=12|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=12|CALLS=PVEError,Path,PerlPin,check,items,loads,need,read_secure,run,sha,validate_mapping +REC|BUILDER_CANDIDATE|IDX=13|FUNCTION=_defaults +REC|BUILDER_CANDIDATE|IDX=13|SCORE=10 +REC|BUILDER_CANDIDATE|IDX=13|MODULE_BASENAME=ct112_handler.py +REC|BUILDER_CANDIDATE|IDX=13|MODULE_SHA256=e7b027de9a53d7219dd80c9d8e05f0eae0f53db90a53363c64dfa016815c0d00 +REC|BUILDER_CANDIDATE|IDX=13|MODULE_PATH_SHA256=67c03cae9afa0e9bc76b7dde46d38102df33ce78f5722a43bfc3d586f9e435d8 +REC|BUILDER_CANDIDATE|IDX=13|POSITIONAL_ARGS= +REC|BUILDER_CANDIDATE|IDX=13|REQUIRED_POSITIONALS=0 +REC|BUILDER_CANDIDATE|IDX=13|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=13|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=13|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=13|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=13|CALLS=Path,RuntimeError,S_ISREG,read_text,stat +REC|BUILDER_CANDIDATE|IDX=14|FUNCTION=selftest +REC|BUILDER_CANDIDATE|IDX=14|SCORE=10 +REC|BUILDER_CANDIDATE|IDX=14|MODULE_BASENAME=ct112_handler.py +REC|BUILDER_CANDIDATE|IDX=14|MODULE_SHA256=e7b027de9a53d7219dd80c9d8e05f0eae0f53db90a53363c64dfa016815c0d00 +REC|BUILDER_CANDIDATE|IDX=14|MODULE_PATH_SHA256=67c03cae9afa0e9bc76b7dde46d38102df33ce78f5722a43bfc3d586f9e435d8 +REC|BUILDER_CANDIDATE|IDX=14|POSITIONAL_ARGS= +REC|BUILDER_CANDIDATE|IDX=14|REQUIRED_POSITIONALS=0 +REC|BUILDER_CANDIDATE|IDX=14|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=14|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=14|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=14|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=14|CALLS=_sha +REC|BUILDER_CANDIDATE|IDX=15|FUNCTION=selftest +REC|BUILDER_CANDIDATE|IDX=15|SCORE=10 +REC|BUILDER_CANDIDATE|IDX=15|MODULE_BASENAME=legacy_engine.py +REC|BUILDER_CANDIDATE|IDX=15|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +REC|BUILDER_CANDIDATE|IDX=15|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3 +REC|BUILDER_CANDIDATE|IDX=15|POSITIONAL_ARGS= +REC|BUILDER_CANDIDATE|IDX=15|REQUIRED_POSITIONALS=0 +REC|BUILDER_CANDIDATE|IDX=15|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=15|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=15|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=15|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=15|CALLS=_isolated_release_graph_selftest,_pve_dumpdir_spec,default_targets,get,is_file,len,print,proven_lxc_dump_argv +REC|BUILDER_CANDIDATE|IDX=16|FUNCTION=run_target +REC|BUILDER_CANDIDATE|IDX=16|SCORE=-10 +REC|BUILDER_CANDIDATE|IDX=16|MODULE_BASENAME=ct112_handler.py +REC|BUILDER_CANDIDATE|IDX=16|MODULE_SHA256=e7b027de9a53d7219dd80c9d8e05f0eae0f53db90a53363c64dfa016815c0d00 +REC|BUILDER_CANDIDATE|IDX=16|MODULE_PATH_SHA256=67c03cae9afa0e9bc76b7dde46d38102df33ce78f5722a43bfc3d586f9e435d8 +REC|BUILDER_CANDIDATE|IDX=16|POSITIONAL_ARGS=target,state_writer +REC|BUILDER_CANDIDATE|IDX=16|REQUIRED_POSITIONALS=1 +REC|BUILDER_CANDIDATE|IDX=16|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=16|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=16|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=16|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=16|CALLS=CloudLarge,LazyReader,RuntimeError,_baseline,_fresh_plan,_json_cmd,_private_config,_sha,_tool,close,exists,get,gmtime,host_mapping,int,isinstance,len,live_gate,mkdir,monotonic,no_active_tasks,produce,rmtree,run,run_flow,select112,state_writer,str,strftime,throw,time,token_hex,validate_mapping +HISTORICAL_DUMP_ARGV_COUNT=0 +DECISION=PROVEN_UNIQUE_4PARAM_BUILDER_SOURCE_FOUND +NEXT_GATE=TEST_BUILDER_IN_ISOLATED_LEGACY_SUBPROCESS_BEFORE_ANY_PATCH +VZDUMP_BUILDER_PROBE_RC=0 +TASK_RESULT=CT112_VZDUMP_BUILDER_RECONCILE +CHANGES_MADE=false +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=NO_MUTATION +HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index f4d9395c..7878a31a 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "SUPPORT-261008-CT112-GUEST266-EXPORT-CONTRACT-99809R1", + "command_id": "SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1", "status": "OK", "rc": 0, "host": "pve01", "mode": "read-only", - "component": "ct112-guest266-export-contract", - "started_at_utc": "2026-10-07T23:11:17Z", - "finished_at_utc": "2026-10-07T23:11:17Z", + "component": "ct112-vzdump-builder-reconcile", + "started_at_utc": "2026-10-07T23:15:39Z", + "finished_at_utc": "2026-10-07T23:15:39Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "a46085eebf3b7c5742b5140bab6f8c366fbcfe6223bdbc80334bc207f20093be", + "command_sha256": "012284117e498efef3a42d8c73a49c9b08581631c8e0e5eec3b8df9636fa1ce7", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "ebe1d110b44088c3b07192ed81a9f3ea97ea0bf15a47456fd73bc4f7a4c1d6ad", - "sanitized_output_sha256": "ebe1d110b44088c3b07192ed81a9f3ea97ea0bf15a47456fd73bc4f7a4c1d6ad", + "raw_evidence_sha256": "67c3c3bb1a82b0409816592bf0f17bc535b2a4e172261b39859692002a834c38", + "sanitized_output_sha256": "67c3c3bb1a82b0409816592bf0f17bc535b2a4e172261b39859692002a834c38", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "CT112_GUEST266_EXPORT_CONTRACT=V1\nMODE=read-only\nNO_MUTATION=true\nBACKUP_V2_ACTIVE=inactive\nBACKUP_V2_RESULT=success\nBACKUP_V2_TIMER_ACTIVE=active\nBACKUP_AUDIT=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\nWRAPPER_EXACT_COUNT=1\nWRAPPER_LEGACY_HASH_MATCH=true\nWRAPPER_HANDLER_HASH_MATCH=true\nGUEST266_PRESENT=true\nGUEST266_HASH_MATCH=true\nGUEST266_TOPLEVEL_FUNCTION_COUNT=6\nGUEST266_TOPLEVEL_FUNCTION_NAMES=plan_rows,choose,same_state,no_active_tasks,check_result,run_flow\nGUEST266_HAS_DUMP_ARGV=false\nREC|GUEST266_EXPORT_1_NAME=plan_rows\nREC|GUEST266_EXPORT_1_ARGS=plan\nREC|GUEST266_EXPORT_1_KWONLY_ARGS=\nREC|GUEST266_EXPORT_1_STAR=NONE\nREC|GUEST266_EXPORT_1_DOUBLESTAR=NONE\nREC|GUEST266_EXPORT_1_POSITIONAL_COUNT=1\nREC|GUEST266_EXPORT_1_REQUIRED_POSITIONALS=1\nREC|GUEST266_EXPORT_1_BODY_NODE_COUNT=7\nREC|GUEST266_EXPORT_1_CALL_NAMES=all,get,len,need,type\nREC|GUEST266_EXPORT_1_RETURN_FORMS=Name\nREC|GUEST266_EXPORT_1_SAFE_AST_SHA256=b7c8f2b5848d56e29ca7041ae051160bfb07903b4215ad81f61c73bec8bb2ff7\nREC|GUEST266_EXPORT_1_SAFE_AST_OUTLINE=def plan_rows(plan): || t.need(type(plan) is dict and plan.get('') == '', '') || rows = plan.get('') || t.need(type(rows) is list and 0 < len(rows) <= 0 and (plan.get('') == len(rows)), '') || t.need(all((type(j) is dict and type(j.get('')) is int for j in rows)), '') || t.need(len({j[''] for j in rows}) == len(rows), '') || t.need(plan.get('') is 0, '') || return rows\nREC|GUEST266_EXPORT_2_NAME=choose\nREC|GUEST266_EXPORT_2_ARGS=plan,now\nREC|GUEST266_EXPORT_2_KWONLY_ARGS=\nREC|GUEST266_EXPORT_2_STAR=NONE\nREC|GUEST266_EXPORT_2_DOUBLESTAR=NONE\nREC|GUEST266_EXPORT_2_POSITIONAL_COUNT=2\nREC|GUEST266_EXPORT_2_REQUIRED_POSITIONALS=2\nREC|GUEST266_EXPORT_2_BODY_NODE_COUNT=12\nREC|GUEST266_EXPORT_2_CALL_NAMES=append,bool,deepcopy,get,len,max,min,need,plan_rows,type,validate_job\nREC|GUEST266_EXPORT_2_RETURN_FORMS=Call\nREC|GUEST266_EXPORT_2_SAFE_AST_SHA256=d32af9764f3f95d11e56cd5edcc20460424a0e8642527c9ab88e9dc187541ba1\nREC|GUEST266_EXPORT_2_SAFE_AST_OUTLINE=def choose(plan, now): || rows = plan_rows(plan) || t.need(plan.get('') == [], '') || candidates = [] || for job in rows: || if not (job.get('') == '' and job.get('') is 0 and (job.get('') == []) and (job.get('') is 0) and (job.get('') is 0)): || continue || disks = job.get('') || if not (type(disks) is list and len(disks) == 0 and (disks[0].get('') == '') and (disks[0].get('') == '') and (disks[0].get('') in ('', ''))): || continue || n = job.get('') || if type(n) is not int or not 0 < n <= MAX_CONFIGURED_BYTES: || continue || producer.validate_job(job, now) || candidates.append(job) || t.\nREC|GUEST266_EXPORT_3_NAME=same_state\nREC|GUEST266_EXPORT_3_ARGS=before,after,vmid\nREC|GUEST266_EXPORT_3_KWONLY_ARGS=\nREC|GUEST266_EXPORT_3_STAR=NONE\nREC|GUEST266_EXPORT_3_DOUBLESTAR=NONE\nREC|GUEST266_EXPORT_3_POSITIONAL_COUNT=3\nREC|GUEST266_EXPORT_3_REQUIRED_POSITIONALS=3\nREC|GUEST266_EXPORT_3_BODY_NODE_COUNT=11\nREC|GUEST266_EXPORT_3_CALL_NAMES=get,len,membership,need,plan_rows,sorted\nREC|GUEST266_EXPORT_3_RETURN_FORMS=\nREC|GUEST266_EXPORT_3_SAFE_AST_SHA256=110c3ba42ad1540052bdff8e242d2feb26b25c39784fe1a9094c24e2b2bf4dc2\nREC|GUEST266_EXPORT_3_SAFE_AST_OUTLINE=def same_state(before, after, vmid): || old = plan_rows(before) || new = plan_rows(after) || membership = lambda rows: sorted(((x[''], x[''], x[''], x[''], x['']) for x in rows)) || t.need(membership(old) == membership(new), '') || t.need(before[''] == after[''], '') || matches = [j for j in new if j[''] == vmid] || original = [j for j in old if j[''] == vmid] || t.need(len(matches) == len(original) == 0, '') || a, b = (original[0], matches[0]) || t.need(b.get('') is 0 and b.get('') == [], '') || for key in ('', '', '', '', '', '', ''): || t.need(a.get(key) == b.get(key), '')\nREC|GUEST266_EXPORT_4_NAME=no_active_tasks\nREC|GUEST266_EXPORT_4_ARGS=rows,vmid\nREC|GUEST266_EXPORT_4_KWONLY_ARGS=\nREC|GUEST266_EXPORT_4_STAR=NONE\nREC|GUEST266_EXPORT_4_DOUBLESTAR=NONE\nREC|GUEST266_EXPORT_4_POSITIONAL_COUNT=2\nREC|GUEST266_EXPORT_4_REQUIRED_POSITIONALS=2\nREC|GUEST266_EXPORT_4_BODY_NODE_COUNT=2\nREC|GUEST266_EXPORT_4_CALL_NAMES=any,get,len,lower,need,str,type\nREC|GUEST266_EXPORT_4_RETURN_FORMS=\nREC|GUEST266_EXPORT_4_SAFE_AST_SHA256=81205d76854dcb627897e5d8bd82b5a49468a07f8921861e87f712f1994b804e\nREC|GUEST266_EXPORT_4_SAFE_AST_OUTLINE=def no_active_tasks(rows, vmid): || t.need(type(rows) is list and len(rows) < 0, '') || for task in rows: || t.need(type(task) is dict and type(task.get('')) is str, '') || if type(task.get('')) is int and task.get('') not in (None, ''): || continue || kind = task[''] || target = str(task.get('', '')) || if kind in ('', '', '', ''): || continue || t.need(target != str(vmid) and (not any((x in kind.lower() for x in ('', '', '', '', '', '', '')))), '')\nREC|GUEST266_EXPORT_5_NAME=check_result\nREC|GUEST266_EXPORT_5_ARGS=result,job,work\nREC|GUEST266_EXPORT_5_KWONLY_ARGS=\nREC|GUEST266_EXPORT_5_STAR=NONE\nREC|GUEST266_EXPORT_5_DOUBLESTAR=NONE\nREC|GUEST266_EXPORT_5_POSITIONAL_COUNT=3\nREC|GUEST266_EXPORT_5_REQUIRED_POSITIONALS=3\nREC|GUEST266_EXPORT_5_BODY_NODE_COUNT=12\nREC|GUEST266_EXPORT_5_CALL_NAMES=Path,close,get,hash_file,list,listdir,need,open_dir,str,type\nREC|GUEST266_EXPORT_5_RETURN_FORMS=Name\nREC|GUEST266_EXPORT_5_SAFE_AST_SHA256=201602f107a661fdbd41a96feda13666bf269e0d4ee11dde9c62aedb78ee0d9e\nREC|GUEST266_EXPORT_5_SAFE_AST_OUTLINE=def check_result(result, job, work): || t.need(type(result) is dict, '') || expected = Path(work) / ('' % job['']) || t.need(result.get('') == str(expected), '') || for k in ('', '', '', ''): || t.need(result.get(k) == job[k], '') || t.need(result.get('') == 0 and result.get('') is 0, '') || t.need(type(result.get('')) is int and 0 < result[''] <= job[''], '') || n, h, identity = stream.hash_file(expected, job['']) || t.need(n == result[''] and h == result.get('') and (list(identity) == result.get('')), '') || temp = Path(work) / '' || fd = t.open_dir(temp) || try: || t.need(os.listdir(fd\nREC|GUEST266_EXPORT_6_NAME=run_flow\nREC|GUEST266_EXPORT_6_ARGS=job,work,entries,cloud,reader,produce,state_guard,guard,compression_check,generation,say,clock\nREC|GUEST266_EXPORT_6_KWONLY_ARGS=\nREC|GUEST266_EXPORT_6_STAR=NONE\nREC|GUEST266_EXPORT_6_DOUBLESTAR=NONE\nREC|GUEST266_EXPORT_6_POSITIONAL_COUNT=12\nREC|GUEST266_EXPORT_6_REQUIRED_POSITIONALS=11\nREC|GUEST266_EXPORT_6_BODY_NODE_COUNT=35\nREC|GUEST266_EXPORT_6_CALL_NAMES=Path,all,callable,canonical_bytes,check_result,cleanup,clock,compression_check,create,discover,get,guard,int,len,make_dir,manifest_hash,need,produce,restore,say,state_guard,time,upload,valid_name,validate_inventory,validate_job\nREC|GUEST266_EXPORT_6_RETURN_FORMS=Dict\nREC|GUEST266_EXPORT_6_SAFE_AST_SHA256=bfd6b773e40f9e89f6777eb01922534012c4c264d67ebc9ed4889091c051893e\nREC|GUEST266_EXPORT_6_SAFE_AST_OUTLINE=def run_flow(job, work, entries, cloud, reader, produce, state_guard, guard, compression_check, generation, say, clock=lambda: int(time.time())): || \"\"\"\"\"\" || producer.validate_job(job, clock()) || core.validate_inventory(entries) || t.need(job[''] == '' and job.get('') is 0, '') || t.need(core.valid_name(generation), '') || t.need(all((callable(f) for f in (produce, state_guard, guard, compression_check, say, clock))), '') || work = Path(work) || state_guard() || guard() || for sub in ('', '', ''): || t.make_dir(work / sub, exclusive=0) || say('', '') || produced = produce(job, work / '') || source = check_result(produced, job, work / '') || state_guard() || \nGUEST266_MODULE_EXPORT_ALIAS_DUMP_ARGV=false\nGUEST266_ALL_CALL_NAMES=Path,all,any,append,bool,callable,canonical_bytes,check_result,cleanup,clock,close,compression_check,create,deepcopy,discover,get,guard,hash_file,int,len,list,listdir,lower,make_dir,manifest_hash,max,membership,min,need,open_dir,plan_rows,produce,restore,say,sorted,state_guard,str,time,type,upload,valid_name,validate_inventory,validate_job\nLEGACY_RELEVANT_FUNCTIONS=_isolated_release_graph_selftest,proven_lxc_dump_argv,selftest\nREC|LEGACY_FUNCTION_1_NAME=_isolated_release_graph_selftest\nREC|LEGACY_FUNCTION_1_ARGS=\nREC|LEGACY_FUNCTION_1_KWONLY_ARGS=\nREC|LEGACY_FUNCTION_1_STAR=NONE\nREC|LEGACY_FUNCTION_1_DOUBLESTAR=NONE\nREC|LEGACY_FUNCTION_1_POSITIONAL_COUNT=0\nREC|LEGACY_FUNCTION_1_REQUIRED_POSITIONALS=0\nREC|LEGACY_FUNCTION_1_BODY_NODE_COUNT=7\nREC|LEGACY_FUNCTION_1_CALL_NAMES=BackupError,Path,_historical_graph_env,get,hexdigest,items,loads,resolve,run,sha256,str\nREC|LEGACY_FUNCTION_1_RETURN_FORMS=Constant\nREC|LEGACY_FUNCTION_1_SAFE_AST_SHA256=d2c89b325fefa61a496a88bdfc83d0c539bcafe0dcc2703c874dc81f54757ead\nREC|LEGACY_FUNCTION_1_SAFE_AST_OUTLINE=def _isolated_release_graph_selftest(): || env = _historical_graph_env() || p = subprocess.run([sys.executable, '', '', _HISTORICAL_HELPER, ''], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env, cwd='', timeout=0) || if p.returncode != 0: || raise BackupError('', f'{p.returncode}{hashlib.sha256(p.stderr).hexdigest()}') || try: || out = json.loads(p.stdout) || except Exception: || raise BackupError('') || expected = {'': str(GUEST266), '': str(P265), '': str(P270), '': str(P282)} || for k, v in expected.items(): || if str(pathlib.Path(out.get(k, '')).resolve()) != str(pathlib.Path(v).resolve()): || raise BackupError('', k) || return 0\nREC|LEGACY_FUNCTION_2_NAME=proven_lxc_dump_argv\nREC|LEGACY_FUNCTION_2_ARGS=t,row,node,scratch\nREC|LEGACY_FUNCTION_2_KWONLY_ARGS=\nREC|LEGACY_FUNCTION_2_STAR=NONE\nREC|LEGACY_FUNCTION_2_DOUBLESTAR=NONE\nREC|LEGACY_FUNCTION_2_POSITIONAL_COUNT=4\nREC|LEGACY_FUNCTION_2_REQUIRED_POSITIONALS=4\nREC|LEGACY_FUNCTION_2_BODY_NODE_COUNT=11\nREC|LEGACY_FUNCTION_2_CALL_NAMES=BackupError,Path,_isolated_guest266_dump_argv,_lxc_job,all,any,index,int,isinstance,len,list,startswith,str,time,type,which\nREC|LEGACY_FUNCTION_2_RETURN_FORMS=Tuple\nREC|LEGACY_FUNCTION_2_SAFE_AST_SHA256=b49d47e03d87aeaeb920aa1759ab55f03bfab1c328294b76b92a739d0562e308\nREC|LEGACY_FUNCTION_2_SAFE_AST_OUTLINE=def proven_lxc_dump_argv(t, row, node, scratch): || job = _lxc_job(t, row, node) || vzdump = shutil.which('') or '' || try: || argv = _isolated_guest266_dump_argv(job, vzdump, pathlib.Path(scratch), int(time.time())) || except BackupError: || raise || except Exception as e: || raise BackupError('', type(e).__name__) || if not isinstance(argv, (list, tuple)) or not argv or (not all((isinstance(x, str) for x in argv))): || raise BackupError('') || argv = list(argv) || if pathlib.Path(argv[0]).name != '' or str(int(t[''])) not in argv: || raise BackupError('') || if '' in argv or any((x.startswith('') for x in argv)): || raise BackupError('') || if not any((x == '' or x.startswith('') for x in argv)): || raise BackupError('') || if str(scratch) not in argv and (not any((x == '' + str(scratch) for x in argv))): || raise BackupError('') || if '' in argv: || i = argv.index('') || if i + 0 >= len(argv) or argv[i + 0] != str(scratch): || raise BackupError('') || elif '' + str(scratch) not in argv: || raise BackupError('') || return (argv, job)\nREC|LEGACY_FUNCTION_3_NAME=selftest\nREC|LEGACY_FUNCTION_3_ARGS=\nREC|LEGACY_FUNCTION_3_KWONLY_ARGS=\nREC|LEGACY_FUNCTION_3_STAR=NONE\nREC|LEGACY_FUNCTION_3_DOUBLESTAR=NONE\nREC|LEGACY_FUNCTION_3_POSITIONAL_COUNT=0\nREC|LEGACY_FUNCTION_3_REQUIRED_POSITIONALS=0\nREC|LEGACY_FUNCTION_3_BODY_NODE_COUNT=11\nREC|LEGACY_FUNCTION_3_CALL_NAMES=_isolated_release_graph_selftest,_pve_dumpdir_spec,default_targets,get,is_file,len,print,proven_lxc_dump_argv\nREC|LEGACY_FUNCTION_3_RETURN_FORMS=Constant\nREC|LEGACY_FUNCTION_3_SAFE_AST_SHA256=e19006ae7f92183d407a7722c74fb733dc0e993b7cc6a361ad891aa33ceb7771\nREC|LEGACY_FUNCTION_3_SAFE_AST_OUTLINE=def selftest(): || assert PART_SIZE == 0 || assert len(REMOTES) == 0 and len({p for _, p in REMOTES}) == 0 || assert len(default_targets()) >= 0 || assert {t[''] for t in default_targets() if t.get('')} == {'', '', '', '', '', '', '', '', ''} || assert _pve_dumpdir_spec('') == (0, 0) || assert _pve_dumpdir_spec('') == (0, 0) || assert GUEST266_SHA == '' || assert P282_SHA == '' || if GUEST266.is_file(): || assert _isolated_release_graph_selftest() is 0 || av, _ = proven_lxc_dump_argv({'': 0}, {'': 0, '': 0, '': '', '': ''}, '', '') || assert '' in av and '' in av and ('' in av) || print('') || return 0\nWRAPPER_SELFTEST_TOKEN=GUEST266_SUBPROCESS_FAILED\nCAPTURED_KNOWN_INLINE_COUNT=2\nMATCHED_FAILING_INLINE_COUNT=1\nINLINE_SOURCE_SHA256=933857fc97556284ece79adfdc9333f8f37852f636f5882efa8382d92a3d24c5\nINLINE_SOURCE_BYTE_LENGTH=774\nINLINE_SAFE_AST_OUTLINE=import importlib, importlib.util, json, pathlib, sys || mode = sys.argv[0] || if mode == '': || out = {} || for name in ('', '', '', ''): || m = importlib.import_module(name) || out[name] = str(pathlib.Path(m.__file__).resolve()) || print(json.dumps(out, sort_keys=0, separators=('', ''))) || elif mode == '': || source = pathlib.Path(sys.argv[0]).resolve() || spec = importlib.util.spec_from_file_location('', str(source)) || if spec is None or spec.loader is None: || raise SystemExit(0) || mod = importlib.util.module_from_spec(spec) || spec.loader.exec_module(mod) || req = json.load(sys.stdin) || argv = mod.dump_argv(req[''], req[''], pathlib.Path(req['']), int(req[''])) || print(json.dumps(argv, separators=('', ''))) || else: || raise SystemExit(0)\nINLINE_DUMP_ARGV_CALL_COUNT=1\nREC|INLINE_CALL|IDX=1|POSITIONALS=4\nREC|INLINE_CALL|IDX=1|KWARGS=\nREC|INLINE_CALL|IDX=1|ARG_FORMS=Subscript,Subscript,Call,Call\nREC|INLINE_CALL|IDX=1|ARG_NAME_HINTS=,,,\nDECISION=PASS_GUEST266_EXPORT_CONTRACT_CAPTURED\nNEXT_GATE=REPAIR_ONLY_VERIFIED_INCOMPATIBLE_GUEST266_INTERFACE\nPROBE_RC=0\nTASK_RESULT=CT112_GUEST266_EXPORT_CONTRACT\nCHANGES_MADE=false\nROLLBACK_STARTED=false\nROLLBACK_RESTORED=null\nMUTATION_OUTCOME=NO_MUTATION\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SUPPORT-261008-CT112-GUEST266-EXPORT-CONTRACT-99809R1\",\"status\":\"OK\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n" + "output": "CT112_VZDUMP_BUILDER_RECONCILE=V1\nMODE=read-only\nNO_MUTATION=true\nBACKUP_SERVICE_RESULT=success\nBACKUP_TIMER_ACTIVE=active\nBACKUP_AUDIT=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\nWRAPPER_EXACT_COUNT=1\nLEGACY_HASH_MATCH=true\nCT112_HANDLER_HASH_MATCH=true\nGUEST266_PRESENT=true\nGUEST266_SHA_MATCH=true\nLEGACY_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3\nGUEST266_PATH_SHA256=71fee0e427fb01cb99ebb354c8aa5c0e984cb7f5f8a5992967165ee38e8693d6\nLEGACY__ISOLATED_GUEST266_DUMP_ARGV_PRESENT=true\nLEGACY__ISOLATED_GUEST266_DUMP_ARGV_ARGS=job,vzdump,scratch,now\nLEGACY__ISOLATED_GUEST266_DUMP_ARGV_ARGS_COUNT=4\nLEGACY__ISOLATED_GUEST266_DUMP_ARGV_CALL_NAMES=BackupError,_historical_graph_env,canonical_json,hexdigest,int,loads,run,sha256,str\nLEGACY__ISOLATED_GUEST266_DUMP_ARGV_REFERS_GUEST266=true\nLEGACY__ISOLATED_GUEST266_DUMP_ARGV_REFERS_DUMP_ARGV=true\nLEGACY__ISOLATED_GUEST266_DUMP_ARGV_AST_SHA256=c04abee41c3d45992982a4af1e295c9e9bbd458f825952083c3bced96b5e4ba8\nLEGACY_PROVEN_LXC_DUMP_ARGV_PRESENT=true\nLEGACY_PROVEN_LXC_DUMP_ARGV_ARGS=t,row,node,scratch\nLEGACY_PROVEN_LXC_DUMP_ARGV_ARGS_COUNT=4\nLEGACY_PROVEN_LXC_DUMP_ARGV_CALL_NAMES=BackupError,Path,_isolated_guest266_dump_argv,_lxc_job,all,any,index,int,isinstance,len,list,startswith,str,time,type,which\nLEGACY_PROVEN_LXC_DUMP_ARGV_REFERS_GUEST266=true\nLEGACY_PROVEN_LXC_DUMP_ARGV_REFERS_DUMP_ARGV=true\nLEGACY_PROVEN_LXC_DUMP_ARGV_AST_SHA256=b4d02b7cb3db8f9c20f3419b5749982dfe40aee812a90ff6da8a5f3e0e4238ef\nLEGACY__LXC_JOB_PRESENT=true\nLEGACY__LXC_JOB_ARGS=t,row,node\nLEGACY__LXC_JOB_ARGS_COUNT=3\nLEGACY__LXC_JOB_CALL_NAMES=bool,get,int,max,time\nLEGACY__LXC_JOB_REFERS_GUEST266=false\nLEGACY__LXC_JOB_REFERS_DUMP_ARGV=false\nLEGACY__LXC_JOB_AST_SHA256=4f807aba5212bb43b942434b148415f97bbb2b1a0113a0c7f59ab89f7f0c5573\nLEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_PRESENT=true\nLEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_ARGS=\nLEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_ARGS_COUNT=0\nLEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_CALL_NAMES=BackupError,Path,_historical_graph_env,get,hexdigest,items,loads,resolve,run,sha256,str\nLEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_REFERS_GUEST266=true\nLEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_REFERS_DUMP_ARGV=false\nLEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_AST_SHA256=a803373ab29ff38b9b9dfab5f6a88ef4ff765534a7613253beda38ef8cae0ba7\nSEARCH_ROOT_COUNT=2\nSCAN_PYFILE_COUNT=27\nSCANNED_SOURCE_BYTES=302599\nBUILDER_CANDIDATE_COUNT=16\nEXACT_DUMP_ARGV_FOUR_PARAM_COUNT=1\nREC|BUILDER_CANDIDATE|IDX=1|FUNCTION=dump_argv\nREC|BUILDER_CANDIDATE|IDX=1|SCORE=98\nREC|BUILDER_CANDIDATE|IDX=1|MODULE_BASENAME=pve265.py\nREC|BUILDER_CANDIDATE|IDX=1|MODULE_SHA256=cd2f634414a8e38a3789015aeca5a9b47821f77d7d1fa61dcdbdc866172963be\nREC|BUILDER_CANDIDATE|IDX=1|MODULE_PATH_SHA256=a3b2ce0dc30e17c1388bc76b409157514ad9e8244d1352e060a1801e4eea3fe3\nREC|BUILDER_CANDIDATE|IDX=1|POSITIONAL_ARGS=job,executable,tmpdir,now\nREC|BUILDER_CANDIDATE|IDX=1|REQUIRED_POSITIONALS=4\nREC|BUILDER_CANDIDATE|IDX=1|VZDUMP_LITERAL=false\nREC|BUILDER_CANDIDATE|IDX=1|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=1|MODE_FLAG=true\nREC|BUILDER_CANDIDATE|IDX=1|COMPRESS_FLAG=true\nREC|BUILDER_CANDIDATE|IDX=1|CALLS=need,path_ok,str,validate_job\nREC|BUILDER_CANDIDATE|IDX=2|FUNCTION=proven_lxc_dump_argv\nREC|BUILDER_CANDIDATE|IDX=2|SCORE=52\nREC|BUILDER_CANDIDATE|IDX=2|MODULE_BASENAME=legacy_engine.py\nREC|BUILDER_CANDIDATE|IDX=2|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nREC|BUILDER_CANDIDATE|IDX=2|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3\nREC|BUILDER_CANDIDATE|IDX=2|POSITIONAL_ARGS=t,row,node,scratch\nREC|BUILDER_CANDIDATE|IDX=2|REQUIRED_POSITIONALS=4\nREC|BUILDER_CANDIDATE|IDX=2|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=2|DUMPDIR_FLAG=true\nREC|BUILDER_CANDIDATE|IDX=2|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=2|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=2|CALLS=BackupError,Path,_isolated_guest266_dump_argv,_lxc_job,all,any,index,int,isinstance,len,list,startswith,str,time,type,which\nREC|BUILDER_CANDIDATE|IDX=3|FUNCTION=capture_pve_guest\nREC|BUILDER_CANDIDATE|IDX=3|SCORE=26\nREC|BUILDER_CANDIDATE|IDX=3|MODULE_BASENAME=legacy_engine.py\nREC|BUILDER_CANDIDATE|IDX=3|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nREC|BUILDER_CANDIDATE|IDX=3|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3\nREC|BUILDER_CANDIDATE|IDX=3|POSITIONAL_ARGS=t,gen,work\nREC|BUILDER_CANDIDATE|IDX=3|REQUIRED_POSITIONALS=3\nREC|BUILDER_CANDIDATE|IDX=3|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=3|DUMPDIR_FLAG=true\nREC|BUILDER_CANDIDATE|IDX=3|MODE_FLAG=true\nREC|BUILDER_CANDIDATE|IDX=3|COMPRESS_FLAG=true\nREC|BUILDER_CANDIDATE|IDX=3|CALLS=BackupError,Path,_default_unprivileged_lxc,_require_exact_source,_stream_argv_to_local,cluster_inventory,decode,get,int,is_file,len,mapped_scratch_probe,proven_lxc_dump_argv,run,splitlines,ssh_remote,stat,str,strip\nREC|BUILDER_CANDIDATE|IDX=4|FUNCTION=vps_ssh_argv\nREC|BUILDER_CANDIDATE|IDX=4|SCORE=25\nREC|BUILDER_CANDIDATE|IDX=4|MODULE_BASENAME=legacy_engine.py\nREC|BUILDER_CANDIDATE|IDX=4|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nREC|BUILDER_CANDIDATE|IDX=4|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3\nREC|BUILDER_CANDIDATE|IDX=4|POSITIONAL_ARGS=t\nREC|BUILDER_CANDIDATE|IDX=4|REQUIRED_POSITIONALS=1\nREC|BUILDER_CANDIDATE|IDX=4|VZDUMP_LITERAL=false\nREC|BUILDER_CANDIDATE|IDX=4|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=4|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=4|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=4|CALLS=str\nREC|BUILDER_CANDIDATE|IDX=5|FUNCTION=_isolated_guest266_dump_argv\nREC|BUILDER_CANDIDATE|IDX=5|SCORE=22\nREC|BUILDER_CANDIDATE|IDX=5|MODULE_BASENAME=legacy_engine.py\nREC|BUILDER_CANDIDATE|IDX=5|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nREC|BUILDER_CANDIDATE|IDX=5|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3\nREC|BUILDER_CANDIDATE|IDX=5|POSITIONAL_ARGS=job,vzdump,scratch,now\nREC|BUILDER_CANDIDATE|IDX=5|REQUIRED_POSITIONALS=4\nREC|BUILDER_CANDIDATE|IDX=5|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=5|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=5|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=5|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=5|CALLS=BackupError,_historical_graph_env,canonical_json,hexdigest,int,loads,run,sha256,str\nREC|BUILDER_CANDIDATE|IDX=6|FUNCTION=_stream_argv_to_local\nREC|BUILDER_CANDIDATE|IDX=6|SCORE=20\nREC|BUILDER_CANDIDATE|IDX=6|MODULE_BASENAME=legacy_engine.py\nREC|BUILDER_CANDIDATE|IDX=6|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nREC|BUILDER_CANDIDATE|IDX=6|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3\nREC|BUILDER_CANDIDATE|IDX=6|POSITIONAL_ARGS=node,argv,dest,timeout\nREC|BUILDER_CANDIDATE|IDX=6|REQUIRED_POSITIONALS=3\nREC|BUILDER_CANDIDATE|IDX=6|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=6|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=6|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=6|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=6|CALLS=BackupError,Path,hexdigest,is_file,join,open,run,sha256,stat,unlink\nREC|BUILDER_CANDIDATE|IDX=7|FUNCTION=produce\nREC|BUILDER_CANDIDATE|IDX=7|SCORE=17\nREC|BUILDER_CANDIDATE|IDX=7|MODULE_BASENAME=pve270.py\nREC|BUILDER_CANDIDATE|IDX=7|MODULE_SHA256=97015277a4f3f8129c0fd11eb70c06293026366f1f8232a97feeed513a2dbcef\nREC|BUILDER_CANDIDATE|IDX=7|MODULE_PATH_SHA256=08ea487b3621760e7f2a8be2d47f0253ba110c52f1f406729e907a7b7778b4af\nREC|BUILDER_CANDIDATE|IDX=7|POSITIONAL_ARGS=job,work,tools,guard\nREC|BUILDER_CANDIDATE|IDX=7|REQUIRED_POSITIONALS=4\nREC|BUILDER_CANDIDATE|IDX=7|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=7|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=7|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=7|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=7|CALLS=MappedScratch,Path,bounded_process,callable,canonical_bytes,capture_archive,check,close,create,dict,dump_argv,emit,exists,free_guard,get,guard,hash_file,int,list,listdir,loads,make_dir,min,need,private_dir,probe,read_secure,statvfs,str,time,validate_job,validate_mapping,validate_tools\nREC|BUILDER_CANDIDATE|IDX=8|FUNCTION=validate_ct\nREC|BUILDER_CANDIDATE|IDX=8|SCORE=17\nREC|BUILDER_CANDIDATE|IDX=8|MODULE_BASENAME=pve270.py\nREC|BUILDER_CANDIDATE|IDX=8|MODULE_SHA256=97015277a4f3f8129c0fd11eb70c06293026366f1f8232a97feeed513a2dbcef\nREC|BUILDER_CANDIDATE|IDX=8|MODULE_PATH_SHA256=08ea487b3621760e7f2a8be2d47f0253ba110c52f1f406729e907a7b7778b4af\nREC|BUILDER_CANDIDATE|IDX=8|POSITIONAL_ARGS=cfg,status,snaps,config_sha\nREC|BUILDER_CANDIDATE|IDX=8|REQUIRED_POSITIONALS=4\nREC|BUILDER_CANDIDATE|IDX=8|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=8|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=8|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=8|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=8|CALLS=all,any,canonical_bytes,get,len,need,sha,startswith,type\nREC|BUILDER_CANDIDATE|IDX=9|FUNCTION=produce\nREC|BUILDER_CANDIDATE|IDX=9|SCORE=17\nREC|BUILDER_CANDIDATE|IDX=9|MODULE_BASENAME=pve282.py\nREC|BUILDER_CANDIDATE|IDX=9|MODULE_SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012\nREC|BUILDER_CANDIDATE|IDX=9|MODULE_PATH_SHA256=9bb2d2e6bd6d829300d4f1dcfff8ee839cb2c55a3f88f1ed24f78194973da87b\nREC|BUILDER_CANDIDATE|IDX=9|POSITIONAL_ARGS=job,work,tools,guard\nREC|BUILDER_CANDIDATE|IDX=9|REQUIRED_POSITIONALS=4\nREC|BUILDER_CANDIDATE|IDX=9|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=9|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=9|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=9|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=9|CALLS=MappedScratch,Path,bounded_process,callable,canonical_bytes,capture_archive,check,close,create,dict,dump_argv,emit,exists,free_guard,get,guard,hash_file,int,list,listdir,loads,make_dir,min,need,private_dir,probe,read_secure,require_target,statvfs,str,time,validate_job,validate_mapping,validate_tools\nREC|BUILDER_CANDIDATE|IDX=10|FUNCTION=produce\nREC|BUILDER_CANDIDATE|IDX=10|SCORE=17\nREC|BUILDER_CANDIDATE|IDX=10|MODULE_BASENAME=pve282.py\nREC|BUILDER_CANDIDATE|IDX=10|MODULE_SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012\nREC|BUILDER_CANDIDATE|IDX=10|MODULE_PATH_SHA256=da0dee4dd13f6435d5c23bba253dfbdaae74b72c0a2fd02f8f0362866bd7eb77\nREC|BUILDER_CANDIDATE|IDX=10|POSITIONAL_ARGS=job,work,tools,guard\nREC|BUILDER_CANDIDATE|IDX=10|REQUIRED_POSITIONALS=4\nREC|BUILDER_CANDIDATE|IDX=10|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=10|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=10|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=10|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=10|CALLS=MappedScratch,Path,bounded_process,callable,canonical_bytes,capture_archive,check,close,create,dict,dump_argv,emit,exists,free_guard,get,guard,hash_file,int,list,listdir,loads,make_dir,min,need,private_dir,probe,read_secure,require_target,statvfs,str,time,validate_job,validate_mapping,validate_tools\nREC|BUILDER_CANDIDATE|IDX=11|FUNCTION=produce\nREC|BUILDER_CANDIDATE|IDX=11|SCORE=12\nREC|BUILDER_CANDIDATE|IDX=11|MODULE_BASENAME=pve265.py\nREC|BUILDER_CANDIDATE|IDX=11|MODULE_SHA256=cd2f634414a8e38a3789015aeca5a9b47821f77d7d1fa61dcdbdc866172963be\nREC|BUILDER_CANDIDATE|IDX=11|MODULE_PATH_SHA256=a3b2ce0dc30e17c1388bc76b409157514ad9e8244d1352e060a1801e4eea3fe3\nREC|BUILDER_CANDIDATE|IDX=11|POSITIONAL_ARGS=job,work,tools,guard,seconds\nREC|BUILDER_CANDIDATE|IDX=11|REQUIRED_POSITIONALS=4\nREC|BUILDER_CANDIDATE|IDX=11|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=11|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=11|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=11|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=11|CALLS=Path,bounded_process,callable,capture_archive,close,dict,dump_argv,free_guard,guard,hash_file,int,list,listdir,make_dir,min,need,private_dir,statvfs,str,time,validate_job,validate_tools\nREC|BUILDER_CANDIDATE|IDX=12|FUNCTION=host_mapping\nREC|BUILDER_CANDIDATE|IDX=12|SCORE=10\nREC|BUILDER_CANDIDATE|IDX=12|MODULE_BASENAME=pve270.py\nREC|BUILDER_CANDIDATE|IDX=12|MODULE_SHA256=97015277a4f3f8129c0fd11eb70c06293026366f1f8232a97feeed513a2dbcef\nREC|BUILDER_CANDIDATE|IDX=12|MODULE_PATH_SHA256=08ea487b3621760e7f2a8be2d47f0253ba110c52f1f406729e907a7b7778b4af\nREC|BUILDER_CANDIDATE|IDX=12|POSITIONAL_ARGS=\nREC|BUILDER_CANDIDATE|IDX=12|REQUIRED_POSITIONALS=0\nREC|BUILDER_CANDIDATE|IDX=12|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=12|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=12|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=12|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=12|CALLS=PVEError,Path,PerlPin,check,items,loads,need,read_secure,run,sha,validate_mapping\nREC|BUILDER_CANDIDATE|IDX=13|FUNCTION=_defaults\nREC|BUILDER_CANDIDATE|IDX=13|SCORE=10\nREC|BUILDER_CANDIDATE|IDX=13|MODULE_BASENAME=ct112_handler.py\nREC|BUILDER_CANDIDATE|IDX=13|MODULE_SHA256=e7b027de9a53d7219dd80c9d8e05f0eae0f53db90a53363c64dfa016815c0d00\nREC|BUILDER_CANDIDATE|IDX=13|MODULE_PATH_SHA256=67c03cae9afa0e9bc76b7dde46d38102df33ce78f5722a43bfc3d586f9e435d8\nREC|BUILDER_CANDIDATE|IDX=13|POSITIONAL_ARGS=\nREC|BUILDER_CANDIDATE|IDX=13|REQUIRED_POSITIONALS=0\nREC|BUILDER_CANDIDATE|IDX=13|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=13|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=13|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=13|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=13|CALLS=Path,RuntimeError,S_ISREG,read_text,stat\nREC|BUILDER_CANDIDATE|IDX=14|FUNCTION=selftest\nREC|BUILDER_CANDIDATE|IDX=14|SCORE=10\nREC|BUILDER_CANDIDATE|IDX=14|MODULE_BASENAME=ct112_handler.py\nREC|BUILDER_CANDIDATE|IDX=14|MODULE_SHA256=e7b027de9a53d7219dd80c9d8e05f0eae0f53db90a53363c64dfa016815c0d00\nREC|BUILDER_CANDIDATE|IDX=14|MODULE_PATH_SHA256=67c03cae9afa0e9bc76b7dde46d38102df33ce78f5722a43bfc3d586f9e435d8\nREC|BUILDER_CANDIDATE|IDX=14|POSITIONAL_ARGS=\nREC|BUILDER_CANDIDATE|IDX=14|REQUIRED_POSITIONALS=0\nREC|BUILDER_CANDIDATE|IDX=14|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=14|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=14|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=14|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=14|CALLS=_sha\nREC|BUILDER_CANDIDATE|IDX=15|FUNCTION=selftest\nREC|BUILDER_CANDIDATE|IDX=15|SCORE=10\nREC|BUILDER_CANDIDATE|IDX=15|MODULE_BASENAME=legacy_engine.py\nREC|BUILDER_CANDIDATE|IDX=15|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nREC|BUILDER_CANDIDATE|IDX=15|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3\nREC|BUILDER_CANDIDATE|IDX=15|POSITIONAL_ARGS=\nREC|BUILDER_CANDIDATE|IDX=15|REQUIRED_POSITIONALS=0\nREC|BUILDER_CANDIDATE|IDX=15|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=15|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=15|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=15|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=15|CALLS=_isolated_release_graph_selftest,_pve_dumpdir_spec,default_targets,get,is_file,len,print,proven_lxc_dump_argv\nREC|BUILDER_CANDIDATE|IDX=16|FUNCTION=run_target\nREC|BUILDER_CANDIDATE|IDX=16|SCORE=-10\nREC|BUILDER_CANDIDATE|IDX=16|MODULE_BASENAME=ct112_handler.py\nREC|BUILDER_CANDIDATE|IDX=16|MODULE_SHA256=e7b027de9a53d7219dd80c9d8e05f0eae0f53db90a53363c64dfa016815c0d00\nREC|BUILDER_CANDIDATE|IDX=16|MODULE_PATH_SHA256=67c03cae9afa0e9bc76b7dde46d38102df33ce78f5722a43bfc3d586f9e435d8\nREC|BUILDER_CANDIDATE|IDX=16|POSITIONAL_ARGS=target,state_writer\nREC|BUILDER_CANDIDATE|IDX=16|REQUIRED_POSITIONALS=1\nREC|BUILDER_CANDIDATE|IDX=16|VZDUMP_LITERAL=true\nREC|BUILDER_CANDIDATE|IDX=16|DUMPDIR_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=16|MODE_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=16|COMPRESS_FLAG=false\nREC|BUILDER_CANDIDATE|IDX=16|CALLS=CloudLarge,LazyReader,RuntimeError,_baseline,_fresh_plan,_json_cmd,_private_config,_sha,_tool,close,exists,get,gmtime,host_mapping,int,isinstance,len,live_gate,mkdir,monotonic,no_active_tasks,produce,rmtree,run,run_flow,select112,state_writer,str,strftime,throw,time,token_hex,validate_mapping\nHISTORICAL_DUMP_ARGV_COUNT=0\nDECISION=PROVEN_UNIQUE_4PARAM_BUILDER_SOURCE_FOUND\nNEXT_GATE=TEST_BUILDER_IN_ISOLATED_LEGACY_SUBPROCESS_BEFORE_ANY_PATCH\nVZDUMP_BUILDER_PROBE_RC=0\nTASK_RESULT=CT112_VZDUMP_BUILDER_RECONCILE\nCHANGES_MADE=false\nROLLBACK_STARTED=false\nROLLBACK_RESTORED=null\nMUTATION_OUTCOME=NO_MUTATION\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1\",\"status\":\"OK\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 24f58542..720737d9 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,15 +1,15 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=SUPPORT-261008-CT112-GUEST266-EXPORT-CONTRACT-99809R1 +COMMAND_ID=SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1 STATUS=OK RC=0 HOST=pve01 MODE=read-only -COMPONENT=ct112-guest266-export-contract +COMPONENT=ct112-vzdump-builder-reconcile REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 -COMMAND_SHA256=a46085eebf3b7c5742b5140bab6f8c366fbcfe6223bdbc80334bc207f20093be +COMMAND_SHA256=012284117e498efef3a42d8c73a49c9b08581631c8e0e5eec3b8df9636fa1ce7 DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true CHANGE_DECLARED=false @@ -24,155 +24,257 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=ebe1d110b44088c3b07192ed81a9f3ea97ea0bf15a47456fd73bc4f7a4c1d6ad -SANITIZED_OUTPUT_SHA256=ebe1d110b44088c3b07192ed81a9f3ea97ea0bf15a47456fd73bc4f7a4c1d6ad +RAW_EVIDENCE_SHA256=67c3c3bb1a82b0409816592bf0f17bc535b2a4e172261b39859692002a834c38 +SANITIZED_OUTPUT_SHA256=67c3c3bb1a82b0409816592bf0f17bc535b2a4e172261b39859692002a834c38 OUTPUT_BEGIN -CT112_GUEST266_EXPORT_CONTRACT=V1 +CT112_VZDUMP_BUILDER_RECONCILE=V1 MODE=read-only NO_MUTATION=true -BACKUP_V2_ACTIVE=inactive -BACKUP_V2_RESULT=success -BACKUP_V2_TIMER_ACTIVE=active +BACKUP_SERVICE_RESULT=success +BACKUP_TIMER_ACTIVE=active BACKUP_AUDIT=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 WRAPPER_EXACT_COUNT=1 -WRAPPER_LEGACY_HASH_MATCH=true -WRAPPER_HANDLER_HASH_MATCH=true +LEGACY_HASH_MATCH=true +CT112_HANDLER_HASH_MATCH=true GUEST266_PRESENT=true -GUEST266_HASH_MATCH=true -GUEST266_TOPLEVEL_FUNCTION_COUNT=6 -GUEST266_TOPLEVEL_FUNCTION_NAMES=plan_rows,choose,same_state,no_active_tasks,check_result,run_flow -GUEST266_HAS_DUMP_ARGV=false -REC|GUEST266_EXPORT_1_NAME=plan_rows -REC|GUEST266_EXPORT_1_ARGS=plan -REC|GUEST266_EXPORT_1_KWONLY_ARGS= -REC|GUEST266_EXPORT_1_STAR=NONE -REC|GUEST266_EXPORT_1_DOUBLESTAR=NONE -REC|GUEST266_EXPORT_1_POSITIONAL_COUNT=1 -REC|GUEST266_EXPORT_1_REQUIRED_POSITIONALS=1 -REC|GUEST266_EXPORT_1_BODY_NODE_COUNT=7 -REC|GUEST266_EXPORT_1_CALL_NAMES=all,get,len,need,type -REC|GUEST266_EXPORT_1_RETURN_FORMS=Name -REC|GUEST266_EXPORT_1_SAFE_AST_SHA256=b7c8f2b5848d56e29ca7041ae051160bfb07903b4215ad81f61c73bec8bb2ff7 -REC|GUEST266_EXPORT_1_SAFE_AST_OUTLINE=def plan_rows(plan): || t.need(type(plan) is dict and plan.get('') == '', '') || rows = plan.get('') || t.need(type(rows) is list and 0 < len(rows) <= 0 and (plan.get('') == len(rows)), '') || t.need(all((type(j) is dict and type(j.get('')) is int for j in rows)), '') || t.need(len({j[''] for j in rows}) == len(rows), '') || t.need(plan.get('') is 0, '') || return rows -REC|GUEST266_EXPORT_2_NAME=choose -REC|GUEST266_EXPORT_2_ARGS=plan,now -REC|GUEST266_EXPORT_2_KWONLY_ARGS= -REC|GUEST266_EXPORT_2_STAR=NONE -REC|GUEST266_EXPORT_2_DOUBLESTAR=NONE -REC|GUEST266_EXPORT_2_POSITIONAL_COUNT=2 -REC|GUEST266_EXPORT_2_REQUIRED_POSITIONALS=2 -REC|GUEST266_EXPORT_2_BODY_NODE_COUNT=12 -REC|GUEST266_EXPORT_2_CALL_NAMES=append,bool,deepcopy,get,len,max,min,need,plan_rows,type,validate_job -REC|GUEST266_EXPORT_2_RETURN_FORMS=Call -REC|GUEST266_EXPORT_2_SAFE_AST_SHA256=d32af9764f3f95d11e56cd5edcc20460424a0e8642527c9ab88e9dc187541ba1 -REC|GUEST266_EXPORT_2_SAFE_AST_OUTLINE=def choose(plan, now): || rows = plan_rows(plan) || t.need(plan.get('') == [], '') || candidates = [] || for job in rows: || if not (job.get('') == '' and job.get('') is 0 and (job.get('') == []) and (job.get('') is 0) and (job.get('') is 0)): || continue || disks = job.get('') || if not (type(disks) is list and len(disks) == 0 and (disks[0].get('') == '') and (disks[0].get('') == '') and (disks[0].get('') in ('', ''))): || continue || n = job.get('') || if type(n) is not int or not 0 < n <= MAX_CONFIGURED_BYTES: || continue || producer.validate_job(job, now) || candidates.append(job) || t. -REC|GUEST266_EXPORT_3_NAME=same_state -REC|GUEST266_EXPORT_3_ARGS=before,after,vmid -REC|GUEST266_EXPORT_3_KWONLY_ARGS= -REC|GUEST266_EXPORT_3_STAR=NONE -REC|GUEST266_EXPORT_3_DOUBLESTAR=NONE -REC|GUEST266_EXPORT_3_POSITIONAL_COUNT=3 -REC|GUEST266_EXPORT_3_REQUIRED_POSITIONALS=3 -REC|GUEST266_EXPORT_3_BODY_NODE_COUNT=11 -REC|GUEST266_EXPORT_3_CALL_NAMES=get,len,membership,need,plan_rows,sorted -REC|GUEST266_EXPORT_3_RETURN_FORMS= -REC|GUEST266_EXPORT_3_SAFE_AST_SHA256=110c3ba42ad1540052bdff8e242d2feb26b25c39784fe1a9094c24e2b2bf4dc2 -REC|GUEST266_EXPORT_3_SAFE_AST_OUTLINE=def same_state(before, after, vmid): || old = plan_rows(before) || new = plan_rows(after) || membership = lambda rows: sorted(((x[''], x[''], x[''], x[''], x['']) for x in rows)) || t.need(membership(old) == membership(new), '') || t.need(before[''] == after[''], '') || matches = [j for j in new if j[''] == vmid] || original = [j for j in old if j[''] == vmid] || t.need(len(matches) == len(original) == 0, '') || a, b = (original[0], matches[0]) || t.need(b.get('') is 0 and b.get('') == [], '') || for key in ('', '', '', '', '', '', ''): || t.need(a.get(key) == b.get(key), '') -REC|GUEST266_EXPORT_4_NAME=no_active_tasks -REC|GUEST266_EXPORT_4_ARGS=rows,vmid -REC|GUEST266_EXPORT_4_KWONLY_ARGS= -REC|GUEST266_EXPORT_4_STAR=NONE -REC|GUEST266_EXPORT_4_DOUBLESTAR=NONE -REC|GUEST266_EXPORT_4_POSITIONAL_COUNT=2 -REC|GUEST266_EXPORT_4_REQUIRED_POSITIONALS=2 -REC|GUEST266_EXPORT_4_BODY_NODE_COUNT=2 -REC|GUEST266_EXPORT_4_CALL_NAMES=any,get,len,lower,need,str,type -REC|GUEST266_EXPORT_4_RETURN_FORMS= -REC|GUEST266_EXPORT_4_SAFE_AST_SHA256=81205d76854dcb627897e5d8bd82b5a49468a07f8921861e87f712f1994b804e -REC|GUEST266_EXPORT_4_SAFE_AST_OUTLINE=def no_active_tasks(rows, vmid): || t.need(type(rows) is list and len(rows) < 0, '') || for task in rows: || t.need(type(task) is dict and type(task.get('')) is str, '') || if type(task.get('')) is int and task.get('') not in (None, ''): || continue || kind = task[''] || target = str(task.get('', '')) || if kind in ('', '', '', ''): || continue || t.need(target != str(vmid) and (not any((x in kind.lower() for x in ('', '', '', '', '', '', '')))), '') -REC|GUEST266_EXPORT_5_NAME=check_result -REC|GUEST266_EXPORT_5_ARGS=result,job,work -REC|GUEST266_EXPORT_5_KWONLY_ARGS= -REC|GUEST266_EXPORT_5_STAR=NONE -REC|GUEST266_EXPORT_5_DOUBLESTAR=NONE -REC|GUEST266_EXPORT_5_POSITIONAL_COUNT=3 -REC|GUEST266_EXPORT_5_REQUIRED_POSITIONALS=3 -REC|GUEST266_EXPORT_5_BODY_NODE_COUNT=12 -REC|GUEST266_EXPORT_5_CALL_NAMES=Path,close,get,hash_file,list,listdir,need,open_dir,str,type -REC|GUEST266_EXPORT_5_RETURN_FORMS=Name -REC|GUEST266_EXPORT_5_SAFE_AST_SHA256=201602f107a661fdbd41a96feda13666bf269e0d4ee11dde9c62aedb78ee0d9e -REC|GUEST266_EXPORT_5_SAFE_AST_OUTLINE=def check_result(result, job, work): || t.need(type(result) is dict, '') || expected = Path(work) / ('' % job['']) || t.need(result.get('') == str(expected), '') || for k in ('', '', '', ''): || t.need(result.get(k) == job[k], '') || t.need(result.get('') == 0 and result.get('') is 0, '') || t.need(type(result.get('')) is int and 0 < result[''] <= job[''], '') || n, h, identity = stream.hash_file(expected, job['']) || t.need(n == result[''] and h == result.get('') and (list(identity) == result.get('')), '') || temp = Path(work) / '' || fd = t.open_dir(temp) || try: || t.need(os.listdir(fd -REC|GUEST266_EXPORT_6_NAME=run_flow -REC|GUEST266_EXPORT_6_ARGS=job,work,entries,cloud,reader,produce,state_guard,guard,compression_check,generation,say,clock -REC|GUEST266_EXPORT_6_KWONLY_ARGS= -REC|GUEST266_EXPORT_6_STAR=NONE -REC|GUEST266_EXPORT_6_DOUBLESTAR=NONE -REC|GUEST266_EXPORT_6_POSITIONAL_COUNT=12 -REC|GUEST266_EXPORT_6_REQUIRED_POSITIONALS=11 -REC|GUEST266_EXPORT_6_BODY_NODE_COUNT=35 -REC|GUEST266_EXPORT_6_CALL_NAMES=Path,all,callable,canonical_bytes,check_result,cleanup,clock,compression_check,create,discover,get,guard,int,len,make_dir,manifest_hash,need,produce,restore,say,state_guard,time,upload,valid_name,validate_inventory,validate_job -REC|GUEST266_EXPORT_6_RETURN_FORMS=Dict -REC|GUEST266_EXPORT_6_SAFE_AST_SHA256=bfd6b773e40f9e89f6777eb01922534012c4c264d67ebc9ed4889091c051893e -REC|GUEST266_EXPORT_6_SAFE_AST_OUTLINE=def run_flow(job, work, entries, cloud, reader, produce, state_guard, guard, compression_check, generation, say, clock=lambda: int(time.time())): || """""" || producer.validate_job(job, clock()) || core.validate_inventory(entries) || t.need(job[''] == '' and job.get('') is 0, '') || t.need(core.valid_name(generation), '') || t.need(all((callable(f) for f in (produce, state_guard, guard, compression_check, say, clock))), '') || work = Path(work) || state_guard() || guard() || for sub in ('', '', ''): || t.make_dir(work / sub, exclusive=0) || say('', '') || produced = produce(job, work / '') || source = check_result(produced, job, work / '') || state_guard() || -GUEST266_MODULE_EXPORT_ALIAS_DUMP_ARGV=false -GUEST266_ALL_CALL_NAMES=Path,all,any,append,bool,callable,canonical_bytes,check_result,cleanup,clock,close,compression_check,create,deepcopy,discover,get,guard,hash_file,int,len,list,listdir,lower,make_dir,manifest_hash,max,membership,min,need,open_dir,plan_rows,produce,restore,say,sorted,state_guard,str,time,type,upload,valid_name,validate_inventory,validate_job -LEGACY_RELEVANT_FUNCTIONS=_isolated_release_graph_selftest,proven_lxc_dump_argv,selftest -REC|LEGACY_FUNCTION_1_NAME=_isolated_release_graph_selftest -REC|LEGACY_FUNCTION_1_ARGS= -REC|LEGACY_FUNCTION_1_KWONLY_ARGS= -REC|LEGACY_FUNCTION_1_STAR=NONE -REC|LEGACY_FUNCTION_1_DOUBLESTAR=NONE -REC|LEGACY_FUNCTION_1_POSITIONAL_COUNT=0 -REC|LEGACY_FUNCTION_1_REQUIRED_POSITIONALS=0 -REC|LEGACY_FUNCTION_1_BODY_NODE_COUNT=7 -REC|LEGACY_FUNCTION_1_CALL_NAMES=BackupError,Path,_historical_graph_env,get,hexdigest,items,loads,resolve,run,sha256,str -REC|LEGACY_FUNCTION_1_RETURN_FORMS=Constant -REC|LEGACY_FUNCTION_1_SAFE_AST_SHA256=d2c89b325fefa61a496a88bdfc83d0c539bcafe0dcc2703c874dc81f54757ead -REC|LEGACY_FUNCTION_1_SAFE_AST_OUTLINE=def _isolated_release_graph_selftest(): || env = _historical_graph_env() || p = subprocess.run([sys.executable, '', '', _HISTORICAL_HELPER, ''], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env, cwd='', timeout=0) || if p.returncode != 0: || raise BackupError('', f'{p.returncode}{hashlib.sha256(p.stderr).hexdigest()}') || try: || out = json.loads(p.stdout) || except Exception: || raise BackupError('') || expected = {'': str(GUEST266), '': str(P265), '': str(P270), '': str(P282)} || for k, v in expected.items(): || if str(pathlib.Path(out.get(k, '')).resolve()) != str(pathlib.Path(v).resolve()): || raise BackupError('', k) || return 0 -REC|LEGACY_FUNCTION_2_NAME=proven_lxc_dump_argv -REC|LEGACY_FUNCTION_2_ARGS=t,row,node,scratch -REC|LEGACY_FUNCTION_2_KWONLY_ARGS= -REC|LEGACY_FUNCTION_2_STAR=NONE -REC|LEGACY_FUNCTION_2_DOUBLESTAR=NONE -REC|LEGACY_FUNCTION_2_POSITIONAL_COUNT=4 -REC|LEGACY_FUNCTION_2_REQUIRED_POSITIONALS=4 -REC|LEGACY_FUNCTION_2_BODY_NODE_COUNT=11 -REC|LEGACY_FUNCTION_2_CALL_NAMES=BackupError,Path,_isolated_guest266_dump_argv,_lxc_job,all,any,index,int,isinstance,len,list,startswith,str,time,type,which -REC|LEGACY_FUNCTION_2_RETURN_FORMS=Tuple -REC|LEGACY_FUNCTION_2_SAFE_AST_SHA256=b49d47e03d87aeaeb920aa1759ab55f03bfab1c328294b76b92a739d0562e308 -REC|LEGACY_FUNCTION_2_SAFE_AST_OUTLINE=def proven_lxc_dump_argv(t, row, node, scratch): || job = _lxc_job(t, row, node) || vzdump = shutil.which('') or '' || try: || argv = _isolated_guest266_dump_argv(job, vzdump, pathlib.Path(scratch), int(time.time())) || except BackupError: || raise || except Exception as e: || raise BackupError('', type(e).__name__) || if not isinstance(argv, (list, tuple)) or not argv or (not all((isinstance(x, str) for x in argv))): || raise BackupError('') || argv = list(argv) || if pathlib.Path(argv[0]).name != '' or str(int(t[''])) not in argv: || raise BackupError('') || if '' in argv or any((x.startswith('') for x in argv)): || raise BackupError('') || if not any((x == '' or x.startswith('') for x in argv)): || raise BackupError('') || if str(scratch) not in argv and (not any((x == '' + str(scratch) for x in argv))): || raise BackupError('') || if '' in argv: || i = argv.index('') || if i + 0 >= len(argv) or argv[i + 0] != str(scratch): || raise BackupError('') || elif '' + str(scratch) not in argv: || raise BackupError('') || return (argv, job) -REC|LEGACY_FUNCTION_3_NAME=selftest -REC|LEGACY_FUNCTION_3_ARGS= -REC|LEGACY_FUNCTION_3_KWONLY_ARGS= -REC|LEGACY_FUNCTION_3_STAR=NONE -REC|LEGACY_FUNCTION_3_DOUBLESTAR=NONE -REC|LEGACY_FUNCTION_3_POSITIONAL_COUNT=0 -REC|LEGACY_FUNCTION_3_REQUIRED_POSITIONALS=0 -REC|LEGACY_FUNCTION_3_BODY_NODE_COUNT=11 -REC|LEGACY_FUNCTION_3_CALL_NAMES=_isolated_release_graph_selftest,_pve_dumpdir_spec,default_targets,get,is_file,len,print,proven_lxc_dump_argv -REC|LEGACY_FUNCTION_3_RETURN_FORMS=Constant -REC|LEGACY_FUNCTION_3_SAFE_AST_SHA256=e19006ae7f92183d407a7722c74fb733dc0e993b7cc6a361ad891aa33ceb7771 -REC|LEGACY_FUNCTION_3_SAFE_AST_OUTLINE=def selftest(): || assert PART_SIZE == 0 || assert len(REMOTES) == 0 and len({p for _, p in REMOTES}) == 0 || assert len(default_targets()) >= 0 || assert {t[''] for t in default_targets() if t.get('')} == {'', '', '', '', '', '', '', '', ''} || assert _pve_dumpdir_spec('') == (0, 0) || assert _pve_dumpdir_spec('') == (0, 0) || assert GUEST266_SHA == '' || assert P282_SHA == '' || if GUEST266.is_file(): || assert _isolated_release_graph_selftest() is 0 || av, _ = proven_lxc_dump_argv({'': 0}, {'': 0, '': 0, '': '', '': ''}, '', '') || assert '' in av and '' in av and ('' in av) || print('') || return 0 -WRAPPER_SELFTEST_TOKEN=GUEST266_SUBPROCESS_FAILED -CAPTURED_KNOWN_INLINE_COUNT=2 -MATCHED_FAILING_INLINE_COUNT=1 -INLINE_SOURCE_SHA256=933857fc97556284ece79adfdc9333f8f37852f636f5882efa8382d92a3d24c5 -INLINE_SOURCE_BYTE_LENGTH=774 -INLINE_SAFE_AST_OUTLINE=import importlib, importlib.util, json, pathlib, sys || mode = sys.argv[0] || if mode == '': || out = {} || for name in ('', '', '', ''): || m = importlib.import_module(name) || out[name] = str(pathlib.Path(m.__file__).resolve()) || print(json.dumps(out, sort_keys=0, separators=('', ''))) || elif mode == '': || source = pathlib.Path(sys.argv[0]).resolve() || spec = importlib.util.spec_from_file_location('', str(source)) || if spec is None or spec.loader is None: || raise SystemExit(0) || mod = importlib.util.module_from_spec(spec) || spec.loader.exec_module(mod) || req = json.load(sys.stdin) || argv = mod.dump_argv(req[''], req[''], pathlib.Path(req['']), int(req[''])) || print(json.dumps(argv, separators=('', ''))) || else: || raise SystemExit(0) -INLINE_DUMP_ARGV_CALL_COUNT=1 -REC|INLINE_CALL|IDX=1|POSITIONALS=4 -REC|INLINE_CALL|IDX=1|KWARGS= -REC|INLINE_CALL|IDX=1|ARG_FORMS=Subscript,Subscript,Call,Call -REC|INLINE_CALL|IDX=1|ARG_NAME_HINTS=,,, -DECISION=PASS_GUEST266_EXPORT_CONTRACT_CAPTURED -NEXT_GATE=REPAIR_ONLY_VERIFIED_INCOMPATIBLE_GUEST266_INTERFACE -PROBE_RC=0 -TASK_RESULT=CT112_GUEST266_EXPORT_CONTRACT +GUEST266_SHA_MATCH=true +LEGACY_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3 +GUEST266_PATH_SHA256=71fee0e427fb01cb99ebb354c8aa5c0e984cb7f5f8a5992967165ee38e8693d6 +LEGACY__ISOLATED_GUEST266_DUMP_ARGV_PRESENT=true +LEGACY__ISOLATED_GUEST266_DUMP_ARGV_ARGS=job,vzdump,scratch,now +LEGACY__ISOLATED_GUEST266_DUMP_ARGV_ARGS_COUNT=4 +LEGACY__ISOLATED_GUEST266_DUMP_ARGV_CALL_NAMES=BackupError,_historical_graph_env,canonical_json,hexdigest,int,loads,run,sha256,str +LEGACY__ISOLATED_GUEST266_DUMP_ARGV_REFERS_GUEST266=true +LEGACY__ISOLATED_GUEST266_DUMP_ARGV_REFERS_DUMP_ARGV=true +LEGACY__ISOLATED_GUEST266_DUMP_ARGV_AST_SHA256=c04abee41c3d45992982a4af1e295c9e9bbd458f825952083c3bced96b5e4ba8 +LEGACY_PROVEN_LXC_DUMP_ARGV_PRESENT=true +LEGACY_PROVEN_LXC_DUMP_ARGV_ARGS=t,row,node,scratch +LEGACY_PROVEN_LXC_DUMP_ARGV_ARGS_COUNT=4 +LEGACY_PROVEN_LXC_DUMP_ARGV_CALL_NAMES=BackupError,Path,_isolated_guest266_dump_argv,_lxc_job,all,any,index,int,isinstance,len,list,startswith,str,time,type,which +LEGACY_PROVEN_LXC_DUMP_ARGV_REFERS_GUEST266=true +LEGACY_PROVEN_LXC_DUMP_ARGV_REFERS_DUMP_ARGV=true +LEGACY_PROVEN_LXC_DUMP_ARGV_AST_SHA256=b4d02b7cb3db8f9c20f3419b5749982dfe40aee812a90ff6da8a5f3e0e4238ef +LEGACY__LXC_JOB_PRESENT=true +LEGACY__LXC_JOB_ARGS=t,row,node +LEGACY__LXC_JOB_ARGS_COUNT=3 +LEGACY__LXC_JOB_CALL_NAMES=bool,get,int,max,time +LEGACY__LXC_JOB_REFERS_GUEST266=false +LEGACY__LXC_JOB_REFERS_DUMP_ARGV=false +LEGACY__LXC_JOB_AST_SHA256=4f807aba5212bb43b942434b148415f97bbb2b1a0113a0c7f59ab89f7f0c5573 +LEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_PRESENT=true +LEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_ARGS= +LEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_ARGS_COUNT=0 +LEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_CALL_NAMES=BackupError,Path,_historical_graph_env,get,hexdigest,items,loads,resolve,run,sha256,str +LEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_REFERS_GUEST266=true +LEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_REFERS_DUMP_ARGV=false +LEGACY__ISOLATED_RELEASE_GRAPH_SELFTEST_AST_SHA256=a803373ab29ff38b9b9dfab5f6a88ef4ff765534a7613253beda38ef8cae0ba7 +SEARCH_ROOT_COUNT=2 +SCAN_PYFILE_COUNT=27 +SCANNED_SOURCE_BYTES=302599 +BUILDER_CANDIDATE_COUNT=16 +EXACT_DUMP_ARGV_FOUR_PARAM_COUNT=1 +REC|BUILDER_CANDIDATE|IDX=1|FUNCTION=dump_argv +REC|BUILDER_CANDIDATE|IDX=1|SCORE=98 +REC|BUILDER_CANDIDATE|IDX=1|MODULE_BASENAME=pve265.py +REC|BUILDER_CANDIDATE|IDX=1|MODULE_SHA256=cd2f634414a8e38a3789015aeca5a9b47821f77d7d1fa61dcdbdc866172963be +REC|BUILDER_CANDIDATE|IDX=1|MODULE_PATH_SHA256=a3b2ce0dc30e17c1388bc76b409157514ad9e8244d1352e060a1801e4eea3fe3 +REC|BUILDER_CANDIDATE|IDX=1|POSITIONAL_ARGS=job,executable,tmpdir,now +REC|BUILDER_CANDIDATE|IDX=1|REQUIRED_POSITIONALS=4 +REC|BUILDER_CANDIDATE|IDX=1|VZDUMP_LITERAL=false +REC|BUILDER_CANDIDATE|IDX=1|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=1|MODE_FLAG=true +REC|BUILDER_CANDIDATE|IDX=1|COMPRESS_FLAG=true +REC|BUILDER_CANDIDATE|IDX=1|CALLS=need,path_ok,str,validate_job +REC|BUILDER_CANDIDATE|IDX=2|FUNCTION=proven_lxc_dump_argv +REC|BUILDER_CANDIDATE|IDX=2|SCORE=52 +REC|BUILDER_CANDIDATE|IDX=2|MODULE_BASENAME=legacy_engine.py +REC|BUILDER_CANDIDATE|IDX=2|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +REC|BUILDER_CANDIDATE|IDX=2|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3 +REC|BUILDER_CANDIDATE|IDX=2|POSITIONAL_ARGS=t,row,node,scratch +REC|BUILDER_CANDIDATE|IDX=2|REQUIRED_POSITIONALS=4 +REC|BUILDER_CANDIDATE|IDX=2|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=2|DUMPDIR_FLAG=true +REC|BUILDER_CANDIDATE|IDX=2|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=2|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=2|CALLS=BackupError,Path,_isolated_guest266_dump_argv,_lxc_job,all,any,index,int,isinstance,len,list,startswith,str,time,type,which +REC|BUILDER_CANDIDATE|IDX=3|FUNCTION=capture_pve_guest +REC|BUILDER_CANDIDATE|IDX=3|SCORE=26 +REC|BUILDER_CANDIDATE|IDX=3|MODULE_BASENAME=legacy_engine.py +REC|BUILDER_CANDIDATE|IDX=3|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +REC|BUILDER_CANDIDATE|IDX=3|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3 +REC|BUILDER_CANDIDATE|IDX=3|POSITIONAL_ARGS=t,gen,work +REC|BUILDER_CANDIDATE|IDX=3|REQUIRED_POSITIONALS=3 +REC|BUILDER_CANDIDATE|IDX=3|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=3|DUMPDIR_FLAG=true +REC|BUILDER_CANDIDATE|IDX=3|MODE_FLAG=true +REC|BUILDER_CANDIDATE|IDX=3|COMPRESS_FLAG=true +REC|BUILDER_CANDIDATE|IDX=3|CALLS=BackupError,Path,_default_unprivileged_lxc,_require_exact_source,_stream_argv_to_local,cluster_inventory,decode,get,int,is_file,len,mapped_scratch_probe,proven_lxc_dump_argv,run,splitlines,ssh_remote,stat,str,strip +REC|BUILDER_CANDIDATE|IDX=4|FUNCTION=vps_ssh_argv +REC|BUILDER_CANDIDATE|IDX=4|SCORE=25 +REC|BUILDER_CANDIDATE|IDX=4|MODULE_BASENAME=legacy_engine.py +REC|BUILDER_CANDIDATE|IDX=4|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +REC|BUILDER_CANDIDATE|IDX=4|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3 +REC|BUILDER_CANDIDATE|IDX=4|POSITIONAL_ARGS=t +REC|BUILDER_CANDIDATE|IDX=4|REQUIRED_POSITIONALS=1 +REC|BUILDER_CANDIDATE|IDX=4|VZDUMP_LITERAL=false +REC|BUILDER_CANDIDATE|IDX=4|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=4|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=4|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=4|CALLS=str +REC|BUILDER_CANDIDATE|IDX=5|FUNCTION=_isolated_guest266_dump_argv +REC|BUILDER_CANDIDATE|IDX=5|SCORE=22 +REC|BUILDER_CANDIDATE|IDX=5|MODULE_BASENAME=legacy_engine.py +REC|BUILDER_CANDIDATE|IDX=5|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +REC|BUILDER_CANDIDATE|IDX=5|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3 +REC|BUILDER_CANDIDATE|IDX=5|POSITIONAL_ARGS=job,vzdump,scratch,now +REC|BUILDER_CANDIDATE|IDX=5|REQUIRED_POSITIONALS=4 +REC|BUILDER_CANDIDATE|IDX=5|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=5|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=5|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=5|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=5|CALLS=BackupError,_historical_graph_env,canonical_json,hexdigest,int,loads,run,sha256,str +REC|BUILDER_CANDIDATE|IDX=6|FUNCTION=_stream_argv_to_local +REC|BUILDER_CANDIDATE|IDX=6|SCORE=20 +REC|BUILDER_CANDIDATE|IDX=6|MODULE_BASENAME=legacy_engine.py +REC|BUILDER_CANDIDATE|IDX=6|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +REC|BUILDER_CANDIDATE|IDX=6|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3 +REC|BUILDER_CANDIDATE|IDX=6|POSITIONAL_ARGS=node,argv,dest,timeout +REC|BUILDER_CANDIDATE|IDX=6|REQUIRED_POSITIONALS=3 +REC|BUILDER_CANDIDATE|IDX=6|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=6|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=6|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=6|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=6|CALLS=BackupError,Path,hexdigest,is_file,join,open,run,sha256,stat,unlink +REC|BUILDER_CANDIDATE|IDX=7|FUNCTION=produce +REC|BUILDER_CANDIDATE|IDX=7|SCORE=17 +REC|BUILDER_CANDIDATE|IDX=7|MODULE_BASENAME=pve270.py +REC|BUILDER_CANDIDATE|IDX=7|MODULE_SHA256=97015277a4f3f8129c0fd11eb70c06293026366f1f8232a97feeed513a2dbcef +REC|BUILDER_CANDIDATE|IDX=7|MODULE_PATH_SHA256=08ea487b3621760e7f2a8be2d47f0253ba110c52f1f406729e907a7b7778b4af +REC|BUILDER_CANDIDATE|IDX=7|POSITIONAL_ARGS=job,work,tools,guard +REC|BUILDER_CANDIDATE|IDX=7|REQUIRED_POSITIONALS=4 +REC|BUILDER_CANDIDATE|IDX=7|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=7|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=7|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=7|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=7|CALLS=MappedScratch,Path,bounded_process,callable,canonical_bytes,capture_archive,check,close,create,dict,dump_argv,emit,exists,free_guard,get,guard,hash_file,int,list,listdir,loads,make_dir,min,need,private_dir,probe,read_secure,statvfs,str,time,validate_job,validate_mapping,validate_tools +REC|BUILDER_CANDIDATE|IDX=8|FUNCTION=validate_ct +REC|BUILDER_CANDIDATE|IDX=8|SCORE=17 +REC|BUILDER_CANDIDATE|IDX=8|MODULE_BASENAME=pve270.py +REC|BUILDER_CANDIDATE|IDX=8|MODULE_SHA256=97015277a4f3f8129c0fd11eb70c06293026366f1f8232a97feeed513a2dbcef +REC|BUILDER_CANDIDATE|IDX=8|MODULE_PATH_SHA256=08ea487b3621760e7f2a8be2d47f0253ba110c52f1f406729e907a7b7778b4af +REC|BUILDER_CANDIDATE|IDX=8|POSITIONAL_ARGS=cfg,status,snaps,config_sha +REC|BUILDER_CANDIDATE|IDX=8|REQUIRED_POSITIONALS=4 +REC|BUILDER_CANDIDATE|IDX=8|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=8|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=8|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=8|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=8|CALLS=all,any,canonical_bytes,get,len,need,sha,startswith,type +REC|BUILDER_CANDIDATE|IDX=9|FUNCTION=produce +REC|BUILDER_CANDIDATE|IDX=9|SCORE=17 +REC|BUILDER_CANDIDATE|IDX=9|MODULE_BASENAME=pve282.py +REC|BUILDER_CANDIDATE|IDX=9|MODULE_SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012 +REC|BUILDER_CANDIDATE|IDX=9|MODULE_PATH_SHA256=9bb2d2e6bd6d829300d4f1dcfff8ee839cb2c55a3f88f1ed24f78194973da87b +REC|BUILDER_CANDIDATE|IDX=9|POSITIONAL_ARGS=job,work,tools,guard +REC|BUILDER_CANDIDATE|IDX=9|REQUIRED_POSITIONALS=4 +REC|BUILDER_CANDIDATE|IDX=9|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=9|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=9|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=9|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=9|CALLS=MappedScratch,Path,bounded_process,callable,canonical_bytes,capture_archive,check,close,create,dict,dump_argv,emit,exists,free_guard,get,guard,hash_file,int,list,listdir,loads,make_dir,min,need,private_dir,probe,read_secure,require_target,statvfs,str,time,validate_job,validate_mapping,validate_tools +REC|BUILDER_CANDIDATE|IDX=10|FUNCTION=produce +REC|BUILDER_CANDIDATE|IDX=10|SCORE=17 +REC|BUILDER_CANDIDATE|IDX=10|MODULE_BASENAME=pve282.py +REC|BUILDER_CANDIDATE|IDX=10|MODULE_SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012 +REC|BUILDER_CANDIDATE|IDX=10|MODULE_PATH_SHA256=da0dee4dd13f6435d5c23bba253dfbdaae74b72c0a2fd02f8f0362866bd7eb77 +REC|BUILDER_CANDIDATE|IDX=10|POSITIONAL_ARGS=job,work,tools,guard +REC|BUILDER_CANDIDATE|IDX=10|REQUIRED_POSITIONALS=4 +REC|BUILDER_CANDIDATE|IDX=10|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=10|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=10|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=10|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=10|CALLS=MappedScratch,Path,bounded_process,callable,canonical_bytes,capture_archive,check,close,create,dict,dump_argv,emit,exists,free_guard,get,guard,hash_file,int,list,listdir,loads,make_dir,min,need,private_dir,probe,read_secure,require_target,statvfs,str,time,validate_job,validate_mapping,validate_tools +REC|BUILDER_CANDIDATE|IDX=11|FUNCTION=produce +REC|BUILDER_CANDIDATE|IDX=11|SCORE=12 +REC|BUILDER_CANDIDATE|IDX=11|MODULE_BASENAME=pve265.py +REC|BUILDER_CANDIDATE|IDX=11|MODULE_SHA256=cd2f634414a8e38a3789015aeca5a9b47821f77d7d1fa61dcdbdc866172963be +REC|BUILDER_CANDIDATE|IDX=11|MODULE_PATH_SHA256=a3b2ce0dc30e17c1388bc76b409157514ad9e8244d1352e060a1801e4eea3fe3 +REC|BUILDER_CANDIDATE|IDX=11|POSITIONAL_ARGS=job,work,tools,guard,seconds +REC|BUILDER_CANDIDATE|IDX=11|REQUIRED_POSITIONALS=4 +REC|BUILDER_CANDIDATE|IDX=11|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=11|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=11|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=11|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=11|CALLS=Path,bounded_process,callable,capture_archive,close,dict,dump_argv,free_guard,guard,hash_file,int,list,listdir,make_dir,min,need,private_dir,statvfs,str,time,validate_job,validate_tools +REC|BUILDER_CANDIDATE|IDX=12|FUNCTION=host_mapping +REC|BUILDER_CANDIDATE|IDX=12|SCORE=10 +REC|BUILDER_CANDIDATE|IDX=12|MODULE_BASENAME=pve270.py +REC|BUILDER_CANDIDATE|IDX=12|MODULE_SHA256=97015277a4f3f8129c0fd11eb70c06293026366f1f8232a97feeed513a2dbcef +REC|BUILDER_CANDIDATE|IDX=12|MODULE_PATH_SHA256=08ea487b3621760e7f2a8be2d47f0253ba110c52f1f406729e907a7b7778b4af +REC|BUILDER_CANDIDATE|IDX=12|POSITIONAL_ARGS= +REC|BUILDER_CANDIDATE|IDX=12|REQUIRED_POSITIONALS=0 +REC|BUILDER_CANDIDATE|IDX=12|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=12|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=12|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=12|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=12|CALLS=PVEError,Path,PerlPin,check,items,loads,need,read_secure,run,sha,validate_mapping +REC|BUILDER_CANDIDATE|IDX=13|FUNCTION=_defaults +REC|BUILDER_CANDIDATE|IDX=13|SCORE=10 +REC|BUILDER_CANDIDATE|IDX=13|MODULE_BASENAME=ct112_handler.py +REC|BUILDER_CANDIDATE|IDX=13|MODULE_SHA256=e7b027de9a53d7219dd80c9d8e05f0eae0f53db90a53363c64dfa016815c0d00 +REC|BUILDER_CANDIDATE|IDX=13|MODULE_PATH_SHA256=67c03cae9afa0e9bc76b7dde46d38102df33ce78f5722a43bfc3d586f9e435d8 +REC|BUILDER_CANDIDATE|IDX=13|POSITIONAL_ARGS= +REC|BUILDER_CANDIDATE|IDX=13|REQUIRED_POSITIONALS=0 +REC|BUILDER_CANDIDATE|IDX=13|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=13|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=13|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=13|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=13|CALLS=Path,RuntimeError,S_ISREG,read_text,stat +REC|BUILDER_CANDIDATE|IDX=14|FUNCTION=selftest +REC|BUILDER_CANDIDATE|IDX=14|SCORE=10 +REC|BUILDER_CANDIDATE|IDX=14|MODULE_BASENAME=ct112_handler.py +REC|BUILDER_CANDIDATE|IDX=14|MODULE_SHA256=e7b027de9a53d7219dd80c9d8e05f0eae0f53db90a53363c64dfa016815c0d00 +REC|BUILDER_CANDIDATE|IDX=14|MODULE_PATH_SHA256=67c03cae9afa0e9bc76b7dde46d38102df33ce78f5722a43bfc3d586f9e435d8 +REC|BUILDER_CANDIDATE|IDX=14|POSITIONAL_ARGS= +REC|BUILDER_CANDIDATE|IDX=14|REQUIRED_POSITIONALS=0 +REC|BUILDER_CANDIDATE|IDX=14|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=14|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=14|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=14|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=14|CALLS=_sha +REC|BUILDER_CANDIDATE|IDX=15|FUNCTION=selftest +REC|BUILDER_CANDIDATE|IDX=15|SCORE=10 +REC|BUILDER_CANDIDATE|IDX=15|MODULE_BASENAME=legacy_engine.py +REC|BUILDER_CANDIDATE|IDX=15|MODULE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +REC|BUILDER_CANDIDATE|IDX=15|MODULE_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3 +REC|BUILDER_CANDIDATE|IDX=15|POSITIONAL_ARGS= +REC|BUILDER_CANDIDATE|IDX=15|REQUIRED_POSITIONALS=0 +REC|BUILDER_CANDIDATE|IDX=15|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=15|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=15|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=15|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=15|CALLS=_isolated_release_graph_selftest,_pve_dumpdir_spec,default_targets,get,is_file,len,print,proven_lxc_dump_argv +REC|BUILDER_CANDIDATE|IDX=16|FUNCTION=run_target +REC|BUILDER_CANDIDATE|IDX=16|SCORE=-10 +REC|BUILDER_CANDIDATE|IDX=16|MODULE_BASENAME=ct112_handler.py +REC|BUILDER_CANDIDATE|IDX=16|MODULE_SHA256=e7b027de9a53d7219dd80c9d8e05f0eae0f53db90a53363c64dfa016815c0d00 +REC|BUILDER_CANDIDATE|IDX=16|MODULE_PATH_SHA256=67c03cae9afa0e9bc76b7dde46d38102df33ce78f5722a43bfc3d586f9e435d8 +REC|BUILDER_CANDIDATE|IDX=16|POSITIONAL_ARGS=target,state_writer +REC|BUILDER_CANDIDATE|IDX=16|REQUIRED_POSITIONALS=1 +REC|BUILDER_CANDIDATE|IDX=16|VZDUMP_LITERAL=true +REC|BUILDER_CANDIDATE|IDX=16|DUMPDIR_FLAG=false +REC|BUILDER_CANDIDATE|IDX=16|MODE_FLAG=false +REC|BUILDER_CANDIDATE|IDX=16|COMPRESS_FLAG=false +REC|BUILDER_CANDIDATE|IDX=16|CALLS=CloudLarge,LazyReader,RuntimeError,_baseline,_fresh_plan,_json_cmd,_private_config,_sha,_tool,close,exists,get,gmtime,host_mapping,int,isinstance,len,live_gate,mkdir,monotonic,no_active_tasks,produce,rmtree,run,run_flow,select112,state_writer,str,strftime,throw,time,token_hex,validate_mapping +HISTORICAL_DUMP_ARGV_COUNT=0 +DECISION=PROVEN_UNIQUE_4PARAM_BUILDER_SOURCE_FOUND +NEXT_GATE=TEST_BUILDER_IN_ISOLATED_LEGACY_SUBPROCESS_BEFORE_ANY_PATCH +VZDUMP_BUILDER_PROBE_RC=0 +TASK_RESULT=CT112_VZDUMP_BUILDER_RECONCILE CHANGES_MADE=false ROLLBACK_STARTED=false ROLLBACK_RESTORED=null MUTATION_OUTCOME=NO_MUTATION -HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-261008-CT112-GUEST266-EXPORT-CONTRACT-99809R1","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null} +HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null} OUTPUT_END CHAT_OUTPUT_END