1
0
Files
homelab-public-context/runtime/latest.json
T

39 lines
8.3 KiB
JSON

{
"schema_version": 1,
"channel": "homelab-runtime",
"command_id": "SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-VALIDATE-JOB-CONTRACT-RCA-418R1",
"status": "OK",
"rc": 0,
"host": "pve01",
"mode": "read-only",
"component": "infra-dr-backupv2-pve-lxc-validate-job-contract-rca",
"started_at_utc": "2026-09-15T10:48:30Z",
"finished_at_utc": "2026-09-15T10:48:41Z",
"reference_register_checked": true,
"reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66",
"error_register_checked": true,
"error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0",
"command_sha256": "487104a0f1e32fc27a061c9ca66626190f1b705acf24ee60565ac281c6b27193",
"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": "83df9c98a4c471a512513a93f3200dda903362005293932c39b5a0320135e029",
"sanitized_output_sha256": "83df9c98a4c471a512513a93f3200dda903362005293932c39b5a0320135e029",
"output_truncated_in_json": false,
"full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
"output": "COMMAND_ID=SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-VALIDATE-JOB-CONTRACT-RCA-418R1\nMODE=READ_ONLY_PVE_LXC_VALIDATE_JOB_CONTRACT_RCA\nNO_PVE_SUBPROCESS=YES\nNO_BACKUP_EXECUTION=YES\nNO_VZDUMP_EXECUTION=YES\nNO_CLOUD_ACCESS=YES\nNO_SYSTEMD_MUTATION=YES\nNO_PRODUCTION_PROMOTION=YES\nANCHOR_BINDINGS=PASS\nPRODUCTION_AND_CANDIDATE_IDENTITY=PASS\nEXACT_OWNER_GRAPH=PASS\nPVE265_VALIDATE_JOB_CONTRACT={\"need_calls\":[{\"code\":\"JOB_SCHEMA\",\"line\":2,\"predicate\":\"type(job) is dict and type(now) is int\"},{\"code\":\"VMID\",\"line\":3,\"predicate\":\"type(job.get('vmid')) is int and 100 <= job['vmid'] <= 999999999\"},{\"code\":\"JOB_KIND\",\"line\":4,\"predicate\":\"job.get('type') in ('qemu', 'lxc') and np.valid_id(job.get('node'))\"},{\"code\":\"JOB_BLOCKED\",\"line\":5,\"predicate\":\"job.get('coverage_eligible') is True and job.get('blockers') == []\"},{\"code\":\"PLAN_STALE_OR_FUTURE\",\"line\":6,\"predicate\":\"type(job.get('observed_at')) is int and 0 <= now - job['observed_at'] <= PLAN_TTL\"},{\"code\":\"JOB_CONFIG_ANCHOR\",\"line\":7,\"predicate\":\"core.valid_hash(job.get('config_sha256'))\"},{\"code\":\"ARCHIVE_CAP\",\"line\":8,\"predicate\":\"type(job.get('archive_cap_bytes')) is int and 0 < job['archive_cap_bytes'] <= stream.MAX_BYTES\"},{\"code\":\"JOB_STATE\",\"line\":9,\"predicate\":\"job.get('status') == 'running' and job.get('template') is False\"}],\"signature\":\"(job, now)\",\"source\":\"def validate_job(job,now):\\n need(type(job) is dict and type(now) is int,'JOB_SCHEMA')\\n need(type(job.get('vmid')) is int and 100<=job['vmid']<=999999999,'VMID')\\n need(job.get('type') in ('qemu','lxc') and np.valid_id(job.get('node')),'JOB_KIND')\\n need(job.get('coverage_eligible') is True and job.get('blockers')==[],'JOB_BLOCKED')\\n need(type(job.get('observed_at')) is int and 0<=now-job['observed_at']<=PLAN_TTL,'PLAN_STALE_OR_FUTURE')\\n need(core.valid_hash(job.get('config_sha256')),'JOB_CONFIG_ANCHOR')\\n need(type(job.get('archive_cap_bytes')) is int and 0<job['archive_cap_bytes']<=stream.MAX_BYTES,'ARCHIVE_CAP')\\n need(job.get('status')=='running' and job.get('template') is False,'JOB_STATE')\\n\",\"source_sha256\":\"89276143f6864d62730eee7eddca2320660106018517d2d144b8a79a92e01133\"}\nPVE265_PRODUCE_SIGNATURE=\"(job, work, tools, guard, seconds=14400)\"\nPVE270_PRODUCE_SIGNATURE=\"(job, work, tools, guard, *, mapping, seconds=14400, emit=<function <lambda> at 0x7b121a4313a0>)\"\nPVE282_PRODUCE_SIGNATURE=\"(job, work, tools, guard, *, mapping, expected_config, seconds=14400, emit=<function <lambda> at 0x7b121a433880>)\"\nPVE282_SELECT112_SIGNATURE=\"(current, baseline, now)\"\nVALIDATE_JOB_CALL_SITES=[{\"calls\":[{\"call\":\"validate_job(job, now)\",\"line\":133,\"owner\":\"dump_argv\"},{\"call\":\"validate_job(job, int(time.time()))\",\"line\":205,\"owner\":\"produce\"}],\"file\":\"pve265.py\",\"sha256\":\"cd2f634414a8e38a3789015aeca5a9b47821f77d7d1fa61dcdbdc866172963be\"},{\"calls\":[{\"call\":\"old.validate_job(job, int(time.time()))\",\"line\":293,\"owner\":\"produce\"}],\"file\":\"pve270.py\",\"sha256\":\"97015277a4f3f8129c0fd11eb70c06293026366f1f8232a97feeed513a2dbcef\"},{\"calls\":[{\"call\":\"old.validate_job(job, now)\",\"line\":39,\"owner\":\"select112\"},{\"call\":\"old.validate_job(job, int(time.time()))\",\"line\":66,\"owner\":\"produce\"}],\"file\":\"pve282.py\",\"sha256\":\"73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012\"},{\"calls\":[{\"call\":\"producer.validate_job(job, clock())\",\"line\":85,\"owner\":\"run_flow\"},{\"call\":\"producer.validate_job(job, now)\",\"line\":38,\"owner\":\"choose\"}],\"file\":\"guest266.py\",\"sha256\":\"86433bc424d5fa5017c20f7a237c82874b02357a3283660d8a6b0039ef2bc868\"},{\"calls\":[],\"file\":\"test_pve265.py\",\"sha256\":\"16a9407d01bf73db687ef38684c59205fc2e6a9223cd9cee6ec6e8dde9d38707\"},{\"calls\":[],\"file\":\"test_pve270.py\",\"sha256\":\"9fccd20b490613fdd5b14b4105cf0d9fd744f204e1ed1d6893e54c9f69bf6fb4\"},{\"calls\":[],\"file\":\"test_producer282.py\",\"sha256\":\"a67d927cc428935791f9eecc3acf571d089f80761162f4589b7d684fba6b8af7\"},{\"calls\":[],\"file\":\"test_pve282.py\",\"sha256\":\"1056407aab76e17181b05e043cb42c086058545a8e0027689ab4e03eee6531c4\"}]\nPVE265_PRODUCE_SOURCE_SHA256=d0659237df958ee02e24360721d2664177266e8a53bd5eb68d6655480e923f67\nPVE270_PRODUCE_SOURCE_SHA256=8054e713b79b176819d990bb21c0430b909a11732850662638f60550fe574bdc\nPVE282_PRODUCE_SOURCE_SHA256=a0d4189cc4f06d9ab9dbf34e619f93554f6386789c48d55b41d97294fa32f2e3\nPVE265_PRODUCE_RELEVANT_LINES=[{\"line\":7,\"text\":\"need(callable(guard),'GUARD_REQUIRED');guard();validate_job(job,int(time.time()));validate_tools(tools)\"},{\"line\":16,\"text\":\"result=capture_archive(dump_argv(job,tools['vzdump']['path'],tmp,int(time.time())),dest,job['archive_cap_bytes'],seconds,free_guard)\"},{\"line\":17,\"text\":\"guard();validate_tools(tools)\"},{\"line\":22,\"text\":\"guard();validate_tools(tools)\"}]\nPVE270_PRODUCE_RELEVANT_LINES=[{\"line\":2,\"text\":\"need(callable(guard),'GUARD_REQUIRED');guard();old.validate_job(job,int(time.time()));old.validate_tools(tools)\"},{\"line\":4,\"text\":\"uid,gid=validate_mapping(mapping)\"},{\"line\":12,\"text\":\"scratch=MappedScratch(gid)\"},{\"line\":21,\"text\":\"result=capture_archive(old.dump_argv(job,tools['vzdump']['path'],scratch.path,int(time.time())),dest,job['archive_cap_bytes'],seconds,free_guard)\"},{\"line\":22,\"text\":\"guard();old.validate_tools(tools)\"},{\"line\":27,\"text\":\"guard();old.validate_tools(tools);scratch.close(empty_only=True);complete=True;emit('PVE_TEMP_EMPTY_REMOVED','YES')\"}]\nPVE282_PRODUCE_RELEVANT_LINES=[{\"line\":2,\"text\":\"need(callable(guard),'GUARD_REQUIRED');guard();old.validate_job(job,int(time.time()));old.validate_tools(tools)\"},{\"line\":4,\"text\":\"uid,gid=validate_mapping(mapping)\"},{\"line\":12,\"text\":\"scratch=MappedScratch(gid)\"},{\"line\":21,\"text\":\"result=capture_archive(old.dump_argv(job,tools['vzdump']['path'],scratch.path,int(time.time())),dest,job['archive_cap_bytes'],seconds,free_guard)\"},{\"line\":22,\"text\":\"guard();old.validate_tools(tools)\"},{\"line\":27,\"text\":\"guard();old.validate_tools(tools);scratch.close(empty_only=True);complete=True;emit('PVE_TEMP_EMPTY_REMOVED','YES')\"}]\nPRODUCTION_POST_RCA_UNCHANGED=PASS\nCANDIDATE_POST_RCA_UNCHANGED=PASS\nSTATUS=OK\nPHASE=COMPLETE\nREASON=NONE\nNEXT_GATE=PVE_LXC_CORRECTED_VALIDATE_JOB_FRESH_PLAN_DRY_RUN\nCHANGES_MADE=false\nMUTATION_OUTCOME=NO_MUTATION\nPRODUCTION_PROMOTION=NO\nBACKUP_EXECUTIONS=0\nVZDUMP_EXECUTIONS=0\nCLOUD_WRITES=0\nCLOUD_DELETIONS=0\nSYSTEMD_MUTATIONS=0\nSCHEDULER_CUTOVER=NO\nLEGACY_BACKUP_DISABLES=0\nHOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-VALIDATE-JOB-CONTRACT-RCA-418R1\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n"
}