From 5e7d468e93b69d0ae78dc81bd6eac744b6cb1928 Mon Sep 17 00:00:00 2001 From: homelab-runtime-publisher Date: Tue, 15 Sep 2026 10:33:54 +0000 Subject: [PATCH] runtime: publish SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1 --- ...2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1.json | 38 ++++ ...V2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1.txt | 64 ++++++ runtime/latest.json | 39 +++- runtime/latest.txt | 210 +++++------------- 4 files changed, 196 insertions(+), 155 deletions(-) create mode 100644 runtime/history/SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1.json create mode 100644 runtime/history/SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1.txt diff --git a/runtime/history/SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1.json b/runtime/history/SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1.json new file mode 100644 index 00000000..999fc94b --- /dev/null +++ b/runtime/history/SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "read-only", + "component": "infra-dr-backupv2-pve-lxc-defaults-contract-rca", + "started_at_utc": "2026-09-15T10:33:38Z", + "finished_at_utc": "2026-09-15T10:33:53Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "6c6be41d3c9f9a904843f64e8357c233aaa59c2a8254848b673b69689f86bda3", + "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": "86735de24a5e1db4f6e1ee22bb7d42d9d12246a095f421714d6cfac0bc1e9813", + "sanitized_output_sha256": "86735de24a5e1db4f6e1ee22bb7d42d9d12246a095f421714d6cfac0bc1e9813", + "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-DEFAULTS-CONTRACT-RCA-416R1\nMODE=READ_ONLY_PVE_LXC_DEFAULTS_CONTRACT_RCA\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\nDEFAULTS_SUMMARY_CONTRACT={\"calls\":[{\"call\":\"need(raw is None or (type(raw) is bytes and len(raw) <= 262144), 'DEFAULTS_BOUND')\",\"line\":2},{\"call\":\"set()\",\"line\":7},{\"call\":\"set()\",\"line\":7},{\"call\":\"text.splitlines()\",\"line\":8},{\"call\":\"sorted(seen)\",\"line\":19},{\"call\":\"sorted(block)\",\"line\":19},{\"call\":\"raw.decode('utf-8-sig')\",\"line\":5},{\"call\":\"line.strip()\",\"line\":9},{\"call\":\"re.fullmatch('([a-z][a-z0-9_-]*)\\\\\\\\s*:\\\\\\\\s*(.*)', line)\",\"line\":11},{\"call\":\"m.groups()\",\"line\":13},{\"call\":\"seen.add(key)\",\"line\":15},{\"call\":\"t.sha(raw)\",\"line\":3},{\"call\":\"line.startswith('#')\",\"line\":10},{\"call\":\"block.add('GLOBAL_DEFAULT_PARSE')\",\"line\":12},{\"call\":\"block.add('GLOBAL_DEFAULT_DUPLICATE')\",\"line\":14},{\"call\":\"block.add('GLOBAL_DEFAULT_SCRIPT')\",\"line\":16},{\"call\":\"block.add('GLOBAL_DEFAULT_EXCLUDE_PATH')\",\"line\":17},{\"call\":\"type(raw)\",\"line\":2},{\"call\":\"len(raw)\",\"line\":2},{\"call\":\"block.add('GLOBAL_DEFAULT_UNREVIEWED')\",\"line\":18}],\"need_calls\":[{\"code\":\"DEFAULTS_BOUND\",\"line\":2,\"predicate\":\"raw is None or (type(raw) is bytes and len(raw) <= 262144)\"}],\"signature\":\"(raw)\",\"source\":\"def defaults_summary(raw):\\n need(raw is None or type(raw) is bytes and len(raw)<=262144,'DEFAULTS_BOUND')\\n result={'present':raw is not None,'sha256':t.sha(raw) if raw is not None else None,'keys':[],'blockers':[]}\\n if raw is None:return result\\n try:text=raw.decode('utf-8-sig')\\n except UnicodeError:result['blockers']=['GLOBAL_DEFAULT_PARSE'];return result\\n seen=set();block=set()\\n for line in text.splitlines():\\n line=line.strip()\\n if not line or line.startswith('#'):continue\\n m=re.fullmatch(r'([a-z][a-z0-9_-]*)\\\\s*:\\\\s*(.*)',line)\\n if not m:block.add('GLOBAL_DEFAULT_PARSE');continue\\n key,value=m.groups()\\n if key in seen:block.add('GLOBAL_DEFAULT_DUPLICATE')\\n seen.add(key)\\n if key=='script':block.add('GLOBAL_DEFAULT_SCRIPT')\\n elif key=='exclude-path':block.add('GLOBAL_DEFAULT_EXCLUDE_PATH')\\n elif key not in OVERRIDDEN:block.add('GLOBAL_DEFAULT_UNREVIEWED')\\n result['keys']=sorted(seen);result['blockers']=sorted(block);return result\\n\",\"source_sha256\":\"c1a47c0c02d3cb0130446a10564e4387abd0d1506e7f78df699ae2c2aa59caf4\"}\nMAKE_PLAN_DEFAULTS_BOUNDARY={\"defaults_calls\":[{\"call\":\"defaults_summary(defaults)\",\"line\":8}],\"need_calls\":[{\"code\":\"NODE_NAME\",\"line\":2,\"predicate\":\"np.valid_id(node)\"},{\"code\":\"SPACE_VALUE\",\"line\":3,\"predicate\":\"type(staging_free) is int and 0 <= staging_free <= 2 ** 63 - 1\"},{\"code\":\"PLAN_TIME\",\"line\":4,\"predicate\":\"type(now) is int and now >= 0\"},{\"code\":\"CONFIGS_SCHEMA\",\"line\":5,\"predicate\":\"type(configs) is dict\"},{\"code\":\"DUPLICATE_STORAGE\",\"line\":7,\"predicate\":\"len({x['storage'] for x in ss}) == len(ss)\"},{\"code\":\"GUEST_CONFIG_MISSING\",\"line\":11,\"predicate\":\"g['vmid'] in configs\"}],\"signature\":\"(rows, configs, storage_rows, defaults, staging_free, now, node='pve01')\"}\nEMPTY_DEFAULTS_PROBE={\"exception_class\":\"pve265.PVEError\",\"message_sha256\":\"465ac0da8be967b9992b69ba3dae7af890204497ffa374a8a80b3fda356da8b0\",\"ok\":false,\"safe_code\":\"DEFAULTS_BOUND\"}\nHISTORICAL_DEFAULTS_TEST_CONTRACT=[{\"assignments\":[{\"line\":16,\"name\":\"cfg\",\"value\":{\"keys\":[\"Constant\",\"Constant\"],\"kind\":\"Dict\",\"value_types\":[\"Dict\",\"Dict\"]}}],\"calls\":[{\"args\":[{\"id\":\"rows\",\"kind\":\"Name\"},{\"id\":\"cfg\",\"kind\":\"Name\"},{\"expr\":\"[{'storage': 'local-lvm', 'type': 'lvmthin', 'active': 1, 'enabled': 1, 'avail': 200 * G, 'total': 1000 * G, 'used': 800 * G}]\",\"kind\":\"List\"},{\"kind\":\"Constant\",\"type\":\"bytes\"},{\"expr\":\"280 * G\",\"kind\":\"BinOp\"},{\"id\":\"NOW\",\"kind\":\"Name\"}],\"fn\":\"make_plan\",\"keywords\":{},\"line\":17,\"owner\":\"plan\"}],\"file\":\"test_guest266.py\",\"references\":[{\"line\":17,\"sha256\":\"363010a9369965f9b7b07b3a569450125a7d2fbf7d8e21803195bd089f09d875\",\"tokens\":[\"z\",\"p.make_plan\",\"rows\",\"cfg\",\"storage\",\"local-lvm\",\"type\",\"lvmthin\",\"active\",\"enabled\",\"avail\",\"G\",\"total\",\"G\",\"used\",\"G\",\"b\",\"empty\",\"n\",\"G\",\"NOW\"]},{\"line\":105,\"sha256\":\"dd512699c0f6636c3f52ffcfdd2bf1852dc59826476d4fcdd940c2b1d8b71c51\",\"tokens\":[\"def\",\"test_changed_defaults_rejected\",\"self\"]},{\"line\":106,\"sha256\":\"ecb7ad0654eef7da1c3d8ac28bdf5e27251b7caceb0f1f9c1265905e29859492\",\"tokens\":[\"before\",\"plan\",\"after\",\"copy.deepcopy\",\"before\",\"after\",\"global_defaults\",\"sha256\"]}],\"sha256\":\"460b950924a475ce0a28dc759512e7dbe2323ae2cc42f7ef4c6181710a2a13da\"},{\"assignments\":[{\"line\":8,\"name\":\"CFG\",\"value\":{\"keys\":[\"rootfs\",\"unprivileged\"],\"kind\":\"Dict\",\"value_types\":[\"Constant\",\"Constant\"]}}],\"calls\":[],\"file\":\"test_producer282.py\",\"references\":[{\"line\":14,\"sha256\":\"af80ccbc49c4cffbfa9604123e6032f494220a98a5f50e18d249b6c172894408\",\"tokens\":[\"def\",\"test_default_mapping\",\"self\",\"self.assertEqual\",\"f.validate_mapping\",\"MAP\"]}],\"sha256\":\"a67d927cc428935791f9eecc3acf571d089f80761162f4589b7d684fba6b8af7\"},{\"assignments\":[],\"calls\":[{\"args\":[{\"expr\":\"rows or [row()]\",\"kind\":\"BoolOp\"},{\"expr\":\"configs or {110: cfg()}\",\"kind\":\"BoolOp\"},{\"expr\":\"storage if storage is not None else stores()\",\"kind\":\"IfExp\"},{\"id\":\"defaults\",\"kind\":\"Name\"},{\"id\":\"free\",\"kind\":\"Name\"},{\"id\":\"now\",\"kind\":\"Name\"}],\"fn\":\"make_plan\",\"keywords\":{},\"line\":18,\"owner\":\"plan\"}],\"file\":\"test_pve265.py\",\"references\":[{\"line\":17,\"sha256\":\"acebdcbef07bd858ee2b1635ecde6eb74572c77b1c94a1f8698dd23c6010ad32\",\"tokens\":[\"def\",\"plan\",\"rows\",\"None\",\"configs\",\"None\",\"storage\",\"None\",\"defaults\",\"b\",\"free\",\"now\"]},{\"line\":18,\"sha256\":\"5834ac94c1255ab7840f6db0044f77f59c26141a78b8e72fff679d971272bd9d\",\"tokens\":[\"return\",\"p.make_plan\",\"rows\",\"or\",\"row\",\"configs\",\"or\",\"cfg\",\"storage\",\"if\",\"storage\",\"is\",\"not\",\"None\",\"else\",\"stores\",\"defaults\",\"free\",\"now\"]},{\"line\":28,\"sha256\":\"a3804228ebedc563e8f56b1b4c914996f9aa7d7f4404ff555bcb1c0092993841\",\"tokens\":[\"def\",\"test_rootfs_default_is_documented_inclusion\",\"self\"]},{\"line\":29,\"sha256\":\"229598de22393fc746ea3bad49570ce9fe3872e88071450c6df34717ef4378c8\",\"tokens\":[\"j\",\"self.job\",\"self.assertEqual\",\"j\",\"blockers\",\"self.assertTrue\",\"j\",\"coverage_eligible\",\"self.assertEqual\",\"j\",\"disks\",\"backup_setting\",\"included_default_rootfs\"]},{\"line\":30,\"sha256\":\"09caa8fae7646375eab8ce359421d16083f1d405dd07849c9b12e5924dcb3b8e\",\"tokens\":[\"def\",\"test_qemu_default_inclusion\",\"self\",\"self.assertEqual\",\"self.job\",\"qemu\",\"disks\",\"backup_setting\",\"included_default_qemu\"]},{\"line\":32,\"sha256\":\"76184450087397a7ad58fe773be6a675c4b6f596a0c9e469539f605714be5ec4\",\"tokens\":[\"def\",\"test_mp_default_not_backed_up\",\"self\",\"self.assertIn\",\"LXC_EXTRA_MOUNT_BACKUP_UNPROVEN\",\"self.job\",\"mp0\",\"local-lvm\",\"v\",\"mp\",\"data\",\"size\",\"G\",\"blockers\"]},{\"line\":58,\"sha256\":\"8127d73baa2c7c468b9db455c5967e7de6c54b11cd6de8679a26e33e2d3fdba2\",\"tokens\":[\"q\",\"plan\",\"defaults\",\"b\",\"script\",\"secret/hook\",\"n\",\"self.assertIn\",\"GLOBAL_DEFAULT_SCRIPT\",\"q\",\"global_blockers\",\"self.assertNotIn\",\"secret\",\"str\",\"q\"]},{\"line\":59,\"sha256\":\"eb1732b095bce166987de781fe0339d75bb66f0522bcb75892d1556b795ace3a\",\"tokens\":[\"def\",\"test_global_exclusions_block\",\"self\",\"self.assertIn\",\"GLOBAL_DEFAULT_EXCLUDE_PATH\",\"plan\",\"defaults\",\"b\",\"exclude-path\",\"data\",\"n\",\"global_blockers\"]},{\"line\":60,\"sha256\":\"fba5e6f4a6ef9aecb6c45b50c882808ec2666a72e39b736ad219b15ed6d71ad7\",\"tokens\":[\"def\",\"test_global_overridden_defaults_are_explicit\",\"self\",\"self.assertEqual\",\"plan\",\"defaults\",\"b\",\"mode\",\"stop\",\"nremove\",\"nstdexcludes\",\"n\",\"global_blockers\"]},{\"line\":61,\"sha256\":\"6dd4febfdaf90b1cbfeec5257fe5131fe6505c7b878826178767b08526cfb21b\",\"tokens\":[\"def\",\"test_unknown_global_default_blocks\",\"self\",\"self.assertIn\",\"GLOBAL_DEFAULT_UNREVIEWED\",\"plan\",\"defaults\",\"b\",\"future-option\",\"yes\",\"n\",\"global_blockers\"]},{\"line\":62,\"sha256\":\"090de8ead15ab83a0950d9a291ed2f4cffb49b8e58302bd3d1780ef8b3b61e69\",\"tokens\":[\"def\",\"test_malformed_default_blocks\",\"self\",\"self.assertIn\",\"GLOBAL_DEFAULT_PARSE\",\"plan\",\"defaults\",\"b\",\"not\",\"valid\",\"n\",\"global_blockers\"]},{\"line\":63,\"sha256\":\"713f384c15ec3c5cc63cf9b1fd96645bfcad3356fbbadb43bb69bfba42901421\",\"tokens\":[\"def\",\"test_duplicate_default_blocks\",\"self\",\"self.assertIn\",\"GLOBAL_DEFAULT_DUPLICATE\",\"plan\",\"defaults\",\"b\",\"mode\",\"snapshot\",\"nmode\",\"stop\",\"n\",\"global_blockers\"]}],\"sha256\":\"16a9407d01bf73db687ef38684c59205fc2e6a9223cd9cee6ec6e8dde9d38707\"},{\"assignments\":[{\"line\":8,\"name\":\"CFG\",\"value\":{\"keys\":[\"rootfs\",\"unprivileged\"],\"kind\":\"Dict\",\"value_types\":[\"Constant\",\"Constant\"]}}],\"calls\":[],\"file\":\"test_pve270.py\",\"references\":[{\"line\":14,\"sha256\":\"af80ccbc49c4cffbfa9604123e6032f494220a98a5f50e18d249b6c172894408\",\"tokens\":[\"def\",\"test_default_mapping\",\"self\",\"self.assertEqual\",\"f.validate_mapping\",\"MAP\"]}],\"sha256\":\"9fccd20b490613fdd5b14b4105cf0d9fd744f204e1ed1d6893e54c9f69bf6fb4\"},{\"assignments\":[{\"line\":18,\"name\":\"configs\",\"value\":{\"expr\":\"{v: {'rootfs': f'local-lvm:vm-{v}-disk-0,size=8G', 'unprivileged': 1} if v in (110, 112) else {'scsi0': f'local-lvm:vm-{v}-disk-0,size=8G'} for v in (110, 112, \",\"kind\":\"DictComp\"}}],\"calls\":[{\"args\":[{\"id\":\"rows\",\"kind\":\"Name\"},{\"id\":\"configs\",\"kind\":\"Name\"},{\"expr\":\"[{'storage': 'local-lvm', 'type': 'lvmthin', 'active': 1, 'enabled': 1, 'avail': 200 * G, 'total': 1000 * G, 'used': 800 * G}]\",\"kind\":\"List\"},{\"kind\":\"Constant\",\"type\":\"bytes\"},{\"expr\":\"280 * G\",\"kind\":\"BinOp\"},{\"id\":\"now\",\"kind\":\"Name\"}],\"fn\":\"make_plan\",\"keywords\":{},\"line\":19,\"owner\":\"plan\"}],\"file\":\"test_pve282.py\",\"references\":[{\"line\":19,\"sha256\":\"f5b434cfc373b04d2ea315c74a670b38536f507e371032015f94e6cf654ea890\",\"tokens\":[\"z\",\"p.make_plan\",\"rows\",\"configs\",\"storage\",\"local-lvm\",\"type\",\"lvmthin\",\"active\",\"enabled\",\"avail\",\"G\",\"total\",\"G\",\"used\",\"G\",\"b\",\"empty\",\"n\",\"G\",\"now\"]},{\"line\":54,\"sha256\":\"6fb3fce1a3a47228e6bc307c1a42633e1f46dd89ef693b40c0ace38f402972af\",\"tokens\":[\"def\",\"test_global_defaults_changed\",\"self\",\"self.reject\",\"lambda\",\"a\",\"a\",\"global_defaults\",\"update\",\"sha256\"]}],\"sha256\":\"1056407aab76e17181b05e043cb42c086058545a8e0027689ab4e03eee6531c4\"}]\nDEFAULTS_RELATED_MODULE_INDEX=[{\"defs\":[{\"args\":[\"config\",\"kind\"],\"line\":40,\"name\":\"config_summary\"}],\"file\":\"nodeplan263.py\",\"sha256\":\"db5c16ee24d25aa1694530332d3190ab7cc5d4f8eb69067d025e27ad5c995060\"},{\"defs\":[{\"args\":[\"raw\"],\"line\":37,\"name\":\"defaults_summary\"},{\"args\":[\"config\"],\"line\":57,\"name\":\"normalized_config\"}],\"file\":\"pve265.py\",\"sha256\":\"cd2f634414a8e38a3789015aeca5a9b47821f77d7d1fa61dcdbdc866172963be\"},{\"defs\":[{\"args\":[\"path\",\"limit\",\"private\"],\"line\":53,\"name\":\"read_secure\"}],\"file\":\"transport261.py\",\"sha256\":\"b9b92f957bf441cb5d1702f4881897328e6c0338f8c3f6d41d27d9a349b37688\"},{\"defs\":[{\"args\":[\"text\"],\"line\":53,\"name\":\"inventory_from_config\"}],\"file\":\"v2core.py\",\"sha256\":\"e285bf9a5678d07dcbb90261f9f93e7826ff524e04cfec780bf5a3c4b0dc29f2\"}]\nDEFAULTS_SOURCE_REFERENCES=[{\"file\":\"pve265.py\",\"line\":37,\"sha256\":\"b2f8b8ce53cbda7b5b42ba08668a7a8728dc7e1dc58f01de6081c2c3b6e3bdb1\",\"tokens\":[\"def\",\"defaults_summary\",\"raw\"]},{\"file\":\"pve265.py\",\"line\":73,\"sha256\":\"b346c82eddab4c61e2db97d891e300ec1eb531f17574d86ca3c07fe1066187bd\",\"tokens\":[\"stores\",\"x\",\"storage\",\"x\",\"for\",\"x\",\"in\",\"ss\",\"global_summary\",\"defaults_summary\",\"defaults\"]},{\"file\":\"test_pve265.py\",\"line\":62,\"sha256\":\"090de8ead15ab83a0950d9a291ed2f4cffb49b8e58302bd3d1780ef8b3b61e69\",\"tokens\":[\"def\",\"test_malformed_default_blocks\",\"self\",\"self.assertIn\",\"GLOBAL_DEFAULT_PARSE\",\"plan\",\"defaults\",\"b\",\"not\",\"valid\",\"n\",\"global_blockers\"]}]\nVZDUMP_CONF_STRUCTURE={\"bytes\":478,\"data_lines\":0,\"exists\":true,\"gid\":0,\"keys\":[],\"mode\":\"0644\",\"sha256\":\"cf34c8e3812547954bb1d08b50212b6e148ee9cf2b629e895a843ed49d623b38\",\"uid\":0,\"unparsed_line_numbers\":[]}\nPRODUCTION_POST_RCA_UNCHANGED=PASS\nSTATUS=OK\nPHASE=COMPLETE\nREASON=NONE\nNEXT_GATE=PVE_LXC_DEFAULTS_SOURCE_BOUND_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-DEFAULTS-CONTRACT-RCA-416R1\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n" +} diff --git a/runtime/history/SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1.txt b/runtime/history/SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1.txt new file mode 100644 index 00000000..397caeb6 --- /dev/null +++ b/runtime/history/SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1.txt @@ -0,0 +1,64 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1 +STATUS=OK +RC=0 +HOST=pve01 +MODE=read-only +COMPONENT=infra-dr-backupv2-pve-lxc-defaults-contract-rca +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=6c6be41d3c9f9a904843f64e8357c233aaa59c2a8254848b673b69689f86bda3 +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=86735de24a5e1db4f6e1ee22bb7d42d9d12246a095f421714d6cfac0bc1e9813 +SANITIZED_OUTPUT_SHA256=86735de24a5e1db4f6e1ee22bb7d42d9d12246a095f421714d6cfac0bc1e9813 +OUTPUT_BEGIN +COMMAND_ID=SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1 +MODE=READ_ONLY_PVE_LXC_DEFAULTS_CONTRACT_RCA +NO_BACKUP_EXECUTION=YES +NO_VZDUMP_EXECUTION=YES +NO_CLOUD_ACCESS=YES +NO_SYSTEMD_MUTATION=YES +NO_PRODUCTION_PROMOTION=YES +ANCHOR_BINDINGS=PASS +PRODUCTION_AND_CANDIDATE_IDENTITY=PASS +DEFAULTS_SUMMARY_CONTRACT={"calls":[{"call":"need(raw is None or (type(raw) is bytes and len(raw) <= 262144), 'DEFAULTS_BOUND')","line":2},{"call":"set()","line":7},{"call":"set()","line":7},{"call":"text.splitlines()","line":8},{"call":"sorted(seen)","line":19},{"call":"sorted(block)","line":19},{"call":"raw.decode('utf-8-sig')","line":5},{"call":"line.strip()","line":9},{"call":"re.fullmatch('([a-z][a-z0-9_-]*)\\\\s*:\\\\s*(.*)', line)","line":11},{"call":"m.groups()","line":13},{"call":"seen.add(key)","line":15},{"call":"t.sha(raw)","line":3},{"call":"line.startswith('#')","line":10},{"call":"block.add('GLOBAL_DEFAULT_PARSE')","line":12},{"call":"block.add('GLOBAL_DEFAULT_DUPLICATE')","line":14},{"call":"block.add('GLOBAL_DEFAULT_SCRIPT')","line":16},{"call":"block.add('GLOBAL_DEFAULT_EXCLUDE_PATH')","line":17},{"call":"type(raw)","line":2},{"call":"len(raw)","line":2},{"call":"block.add('GLOBAL_DEFAULT_UNREVIEWED')","line":18}],"need_calls":[{"code":"DEFAULTS_BOUND","line":2,"predicate":"raw is None or (type(raw) is bytes and len(raw) <= 262144)"}],"signature":"(raw)","source":"def defaults_summary(raw):\n need(raw is None or type(raw) is bytes and len(raw)<=262144,'DEFAULTS_BOUND')\n result={'present':raw is not None,'sha256':t.sha(raw) if raw is not None else None,'keys':[],'blockers':[]}\n if raw is None:return result\n try:text=raw.decode('utf-8-sig')\n except UnicodeError:result['blockers']=['GLOBAL_DEFAULT_PARSE'];return result\n seen=set();block=set()\n for line in text.splitlines():\n line=line.strip()\n if not line or line.startswith('#'):continue\n m=re.fullmatch(r'([a-z][a-z0-9_-]*)\\s*:\\s*(.*)',line)\n if not m:block.add('GLOBAL_DEFAULT_PARSE');continue\n key,value=m.groups()\n if key in seen:block.add('GLOBAL_DEFAULT_DUPLICATE')\n seen.add(key)\n if key=='script':block.add('GLOBAL_DEFAULT_SCRIPT')\n elif key=='exclude-path':block.add('GLOBAL_DEFAULT_EXCLUDE_PATH')\n elif key not in OVERRIDDEN:block.add('GLOBAL_DEFAULT_UNREVIEWED')\n result['keys']=sorted(seen);result['blockers']=sorted(block);return result\n","source_sha256":"c1a47c0c02d3cb0130446a10564e4387abd0d1506e7f78df699ae2c2aa59caf4"} +MAKE_PLAN_DEFAULTS_BOUNDARY={"defaults_calls":[{"call":"defaults_summary(defaults)","line":8}],"need_calls":[{"code":"NODE_NAME","line":2,"predicate":"np.valid_id(node)"},{"code":"SPACE_VALUE","line":3,"predicate":"type(staging_free) is int and 0 <= staging_free <= 2 ** 63 - 1"},{"code":"PLAN_TIME","line":4,"predicate":"type(now) is int and now >= 0"},{"code":"CONFIGS_SCHEMA","line":5,"predicate":"type(configs) is dict"},{"code":"DUPLICATE_STORAGE","line":7,"predicate":"len({x['storage'] for x in ss}) == len(ss)"},{"code":"GUEST_CONFIG_MISSING","line":11,"predicate":"g['vmid'] in configs"}],"signature":"(rows, configs, storage_rows, defaults, staging_free, now, node='pve01')"} +EMPTY_DEFAULTS_PROBE={"exception_class":"pve265.PVEError","message_sha256":"465ac0da8be967b9992b69ba3dae7af890204497ffa374a8a80b3fda356da8b0","ok":false,"safe_code":"DEFAULTS_BOUND"} +HISTORICAL_DEFAULTS_TEST_CONTRACT=[{"assignments":[{"line":16,"name":"cfg","value":{"keys":["Constant","Constant"],"kind":"Dict","value_types":["Dict","Dict"]}}],"calls":[{"args":[{"id":"rows","kind":"Name"},{"id":"cfg","kind":"Name"},{"expr":"[{'storage': 'local-lvm', 'type': 'lvmthin', 'active': 1, 'enabled': 1, 'avail': 200 * G, 'total': 1000 * G, 'used': 800 * G}]","kind":"List"},{"kind":"Constant","type":"bytes"},{"expr":"280 * G","kind":"BinOp"},{"id":"NOW","kind":"Name"}],"fn":"make_plan","keywords":{},"line":17,"owner":"plan"}],"file":"test_guest266.py","references":[{"line":17,"sha256":"363010a9369965f9b7b07b3a569450125a7d2fbf7d8e21803195bd089f09d875","tokens":["z","p.make_plan","rows","cfg","storage","local-lvm","type","lvmthin","active","enabled","avail","G","total","G","used","G","b","empty","n","G","NOW"]},{"line":105,"sha256":"dd512699c0f6636c3f52ffcfdd2bf1852dc59826476d4fcdd940c2b1d8b71c51","tokens":["def","test_changed_defaults_rejected","self"]},{"line":106,"sha256":"ecb7ad0654eef7da1c3d8ac28bdf5e27251b7caceb0f1f9c1265905e29859492","tokens":["before","plan","after","copy.deepcopy","before","after","global_defaults","sha256"]}],"sha256":"460b950924a475ce0a28dc759512e7dbe2323ae2cc42f7ef4c6181710a2a13da"},{"assignments":[{"line":8,"name":"CFG","value":{"keys":["rootfs","unprivileged"],"kind":"Dict","value_types":["Constant","Constant"]}}],"calls":[],"file":"test_producer282.py","references":[{"line":14,"sha256":"af80ccbc49c4cffbfa9604123e6032f494220a98a5f50e18d249b6c172894408","tokens":["def","test_default_mapping","self","self.assertEqual","f.validate_mapping","MAP"]}],"sha256":"a67d927cc428935791f9eecc3acf571d089f80761162f4589b7d684fba6b8af7"},{"assignments":[],"calls":[{"args":[{"expr":"rows or [row()]","kind":"BoolOp"},{"expr":"configs or {110: cfg()}","kind":"BoolOp"},{"expr":"storage if storage is not None else stores()","kind":"IfExp"},{"id":"defaults","kind":"Name"},{"id":"free","kind":"Name"},{"id":"now","kind":"Name"}],"fn":"make_plan","keywords":{},"line":18,"owner":"plan"}],"file":"test_pve265.py","references":[{"line":17,"sha256":"acebdcbef07bd858ee2b1635ecde6eb74572c77b1c94a1f8698dd23c6010ad32","tokens":["def","plan","rows","None","configs","None","storage","None","defaults","b","free","now"]},{"line":18,"sha256":"5834ac94c1255ab7840f6db0044f77f59c26141a78b8e72fff679d971272bd9d","tokens":["return","p.make_plan","rows","or","row","configs","or","cfg","storage","if","storage","is","not","None","else","stores","defaults","free","now"]},{"line":28,"sha256":"a3804228ebedc563e8f56b1b4c914996f9aa7d7f4404ff555bcb1c0092993841","tokens":["def","test_rootfs_default_is_documented_inclusion","self"]},{"line":29,"sha256":"229598de22393fc746ea3bad49570ce9fe3872e88071450c6df34717ef4378c8","tokens":["j","self.job","self.assertEqual","j","blockers","self.assertTrue","j","coverage_eligible","self.assertEqual","j","disks","backup_setting","included_default_rootfs"]},{"line":30,"sha256":"09caa8fae7646375eab8ce359421d16083f1d405dd07849c9b12e5924dcb3b8e","tokens":["def","test_qemu_default_inclusion","self","self.assertEqual","self.job","qemu","disks","backup_setting","included_default_qemu"]},{"line":32,"sha256":"76184450087397a7ad58fe773be6a675c4b6f596a0c9e469539f605714be5ec4","tokens":["def","test_mp_default_not_backed_up","self","self.assertIn","LXC_EXTRA_MOUNT_BACKUP_UNPROVEN","self.job","mp0","local-lvm","v","mp","data","size","G","blockers"]},{"line":58,"sha256":"8127d73baa2c7c468b9db455c5967e7de6c54b11cd6de8679a26e33e2d3fdba2","tokens":["q","plan","defaults","b","script","secret/hook","n","self.assertIn","GLOBAL_DEFAULT_SCRIPT","q","global_blockers","self.assertNotIn","secret","str","q"]},{"line":59,"sha256":"eb1732b095bce166987de781fe0339d75bb66f0522bcb75892d1556b795ace3a","tokens":["def","test_global_exclusions_block","self","self.assertIn","GLOBAL_DEFAULT_EXCLUDE_PATH","plan","defaults","b","exclude-path","data","n","global_blockers"]},{"line":60,"sha256":"fba5e6f4a6ef9aecb6c45b50c882808ec2666a72e39b736ad219b15ed6d71ad7","tokens":["def","test_global_overridden_defaults_are_explicit","self","self.assertEqual","plan","defaults","b","mode","stop","nremove","nstdexcludes","n","global_blockers"]},{"line":61,"sha256":"6dd4febfdaf90b1cbfeec5257fe5131fe6505c7b878826178767b08526cfb21b","tokens":["def","test_unknown_global_default_blocks","self","self.assertIn","GLOBAL_DEFAULT_UNREVIEWED","plan","defaults","b","future-option","yes","n","global_blockers"]},{"line":62,"sha256":"090de8ead15ab83a0950d9a291ed2f4cffb49b8e58302bd3d1780ef8b3b61e69","tokens":["def","test_malformed_default_blocks","self","self.assertIn","GLOBAL_DEFAULT_PARSE","plan","defaults","b","not","valid","n","global_blockers"]},{"line":63,"sha256":"713f384c15ec3c5cc63cf9b1fd96645bfcad3356fbbadb43bb69bfba42901421","tokens":["def","test_duplicate_default_blocks","self","self.assertIn","GLOBAL_DEFAULT_DUPLICATE","plan","defaults","b","mode","snapshot","nmode","stop","n","global_blockers"]}],"sha256":"16a9407d01bf73db687ef38684c59205fc2e6a9223cd9cee6ec6e8dde9d38707"},{"assignments":[{"line":8,"name":"CFG","value":{"keys":["rootfs","unprivileged"],"kind":"Dict","value_types":["Constant","Constant"]}}],"calls":[],"file":"test_pve270.py","references":[{"line":14,"sha256":"af80ccbc49c4cffbfa9604123e6032f494220a98a5f50e18d249b6c172894408","tokens":["def","test_default_mapping","self","self.assertEqual","f.validate_mapping","MAP"]}],"sha256":"9fccd20b490613fdd5b14b4105cf0d9fd744f204e1ed1d6893e54c9f69bf6fb4"},{"assignments":[{"line":18,"name":"configs","value":{"expr":"{v: {'rootfs': f'local-lvm:vm-{v}-disk-0,size=8G', 'unprivileged': 1} if v in (110, 112) else {'scsi0': f'local-lvm:vm-{v}-disk-0,size=8G'} for v in (110, 112, ","kind":"DictComp"}}],"calls":[{"args":[{"id":"rows","kind":"Name"},{"id":"configs","kind":"Name"},{"expr":"[{'storage': 'local-lvm', 'type': 'lvmthin', 'active': 1, 'enabled': 1, 'avail': 200 * G, 'total': 1000 * G, 'used': 800 * G}]","kind":"List"},{"kind":"Constant","type":"bytes"},{"expr":"280 * G","kind":"BinOp"},{"id":"now","kind":"Name"}],"fn":"make_plan","keywords":{},"line":19,"owner":"plan"}],"file":"test_pve282.py","references":[{"line":19,"sha256":"f5b434cfc373b04d2ea315c74a670b38536f507e371032015f94e6cf654ea890","tokens":["z","p.make_plan","rows","configs","storage","local-lvm","type","lvmthin","active","enabled","avail","G","total","G","used","G","b","empty","n","G","now"]},{"line":54,"sha256":"6fb3fce1a3a47228e6bc307c1a42633e1f46dd89ef693b40c0ace38f402972af","tokens":["def","test_global_defaults_changed","self","self.reject","lambda","a","a","global_defaults","update","sha256"]}],"sha256":"1056407aab76e17181b05e043cb42c086058545a8e0027689ab4e03eee6531c4"}] +DEFAULTS_RELATED_MODULE_INDEX=[{"defs":[{"args":["config","kind"],"line":40,"name":"config_summary"}],"file":"nodeplan263.py","sha256":"db5c16ee24d25aa1694530332d3190ab7cc5d4f8eb69067d025e27ad5c995060"},{"defs":[{"args":["raw"],"line":37,"name":"defaults_summary"},{"args":["config"],"line":57,"name":"normalized_config"}],"file":"pve265.py","sha256":"cd2f634414a8e38a3789015aeca5a9b47821f77d7d1fa61dcdbdc866172963be"},{"defs":[{"args":["path","limit","private"],"line":53,"name":"read_secure"}],"file":"transport261.py","sha256":"b9b92f957bf441cb5d1702f4881897328e6c0338f8c3f6d41d27d9a349b37688"},{"defs":[{"args":["text"],"line":53,"name":"inventory_from_config"}],"file":"v2core.py","sha256":"e285bf9a5678d07dcbb90261f9f93e7826ff524e04cfec780bf5a3c4b0dc29f2"}] +DEFAULTS_SOURCE_REFERENCES=[{"file":"pve265.py","line":37,"sha256":"b2f8b8ce53cbda7b5b42ba08668a7a8728dc7e1dc58f01de6081c2c3b6e3bdb1","tokens":["def","defaults_summary","raw"]},{"file":"pve265.py","line":73,"sha256":"b346c82eddab4c61e2db97d891e300ec1eb531f17574d86ca3c07fe1066187bd","tokens":["stores","x","storage","x","for","x","in","ss","global_summary","defaults_summary","defaults"]},{"file":"test_pve265.py","line":62,"sha256":"090de8ead15ab83a0950d9a291ed2f4cffb49b8e58302bd3d1780ef8b3b61e69","tokens":["def","test_malformed_default_blocks","self","self.assertIn","GLOBAL_DEFAULT_PARSE","plan","defaults","b","not","valid","n","global_blockers"]}] +VZDUMP_CONF_STRUCTURE={"bytes":478,"data_lines":0,"exists":true,"gid":0,"keys":[],"mode":"0644","sha256":"cf34c8e3812547954bb1d08b50212b6e148ee9cf2b629e895a843ed49d623b38","uid":0,"unparsed_line_numbers":[]} +PRODUCTION_POST_RCA_UNCHANGED=PASS +STATUS=OK +PHASE=COMPLETE +REASON=NONE +NEXT_GATE=PVE_LXC_DEFAULTS_SOURCE_BOUND_FRESH_PLAN_DRY_RUN +CHANGES_MADE=false +MUTATION_OUTCOME=NO_MUTATION +PRODUCTION_PROMOTION=NO +BACKUP_EXECUTIONS=0 +VZDUMP_EXECUTIONS=0 +CLOUD_WRITES=0 +CLOUD_DELETIONS=0 +SYSTEMD_MUTATIONS=0 +SCHEDULER_CUTOVER=NO +LEGACY_BACKUP_DISABLES=0 +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index e065c184..999fc94b 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1 +1,38 @@ -{"schema_version":1,"channel":"homelab-runtime","command_id":"CONTEXT-AUTO-20260915T101701Z","status":"OK","rc":0,"host":"pve01","mode":"read-only","component":"cluster-context","started_at_utc":"2026-09-15T10:17:01Z","finished_at_utc":"2026-09-15T10:17:02Z","reference_register_checked":true,"reference_sha256":"5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66","error_register_checked":true,"error_register_sha256":"3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0","changes_made":false,"sanitized":true,"secrets_included":false,"private_addresses_included":false,"output":"AUTOMATIC_CLUSTER_CONTEXT_REFRESH=OK"} +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "read-only", + "component": "infra-dr-backupv2-pve-lxc-defaults-contract-rca", + "started_at_utc": "2026-09-15T10:33:38Z", + "finished_at_utc": "2026-09-15T10:33:53Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "6c6be41d3c9f9a904843f64e8357c233aaa59c2a8254848b673b69689f86bda3", + "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": "86735de24a5e1db4f6e1ee22bb7d42d9d12246a095f421714d6cfac0bc1e9813", + "sanitized_output_sha256": "86735de24a5e1db4f6e1ee22bb7d42d9d12246a095f421714d6cfac0bc1e9813", + "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-DEFAULTS-CONTRACT-RCA-416R1\nMODE=READ_ONLY_PVE_LXC_DEFAULTS_CONTRACT_RCA\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\nDEFAULTS_SUMMARY_CONTRACT={\"calls\":[{\"call\":\"need(raw is None or (type(raw) is bytes and len(raw) <= 262144), 'DEFAULTS_BOUND')\",\"line\":2},{\"call\":\"set()\",\"line\":7},{\"call\":\"set()\",\"line\":7},{\"call\":\"text.splitlines()\",\"line\":8},{\"call\":\"sorted(seen)\",\"line\":19},{\"call\":\"sorted(block)\",\"line\":19},{\"call\":\"raw.decode('utf-8-sig')\",\"line\":5},{\"call\":\"line.strip()\",\"line\":9},{\"call\":\"re.fullmatch('([a-z][a-z0-9_-]*)\\\\\\\\s*:\\\\\\\\s*(.*)', line)\",\"line\":11},{\"call\":\"m.groups()\",\"line\":13},{\"call\":\"seen.add(key)\",\"line\":15},{\"call\":\"t.sha(raw)\",\"line\":3},{\"call\":\"line.startswith('#')\",\"line\":10},{\"call\":\"block.add('GLOBAL_DEFAULT_PARSE')\",\"line\":12},{\"call\":\"block.add('GLOBAL_DEFAULT_DUPLICATE')\",\"line\":14},{\"call\":\"block.add('GLOBAL_DEFAULT_SCRIPT')\",\"line\":16},{\"call\":\"block.add('GLOBAL_DEFAULT_EXCLUDE_PATH')\",\"line\":17},{\"call\":\"type(raw)\",\"line\":2},{\"call\":\"len(raw)\",\"line\":2},{\"call\":\"block.add('GLOBAL_DEFAULT_UNREVIEWED')\",\"line\":18}],\"need_calls\":[{\"code\":\"DEFAULTS_BOUND\",\"line\":2,\"predicate\":\"raw is None or (type(raw) is bytes and len(raw) <= 262144)\"}],\"signature\":\"(raw)\",\"source\":\"def defaults_summary(raw):\\n need(raw is None or type(raw) is bytes and len(raw)<=262144,'DEFAULTS_BOUND')\\n result={'present':raw is not None,'sha256':t.sha(raw) if raw is not None else None,'keys':[],'blockers':[]}\\n if raw is None:return result\\n try:text=raw.decode('utf-8-sig')\\n except UnicodeError:result['blockers']=['GLOBAL_DEFAULT_PARSE'];return result\\n seen=set();block=set()\\n for line in text.splitlines():\\n line=line.strip()\\n if not line or line.startswith('#'):continue\\n m=re.fullmatch(r'([a-z][a-z0-9_-]*)\\\\s*:\\\\s*(.*)',line)\\n if not m:block.add('GLOBAL_DEFAULT_PARSE');continue\\n key,value=m.groups()\\n if key in seen:block.add('GLOBAL_DEFAULT_DUPLICATE')\\n seen.add(key)\\n if key=='script':block.add('GLOBAL_DEFAULT_SCRIPT')\\n elif key=='exclude-path':block.add('GLOBAL_DEFAULT_EXCLUDE_PATH')\\n elif key not in OVERRIDDEN:block.add('GLOBAL_DEFAULT_UNREVIEWED')\\n result['keys']=sorted(seen);result['blockers']=sorted(block);return result\\n\",\"source_sha256\":\"c1a47c0c02d3cb0130446a10564e4387abd0d1506e7f78df699ae2c2aa59caf4\"}\nMAKE_PLAN_DEFAULTS_BOUNDARY={\"defaults_calls\":[{\"call\":\"defaults_summary(defaults)\",\"line\":8}],\"need_calls\":[{\"code\":\"NODE_NAME\",\"line\":2,\"predicate\":\"np.valid_id(node)\"},{\"code\":\"SPACE_VALUE\",\"line\":3,\"predicate\":\"type(staging_free) is int and 0 <= staging_free <= 2 ** 63 - 1\"},{\"code\":\"PLAN_TIME\",\"line\":4,\"predicate\":\"type(now) is int and now >= 0\"},{\"code\":\"CONFIGS_SCHEMA\",\"line\":5,\"predicate\":\"type(configs) is dict\"},{\"code\":\"DUPLICATE_STORAGE\",\"line\":7,\"predicate\":\"len({x['storage'] for x in ss}) == len(ss)\"},{\"code\":\"GUEST_CONFIG_MISSING\",\"line\":11,\"predicate\":\"g['vmid'] in configs\"}],\"signature\":\"(rows, configs, storage_rows, defaults, staging_free, now, node='pve01')\"}\nEMPTY_DEFAULTS_PROBE={\"exception_class\":\"pve265.PVEError\",\"message_sha256\":\"465ac0da8be967b9992b69ba3dae7af890204497ffa374a8a80b3fda356da8b0\",\"ok\":false,\"safe_code\":\"DEFAULTS_BOUND\"}\nHISTORICAL_DEFAULTS_TEST_CONTRACT=[{\"assignments\":[{\"line\":16,\"name\":\"cfg\",\"value\":{\"keys\":[\"Constant\",\"Constant\"],\"kind\":\"Dict\",\"value_types\":[\"Dict\",\"Dict\"]}}],\"calls\":[{\"args\":[{\"id\":\"rows\",\"kind\":\"Name\"},{\"id\":\"cfg\",\"kind\":\"Name\"},{\"expr\":\"[{'storage': 'local-lvm', 'type': 'lvmthin', 'active': 1, 'enabled': 1, 'avail': 200 * G, 'total': 1000 * G, 'used': 800 * G}]\",\"kind\":\"List\"},{\"kind\":\"Constant\",\"type\":\"bytes\"},{\"expr\":\"280 * G\",\"kind\":\"BinOp\"},{\"id\":\"NOW\",\"kind\":\"Name\"}],\"fn\":\"make_plan\",\"keywords\":{},\"line\":17,\"owner\":\"plan\"}],\"file\":\"test_guest266.py\",\"references\":[{\"line\":17,\"sha256\":\"363010a9369965f9b7b07b3a569450125a7d2fbf7d8e21803195bd089f09d875\",\"tokens\":[\"z\",\"p.make_plan\",\"rows\",\"cfg\",\"storage\",\"local-lvm\",\"type\",\"lvmthin\",\"active\",\"enabled\",\"avail\",\"G\",\"total\",\"G\",\"used\",\"G\",\"b\",\"empty\",\"n\",\"G\",\"NOW\"]},{\"line\":105,\"sha256\":\"dd512699c0f6636c3f52ffcfdd2bf1852dc59826476d4fcdd940c2b1d8b71c51\",\"tokens\":[\"def\",\"test_changed_defaults_rejected\",\"self\"]},{\"line\":106,\"sha256\":\"ecb7ad0654eef7da1c3d8ac28bdf5e27251b7caceb0f1f9c1265905e29859492\",\"tokens\":[\"before\",\"plan\",\"after\",\"copy.deepcopy\",\"before\",\"after\",\"global_defaults\",\"sha256\"]}],\"sha256\":\"460b950924a475ce0a28dc759512e7dbe2323ae2cc42f7ef4c6181710a2a13da\"},{\"assignments\":[{\"line\":8,\"name\":\"CFG\",\"value\":{\"keys\":[\"rootfs\",\"unprivileged\"],\"kind\":\"Dict\",\"value_types\":[\"Constant\",\"Constant\"]}}],\"calls\":[],\"file\":\"test_producer282.py\",\"references\":[{\"line\":14,\"sha256\":\"af80ccbc49c4cffbfa9604123e6032f494220a98a5f50e18d249b6c172894408\",\"tokens\":[\"def\",\"test_default_mapping\",\"self\",\"self.assertEqual\",\"f.validate_mapping\",\"MAP\"]}],\"sha256\":\"a67d927cc428935791f9eecc3acf571d089f80761162f4589b7d684fba6b8af7\"},{\"assignments\":[],\"calls\":[{\"args\":[{\"expr\":\"rows or [row()]\",\"kind\":\"BoolOp\"},{\"expr\":\"configs or {110: cfg()}\",\"kind\":\"BoolOp\"},{\"expr\":\"storage if storage is not None else stores()\",\"kind\":\"IfExp\"},{\"id\":\"defaults\",\"kind\":\"Name\"},{\"id\":\"free\",\"kind\":\"Name\"},{\"id\":\"now\",\"kind\":\"Name\"}],\"fn\":\"make_plan\",\"keywords\":{},\"line\":18,\"owner\":\"plan\"}],\"file\":\"test_pve265.py\",\"references\":[{\"line\":17,\"sha256\":\"acebdcbef07bd858ee2b1635ecde6eb74572c77b1c94a1f8698dd23c6010ad32\",\"tokens\":[\"def\",\"plan\",\"rows\",\"None\",\"configs\",\"None\",\"storage\",\"None\",\"defaults\",\"b\",\"free\",\"now\"]},{\"line\":18,\"sha256\":\"5834ac94c1255ab7840f6db0044f77f59c26141a78b8e72fff679d971272bd9d\",\"tokens\":[\"return\",\"p.make_plan\",\"rows\",\"or\",\"row\",\"configs\",\"or\",\"cfg\",\"storage\",\"if\",\"storage\",\"is\",\"not\",\"None\",\"else\",\"stores\",\"defaults\",\"free\",\"now\"]},{\"line\":28,\"sha256\":\"a3804228ebedc563e8f56b1b4c914996f9aa7d7f4404ff555bcb1c0092993841\",\"tokens\":[\"def\",\"test_rootfs_default_is_documented_inclusion\",\"self\"]},{\"line\":29,\"sha256\":\"229598de22393fc746ea3bad49570ce9fe3872e88071450c6df34717ef4378c8\",\"tokens\":[\"j\",\"self.job\",\"self.assertEqual\",\"j\",\"blockers\",\"self.assertTrue\",\"j\",\"coverage_eligible\",\"self.assertEqual\",\"j\",\"disks\",\"backup_setting\",\"included_default_rootfs\"]},{\"line\":30,\"sha256\":\"09caa8fae7646375eab8ce359421d16083f1d405dd07849c9b12e5924dcb3b8e\",\"tokens\":[\"def\",\"test_qemu_default_inclusion\",\"self\",\"self.assertEqual\",\"self.job\",\"qemu\",\"disks\",\"backup_setting\",\"included_default_qemu\"]},{\"line\":32,\"sha256\":\"76184450087397a7ad58fe773be6a675c4b6f596a0c9e469539f605714be5ec4\",\"tokens\":[\"def\",\"test_mp_default_not_backed_up\",\"self\",\"self.assertIn\",\"LXC_EXTRA_MOUNT_BACKUP_UNPROVEN\",\"self.job\",\"mp0\",\"local-lvm\",\"v\",\"mp\",\"data\",\"size\",\"G\",\"blockers\"]},{\"line\":58,\"sha256\":\"8127d73baa2c7c468b9db455c5967e7de6c54b11cd6de8679a26e33e2d3fdba2\",\"tokens\":[\"q\",\"plan\",\"defaults\",\"b\",\"script\",\"secret/hook\",\"n\",\"self.assertIn\",\"GLOBAL_DEFAULT_SCRIPT\",\"q\",\"global_blockers\",\"self.assertNotIn\",\"secret\",\"str\",\"q\"]},{\"line\":59,\"sha256\":\"eb1732b095bce166987de781fe0339d75bb66f0522bcb75892d1556b795ace3a\",\"tokens\":[\"def\",\"test_global_exclusions_block\",\"self\",\"self.assertIn\",\"GLOBAL_DEFAULT_EXCLUDE_PATH\",\"plan\",\"defaults\",\"b\",\"exclude-path\",\"data\",\"n\",\"global_blockers\"]},{\"line\":60,\"sha256\":\"fba5e6f4a6ef9aecb6c45b50c882808ec2666a72e39b736ad219b15ed6d71ad7\",\"tokens\":[\"def\",\"test_global_overridden_defaults_are_explicit\",\"self\",\"self.assertEqual\",\"plan\",\"defaults\",\"b\",\"mode\",\"stop\",\"nremove\",\"nstdexcludes\",\"n\",\"global_blockers\"]},{\"line\":61,\"sha256\":\"6dd4febfdaf90b1cbfeec5257fe5131fe6505c7b878826178767b08526cfb21b\",\"tokens\":[\"def\",\"test_unknown_global_default_blocks\",\"self\",\"self.assertIn\",\"GLOBAL_DEFAULT_UNREVIEWED\",\"plan\",\"defaults\",\"b\",\"future-option\",\"yes\",\"n\",\"global_blockers\"]},{\"line\":62,\"sha256\":\"090de8ead15ab83a0950d9a291ed2f4cffb49b8e58302bd3d1780ef8b3b61e69\",\"tokens\":[\"def\",\"test_malformed_default_blocks\",\"self\",\"self.assertIn\",\"GLOBAL_DEFAULT_PARSE\",\"plan\",\"defaults\",\"b\",\"not\",\"valid\",\"n\",\"global_blockers\"]},{\"line\":63,\"sha256\":\"713f384c15ec3c5cc63cf9b1fd96645bfcad3356fbbadb43bb69bfba42901421\",\"tokens\":[\"def\",\"test_duplicate_default_blocks\",\"self\",\"self.assertIn\",\"GLOBAL_DEFAULT_DUPLICATE\",\"plan\",\"defaults\",\"b\",\"mode\",\"snapshot\",\"nmode\",\"stop\",\"n\",\"global_blockers\"]}],\"sha256\":\"16a9407d01bf73db687ef38684c59205fc2e6a9223cd9cee6ec6e8dde9d38707\"},{\"assignments\":[{\"line\":8,\"name\":\"CFG\",\"value\":{\"keys\":[\"rootfs\",\"unprivileged\"],\"kind\":\"Dict\",\"value_types\":[\"Constant\",\"Constant\"]}}],\"calls\":[],\"file\":\"test_pve270.py\",\"references\":[{\"line\":14,\"sha256\":\"af80ccbc49c4cffbfa9604123e6032f494220a98a5f50e18d249b6c172894408\",\"tokens\":[\"def\",\"test_default_mapping\",\"self\",\"self.assertEqual\",\"f.validate_mapping\",\"MAP\"]}],\"sha256\":\"9fccd20b490613fdd5b14b4105cf0d9fd744f204e1ed1d6893e54c9f69bf6fb4\"},{\"assignments\":[{\"line\":18,\"name\":\"configs\",\"value\":{\"expr\":\"{v: {'rootfs': f'local-lvm:vm-{v}-disk-0,size=8G', 'unprivileged': 1} if v in (110, 112) else {'scsi0': f'local-lvm:vm-{v}-disk-0,size=8G'} for v in (110, 112, \",\"kind\":\"DictComp\"}}],\"calls\":[{\"args\":[{\"id\":\"rows\",\"kind\":\"Name\"},{\"id\":\"configs\",\"kind\":\"Name\"},{\"expr\":\"[{'storage': 'local-lvm', 'type': 'lvmthin', 'active': 1, 'enabled': 1, 'avail': 200 * G, 'total': 1000 * G, 'used': 800 * G}]\",\"kind\":\"List\"},{\"kind\":\"Constant\",\"type\":\"bytes\"},{\"expr\":\"280 * G\",\"kind\":\"BinOp\"},{\"id\":\"now\",\"kind\":\"Name\"}],\"fn\":\"make_plan\",\"keywords\":{},\"line\":19,\"owner\":\"plan\"}],\"file\":\"test_pve282.py\",\"references\":[{\"line\":19,\"sha256\":\"f5b434cfc373b04d2ea315c74a670b38536f507e371032015f94e6cf654ea890\",\"tokens\":[\"z\",\"p.make_plan\",\"rows\",\"configs\",\"storage\",\"local-lvm\",\"type\",\"lvmthin\",\"active\",\"enabled\",\"avail\",\"G\",\"total\",\"G\",\"used\",\"G\",\"b\",\"empty\",\"n\",\"G\",\"now\"]},{\"line\":54,\"sha256\":\"6fb3fce1a3a47228e6bc307c1a42633e1f46dd89ef693b40c0ace38f402972af\",\"tokens\":[\"def\",\"test_global_defaults_changed\",\"self\",\"self.reject\",\"lambda\",\"a\",\"a\",\"global_defaults\",\"update\",\"sha256\"]}],\"sha256\":\"1056407aab76e17181b05e043cb42c086058545a8e0027689ab4e03eee6531c4\"}]\nDEFAULTS_RELATED_MODULE_INDEX=[{\"defs\":[{\"args\":[\"config\",\"kind\"],\"line\":40,\"name\":\"config_summary\"}],\"file\":\"nodeplan263.py\",\"sha256\":\"db5c16ee24d25aa1694530332d3190ab7cc5d4f8eb69067d025e27ad5c995060\"},{\"defs\":[{\"args\":[\"raw\"],\"line\":37,\"name\":\"defaults_summary\"},{\"args\":[\"config\"],\"line\":57,\"name\":\"normalized_config\"}],\"file\":\"pve265.py\",\"sha256\":\"cd2f634414a8e38a3789015aeca5a9b47821f77d7d1fa61dcdbdc866172963be\"},{\"defs\":[{\"args\":[\"path\",\"limit\",\"private\"],\"line\":53,\"name\":\"read_secure\"}],\"file\":\"transport261.py\",\"sha256\":\"b9b92f957bf441cb5d1702f4881897328e6c0338f8c3f6d41d27d9a349b37688\"},{\"defs\":[{\"args\":[\"text\"],\"line\":53,\"name\":\"inventory_from_config\"}],\"file\":\"v2core.py\",\"sha256\":\"e285bf9a5678d07dcbb90261f9f93e7826ff524e04cfec780bf5a3c4b0dc29f2\"}]\nDEFAULTS_SOURCE_REFERENCES=[{\"file\":\"pve265.py\",\"line\":37,\"sha256\":\"b2f8b8ce53cbda7b5b42ba08668a7a8728dc7e1dc58f01de6081c2c3b6e3bdb1\",\"tokens\":[\"def\",\"defaults_summary\",\"raw\"]},{\"file\":\"pve265.py\",\"line\":73,\"sha256\":\"b346c82eddab4c61e2db97d891e300ec1eb531f17574d86ca3c07fe1066187bd\",\"tokens\":[\"stores\",\"x\",\"storage\",\"x\",\"for\",\"x\",\"in\",\"ss\",\"global_summary\",\"defaults_summary\",\"defaults\"]},{\"file\":\"test_pve265.py\",\"line\":62,\"sha256\":\"090de8ead15ab83a0950d9a291ed2f4cffb49b8e58302bd3d1780ef8b3b61e69\",\"tokens\":[\"def\",\"test_malformed_default_blocks\",\"self\",\"self.assertIn\",\"GLOBAL_DEFAULT_PARSE\",\"plan\",\"defaults\",\"b\",\"not\",\"valid\",\"n\",\"global_blockers\"]}]\nVZDUMP_CONF_STRUCTURE={\"bytes\":478,\"data_lines\":0,\"exists\":true,\"gid\":0,\"keys\":[],\"mode\":\"0644\",\"sha256\":\"cf34c8e3812547954bb1d08b50212b6e148ee9cf2b629e895a843ed49d623b38\",\"uid\":0,\"unparsed_line_numbers\":[]}\nPRODUCTION_POST_RCA_UNCHANGED=PASS\nSTATUS=OK\nPHASE=COMPLETE\nREASON=NONE\nNEXT_GATE=PVE_LXC_DEFAULTS_SOURCE_BOUND_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-DEFAULTS-CONTRACT-RCA-416R1\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n" +} diff --git a/runtime/latest.txt b/runtime/latest.txt index fbc0c0d2..397caeb6 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,162 +1,64 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=CONTEXT-AUTO-[PRIVATE_IP]701Z +COMMAND_ID=SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1 STATUS=OK RC=0 HOST=pve01 -COMPONENT=cluster-context -REFERENCE_SHA[PRIVATE_IP]e5154c41cb[PRIVATE_IP]aca68090be[PRIVATE_IP]bf[PRIVATE_IP]df[PRIVATE_IP] -ERROR_REGISTER_SHA[PRIVATE_IP]ec0f527ed3afeed[PRIVATE_IP]ee[PRIVATE_IP]bbfb[PRIVATE_IP]af4ba7ba0 +MODE=read-only +COMPONENT=infra-dr-backupv2-pve-lxc-defaults-contract-rca +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=6c6be41d3c9f9a904843f64e8357c233aaa59c2a8254848b673b69689f86bda3 +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=86735de24a5e1db4f6e1ee22bb7d42d9d12246a095f421714d6cfac0bc1e9813 +SANITIZED_OUTPUT_SHA256=86735de24a5e1db4f6e1ee22bb7d42d9d12246a095f421714d6cfac0bc1e9813 OUTPUT_BEGIN -GENERATED_AT_UTC=[PRIVATE_IP]T10:17:01Z -Cluster information -------------------- -Name: homelab -Config Version: 3 -Transport: knet -Secure auth: on +COMMAND_ID=SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1 +MODE=READ_ONLY_PVE_LXC_DEFAULTS_CONTRACT_RCA +NO_BACKUP_EXECUTION=YES +NO_VZDUMP_EXECUTION=YES +NO_CLOUD_ACCESS=YES +NO_SYSTEMD_MUTATION=YES +NO_PRODUCTION_PROMOTION=YES +ANCHOR_BINDINGS=PASS +PRODUCTION_AND_CANDIDATE_IDENTITY=PASS +DEFAULTS_SUMMARY_CONTRACT={"calls":[{"call":"need(raw is None or (type(raw) is bytes and len(raw) <= 262144), 'DEFAULTS_BOUND')","line":2},{"call":"set()","line":7},{"call":"set()","line":7},{"call":"text.splitlines()","line":8},{"call":"sorted(seen)","line":19},{"call":"sorted(block)","line":19},{"call":"raw.decode('utf-8-sig')","line":5},{"call":"line.strip()","line":9},{"call":"re.fullmatch('([a-z][a-z0-9_-]*)\\\\s*:\\\\s*(.*)', line)","line":11},{"call":"m.groups()","line":13},{"call":"seen.add(key)","line":15},{"call":"t.sha(raw)","line":3},{"call":"line.startswith('#')","line":10},{"call":"block.add('GLOBAL_DEFAULT_PARSE')","line":12},{"call":"block.add('GLOBAL_DEFAULT_DUPLICATE')","line":14},{"call":"block.add('GLOBAL_DEFAULT_SCRIPT')","line":16},{"call":"block.add('GLOBAL_DEFAULT_EXCLUDE_PATH')","line":17},{"call":"type(raw)","line":2},{"call":"len(raw)","line":2},{"call":"block.add('GLOBAL_DEFAULT_UNREVIEWED')","line":18}],"need_calls":[{"code":"DEFAULTS_BOUND","line":2,"predicate":"raw is None or (type(raw) is bytes and len(raw) <= 262144)"}],"signature":"(raw)","source":"def defaults_summary(raw):\n need(raw is None or type(raw) is bytes and len(raw)<=262144,'DEFAULTS_BOUND')\n result={'present':raw is not None,'sha256':t.sha(raw) if raw is not None else None,'keys':[],'blockers':[]}\n if raw is None:return result\n try:text=raw.decode('utf-8-sig')\n except UnicodeError:result['blockers']=['GLOBAL_DEFAULT_PARSE'];return result\n seen=set();block=set()\n for line in text.splitlines():\n line=line.strip()\n if not line or line.startswith('#'):continue\n m=re.fullmatch(r'([a-z][a-z0-9_-]*)\\s*:\\s*(.*)',line)\n if not m:block.add('GLOBAL_DEFAULT_PARSE');continue\n key,value=m.groups()\n if key in seen:block.add('GLOBAL_DEFAULT_DUPLICATE')\n seen.add(key)\n if key=='script':block.add('GLOBAL_DEFAULT_SCRIPT')\n elif key=='exclude-path':block.add('GLOBAL_DEFAULT_EXCLUDE_PATH')\n elif key not in OVERRIDDEN:block.add('GLOBAL_DEFAULT_UNREVIEWED')\n result['keys']=sorted(seen);result['blockers']=sorted(block);return result\n","source_sha256":"c1a47c0c02d3cb0130446a10564e4387abd0d1506e7f78df699ae2c2aa59caf4"} +MAKE_PLAN_DEFAULTS_BOUNDARY={"defaults_calls":[{"call":"defaults_summary(defaults)","line":8}],"need_calls":[{"code":"NODE_NAME","line":2,"predicate":"np.valid_id(node)"},{"code":"SPACE_VALUE","line":3,"predicate":"type(staging_free) is int and 0 <= staging_free <= 2 ** 63 - 1"},{"code":"PLAN_TIME","line":4,"predicate":"type(now) is int and now >= 0"},{"code":"CONFIGS_SCHEMA","line":5,"predicate":"type(configs) is dict"},{"code":"DUPLICATE_STORAGE","line":7,"predicate":"len({x['storage'] for x in ss}) == len(ss)"},{"code":"GUEST_CONFIG_MISSING","line":11,"predicate":"g['vmid'] in configs"}],"signature":"(rows, configs, storage_rows, defaults, staging_free, now, node='pve01')"} +EMPTY_DEFAULTS_PROBE={"exception_class":"pve265.PVEError","message_sha256":"465ac0da8be967b9992b69ba3dae7af890204497ffa374a8a80b3fda356da8b0","ok":false,"safe_code":"DEFAULTS_BOUND"} +HISTORICAL_DEFAULTS_TEST_CONTRACT=[{"assignments":[{"line":16,"name":"cfg","value":{"keys":["Constant","Constant"],"kind":"Dict","value_types":["Dict","Dict"]}}],"calls":[{"args":[{"id":"rows","kind":"Name"},{"id":"cfg","kind":"Name"},{"expr":"[{'storage': 'local-lvm', 'type': 'lvmthin', 'active': 1, 'enabled': 1, 'avail': 200 * G, 'total': 1000 * G, 'used': 800 * G}]","kind":"List"},{"kind":"Constant","type":"bytes"},{"expr":"280 * G","kind":"BinOp"},{"id":"NOW","kind":"Name"}],"fn":"make_plan","keywords":{},"line":17,"owner":"plan"}],"file":"test_guest266.py","references":[{"line":17,"sha256":"363010a9369965f9b7b07b3a569450125a7d2fbf7d8e21803195bd089f09d875","tokens":["z","p.make_plan","rows","cfg","storage","local-lvm","type","lvmthin","active","enabled","avail","G","total","G","used","G","b","empty","n","G","NOW"]},{"line":105,"sha256":"dd512699c0f6636c3f52ffcfdd2bf1852dc59826476d4fcdd940c2b1d8b71c51","tokens":["def","test_changed_defaults_rejected","self"]},{"line":106,"sha256":"ecb7ad0654eef7da1c3d8ac28bdf5e27251b7caceb0f1f9c1265905e29859492","tokens":["before","plan","after","copy.deepcopy","before","after","global_defaults","sha256"]}],"sha256":"460b950924a475ce0a28dc759512e7dbe2323ae2cc42f7ef4c6181710a2a13da"},{"assignments":[{"line":8,"name":"CFG","value":{"keys":["rootfs","unprivileged"],"kind":"Dict","value_types":["Constant","Constant"]}}],"calls":[],"file":"test_producer282.py","references":[{"line":14,"sha256":"af80ccbc49c4cffbfa9604123e6032f494220a98a5f50e18d249b6c172894408","tokens":["def","test_default_mapping","self","self.assertEqual","f.validate_mapping","MAP"]}],"sha256":"a67d927cc428935791f9eecc3acf571d089f80761162f4589b7d684fba6b8af7"},{"assignments":[],"calls":[{"args":[{"expr":"rows or [row()]","kind":"BoolOp"},{"expr":"configs or {110: cfg()}","kind":"BoolOp"},{"expr":"storage if storage is not None else stores()","kind":"IfExp"},{"id":"defaults","kind":"Name"},{"id":"free","kind":"Name"},{"id":"now","kind":"Name"}],"fn":"make_plan","keywords":{},"line":18,"owner":"plan"}],"file":"test_pve265.py","references":[{"line":17,"sha256":"acebdcbef07bd858ee2b1635ecde6eb74572c77b1c94a1f8698dd23c6010ad32","tokens":["def","plan","rows","None","configs","None","storage","None","defaults","b","free","now"]},{"line":18,"sha256":"5834ac94c1255ab7840f6db0044f77f59c26141a78b8e72fff679d971272bd9d","tokens":["return","p.make_plan","rows","or","row","configs","or","cfg","storage","if","storage","is","not","None","else","stores","defaults","free","now"]},{"line":28,"sha256":"a3804228ebedc563e8f56b1b4c914996f9aa7d7f4404ff555bcb1c0092993841","tokens":["def","test_rootfs_default_is_documented_inclusion","self"]},{"line":29,"sha256":"229598de22393fc746ea3bad49570ce9fe3872e88071450c6df34717ef4378c8","tokens":["j","self.job","self.assertEqual","j","blockers","self.assertTrue","j","coverage_eligible","self.assertEqual","j","disks","backup_setting","included_default_rootfs"]},{"line":30,"sha256":"09caa8fae7646375eab8ce359421d16083f1d405dd07849c9b12e5924dcb3b8e","tokens":["def","test_qemu_default_inclusion","self","self.assertEqual","self.job","qemu","disks","backup_setting","included_default_qemu"]},{"line":32,"sha256":"76184450087397a7ad58fe773be6a675c4b6f596a0c9e469539f605714be5ec4","tokens":["def","test_mp_default_not_backed_up","self","self.assertIn","LXC_EXTRA_MOUNT_BACKUP_UNPROVEN","self.job","mp0","local-lvm","v","mp","data","size","G","blockers"]},{"line":58,"sha256":"8127d73baa2c7c468b9db455c5967e7de6c54b11cd6de8679a26e33e2d3fdba2","tokens":["q","plan","defaults","b","script","secret/hook","n","self.assertIn","GLOBAL_DEFAULT_SCRIPT","q","global_blockers","self.assertNotIn","secret","str","q"]},{"line":59,"sha256":"eb1732b095bce166987de781fe0339d75bb66f0522bcb75892d1556b795ace3a","tokens":["def","test_global_exclusions_block","self","self.assertIn","GLOBAL_DEFAULT_EXCLUDE_PATH","plan","defaults","b","exclude-path","data","n","global_blockers"]},{"line":60,"sha256":"fba5e6f4a6ef9aecb6c45b50c882808ec2666a72e39b736ad219b15ed6d71ad7","tokens":["def","test_global_overridden_defaults_are_explicit","self","self.assertEqual","plan","defaults","b","mode","stop","nremove","nstdexcludes","n","global_blockers"]},{"line":61,"sha256":"6dd4febfdaf90b1cbfeec5257fe5131fe6505c7b878826178767b08526cfb21b","tokens":["def","test_unknown_global_default_blocks","self","self.assertIn","GLOBAL_DEFAULT_UNREVIEWED","plan","defaults","b","future-option","yes","n","global_blockers"]},{"line":62,"sha256":"090de8ead15ab83a0950d9a291ed2f4cffb49b8e58302bd3d1780ef8b3b61e69","tokens":["def","test_malformed_default_blocks","self","self.assertIn","GLOBAL_DEFAULT_PARSE","plan","defaults","b","not","valid","n","global_blockers"]},{"line":63,"sha256":"713f384c15ec3c5cc63cf9b1fd96645bfcad3356fbbadb43bb69bfba42901421","tokens":["def","test_duplicate_default_blocks","self","self.assertIn","GLOBAL_DEFAULT_DUPLICATE","plan","defaults","b","mode","snapshot","nmode","stop","n","global_blockers"]}],"sha256":"16a9407d01bf73db687ef38684c59205fc2e6a9223cd9cee6ec6e8dde9d38707"},{"assignments":[{"line":8,"name":"CFG","value":{"keys":["rootfs","unprivileged"],"kind":"Dict","value_types":["Constant","Constant"]}}],"calls":[],"file":"test_pve270.py","references":[{"line":14,"sha256":"af80ccbc49c4cffbfa9604123e6032f494220a98a5f50e18d249b6c172894408","tokens":["def","test_default_mapping","self","self.assertEqual","f.validate_mapping","MAP"]}],"sha256":"9fccd20b490613fdd5b14b4105cf0d9fd744f204e1ed1d6893e54c9f69bf6fb4"},{"assignments":[{"line":18,"name":"configs","value":{"expr":"{v: {'rootfs': f'local-lvm:vm-{v}-disk-0,size=8G', 'unprivileged': 1} if v in (110, 112) else {'scsi0': f'local-lvm:vm-{v}-disk-0,size=8G'} for v in (110, 112, ","kind":"DictComp"}}],"calls":[{"args":[{"id":"rows","kind":"Name"},{"id":"configs","kind":"Name"},{"expr":"[{'storage': 'local-lvm', 'type': 'lvmthin', 'active': 1, 'enabled': 1, 'avail': 200 * G, 'total': 1000 * G, 'used': 800 * G}]","kind":"List"},{"kind":"Constant","type":"bytes"},{"expr":"280 * G","kind":"BinOp"},{"id":"now","kind":"Name"}],"fn":"make_plan","keywords":{},"line":19,"owner":"plan"}],"file":"test_pve282.py","references":[{"line":19,"sha256":"f5b434cfc373b04d2ea315c74a670b38536f507e371032015f94e6cf654ea890","tokens":["z","p.make_plan","rows","configs","storage","local-lvm","type","lvmthin","active","enabled","avail","G","total","G","used","G","b","empty","n","G","now"]},{"line":54,"sha256":"6fb3fce1a3a47228e6bc307c1a42633e1f46dd89ef693b40c0ace38f402972af","tokens":["def","test_global_defaults_changed","self","self.reject","lambda","a","a","global_defaults","update","sha256"]}],"sha256":"1056407aab76e17181b05e043cb42c086058545a8e0027689ab4e03eee6531c4"}] +DEFAULTS_RELATED_MODULE_INDEX=[{"defs":[{"args":["config","kind"],"line":40,"name":"config_summary"}],"file":"nodeplan263.py","sha256":"db5c16ee24d25aa1694530332d3190ab7cc5d4f8eb69067d025e27ad5c995060"},{"defs":[{"args":["raw"],"line":37,"name":"defaults_summary"},{"args":["config"],"line":57,"name":"normalized_config"}],"file":"pve265.py","sha256":"cd2f634414a8e38a3789015aeca5a9b47821f77d7d1fa61dcdbdc866172963be"},{"defs":[{"args":["path","limit","private"],"line":53,"name":"read_secure"}],"file":"transport261.py","sha256":"b9b92f957bf441cb5d1702f4881897328e6c0338f8c3f6d41d27d9a349b37688"},{"defs":[{"args":["text"],"line":53,"name":"inventory_from_config"}],"file":"v2core.py","sha256":"e285bf9a5678d07dcbb90261f9f93e7826ff524e04cfec780bf5a3c4b0dc29f2"}] +DEFAULTS_SOURCE_REFERENCES=[{"file":"pve265.py","line":37,"sha256":"b2f8b8ce53cbda7b5b42ba08668a7a8728dc7e1dc58f01de6081c2c3b6e3bdb1","tokens":["def","defaults_summary","raw"]},{"file":"pve265.py","line":73,"sha256":"b346c82eddab4c61e2db97d891e300ec1eb531f17574d86ca3c07fe1066187bd","tokens":["stores","x","storage","x","for","x","in","ss","global_summary","defaults_summary","defaults"]},{"file":"test_pve265.py","line":62,"sha256":"090de8ead15ab83a0950d9a291ed2f4cffb49b8e58302bd3d1780ef8b3b61e69","tokens":["def","test_malformed_default_blocks","self","self.assertIn","GLOBAL_DEFAULT_PARSE","plan","defaults","b","not","valid","n","global_blockers"]}] +VZDUMP_CONF_STRUCTURE={"bytes":478,"data_lines":0,"exists":true,"gid":0,"keys":[],"mode":"0644","sha256":"cf34c8e3812547954bb1d08b50212b6e148ee9cf2b629e895a843ed49d623b38","uid":0,"unparsed_line_numbers":[]} +PRODUCTION_POST_RCA_UNCHANGED=PASS +STATUS=OK +PHASE=COMPLETE +REASON=NONE +NEXT_GATE=PVE_LXC_DEFAULTS_SOURCE_BOUND_FRESH_PLAN_DRY_RUN +CHANGES_MADE=false +MUTATION_OUTCOME=NO_MUTATION +PRODUCTION_PROMOTION=NO +BACKUP_EXECUTIONS=0 +VZDUMP_EXECUTIONS=0 +CLOUD_WRITES=0 +CLOUD_DELETIONS=0 +SYSTEMD_MUTATIONS=0 +SCHEDULER_CUTOVER=NO +LEGACY_BACKUP_DISABLES=0 +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-DEFAULTS-CONTRACT-RCA-416R1","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} -Quorum information ------------------- -Date: Tue Sep [PRIVATE_IP] 2026 -Quorum provider: corosync_votequorum -Nodes: 3 -Node ID: [PRIVATE_IP] -Ring ID: 1.130 -Quorate: Yes - -Votequorum information ----------------------- -Expected votes: 3 -Highest expected: 3 -Total votes: 3 -Quorum: 2 -Flags: Quorate - -Membership information ----------------------- - Nodeid Votes Name -[PRIVATE_IP] [PRIVATE_IP].11 (local) -[PRIVATE_IP] [PRIVATE_IP].13 -[PRIVATE_IP] [PRIVATE_IP].12 - -Membership information ----------------------- - Nodeid Votes Name - 1 1 pve01 (local) - 2 1 pve03 - 3 1 pve02 -[{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/110","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":[PRIVATE_IP],"vmid":110},{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/111","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":[PRIVATE_IP],"vmid":111},{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/112","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":[PRIVATE_IP],"vmid":112},{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/113","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":[PRIVATE_IP],"vmid":113},{"cpu":[PRIVATE_IP]06347,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"edge-vm","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":[PRIVATE_IP],"vmid":130},{"cpu":[PRIVATE_IP]46294,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/150","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"snikket","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":[PRIVATE_IP],"vmid":150},{"cpu":[PRIVATE_IP]247248,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/160","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"forum-prod","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":[PRIVATE_IP],"vmid":160},{"cpu":[PRIVATE_IP]4299,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/170","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"core-apps","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":[PRIVATE_IP],"vmid":170},{"cpu":[PRIVATE_IP]89716,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/171","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"monitoring","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":[PRIVATE_IP],"vmid":171},{"cpu":[PRIVATE_IP]156775,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/190","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"homelab-ops-worker","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":[PRIVATE_IP],"vmid":190},{"cpu":[PRIVATE_IP]686844,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/210","maxcpu":2,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"newfi-prod","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":731957,"vmid":210},{"cpu":[PRIVATE_IP]313551,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/211","maxcpu":2,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"newfi-staging","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":927887,"vmid":211},{"cpu":0,"disk":0,"diskread":0,"diskwrite":0,"id":"qemu/9130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":0,"memhost":0,"name":"edge-cold-standby","netin":0,"netout":0,"node":"pve02","status":"stopped","template":0,"type":"qemu","uptime":0,"vmid":9130},{"cgroup-mode":2,"cpu":[PRIVATE_IP]60554,"disk":[PRIVATE_IP],"id":"node/pve02","level":"","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve02","status":"online","type":"node","uptime":[PRIVATE_IP]},{"cgroup-mode":2,"cpu":[PRIVATE_IP]58974,"disk":[PRIVATE_IP],"id":"node/pve01","level":"","maxcpu":24,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve01","status":"online","type":"node","uptime":[PRIVATE_IP]},{"cgroup-mode":2,"cpu":[PRIVATE_IP]42561,"disk":[PRIVATE_IP],"id":"node/pve03","level":"","maxcpu":8,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve03","status":"online","type":"node","uptime":[PRIVATE_IP]},{"content":"iso,backup,vztmpl,import","disk":[PRIVATE_IP],"id":"storage/pve02/local","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"iso,backup,vztmpl,import","disk":[PRIVATE_IP],"id":"storage/pve01/local","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"iso,backup,vztmpl,import","disk":[PRIVATE_IP],"id":"storage/pve03/local","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"images,rootdir","disk":[PRIVATE_IP],"id":"storage/pve02/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"images,rootdir","disk":[PRIVATE_IP],"id":"storage/pve01/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"images,rootdir","disk":[PRIVATE_IP],"id":"storage/pve03/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"id":"network/pve02/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve02","status":"ok","type":"network"},{"id":"network/pve01/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve01","status":"ok","type":"network"},{"id":"network/pve03/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve03","status":"ok","type":"network"}] -Name Type Status Total (KiB) Used (KiB) Available (KiB) % -local dir active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 21.03% -local-lvm lvmthin active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 11.06% - UNIT LOAD ACTIVE SUB DESCRIPTION -● homelab-backup-retention-gc.service loaded failed failed Homelab owner-aware cloud retention GC - -Legend: LOAD → Reflects whether the unit definition was properly loaded. - ACTIVE → The high-level unit activation state, i.e. generalization of SUB. - SUB → The low-level unit activation state, values depend on unit type. - -1 loaded units listed. -NEXT LEFT LAST PASSED UNIT ACTIVATES -Tue [PRIVATE_IP] 13:17:05 MSK 2s Tue [PRIVATE_IP] 13:16:01 MSK 1min 1s ago homelab-router-watchdog.timer homelab-router-watchdog.service -Tue [PRIVATE_IP] 13:18:21 MSK 1min 18s Tue [PRIVATE_IP] 13:13:21 MSK 3min 41s ago homelab-smartctl-textfile.timer homelab-smartctl-textfile.service -Tue [PRIVATE_IP] 13:18:42 MSK 1min 40s Tue [PRIVATE_IP] 13:13:16 MSK 3min 46s ago homelab-health-metrics.timer homelab-health-metrics.service -Tue [PRIVATE_IP] 13:18:56 MSK 1min 54s Tue [PRIVATE_IP] 13:13:56 MSK 3min 5s ago netbird-peers-health.timer netbird-peers-health.service -Tue [PRIVATE_IP] 13:22:56 MSK 5min Tue [PRIVATE_IP] 13:07:56 MSK 9min ago prometheus-node-exporter-apt.timer prometheus-node-exporter-apt.service -Tue [PRIVATE_IP] 13:24:56 MSK 7min Tue [PRIVATE_IP] 13:09:56 MSK 7min ago homelab-disk-space-health.timer homelab-disk-space-health.service -Tue [PRIVATE_IP] 13:24:56 MSK 7min Tue [PRIVATE_IP] 13:09:56 MSK 7min ago prometheus-node-exporter-nvme.timer prometheus-node-exporter-nvme.service -Tue [PRIVATE_IP] 13:26:49 MSK 9min Tue [PRIVATE_IP] 12:53:16 MSK 23min ago homelab-reference-refresh.timer homelab-reference-refresh.service -Tue [PRIVATE_IP] 13:26:56 MSK 9min Tue [PRIVATE_IP] 13:16:56 MSK 5s ago skladchik-reports-monitor-supervisor.timer skladchik-reports-monitor-supervisor.service -Tue [PRIVATE_IP] 13:29:56 MSK 12min Tue [PRIVATE_IP] 13:14:56 MSK 2min 5s ago homelab-pve03-staging-capacity-health.timer homelab-pve03-staging-capacity-health.service -Tue [PRIVATE_IP] 13:30:00 MSK 12min Tue [PRIVATE_IP] 11:30:10 MSK 1h 46min ago homelab-app-cloud-quorum-queue.timer homelab-app-cloud-quorum-queue.service -Tue [PRIVATE_IP] 13:30:00 MSK 12min Tue [PRIVATE_IP] 13:15:10 MSK 1min 51s ago homelab-incident-journal.timer homelab-incident-journal.service -Tue [PRIVATE_IP] 13:30:06 MSK 13min Tue [PRIVATE_IP] 13:04:52 MSK 12min ago homelab-mkdocs-auto-refresh.timer homelab-mkdocs-auto-refresh.service -Tue [PRIVATE_IP] 13:30:50 MSK 13min Tue [PRIVATE_IP] 13:15:56 MSK 1min 5s ago homelab-duty-admin-v2.timer homelab-duty-admin-v2.service -Tue [PRIVATE_IP] 13:30:58 MSK 13min Tue [PRIVATE_IP] 13:15:10 MSK 1min 51s ago homelab-external-probe-vps-health.timer homelab-external-probe-vps-health.service -Tue [PRIVATE_IP] 13:30:59 MSK 13min Tue [PRIVATE_IP] 13:15:56 MSK 1min 5s ago homelab-forum-snuffleupagus-health.timer homelab-forum-snuffleupagus-health.service -Tue [PRIVATE_IP] 13:36:04 MSK 19min Tue [PRIVATE_IP] 13:05:46 MSK 11min ago homelab-backup-audit.timer homelab-backup-audit.service -Tue [PRIVATE_IP] 13:53:28 MSK 36min Tue [PRIVATE_IP] 07:44:32 MSK 5h 32min ago homelab-evidence-root.timer homelab-evidence-root.service -Tue [PRIVATE_IP] 14:00:10 MSK 43min Tue [PRIVATE_IP] 13:01:56 MSK 15min ago homelab-control-backup.timer homelab-control-backup.service -Tue [PRIVATE_IP] 14:33:51 MSK 1h 16min Tue [PRIVATE_IP] 08:27:32 MSK 4h 49min ago homelab-mailru-trash-gc.timer homelab-mailru-trash-gc.service -Tue [PRIVATE_IP] 16:32:47 MSK 3h 15min Tue [PRIVATE_IP] 12:34:51 MSK 42min ago homelab-vm-cloud-quorum-queue.timer homelab-vm-cloud-quorum-queue.service -Tue [PRIVATE_IP] 16:35:56 MSK 3h 18min Tue [PRIVATE_IP] 10:35:56 MSK 2h 41min ago homelab-vps-identity-audit.timer homelab-vps-identity-audit.service -Tue [PRIVATE_IP] 16:47:56 MSK 3h 30min Mon [PRIVATE_IP] 16:47:56 MSK 20h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service -Wed [PRIVATE_IP] 00:00:00 MSK 10h Tue [PRIVATE_IP] 00:00:00 MSK 13h ago dpkg-db-backup.timer dpkg-db-backup.service -Wed [PRIVATE_IP] 00:00:37 MSK 10h Tue [PRIVATE_IP] 00:03:58 MSK 13h ago homelab-storage-capacity.timer homelab-storage-capacity.service -Wed [PRIVATE_IP] 00:08:49 MSK 10h Tue [PRIVATE_IP] 00:13:32 MSK 13h ago homelab-evidence-catalog.timer homelab-evidence-catalog.service -Wed [PRIVATE_IP] 00:14:32 MSK 10h Tue [PRIVATE_IP] 00:05:16 MSK 13h ago homelab-docker-health.timer homelab-docker-health.service -Wed [PRIVATE_IP] 00:17:43 MSK 11h Tue [PRIVATE_IP] 00:14:42 MSK 13h ago homelab-quality-gate.timer homelab-quality-gate.service -Wed [PRIVATE_IP] 00:43:14 MSK 11h Tue [PRIVATE_IP] 00:27:55 MSK 12h ago logrotate.timer logrotate.service -Wed [PRIVATE_IP] 01:15:56 MSK 11h Tue [PRIVATE_IP] 11:20:42 MSK 1h 56min ago apt-daily.timer apt-daily.service -Wed [PRIVATE_IP] 02:07:23 MSK 12h Tue [PRIVATE_IP] 01:27:32 MSK 11h ago pve-daily-update.timer pve-daily-update.service -Wed [PRIVATE_IP] 03:25:26 MSK 14h Tue [PRIVATE_IP] 03:34:58 MSK 9h ago homelab-backup-retention-gc.timer homelab-backup-retention-gc.service -Wed [PRIVATE_IP] 06:11:52 MSK 16h Tue [PRIVATE_IP] 06:34:40 MSK 6h ago apt-daily-upgrade.timer apt-daily-upgrade.service -Wed [PRIVATE_IP] 07:16:18 MSK 17h Tue [PRIVATE_IP] 07:16:16 MSK 6h ago homelab-drift-check.timer homelab-drift-check.service -Wed [PRIVATE_IP] 07:33:00 MSK 18h Tue [PRIVATE_IP] 07:24:10 MSK 5h 52min ago homelab-service-registry-check.timer homelab-service-registry-check.service -Wed [PRIVATE_IP] 07:40:23 MSK 18h Tue [PRIVATE_IP] 07:36:32 MSK 5h 40min ago homelab-alerting-health.timer homelab-alerting-health.service -Wed [PRIVATE_IP] 07:49:14 MSK 18h Tue [PRIVATE_IP] 07:57:56 MSK 5h 19min ago homelab-dependency-map-check.timer homelab-dependency-map-check.service -Wed [PRIVATE_IP] 07:53:55 MSK 18h Tue [PRIVATE_IP] 07:55:32 MSK 5h 21min ago homelab-desired-state-sync.timer homelab-desired-state-sync.service -Wed [PRIVATE_IP] 07:55:30 MSK 18h Tue [PRIVATE_IP] 08:10:32 MSK 5h 6min ago homelab-duty-admin-report.timer homelab-duty-admin-report.service -Wed [PRIVATE_IP] 07:57:32 MSK 18h Tue [PRIVATE_IP] 07:59:16 MSK 5h 17min ago homelab-runbook-generate.timer homelab-runbook-generate.service -Wed [PRIVATE_IP] 08:05:53 MSK 18h Tue [PRIVATE_IP] 08:14:16 MSK 5h 2min ago homelab-overall-health.timer homelab-overall-health.service -Wed [PRIVATE_IP] 08:10:55 MSK 18h Tue [PRIVATE_IP] 08:16:32 MSK 5h 0min ago homelab-kuma-monitor-policy.timer homelab-kuma-monitor-policy.service -Wed [PRIVATE_IP] 08:16:13 MSK 18h Tue [PRIVATE_IP] 08:21:56 MSK 4h 55min ago homelab-final-readiness-gate.timer homelab-final-readiness-gate.service -Wed [PRIVATE_IP] 08:30:52 MSK 19h Tue [PRIVATE_IP] 08:31:53 MSK 4h 45min ago homelab-capacity-risk.timer homelab-capacity-risk.service -Wed [PRIVATE_IP] 08:32:24 MSK 19h Tue [PRIVATE_IP] 08:49:40 MSK 4h 27min ago homelab-secret-exposure-guard.timer homelab-secret-exposure-guard.service -Wed [PRIVATE_IP] 08:37:59 MSK 19h Tue [PRIVATE_IP] 07:08:51 MSK 6h ago man-db.timer man-db.service -Wed [PRIVATE_IP] 08:44:27 MSK 19h Tue [PRIVATE_IP] 08:45:56 MSK 4h 31min ago homelab-cluster-passport.timer homelab-cluster-passport.service -Wed [PRIVATE_IP] 08:49:46 MSK 19h Tue [PRIVATE_IP] 08:49:40 MSK 4h 27min ago homelab-golden-state-index.timer homelab-golden-state-index.service -Wed [PRIVATE_IP] 10:15:00 MSK 20h Tue [PRIVATE_IP] 10:15:02 MSK 3h 2min ago skladchik-reports-monitor-monthly-selftest-watch.timer skladchik-reports-monitor-monthly-selftest-watch.service -Sun [PRIVATE_IP] 03:10:13 MSK 4 days Sun [PRIVATE_IP] 03:10:22 MSK 2 days ago e2scrub_all.timer e2scrub_all.service -Sun [PRIVATE_IP] 03:10:15 MSK 4 days Sun [PRIVATE_IP] 03:10:39 MSK 2 days ago xfs_scrub_all.timer xfs_scrub_all.service -Sun [PRIVATE_IP] 06:41:17 MSK 4 days Sun [PRIVATE_IP] 07:35:56 MSK 2 days ago homelab-rotating-boot-drill.timer homelab-rotating-boot-drill.service -Mon [PRIVATE_IP] 00:00:47 MSK 5 days Mon [PRIVATE_IP] 00:10:39 MSK 1 day 13h ago homelab-secret-sanity.timer homelab-secret-sanity.service -Mon [PRIVATE_IP] 00:46:24 MSK 5 days Mon [PRIVATE_IP] 00:30:56 MSK 1 day 12h ago fstrim.timer fstrim.service -- - Tue [PRIVATE_IP] 13:17:02 MSK 12ms ago homelab-private-vpn-hosts-health.timer homelab-private-vpn-hosts-health.service -- - - - prometheus-node-exporter-ipmitool-sensor.timer prometheus-node-exporter-ipmitool-sensor.service -- - - - prometheus-node-exporter-mellanox-hca-temp.timer prometheus-node-exporter-mellanox-hca-temp.service -- - - - prometheus-node-exporter-smartmon.timer prometheus-node-exporter-smartmon.service - -58 timers listed. -RUNTIME_MANIFEST_ID=df[PRIVATE_IP]ac9b5abd[PRIVATE_IP]b[PRIVATE_IP]d89496fb2bde[PRIVATE_IP] -EXPERIMENT_ID=5462ee[PRIVATE_IP]ebe[PRIVATE_IP]feb2ad[PRIVATE_IP]1ad87bbac0b8108 -COLLECTION_START_AT=[PRIVATE_IP]T[PRIVATE_IP]:00 -FIRST_COMPLETE_D1_CLOSE=[PRIVATE_IP]T[PRIVATE_IP]:00 -PRODUCTION_LAUNCH_ALLOWED=False -EXECUTION_AUTHORITY=False -RISK_AUTHORITY=False -STAGE_A_HEALTH=AWAITING_PRIMARY_FINALITY -FORENSIC_PREVIOUS_EPOCH_PRESERVED=YES - -## NEWFI_TASK6_AUTH_CHECKPOINT_V[PRIVATE_IP] -- Scope: historical accepted AUTH test, not a current SMTP connection test. -- Newfi approved SMTP account/sender: aleisaev@yandex.ru. -- Endpoint used by accepted test: smtp.yandex.ru:465 with certificate verification; single PLAIN initial response accepted with code 235. -- Evidence: incident ledger ### NEWFI_TASK6_YANDEX_AUTH_V2_OBSERVATION and ### NEWFI_TASK6_AUTH_PROOF_CLOSE_V1. -- No password file written, no application configuration changed, no mail sent by the accepted AUTH test. -- Persistent transport installation and application delivery are not proven by this checkpoint. Task6 is not complete. -- AUTH challenge and missing-file incidents closed; launch/session incident remains OPEN with original cause unproven. -- This update does not change VM211, VM160, routing, board state or Git. -- Other incidents and infrastructure health were not assessed. - - -## NEWFI_PRIVATE_STRUCTURE92_WRONG_MARKER_SCOPE_[PRIVATE_IP] CLOSURE -- Status: CLOSED -- RCA: NEWFI92 inspected the pve01 NEWFI90 attempt marker, which had not been finalized because the outer shell exited immediately after the guest returned RC3 following its successful rollback. The guest marker contained the true final rollback state. -- Correction: NEWFI93 required both the guest FINISHED/ROLLED_BACK record and a fresh exact demo-state readback before reconciling the outer NEWFI90 marker. NEWFI92 itself never reserved an attempt or mutated state. - - -## NEWFI_PRIVATE_NEWFI95_NESTED_TRIPLE_QUOTE_PARSE_[PRIVATE_IP] -- Status: OPEN -- Command: NEWFI95 -- Symptom: after the content-structure precheck passed, the pve03 Python wrapper failed to parse at the PHP line beginning with $root. No Portal discovery or application mutation was reached. -- RCA: an outer raw triple-single-quoted guest Python payload contained an inner raw triple-single-quoted PHP payload. The inner delimiter terminated the outer Python string, causing PHP source to be parsed as Python. -- Safety: NEWFI95 was read-only, created no attempt marker, and did not reach the intended nested guest execution. Do not replay NEWFI95. - - -## NEWFI_PRIVATE_NEWFI95_NESTED_TRIPLE_QUOTE_PARSE_[PRIVATE_IP] CLOSURE -- Status: CLOSED -- RCA: an inner triple-single-quoted PHP literal terminated the outer triple-single-quoted Python guest payload in NEWFI95. The wrapper therefore failed parsing before the intended Portal discovery executed. -- Correction: NEWFI96 removed the nested Python payload layer entirely and passed one Python program directly to VM211 through qm guest exec stdin. The read-only Portal contract completed with QGA exit 0 and the implementation worktree remained unchanged. OUTPUT_END CHAT_OUTPUT_END