1
0

runtime: publish SUPPORT-261008-CT112-VZDUMP-BUILDER-RECONCILE-99810R1

This commit is contained in:
homelab-runtime-publisher
2026-10-07 23:15:40 +00:00
parent 77a8296d37
commit af231884d2
4 changed files with 570 additions and 150 deletions
File diff suppressed because one or more lines are too long
@@ -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
+8 -8
View File
File diff suppressed because one or more lines are too long
+244 -142
View File
@@ -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('<STRING>') == '<STRING>', '<STRING>') || rows = plan.get('<STRING>') || t.need(type(rows) is list and 0 < len(rows) <= 0 and (plan.get('<STRING>') == len(rows)), '<STRING>') || t.need(all((type(j) is dict and type(j.get('<STRING>')) is int for j in rows)), '<STRING>') || t.need(len({j['<STRING>'] for j in rows}) == len(rows), '<STRING>') || t.need(plan.get('<STRING>') is 0, '<STRING>') || 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('<STRING>') == [], '<STRING>') || candidates = [] || for job in rows: || if not (job.get('<STRING>') == '<STRING>' and job.get('<STRING>') is 0 and (job.get('<STRING>') == []) and (job.get('<STRING>') is 0) and (job.get('<STRING>') is 0)): || continue || disks = job.get('<STRING>') || if not (type(disks) is list and len(disks) == 0 and (disks[0].get('<STRING>') == '<STRING>') and (disks[0].get('<STRING>') == '<STRING>') and (disks[0].get('<STRING>') in ('<STRING>', '<STRING>'))): || continue || n = job.get('<STRING>') || 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['<STRING>'], x['<STRING>'], x['<STRING>'], x['<STRING>'], x['<STRING>']) for x in rows)) || t.need(membership(old) == membership(new), '<STRING>') || t.need(before['<STRING>'] == after['<STRING>'], '<STRING>') || matches = [j for j in new if j['<STRING>'] == vmid] || original = [j for j in old if j['<STRING>'] == vmid] || t.need(len(matches) == len(original) == 0, '<STRING>') || a, b = (original[0], matches[0]) || t.need(b.get('<STRING>') is 0 and b.get('<STRING>') == [], '<STRING>') || for key in ('<STRING>', '<STRING>', '<STRING>', '<STRING>', '<STRING>', '<STRING>', '<STRING>'): || t.need(a.get(key) == b.get(key), '<STRING>')
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, '<STRING>') || for task in rows: || t.need(type(task) is dict and type(task.get('<STRING>')) is str, '<STRING>') || if type(task.get('<STRING>')) is int and task.get('<STRING>') not in (None, '<STRING>'): || continue || kind = task['<STRING>'] || target = str(task.get('<STRING>', '<STRING>')) || if kind in ('<STRING>', '<STRING>', '<STRING>', '<STRING>'): || continue || t.need(target != str(vmid) and (not any((x in kind.lower() for x in ('<STRING>', '<STRING>', '<STRING>', '<STRING>', '<STRING>', '<STRING>', '<STRING>')))), '<STRING>')
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, '<STRING>') || expected = Path(work) / ('<STRING>' % job['<STRING>']) || t.need(result.get('<STRING>') == str(expected), '<STRING>') || for k in ('<STRING>', '<STRING>', '<STRING>', '<STRING>'): || t.need(result.get(k) == job[k], '<STRING>') || t.need(result.get('<STRING>') == 0 and result.get('<STRING>') is 0, '<STRING>') || t.need(type(result.get('<STRING>')) is int and 0 < result['<STRING>'] <= job['<STRING>'], '<STRING>') || n, h, identity = stream.hash_file(expected, job['<STRING>']) || t.need(n == result['<STRING>'] and h == result.get('<STRING>') and (list(identity) == result.get('<STRING>')), '<STRING>') || temp = Path(work) / '<STRING>' || 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())): || """<STRING>""" || producer.validate_job(job, clock()) || core.validate_inventory(entries) || t.need(job['<STRING>'] == '<STRING>' and job.get('<STRING>') is 0, '<STRING>') || t.need(core.valid_name(generation), '<STRING>') || t.need(all((callable(f) for f in (produce, state_guard, guard, compression_check, say, clock))), '<STRING>') || work = Path(work) || state_guard() || guard() || for sub in ('<STRING>', '<STRING>', '<STRING>'): || t.make_dir(work / sub, exclusive=0) || say('<STRING>', '<STRING>') || produced = produce(job, work / '<STRING>') || source = check_result(produced, job, work / '<STRING>') || 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, '<STRING>', '<STRING>', _HISTORICAL_HELPER, '<STRING>'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env, cwd='<STRING>', timeout=0) || if p.returncode != 0: || raise BackupError('<STRING>', f'<STRING>{p.returncode}<STRING>{hashlib.sha256(p.stderr).hexdigest()}') || try: || out = json.loads(p.stdout) || except Exception: || raise BackupError('<STRING>') || expected = {'<STRING>': str(GUEST266), '<STRING>': str(P265), '<STRING>': str(P270), '<STRING>': str(P282)} || for k, v in expected.items(): || if str(pathlib.Path(out.get(k, '<STRING>')).resolve()) != str(pathlib.Path(v).resolve()): || raise BackupError('<STRING>', 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('<STRING>') or '<STRING>' || try: || argv = _isolated_guest266_dump_argv(job, vzdump, pathlib.Path(scratch), int(time.time())) || except BackupError: || raise || except Exception as e: || raise BackupError('<STRING>', type(e).__name__) || if not isinstance(argv, (list, tuple)) or not argv or (not all((isinstance(x, str) for x in argv))): || raise BackupError('<STRING>') || argv = list(argv) || if pathlib.Path(argv[0]).name != '<STRING>' or str(int(t['<STRING>'])) not in argv: || raise BackupError('<STRING>') || if '<STRING>' in argv or any((x.startswith('<STRING>') for x in argv)): || raise BackupError('<STRING>') || if not any((x == '<STRING>' or x.startswith('<STRING>') for x in argv)): || raise BackupError('<STRING>') || if str(scratch) not in argv and (not any((x == '<STRING>' + str(scratch) for x in argv))): || raise BackupError('<STRING>') || if '<STRING>' in argv: || i = argv.index('<STRING>') || if i + 0 >= len(argv) or argv[i + 0] != str(scratch): || raise BackupError('<STRING>') || elif '<STRING>' + str(scratch) not in argv: || raise BackupError('<STRING>') || 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['<STRING>'] for t in default_targets() if t.get('<STRING>')} == {'<STRING>', '<STRING>', '<STRING>', '<STRING>', '<STRING>', '<STRING>', '<STRING>', '<STRING>', '<STRING>'} || assert _pve_dumpdir_spec('<STRING>') == (0, 0) || assert _pve_dumpdir_spec('<STRING>') == (0, 0) || assert GUEST266_SHA == '<STRING>' || assert P282_SHA == '<STRING>' || if GUEST266.is_file(): || assert _isolated_release_graph_selftest() is 0 || av, _ = proven_lxc_dump_argv({'<STRING>': 0}, {'<STRING>': 0, '<STRING>': 0, '<STRING>': '<STRING>', '<STRING>': '<STRING>'}, '<STRING>', '<STRING>') || assert '<STRING>' in av and '<STRING>' in av and ('<STRING>' in av) || print('<STRING>') || 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 == '<STRING>': || out = {} || for name in ('<STRING>', '<STRING>', '<STRING>', '<STRING>'): || m = importlib.import_module(name) || out[name] = str(pathlib.Path(m.__file__).resolve()) || print(json.dumps(out, sort_keys=0, separators=('<STRING>', '<STRING>'))) || elif mode == '<STRING>': || source = pathlib.Path(sys.argv[0]).resolve() || spec = importlib.util.spec_from_file_location('<STRING>', 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['<STRING>'], req['<STRING>'], pathlib.Path(req['<STRING>']), int(req['<STRING>'])) || print(json.dumps(argv, separators=('<STRING>', '<STRING>'))) || 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=<COMPLEX>,<COMPLEX>,<COMPLEX>,<COMPLEX>
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