diff --git a/runtime/history/SIGNALBOT-260921-RECONCILIATION-BOUNDED-REPAIR-052REPAIR2.json b/runtime/history/SIGNALBOT-260921-RECONCILIATION-BOUNDED-REPAIR-052REPAIR2.json new file mode 100644 index 00000000..7eacb78d --- /dev/null +++ b/runtime/history/SIGNALBOT-260921-RECONCILIATION-BOUNDED-REPAIR-052REPAIR2.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SIGNALBOT-260921-RECONCILIATION-BOUNDED-REPAIR-052REPAIR2", + "status": "FAIL", + "rc": 3, + "host": "pve01", + "mode": "change", + "component": "signalbot-reconciliation-bounded-repair", + "started_at_utc": "2026-09-21T01:41:17Z", + "finished_at_utc": "2026-09-21T01:41:19Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "9efa228a677179c3c78b12a5c6b7a1497decb24cb768b7b2cdb6c3a524294d46", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": true, + "result_contract_valid": true, + "result_contract_status": "FAIL", + "result_contract_error": null, + "command_rc": 3, + "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": "99491d07491b84bf2e3401896828b8fae4d1d8a9c71e7a78a8265263dd133362", + "sanitized_output_sha256": "99491d07491b84bf2e3401896828b8fae4d1d8a9c71e7a78a8265263dd133362", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "SIGNALBOT052REPAIR1_QGA_OUTER_RC=0\nSIGNALBOT052REPAIR1_QGA_GUEST_EXITCODE=3\nSIGNALBOT052REPAIR1_RESULT={\"changes_made\":false,\"error\":\"RuntimeError:market_key_not_btcusd\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"FAIL_REPAIR_EXCEPTION\"}\nTASK_RESULT=FAIL_REPAIR_EXCEPTION\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SIGNALBOT-260921-RECONCILIATION-BOUNDED-REPAIR-052REPAIR2\",\"status\":\"FAIL\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n" +} diff --git a/runtime/history/SIGNALBOT-260921-RECONCILIATION-BOUNDED-REPAIR-052REPAIR2.txt b/runtime/history/SIGNALBOT-260921-RECONCILIATION-BOUNDED-REPAIR-052REPAIR2.txt new file mode 100644 index 00000000..6f8651f2 --- /dev/null +++ b/runtime/history/SIGNALBOT-260921-RECONCILIATION-BOUNDED-REPAIR-052REPAIR2.txt @@ -0,0 +1,37 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=SIGNALBOT-260921-RECONCILIATION-BOUNDED-REPAIR-052REPAIR2 +STATUS=FAIL +RC=3 +HOST=pve01 +MODE=change +COMPONENT=signalbot-reconciliation-bounded-repair +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=9efa228a677179c3c78b12a5c6b7a1497decb24cb768b7b2cdb6c3a524294d46 +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=true +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=FAIL +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=3 +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=99491d07491b84bf2e3401896828b8fae4d1d8a9c71e7a78a8265263dd133362 +SANITIZED_OUTPUT_SHA256=99491d07491b84bf2e3401896828b8fae4d1d8a9c71e7a78a8265263dd133362 +OUTPUT_BEGIN +SIGNALBOT052REPAIR1_QGA_OUTER_RC=0 +SIGNALBOT052REPAIR1_QGA_GUEST_EXITCODE=3 +SIGNALBOT052REPAIR1_RESULT={"changes_made":false,"error":"RuntimeError:market_key_not_btcusd","rollback_restored":null,"rollback_started":false,"status":"FAIL_REPAIR_EXCEPTION"} +TASK_RESULT=FAIL_REPAIR_EXCEPTION +HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SIGNALBOT-260921-RECONCILIATION-BOUNDED-REPAIR-052REPAIR2","status":"FAIL","changes_made":false,"rollback_started":false,"rollback_restored":null} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 026ec7c8..7eacb78d 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,27 +1,27 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "SUPPORT-260921-HOMELAB-BACKUP-GFS-PARTIAL-RCA-READONLY-1013R1", - "status": "OK", - "rc": 0, + "command_id": "SIGNALBOT-260921-RECONCILIATION-BOUNDED-REPAIR-052REPAIR2", + "status": "FAIL", + "rc": 3, "host": "pve01", - "mode": "read-only", - "component": "homelab-backup-gfs-partial-rca", - "started_at_utc": "2026-09-21T01:39:51Z", - "finished_at_utc": "2026-09-21T01:39:51Z", + "mode": "change", + "component": "signalbot-reconciliation-bounded-repair", + "started_at_utc": "2026-09-21T01:41:17Z", + "finished_at_utc": "2026-09-21T01:41:19Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "35b236613d6860b2e4136d3e1e3107102f08d5803afd08f853873173625af3d5", + "command_sha256": "9efa228a677179c3c78b12a5c6b7a1497decb24cb768b7b2cdb6c3a524294d46", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, - "change_declared": false, + "change_declared": true, "result_contract_valid": true, - "result_contract_status": null, + "result_contract_status": "FAIL", "result_contract_error": null, - "command_rc": 0, + "command_rc": 3, "changes_made": false, "rollback_started": false, "rollback_restored": null, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "e7f29e20bf01daf4023cb87cd8aa68b8c9ab3150fb95414463311a5d198f6d2e", - "sanitized_output_sha256": "e7f29e20bf01daf4023cb87cd8aa68b8c9ab3150fb95414463311a5d198f6d2e", + "raw_evidence_sha256": "99491d07491b84bf2e3401896828b8fae4d1d8a9c71e7a78a8265263dd133362", + "sanitized_output_sha256": "99491d07491b84bf2e3401896828b8fae4d1d8a9c71e7a78a8265263dd133362", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "WORKERS2_BACKUP_GFS_PARTIAL_RCA_BEGIN=1\nCOMMAND_ID=SUPPORT-260921-HOMELAB-BACKUP-GFS-PARTIAL-RCA-READONLY-1013R1\nMODE=read-only\nCOMPONENT=homelab-backup-gfs-partial-rca\nHOST=pve01\nUID=0\nMUTATION_BOUNDARY=READ_ONLY_NO_FETCH_NO_RESET_NO_CHECKOUT_NO_WRITE_NO_SERVICE_ACTION_NO_BACKUP_NO_RESTORE_NO_RETENTION_NO_DELETE_NO_MAIL\nWORKTREE_BRANCH=cr-2026-1005-backup-v2-health-alerting-remediation\nWORKTREE_HEAD=326622a4864fa9b5f43b69981733236bb42c4d7b\nWORKTREE_STATUS_LINES=[\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/entry504.py\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/fresh_lxc_helper.py\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/lxc_adapter.py\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/producer_exec_helper.py\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/qemu_adapter.py\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/scheduler_adapter.py\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/gfs-retention.json\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-alertmanager-backup-run\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit.service\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit.timer\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-gfs-policy\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc.service\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc.timer\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-target-registry\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2.service\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2.timer\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/targets.json\",\"?? tasks/backup-v2-health-alerting-remediation-v1/assets/candidate/gfs-retention.json\"]\nCOMMITS_SINCE_BASE=0\nCACHED_DIFF=[]\nCHANGE_FILES=[]\nTASK_FILES=[{\"bytes\":10566,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/entry504.py\",\"sha256\":\"ca6876fa9c3b1465b045344a8ad46962de16972c7dadc4ac6257c7d225047793\"},{\"bytes\":2320,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/fresh_lxc_helper.py\",\"sha256\":\"dbb3e6dbb71b10797df736431d9501a752a0f8c439163c9a0bddb7f76747f011\"},{\"bytes\":13825,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/lxc_adapter.py\",\"sha256\":\"3fa7d194010d76f7c8bc95035ae8876262e9337903e310f45f45df88c266dc8d\"},{\"bytes\":3449,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/producer_exec_helper.py\",\"sha256\":\"b3b97099bcd7126670f866e81faae6a42a96d869d9989e6a67f6ea6c871c90b3\"},{\"bytes\":4627,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/qemu_adapter.py\",\"sha256\":\"1906db42bd34bbe85eb46fd9797b3572d46e0a41c29d1c29be5f9df5e448f15b\"},{\"bytes\":4097,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/scheduler_adapter.py\",\"sha256\":\"a6f67159a64067773323f028126e3109e15cf17a8142cea5e6129970f1d4da96\"},{\"bytes\":449,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/gfs-retention.json\",\"sha256\":\"ea6526bec7d7591bef876799cecddff4849631a936edc9f593b47211fbad715c\"},{\"bytes\":1806,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-alertmanager-backup-run\",\"sha256\":\"6deef30b4708a7e5b2ac0f0d98bb6b37b22d858afde994483b67baa18dffdc2a\"},{\"bytes\":39160,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit\",\"sha256\":\"1474c9ce58bbc1b3ae7437261d1bdb923232926fb2943c7c830253f8b284724c\"},{\"bytes\":285,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit.service\",\"sha256\":\"7b64362ef0d0d7e59f5305afd642386082a275bba359c3c9b3def97dd6c2c4aa\"},{\"bytes\":221,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit.timer\",\"sha256\":\"987695f83ee993bd4d716b8365308211110ac4c684f0bd9b17dfdb1e523e466a\"},{\"bytes\":3455,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-gfs-policy\",\"sha256\":\"6b7ec1ab3ee1c540a9113b5620c3b4b5a50de6536f3a069d31b2e1243f23bafa\"},{\"bytes\":32975,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc\",\"sha256\":\"8adb6c10f5911f39c53775b89eac3cd1823f1ed34b4caccade5279c213e998a3\"},{\"bytes\":327,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc.service\",\"sha256\":\"0c49e10bdb225eeca0af5fca80aaf109addec2b18a6b892c0fe17c28b656ad7c\"},{\"bytes\":237,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc.timer\",\"sha256\":\"a0e763670745a5ef7c04b54da23114a013f47075cf36cceef0218bae9b82ea2f\"},{\"bytes\":4406,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-target-registry\",\"sha256\":\"c681c44be7557d192d7b453b67e31164237874596168f1d4c78e1e926e2e9cb4\"},{\"bytes\":1656,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2\",\"sha256\":\"5077444065c732451cb84898680f62361b21a24ef9eb4f191253e82ead524ea2\"},{\"bytes\":309,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2.service\",\"sha256\":\"1ef3e6bc660767a1f29a6a0bfa8d1b7a2419370b2250764ca181c34c93188565\"},{\"bytes\":192,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2.timer\",\"sha256\":\"5469057602452b303a01ccb8057085c1b0e447973e5ed198cebf7dd5daf58e9d\"},{\"bytes\":4758,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/targets.json\",\"sha256\":\"6ecf034ca03b52a1e6beceeae81d86a623885462c095d50b133aea4048a4626e\"},{\"bytes\":436,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/candidate/gfs-retention.json\",\"sha256\":\"2c7674045dd5c68cc48d348d616494dbbe145df460a8e85d97a2c5c153ec792d\"}]\nCANDIDATE_FILES=[{\"bytes\":436,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/candidate/gfs-retention.json\",\"sha256\":\"2c7674045dd5c68cc48d348d616494dbbe145df460a8e85d97a2c5c153ec792d\"}]\nBASELINE_RELEASE_FILES=[{\"bytes\":10566,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/entry504.py\",\"sha256\":\"ca6876fa9c3b1465b045344a8ad46962de16972c7dadc4ac6257c7d225047793\"},{\"bytes\":2320,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/fresh_lxc_helper.py\",\"sha256\":\"dbb3e6dbb71b10797df736431d9501a752a0f8c439163c9a0bddb7f76747f011\"},{\"bytes\":13825,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/lxc_adapter.py\",\"sha256\":\"3fa7d194010d76f7c8bc95035ae8876262e9337903e310f45f45df88c266dc8d\"},{\"bytes\":3449,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/producer_exec_helper.py\",\"sha256\":\"b3b97099bcd7126670f866e81faae6a42a96d869d9989e6a67f6ea6c871c90b3\"},{\"bytes\":4627,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/qemu_adapter.py\",\"sha256\":\"1906db42bd34bbe85eb46fd9797b3572d46e0a41c29d1c29be5f9df5e448f15b\"},{\"bytes\":4097,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/scheduler_adapter.py\",\"sha256\":\"a6f67159a64067773323f028126e3109e15cf17a8142cea5e6129970f1d4da96\"}]\nLIVE_GFS_META={\"bytes\":449,\"exists\":true,\"sha256\":\"ea6526bec7d7591bef876799cecddff4849631a936edc9f593b47211fbad715c\"}\nLIVE_TARGETS_META={\"bytes\":4758,\"exists\":true,\"sha256\":\"6ecf034ca03b52a1e6beceeae81d86a623885462c095d50b133aea4048a4626e\"}\nGFS_HELPER_META={\"bytes\":3455,\"exists\":true,\"sha256\":\"6b7ec1ab3ee1c540a9113b5620c3b4b5a50de6536f3a069d31b2e1243f23bafa\"}\nGFS_CRITICAL_VM_LOGICALS=[\"vm110\",\"vm111\",\"vm112\",\"vm113\",\"vm130\",\"vm150\",\"vm160\",\"vm170\",\"vm200\"]\nACTIVE_VM_LOGICALS=[\"vm110\",\"vm111\",\"vm112\",\"vm113\",\"vm130\",\"vm150\",\"vm160\",\"vm170\",\"vm171\",\"vm190\",\"vm9130\"]\nGFS_CRITICAL_ACTIVE_INTERSECTION=[\"vm110\",\"vm111\",\"vm112\",\"vm113\",\"vm130\",\"vm150\",\"vm160\",\"vm170\"]\nGFS_CRITICAL_NOT_ACTIVE=[\"vm200\"]\nGFS_CRITICAL_RECORDS={\"vm110\":[{\"id\":\"110\",\"kind\":\"VM\",\"lifecycle\":\"ACTIVE\",\"logical_id\":\"vm110\",\"owner\":\"pve01\"}],\"vm111\":[{\"id\":\"111\",\"kind\":\"VM\",\"lifecycle\":\"ACTIVE\",\"logical_id\":\"vm111\",\"owner\":\"pve02\"}],\"vm112\":[{\"id\":\"112\",\"kind\":\"VM\",\"lifecycle\":\"ACTIVE\",\"logical_id\":\"vm112\",\"owner\":\"pve01\"}],\"vm113\":[{\"id\":\"113\",\"kind\":\"VM\",\"lifecycle\":\"ACTIVE\",\"logical_id\":\"vm113\",\"owner\":\"pve02\"}],\"vm130\":[{\"id\":\"130\",\"kind\":\"VM\",\"lifecycle\":\"ACTIVE\",\"logical_id\":\"vm130\",\"owner\":\"pve03\"}],\"vm150\":[{\"id\":\"150\",\"kind\":\"VM\",\"lifecycle\":\"ACTIVE\",\"logical_id\":\"vm150\",\"owner\":\"pve01\"}],\"vm160\":[{\"id\":\"160\",\"kind\":\"VM\",\"lifecycle\":\"ACTIVE\",\"logical_id\":\"vm160\",\"owner\":\"pve02\"}],\"vm170\":[{\"id\":\"170\",\"kind\":\"VM\",\"lifecycle\":\"ACTIVE\",\"logical_id\":\"vm170\",\"owner\":\"pve01\"}],\"vm200\":[{\"id\":\"200\",\"kind\":\"VM\",\"lifecycle\":\"RETIRED_PRESERVE\",\"logical_id\":\"vm200\",\"owner\":\"pve03\"}]}\nLIVE_POLICY_VALIDATE={\"path\":\"/etc/homelab-backup/gfs-retention.json\",\"rc\":66,\"stderr_lines\":[\"GFS_POLICY_ERROR=CRITICAL_NOT_ACTIVE_VM_vm200\"],\"stdout_lines\":[]}\nLIVE_POLICY_CRITICAL_LOGICALS={\"rc\":66,\"stderr_lines\":[\"GFS_POLICY_ERROR=CRITICAL_NOT_ACTIVE_VM_vm200\"],\"stdout_lines\":[]}\nCANDIDATE_GFS_EXISTS=true\nCANDIDATE_GFS_META={\"bytes\":436,\"critical_not_active\":[],\"critical_vm_logicals\":[\"vm110\",\"vm111\",\"vm112\",\"vm113\",\"vm130\",\"vm150\",\"vm160\",\"vm170\"],\"sha256\":\"2c7674045dd5c68cc48d348d616494dbbe145df460a8e85d97a2c5c153ec792d\"}\nCANDIDATE_POLICY_VALIDATE={\"path\":\"/root/homelab-ops-cr-2026-1005/tasks/backup-v2-health-alerting-remediation-v1/assets/candidate/gfs-retention.json\",\"rc\":66,\"stderr_lines\":[\"GFS_POLICY_ERROR=CRITICAL_SET_INVALID\"],\"stdout_lines\":[]}\nCANDIDATE_POLICY_CRITICAL_LOGICALS={\"rc\":66,\"stderr_lines\":[\"GFS_POLICY_ERROR=CRITICAL_SET_INVALID\"],\"stdout_lines\":[]}\nIN_MEMORY_CORRECTED_CRITICAL_VM_LOGICALS=[\"vm110\",\"vm111\",\"vm112\",\"vm113\",\"vm130\",\"vm150\",\"vm160\",\"vm170\"]\nIN_MEMORY_REMOVALS=[\"vm200\"]\nGFS_HELPER_VALIDATION_FOCUS=[{\"line\":4,\"sha256\":\"f73eaf5c141167f26d3cd9b0cdfca9b1cb34bc48e2a47efcfe8473d4148a89c4\",\"text\":\"REG=pathlib.Path(os.environ.get(\\\"HOMELAB_BACKUP_TARGET_REGISTRY\\\",\\\"/etc/homelab-backup/targets.json\\\"))\"},{\"line\":11,\"sha256\":\"17d911bfd01a1f638cca468224effdf6f9cc7ee8511bd556cb236fbc64e3e7ff\",\"text\":\" if c.get(\\\"completed_periods_only\\\") is not True or c.get(\\\"weekly_buckets\\\")!=4 or c.get(\\\"monthly_buckets\\\")!=6 or c.get(\\\"capacity_guard_max_free_fraction_milli\\\")!=500 or c.get(\\\"capacity_guard_target_max_age_seconds\\\")!=172800 or c.get(\\\"capacity_guard_cloud_max_age_seconds\\\")!=14400: die(\\\"POLICY_INVALID\\\",66)\"},{\"line\":12,\"sha256\":\"880f2144e950185b2bed0118c1ba10498b909a176b421d285cb96573a204c855\",\"text\":\" crit=c.get(\\\"critical_vm_logicals\\\")\"},{\"line\":13,\"sha256\":\"c44f6760ffd70ef6bcdc3064327167b3f0e6a79ae984f364195f1b218c62502a\",\"text\":\" if not isinstance(crit,list) or len(crit)!=9 or len(set(crit))!=9: die(\\\"CRITICAL_SET_INVALID\\\",66)\"},{\"line\":14,\"sha256\":\"a7894fb8f64ddd7cfe49ce592ad92002276da503fb5d9e2ea630aa9712b3555d\",\"text\":\" rows={x.get(\\\"logical_id\\\"):x for x in r.get(\\\"targets\\\",[])}\"},{\"line\":17,\"sha256\":\"1a59b8ac77450c24932f51e77bb0e485edca8b0664f74f5bfa3983aa9ba009c5\",\"text\":\" if not rec or rec.get(\\\"kind\\\")!=\\\"VM\\\" or rec.get(\\\"lifecycle\\\")!=\\\"ACTIVE\\\": die(f\\\"CRITICAL_NOT_ACTIVE_VM_{logical}\\\",66)\"},{\"line\":30,\"sha256\":\"4c9978e610851b78ae6d9f76e29b9021cb62944940640dc68ecc71dc41e2f378\",\"text\":\" if logical not in c[\\\"critical_vm_logicals\\\"]: return\"},{\"line\":32,\"sha256\":\"5c149f5d84df11ab050d1ab21e70b6259e8facc6d5ec60c8c6005400bdd9ccc1\",\"text\":\" weekly=[]; monthly=[]; seen_w=set(); seen_m=set()\"},{\"line\":39,\"sha256\":\"3a95b6ce11458868739c37ad6b934f4f69ee821f18c4fc655e913742a8bd3d05\",\"text\":\" if wb!=cur_week and len(weekly)=c[\\\"weekly_buckets\\\"] and len(monthly)>=c[\\\"monthly_buckets\\\"]: break\"},{\"line\":44,\"sha256\":\"8ddd05307b16bdb65e27ed4daaa771bff5c79cef98f456936e8fe5a1702258be\",\"text\":\" for gen,b in weekly: print(f\\\"WEEKLY\\\\t{gen}\\\\t{b}\\\")\"},{\"line\":45,\"sha256\":\"1117b07f51ec1fecccdde8595f3f4c22d1468fb33b1bee17fb70df87e24a3a14\",\"text\":\" for gen,b in monthly: print(f\\\"MONTHLY\\\\t{gen}\\\\t{b}\\\")\"},{\"line\":48,\"sha256\":\"0a7ee6ef3c083194f0004d25d05a420f3d4b36231bdbbb86faefe3df3e22bfb5\",\"text\":\" if args==[\\\"validate\\\"]: print(\\\"GFS_POLICY=OK\\\"); return\"},{\"line\":49,\"sha256\":\"c61eee89554bc74f8ccab7518825e202e69d626bd7385132da86752e4e997187\",\"text\":\" if args==[\\\"critical-logicals\\\"]:\"},{\"line\":50,\"sha256\":\"a6db40d91e1d862c8ca704051a4bd342a8dc443673314f5713b926709a5369d5\",\"text\":\" print(\\\"\\\\n\\\".join(c[\\\"critical_vm_logicals\\\"])); return\"},{\"line\":51,\"sha256\":\"41e05ff5ca7a41dadee3e5d88a28a843d3d0a8c48c382142b386aebf2b9b55be\",\"text\":\" if args==[\\\"weekly-buckets\\\"]: print(c[\\\"weekly_buckets\\\"]); return\"},{\"line\":52,\"sha256\":\"7187022be500b823309292b134f1d87a2148def6a60db7ec4450e3a470e10eac\",\"text\":\" if args==[\\\"monthly-buckets\\\"]: print(c[\\\"monthly_buckets\\\"]); return\"},{\"line\":53,\"sha256\":\"bec70750c2fa1733ce3829a85169999d3a0f90eb879021467c16e88683851999\",\"text\":\" if args==[\\\"capacity-guard-milli\\\"]: print(c[\\\"capacity_guard_max_free_fraction_milli\\\"]); return\"},{\"line\":54,\"sha256\":\"9b69cba2b5792004710d50ad75c02583c68431d7d928faee8d29925dbdafa785\",\"text\":\" if len(args)==2 and args[0]==\\\"is-critical\\\": raise SystemExit(0 if args[1] in c[\\\"critical_vm_logicals\\\"] else 1)\"}]\nPARTIAL_REPO_STATE_PRESENT=true\nNO_MUTATION=true\nNO_GIT_FETCH=true\nNO_RESET=true\nNO_CHECKOUT=true\nNO_SERVICE_ACTION=true\nNO_BACKUP_STARTED=true\nNO_RESTORE_STARTED=true\nNO_RETENTION_RUN_STARTED=true\nNO_DELETE=true\nNO_MAIL_SENT=true\nRCA_DURATION_SEC=0.089\nTASK_RESULT=PASS_HOMELAB_BACKUP_GFS_PARTIAL_RCA_READONLY\nHOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"SUPPORT-260921-HOMELAB-BACKUP-GFS-PARTIAL-RCA-READONLY-1013R1\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\nWORKERS2_BACKUP_GFS_PARTIAL_RCA_END=1\n" + "output": "SIGNALBOT052REPAIR1_QGA_OUTER_RC=0\nSIGNALBOT052REPAIR1_QGA_GUEST_EXITCODE=3\nSIGNALBOT052REPAIR1_RESULT={\"changes_made\":false,\"error\":\"RuntimeError:market_key_not_btcusd\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"FAIL_REPAIR_EXCEPTION\"}\nTASK_RESULT=FAIL_REPAIR_EXCEPTION\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SIGNALBOT-260921-RECONCILIATION-BOUNDED-REPAIR-052REPAIR2\",\"status\":\"FAIL\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index edf10d34..6f8651f2 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,22 +1,22 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=SUPPORT-260921-HOMELAB-BACKUP-GFS-PARTIAL-RCA-READONLY-1013R1 -STATUS=OK -RC=0 +COMMAND_ID=SIGNALBOT-260921-RECONCILIATION-BOUNDED-REPAIR-052REPAIR2 +STATUS=FAIL +RC=3 HOST=pve01 -MODE=read-only -COMPONENT=homelab-backup-gfs-partial-rca +MODE=change +COMPONENT=signalbot-reconciliation-bounded-repair REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 -COMMAND_SHA256=35b236613d6860b2e4136d3e1e3107102f08d5803afd08f853873173625af3d5 +COMMAND_SHA256=9efa228a677179c3c78b12a5c6b7a1497decb24cb768b7b2cdb6c3a524294d46 DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true -CHANGE_DECLARED=false +CHANGE_DECLARED=true RESULT_CONTRACT_VALID=true -RESULT_CONTRACT_STATUS=NOT_APPLICABLE +RESULT_CONTRACT_STATUS=FAIL RESULT_CONTRACT_ERROR=NONE -COMMAND_RC=0 +COMMAND_RC=3 CHANGES_MADE=false ROLLBACK_STARTED=false ROLLBACK_RESTORED=null @@ -24,57 +24,14 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=e7f29e20bf01daf4023cb87cd8aa68b8c9ab3150fb95414463311a5d198f6d2e -SANITIZED_OUTPUT_SHA256=e7f29e20bf01daf4023cb87cd8aa68b8c9ab3150fb95414463311a5d198f6d2e +RAW_EVIDENCE_SHA256=99491d07491b84bf2e3401896828b8fae4d1d8a9c71e7a78a8265263dd133362 +SANITIZED_OUTPUT_SHA256=99491d07491b84bf2e3401896828b8fae4d1d8a9c71e7a78a8265263dd133362 OUTPUT_BEGIN -WORKERS2_BACKUP_GFS_PARTIAL_RCA_BEGIN=1 -COMMAND_ID=SUPPORT-260921-HOMELAB-BACKUP-GFS-PARTIAL-RCA-READONLY-1013R1 -MODE=read-only -COMPONENT=homelab-backup-gfs-partial-rca -HOST=pve01 -UID=0 -MUTATION_BOUNDARY=READ_ONLY_NO_FETCH_NO_RESET_NO_CHECKOUT_NO_WRITE_NO_SERVICE_ACTION_NO_BACKUP_NO_RESTORE_NO_RETENTION_NO_DELETE_NO_MAIL -WORKTREE_BRANCH=cr-2026-1005-backup-v2-health-alerting-remediation -WORKTREE_HEAD=326622a4864fa9b5f43b69981733236bb42c4d7b -WORKTREE_STATUS_LINES=["?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/entry504.py","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/fresh_lxc_helper.py","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/lxc_adapter.py","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/producer_exec_helper.py","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/qemu_adapter.py","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/scheduler_adapter.py","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/gfs-retention.json","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-alertmanager-backup-run","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit.service","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit.timer","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-gfs-policy","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc.service","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc.timer","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-target-registry","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2.service","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2.timer","?? tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/targets.json","?? tasks/backup-v2-health-alerting-remediation-v1/assets/candidate/gfs-retention.json"] -COMMITS_SINCE_BASE=0 -CACHED_DIFF=[] -CHANGE_FILES=[] -TASK_FILES=[{"bytes":10566,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/entry504.py","sha256":"ca6876fa9c3b1465b045344a8ad46962de16972c7dadc4ac6257c7d225047793"},{"bytes":2320,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/fresh_lxc_helper.py","sha256":"dbb3e6dbb71b10797df736431d9501a752a0f8c439163c9a0bddb7f76747f011"},{"bytes":13825,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/lxc_adapter.py","sha256":"3fa7d194010d76f7c8bc95035ae8876262e9337903e310f45f45df88c266dc8d"},{"bytes":3449,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/producer_exec_helper.py","sha256":"b3b97099bcd7126670f866e81faae6a42a96d869d9989e6a67f6ea6c871c90b3"},{"bytes":4627,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/qemu_adapter.py","sha256":"1906db42bd34bbe85eb46fd9797b3572d46e0a41c29d1c29be5f9df5e448f15b"},{"bytes":4097,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/scheduler_adapter.py","sha256":"a6f67159a64067773323f028126e3109e15cf17a8142cea5e6129970f1d4da96"},{"bytes":449,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/gfs-retention.json","sha256":"ea6526bec7d7591bef876799cecddff4849631a936edc9f593b47211fbad715c"},{"bytes":1806,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-alertmanager-backup-run","sha256":"6deef30b4708a7e5b2ac0f0d98bb6b37b22d858afde994483b67baa18dffdc2a"},{"bytes":39160,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit","sha256":"1474c9ce58bbc1b3ae7437261d1bdb923232926fb2943c7c830253f8b284724c"},{"bytes":285,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit.service","sha256":"7b64362ef0d0d7e59f5305afd642386082a275bba359c3c9b3def97dd6c2c4aa"},{"bytes":221,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit.timer","sha256":"987695f83ee993bd4d716b8365308211110ac4c684f0bd9b17dfdb1e523e466a"},{"bytes":3455,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-gfs-policy","sha256":"6b7ec1ab3ee1c540a9113b5620c3b4b5a50de6536f3a069d31b2e1243f23bafa"},{"bytes":32975,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc","sha256":"8adb6c10f5911f39c53775b89eac3cd1823f1ed34b4caccade5279c213e998a3"},{"bytes":327,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc.service","sha256":"0c49e10bdb225eeca0af5fca80aaf109addec2b18a6b892c0fe17c28b656ad7c"},{"bytes":237,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc.timer","sha256":"a0e763670745a5ef7c04b54da23114a013f47075cf36cceef0218bae9b82ea2f"},{"bytes":4406,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-target-registry","sha256":"c681c44be7557d192d7b453b67e31164237874596168f1d4c78e1e926e2e9cb4"},{"bytes":1656,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2","sha256":"5077444065c732451cb84898680f62361b21a24ef9eb4f191253e82ead524ea2"},{"bytes":309,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2.service","sha256":"1ef3e6bc660767a1f29a6a0bfa8d1b7a2419370b2250764ca181c34c93188565"},{"bytes":192,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2.timer","sha256":"5469057602452b303a01ccb8057085c1b0e447973e5ed198cebf7dd5daf58e9d"},{"bytes":4758,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/targets.json","sha256":"6ecf034ca03b52a1e6beceeae81d86a623885462c095d50b133aea4048a4626e"},{"bytes":436,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/candidate/gfs-retention.json","sha256":"2c7674045dd5c68cc48d348d616494dbbe145df460a8e85d97a2c5c153ec792d"}] -CANDIDATE_FILES=[{"bytes":436,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/candidate/gfs-retention.json","sha256":"2c7674045dd5c68cc48d348d616494dbbe145df460a8e85d97a2c5c153ec792d"}] -BASELINE_RELEASE_FILES=[{"bytes":10566,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/entry504.py","sha256":"ca6876fa9c3b1465b045344a8ad46962de16972c7dadc4ac6257c7d225047793"},{"bytes":2320,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/fresh_lxc_helper.py","sha256":"dbb3e6dbb71b10797df736431d9501a752a0f8c439163c9a0bddb7f76747f011"},{"bytes":13825,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/lxc_adapter.py","sha256":"3fa7d194010d76f7c8bc95035ae8876262e9337903e310f45f45df88c266dc8d"},{"bytes":3449,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/producer_exec_helper.py","sha256":"b3b97099bcd7126670f866e81faae6a42a96d869d9989e6a67f6ea6c871c90b3"},{"bytes":4627,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/qemu_adapter.py","sha256":"1906db42bd34bbe85eb46fd9797b3572d46e0a41c29d1c29be5f9df5e448f15b"},{"bytes":4097,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/backup-v2-release/scheduler_adapter.py","sha256":"a6f67159a64067773323f028126e3109e15cf17a8142cea5e6129970f1d4da96"}] -LIVE_GFS_META={"bytes":449,"exists":true,"sha256":"ea6526bec7d7591bef876799cecddff4849631a936edc9f593b47211fbad715c"} -LIVE_TARGETS_META={"bytes":4758,"exists":true,"sha256":"6ecf034ca03b52a1e6beceeae81d86a623885462c095d50b133aea4048a4626e"} -GFS_HELPER_META={"bytes":3455,"exists":true,"sha256":"6b7ec1ab3ee1c540a9113b5620c3b4b5a50de6536f3a069d31b2e1243f23bafa"} -GFS_CRITICAL_VM_LOGICALS=["vm110","vm111","vm112","vm113","vm130","vm150","vm160","vm170","vm200"] -ACTIVE_VM_LOGICALS=["vm110","vm111","vm112","vm113","vm130","vm150","vm160","vm170","vm171","vm190","vm9130"] -GFS_CRITICAL_ACTIVE_INTERSECTION=["vm110","vm111","vm112","vm113","vm130","vm150","vm160","vm170"] -GFS_CRITICAL_NOT_ACTIVE=["vm200"] -GFS_CRITICAL_RECORDS={"vm110":[{"id":"110","kind":"VM","lifecycle":"ACTIVE","logical_id":"vm110","owner":"pve01"}],"vm111":[{"id":"111","kind":"VM","lifecycle":"ACTIVE","logical_id":"vm111","owner":"pve02"}],"vm112":[{"id":"112","kind":"VM","lifecycle":"ACTIVE","logical_id":"vm112","owner":"pve01"}],"vm113":[{"id":"113","kind":"VM","lifecycle":"ACTIVE","logical_id":"vm113","owner":"pve02"}],"vm130":[{"id":"130","kind":"VM","lifecycle":"ACTIVE","logical_id":"vm130","owner":"pve03"}],"vm150":[{"id":"150","kind":"VM","lifecycle":"ACTIVE","logical_id":"vm150","owner":"pve01"}],"vm160":[{"id":"160","kind":"VM","lifecycle":"ACTIVE","logical_id":"vm160","owner":"pve02"}],"vm170":[{"id":"170","kind":"VM","lifecycle":"ACTIVE","logical_id":"vm170","owner":"pve01"}],"vm200":[{"id":"200","kind":"VM","lifecycle":"RETIRED_PRESERVE","logical_id":"vm200","owner":"pve03"}]} -LIVE_POLICY_VALIDATE={"path":"/etc/homelab-backup/gfs-retention.json","rc":66,"stderr_lines":["GFS_POLICY_ERROR=CRITICAL_NOT_ACTIVE_VM_vm200"],"stdout_lines":[]} -LIVE_POLICY_CRITICAL_LOGICALS={"rc":66,"stderr_lines":["GFS_POLICY_ERROR=CRITICAL_NOT_ACTIVE_VM_vm200"],"stdout_lines":[]} -CANDIDATE_GFS_EXISTS=true -CANDIDATE_GFS_META={"bytes":436,"critical_not_active":[],"critical_vm_logicals":["vm110","vm111","vm112","vm113","vm130","vm150","vm160","vm170"],"sha256":"2c7674045dd5c68cc48d348d616494dbbe145df460a8e85d97a2c5c153ec792d"} -CANDIDATE_POLICY_VALIDATE={"path":"/root/homelab-ops-cr-2026-1005/tasks/backup-v2-health-alerting-remediation-v1/assets/candidate/gfs-retention.json","rc":66,"stderr_lines":["GFS_POLICY_ERROR=CRITICAL_SET_INVALID"],"stdout_lines":[]} -CANDIDATE_POLICY_CRITICAL_LOGICALS={"rc":66,"stderr_lines":["GFS_POLICY_ERROR=CRITICAL_SET_INVALID"],"stdout_lines":[]} -IN_MEMORY_CORRECTED_CRITICAL_VM_LOGICALS=["vm110","vm111","vm112","vm113","vm130","vm150","vm160","vm170"] -IN_MEMORY_REMOVALS=["vm200"] -GFS_HELPER_VALIDATION_FOCUS=[{"line":4,"sha256":"f73eaf5c141167f26d3cd9b0cdfca9b1cb34bc48e2a47efcfe8473d4148a89c4","text":"REG=pathlib.Path(os.environ.get(\"HOMELAB_BACKUP_TARGET_REGISTRY\",\"/etc/homelab-backup/targets.json\"))"},{"line":11,"sha256":"17d911bfd01a1f638cca468224effdf6f9cc7ee8511bd556cb236fbc64e3e7ff","text":" if c.get(\"completed_periods_only\") is not True or c.get(\"weekly_buckets\")!=4 or c.get(\"monthly_buckets\")!=6 or c.get(\"capacity_guard_max_free_fraction_milli\")!=500 or c.get(\"capacity_guard_target_max_age_seconds\")!=172800 or c.get(\"capacity_guard_cloud_max_age_seconds\")!=14400: die(\"POLICY_INVALID\",66)"},{"line":12,"sha256":"880f2144e950185b2bed0118c1ba10498b909a176b421d285cb96573a204c855","text":" crit=c.get(\"critical_vm_logicals\")"},{"line":13,"sha256":"c44f6760ffd70ef6bcdc3064327167b3f0e6a79ae984f364195f1b218c62502a","text":" if not isinstance(crit,list) or len(crit)!=9 or len(set(crit))!=9: die(\"CRITICAL_SET_INVALID\",66)"},{"line":14,"sha256":"a7894fb8f64ddd7cfe49ce592ad92002276da503fb5d9e2ea630aa9712b3555d","text":" rows={x.get(\"logical_id\"):x for x in r.get(\"targets\",[])}"},{"line":17,"sha256":"1a59b8ac77450c24932f51e77bb0e485edca8b0664f74f5bfa3983aa9ba009c5","text":" if not rec or rec.get(\"kind\")!=\"VM\" or rec.get(\"lifecycle\")!=\"ACTIVE\": die(f\"CRITICAL_NOT_ACTIVE_VM_{logical}\",66)"},{"line":30,"sha256":"4c9978e610851b78ae6d9f76e29b9021cb62944940640dc68ecc71dc41e2f378","text":" if logical not in c[\"critical_vm_logicals\"]: return"},{"line":32,"sha256":"5c149f5d84df11ab050d1ab21e70b6259e8facc6d5ec60c8c6005400bdd9ccc1","text":" weekly=[]; monthly=[]; seen_w=set(); seen_m=set()"},{"line":39,"sha256":"3a95b6ce11458868739c37ad6b934f4f69ee821f18c4fc655e913742a8bd3d05","text":" if wb!=cur_week and len(weekly)=c[\"weekly_buckets\"] and len(monthly)>=c[\"monthly_buckets\"]: break"},{"line":44,"sha256":"8ddd05307b16bdb65e27ed4daaa771bff5c79cef98f456936e8fe5a1702258be","text":" for gen,b in weekly: print(f\"WEEKLY\\t{gen}\\t{b}\")"},{"line":45,"sha256":"1117b07f51ec1fecccdde8595f3f4c22d1468fb33b1bee17fb70df87e24a3a14","text":" for gen,b in monthly: print(f\"MONTHLY\\t{gen}\\t{b}\")"},{"line":48,"sha256":"0a7ee6ef3c083194f0004d25d05a420f3d4b36231bdbbb86faefe3df3e22bfb5","text":" if args==[\"validate\"]: print(\"GFS_POLICY=OK\"); return"},{"line":49,"sha256":"c61eee89554bc74f8ccab7518825e202e69d626bd7385132da86752e4e997187","text":" if args==[\"critical-logicals\"]:"},{"line":50,"sha256":"a6db40d91e1d862c8ca704051a4bd342a8dc443673314f5713b926709a5369d5","text":" print(\"\\n\".join(c[\"critical_vm_logicals\"])); return"},{"line":51,"sha256":"41e05ff5ca7a41dadee3e5d88a28a843d3d0a8c48c382142b386aebf2b9b55be","text":" if args==[\"weekly-buckets\"]: print(c[\"weekly_buckets\"]); return"},{"line":52,"sha256":"7187022be500b823309292b134f1d87a2148def6a60db7ec4450e3a470e10eac","text":" if args==[\"monthly-buckets\"]: print(c[\"monthly_buckets\"]); return"},{"line":53,"sha256":"bec70750c2fa1733ce3829a85169999d3a0f90eb879021467c16e88683851999","text":" if args==[\"capacity-guard-milli\"]: print(c[\"capacity_guard_max_free_fraction_milli\"]); return"},{"line":54,"sha256":"9b69cba2b5792004710d50ad75c02583c68431d7d928faee8d29925dbdafa785","text":" if len(args)==2 and args[0]==\"is-critical\": raise SystemExit(0 if args[1] in c[\"critical_vm_logicals\"] else 1)"}] -PARTIAL_REPO_STATE_PRESENT=true -NO_MUTATION=true -NO_GIT_FETCH=true -NO_RESET=true -NO_CHECKOUT=true -NO_SERVICE_ACTION=true -NO_BACKUP_STARTED=true -NO_RESTORE_STARTED=true -NO_RETENTION_RUN_STARTED=true -NO_DELETE=true -NO_MAIL_SENT=true -RCA_DURATION_SEC=0.089 -TASK_RESULT=PASS_HOMELAB_BACKUP_GFS_PARTIAL_RCA_READONLY -HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"SUPPORT-260921-HOMELAB-BACKUP-GFS-PARTIAL-RCA-READONLY-1013R1","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} -WORKERS2_BACKUP_GFS_PARTIAL_RCA_END=1 +SIGNALBOT052REPAIR1_QGA_OUTER_RC=0 +SIGNALBOT052REPAIR1_QGA_GUEST_EXITCODE=3 +SIGNALBOT052REPAIR1_RESULT={"changes_made":false,"error":"RuntimeError:market_key_not_btcusd","rollback_restored":null,"rollback_started":false,"status":"FAIL_REPAIR_EXCEPTION"} +TASK_RESULT=FAIL_REPAIR_EXCEPTION +HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SIGNALBOT-260921-RECONCILIATION-BOUNDED-REPAIR-052REPAIR2","status":"FAIL","changes_made":false,"rollback_started":false,"rollback_restored":null} OUTPUT_END CHAT_OUTPUT_END