1
0

runtime: publish SUPPORT-261006-PVE01-DUAL-REGISTRY-RETIRE-REPAIR-99677R1

This commit is contained in:
homelab-runtime-publisher
2026-10-06 05:38:14 +00:00
parent 46e58fe8e9
commit 45f294dae2
4 changed files with 165 additions and 158 deletions
@@ -0,0 +1,38 @@
{
"schema_version": 1,
"channel": "homelab-runtime",
"command_id": "SUPPORT-261006-PVE01-DUAL-REGISTRY-RETIRE-REPAIR-99677R1",
"status": "FAIL",
"rc": 1,
"host": "pve01",
"mode": "change",
"component": "pve01-dual-registry-retire-repair",
"started_at_utc": "2026-10-06T05:38:12Z",
"finished_at_utc": "2026-10-06T05:38:13Z",
"reference_register_checked": true,
"reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66",
"error_register_checked": true,
"error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0",
"command_sha256": "9c9c4d1b685414905975e7cd960e545cbe0c54ad3eee1e5a31e144b9e641f901",
"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": 1,
"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": "1d26f8a66519886da91a4fac5501e377fa3de643b3f593e4115764d984764fcd",
"sanitized_output_sha256": "1d26f8a66519886da91a4fac5501e377fa3de643b3f593e4115764d984764fcd",
"output_truncated_in_json": false,
"full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
"output": "PVE01_DUAL_REGISTRY_RETIRE_REPAIR=V1\nMODE=change\nSCOPE=UNIFIED_VM160_RETIRE_PRESERVE_V2_DISABLE_VMID160_HELPER_SCHEMA\nNO_REBOOT=true\nNO_APT_UPDATE=true\nNO_PACKAGE_MUTATION=true\nNO_SERVICE_START_STOP_RESTART=true\nNO_RESET_FAILED=true\nNO_GUEST_MUTATION=true\nNO_BACKUP_EXECUTION=true\nNO_NETWORK_MUTATION=true\nNO_BACKUP_STATE_DELETE=true\nNODE_HOSTNAME=pve01\nUNIFIED_SHA_PRE=21b1d1cc675e0472f05234f3cc160a43f603427a7ae6a511040ef7fb38722e5d\nV2_SHA_PRE=89769a5564a8c208ac64a9edbcfa0942d516ec9c9c362595dd0120f091800989\nHELPER_SHA_PRE=c681c44be7557d192d7b453b67e31164237874596168f1d4c78e1e926e2e9cb4\nOLD_UNIFIED_SHA=2f526330152d49461ff66f50adab57d1a195ea5d1b4c292945d523411b8a68a8\nHELPER_PARSE_PRE_OK=true\nCLUSTER_QUORATE_PRE=true\nVM160_LIVE_CLUSTER_MATCH_COUNT_PRE=0\nPVE02_VM160_BACKUP_PROBE_RC=0\nVM160_ROLLBACK_BACKUP_COUNT_PVE02=2\nUNIFIED_TARGET_COUNT_PRE=20\nUNIFIED_VM160_COUNT_PRE=0\nOLD_UNIFIED_VM160_COUNT=1\nOLD_UNIFIED_VM160_LIFECYCLE=ACTIVE\nOLD_UNIFIED_VM160_KIND=VM\nOLD_UNIFIED_VM160_OWNER=pve02\nV2_TARGET_COUNT_PRE=28\nV2_VMID160_COUNT_PRE=7\nV2_VMID160_ENABLED_TRUE_PRE=7\nV2_ENABLED_FALSE_PRE=3\nV2_VMID160_IDS=vm160,xf-codevipe,xf-dsmods,xf-gamevipe,xf-hkmods,xf-kingofwolk,xf-zakrutim\nENGINE_SHA=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nENABLED_FALSE_SKIP_PROVEN=true\nHELPER_OLD_VM_ACTIVE_EXPR_COUNT=0\nFAIL_REASON=HELPER_TOPOLOGY_EXPR_NOT_EXACT\nCHANGES_MADE=false\nROLLBACK_STARTED=false\nROLLBACK_RESTORED=null\nMUTATION_OUTCOME=NO_MUTATION\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SUPPORT-261006-PVE01-DUAL-REGISTRY-RETIRE-REPAIR-99677R1\",\"status\":\"FAIL\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n"
}
@@ -0,0 +1,74 @@
CHAT_OUTPUT_BEGIN
COMMAND_ID=SUPPORT-261006-PVE01-DUAL-REGISTRY-RETIRE-REPAIR-99677R1
STATUS=FAIL
RC=1
HOST=pve01
MODE=change
COMPONENT=pve01-dual-registry-retire-repair
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
COMMAND_SHA256=9c9c4d1b685414905975e7cd960e545cbe0c54ad3eee1e5a31e144b9e641f901
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=1
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=1d26f8a66519886da91a4fac5501e377fa3de643b3f593e4115764d984764fcd
SANITIZED_OUTPUT_SHA256=1d26f8a66519886da91a4fac5501e377fa3de643b3f593e4115764d984764fcd
OUTPUT_BEGIN
PVE01_DUAL_REGISTRY_RETIRE_REPAIR=V1
MODE=change
SCOPE=UNIFIED_VM160_RETIRE_PRESERVE_V2_DISABLE_VMID160_HELPER_SCHEMA
NO_REBOOT=true
NO_APT_UPDATE=true
NO_PACKAGE_MUTATION=true
NO_SERVICE_START_STOP_RESTART=true
NO_RESET_FAILED=true
NO_GUEST_MUTATION=true
NO_BACKUP_EXECUTION=true
NO_NETWORK_MUTATION=true
NO_BACKUP_STATE_DELETE=true
NODE_HOSTNAME=pve01
UNIFIED_SHA_PRE=21b1d1cc675e0472f05234f3cc160a43f603427a7ae6a511040ef7fb38722e5d
V2_SHA_PRE=89769a5564a8c208ac64a9edbcfa0942d516ec9c9c362595dd0120f091800989
HELPER_SHA_PRE=c681c44be7557d192d7b453b67e31164237874596168f1d4c78e1e926e2e9cb4
OLD_UNIFIED_SHA=2f526330152d49461ff66f50adab57d1a195ea5d1b4c292945d523411b8a68a8
HELPER_PARSE_PRE_OK=true
CLUSTER_QUORATE_PRE=true
VM160_LIVE_CLUSTER_MATCH_COUNT_PRE=0
PVE02_VM160_BACKUP_PROBE_RC=0
VM160_ROLLBACK_BACKUP_COUNT_PVE02=2
UNIFIED_TARGET_COUNT_PRE=20
UNIFIED_VM160_COUNT_PRE=0
OLD_UNIFIED_VM160_COUNT=1
OLD_UNIFIED_VM160_LIFECYCLE=ACTIVE
OLD_UNIFIED_VM160_KIND=VM
OLD_UNIFIED_VM160_OWNER=pve02
V2_TARGET_COUNT_PRE=28
V2_VMID160_COUNT_PRE=7
V2_VMID160_ENABLED_TRUE_PRE=7
V2_ENABLED_FALSE_PRE=3
V2_VMID160_IDS=vm160,xf-codevipe,xf-dsmods,xf-gamevipe,xf-hkmods,xf-kingofwolk,xf-zakrutim
ENGINE_SHA=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7
ENABLED_FALSE_SKIP_PROVEN=true
HELPER_OLD_VM_ACTIVE_EXPR_COUNT=0
FAIL_REASON=HELPER_TOPOLOGY_EXPR_NOT_EXACT
CHANGES_MADE=false
ROLLBACK_STARTED=false
ROLLBACK_RESTORED=null
MUTATION_OUTCOME=NO_MUTATION
HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-261006-PVE01-DUAL-REGISTRY-RETIRE-REPAIR-99677R1","status":"FAIL","changes_made":false,"rollback_started":false,"rollback_restored":null}
OUTPUT_END
CHAT_OUTPUT_END
+14 -14
View File
File diff suppressed because one or more lines are too long
+39 -144
View File
@@ -1,22 +1,22 @@
CHAT_OUTPUT_BEGIN
COMMAND_ID=SUPPORT-261006-PVE01-RETIRE-SEMANTICS-REGISTRY-GATE-99676R1
STATUS=OK
RC=0
COMMAND_ID=SUPPORT-261006-PVE01-DUAL-REGISTRY-RETIRE-REPAIR-99677R1
STATUS=FAIL
RC=1
HOST=pve01
MODE=read-only
COMPONENT=pve01-retire-semantics-registry-gate
MODE=change
COMPONENT=pve01-dual-registry-retire-repair
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
COMMAND_SHA256=39cd0243421eb84a2059aafc51dc3b575cf2bbd48c8dc76324424f23ef2a583f
COMMAND_SHA256=9c9c4d1b685414905975e7cd960e545cbe0c54ad3eee1e5a31e144b9e641f901
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=1
CHANGES_MADE=false
ROLLBACK_STARTED=false
ROLLBACK_RESTORED=null
@@ -24,156 +24,51 @@ MUTATION_OUTCOME=NO_MUTATION
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=0ac00915b9eab03d365b10ab041e032247fe42f639aa6fac8a31e8e322743a74
SANITIZED_OUTPUT_SHA256=0ac00915b9eab03d365b10ab041e032247fe42f639aa6fac8a31e8e322743a74
RAW_EVIDENCE_SHA256=1d26f8a66519886da91a4fac5501e377fa3de643b3f593e4115764d984764fcd
SANITIZED_OUTPUT_SHA256=1d26f8a66519886da91a4fac5501e377fa3de643b3f593e4115764d984764fcd
OUTPUT_BEGIN
PVE01_RETIRE_SEMANTICS_REGISTRY_GATE=V1
MODE=read-only
PVE01_DUAL_REGISTRY_RETIRE_REPAIR=V1
MODE=change
SCOPE=UNIFIED_VM160_RETIRE_PRESERVE_V2_DISABLE_VMID160_HELPER_SCHEMA
NO_REBOOT=true
NO_APT_UPDATE=true
NO_PACKAGE_MUTATION=true
NO_SERVICE_START_STOP_RESTART=true
NO_RESET_FAILED=true
NO_CONFIG_WRITE=true
NO_FILE_DELETE=true
NO_GUEST_MUTATION=true
NO_BACKUP_EXECUTION=true
NO_NETWORK_MUTATION=true
NO_BACKUP_STATE_DELETE=true
NODE_HOSTNAME=pve01
NODE_KERNEL=7.0.12-1-pve
UNIFIED_SHA=21b1d1cc675e0472f05234f3cc160a43f603427a7ae6a511040ef7fb38722e5d
V2_SHA=89769a5564a8c208ac64a9edbcfa0942d516ec9c9c362595dd0120f091800989
HELPER_SHA=c681c44be7557d192d7b453b67e31164237874596168f1d4c78e1e926e2e9cb4
ROLLBACK_UNIFIED_SHA=2f526330152d49461ff66f50adab57d1a195ea5d1b4c292945d523411b8a68a8
UNIFIED_TARGET_COUNT_NOW=20
UNIFIED_TARGET_COUNT_PRE99670=21
REC|UNIFIED_LIFECYCLE_COUNT|ACTIVE|15
REC|UNIFIED_LIFECYCLE_EXAMPLE|ACTIVE|LOGICAL_ID=vm110|KIND=VM|OWNER=pve01
REC|UNIFIED_LIFECYCLE_EXAMPLE|ACTIVE|LOGICAL_ID=vm111|KIND=VM|OWNER=pve02
REC|UNIFIED_LIFECYCLE_EXAMPLE|ACTIVE|LOGICAL_ID=vm112|KIND=VM|OWNER=pve01
REC|UNIFIED_LIFECYCLE_EXAMPLE|ACTIVE|LOGICAL_ID=vm113|KIND=VM|OWNER=pve02
REC|UNIFIED_LIFECYCLE_EXAMPLE|ACTIVE|LOGICAL_ID=vm130|KIND=VM|OWNER=pve03
REC|UNIFIED_LIFECYCLE_EXAMPLE|ACTIVE|LOGICAL_ID=vm150|KIND=VM|OWNER=pve01
REC|UNIFIED_LIFECYCLE_EXAMPLE|ACTIVE|LOGICAL_ID=vm170|KIND=VM|OWNER=pve01
REC|UNIFIED_LIFECYCLE_EXAMPLE|ACTIVE|LOGICAL_ID=vm171|KIND=VM|OWNER=pve01
REC|UNIFIED_LIFECYCLE_EXAMPLE|ACTIVE|LOGICAL_ID=vm190|KIND=VM|OWNER=pve03
REC|UNIFIED_LIFECYCLE_EXAMPLE|ACTIVE|LOGICAL_ID=vm9130|KIND=VM|OWNER=pve02
REC|UNIFIED_LIFECYCLE_EXAMPLE|ACTIVE|LOGICAL_ID=app-filebrowser|KIND=APP|OWNER=pve01
REC|UNIFIED_LIFECYCLE_EXAMPLE|ACTIVE|LOGICAL_ID=app-skladchik-reports-monitor|KIND=APP|OWNER=pve01
REC|UNIFIED_LIFECYCLE_EXAMPLE|ACTIVE|LOGICAL_ID=app-immich|KIND=APP|OWNER=pve01
REC|UNIFIED_LIFECYCLE_EXAMPLE|ACTIVE|LOGICAL_ID=app-hbarhub|KIND=APP|OWNER=pve01
REC|UNIFIED_LIFECYCLE_EXAMPLE|ACTIVE|LOGICAL_ID=control-bootstrap-v2|KIND=CONTROL|OWNER=pve01
REC|UNIFIED_LIFECYCLE_COUNT|RETIRED_PRESERVE|5
REC|UNIFIED_LIFECYCLE_EXAMPLE|RETIRED_PRESERVE|LOGICAL_ID=app-memos|KIND=APP|OWNER=pve01
REC|UNIFIED_LIFECYCLE_EXAMPLE|RETIRED_PRESERVE|LOGICAL_ID=app-skladchik-moderator-assistant|KIND=APP|OWNER=pve01
REC|UNIFIED_LIFECYCLE_EXAMPLE|RETIRED_PRESERVE|LOGICAL_ID=vm180|KIND=VM|OWNER=pve02
REC|UNIFIED_LIFECYCLE_EXAMPLE|RETIRED_PRESERVE|LOGICAL_ID=vm200|KIND=VM|OWNER=pve03
REC|UNIFIED_LIFECYCLE_EXAMPLE|RETIRED_PRESERVE|LOGICAL_ID=app-scrutiny|KIND=APP|OWNER=pve01
UNIFIED_VM160_COUNT_NOW=0
UNIFIED_VM160_COUNT_PRE99670=1
REC|UNIFIED_VM160_PRE|KEYS=id,kind,lifecycle,logical_id,owner
REC|UNIFIED_VM160_PRE|KIND=VM|LIFECYCLE=ACTIVE|OWNER=pve02
REGISTRY_HELPER_PARSE_START
REGISTRY_HELPER_BASH_N_RC=0
REC|HELPER_SCHEMA_SOURCE|LINE=6|assert_file(){ [[ -s "STR_SHA_060e76138f09" && ! -L "STR_SHA_060e76138f09" ]] || die REGISTRY_FILE_UNSAFE 66; }
REC|HELPER_SCHEMA_SOURCE|LINE=7|validate(){
REC|HELPER_SCHEMA_SOURCE|LINE=8|assert_file
REC|HELPER_SCHEMA_SOURCE|LINE=9|jq -e '
REC|HELPER_SCHEMA_SOURCE|LINE=10|.schema=="homelab-backup-target-registry-v1" and
REC|HELPER_SCHEMA_SOURCE|LINE=11|.registry_version==1 and
REC|HELPER_SCHEMA_SOURCE|LINE=12|.policies.retention_keep.VM==2 and .policies.retention_keep.APP==7 and .policies.retention_keep.CONTROL==4 and
REC|HELPER_SCHEMA_SOURCE|LINE=13|.policies.freshness_seconds.VM==72000 and .policies.freshness_seconds.APP==72000 and .policies.freshness_seconds.CONTROL==86400 and
REC|HELPER_SCHEMA_SOURCE|LINE=14|(.targets|type)=="array" and (.targets|length)==21 and
REC|HELPER_SCHEMA_SOURCE|LINE=15|([.targets[].id]|length)==([.targets[].id]|unique|length) and
REC|HELPER_SCHEMA_SOURCE|LINE=16|([.targets[].logical_id]|length)==([.targets[].logical_id]|unique|length) and
REC|HELPER_SCHEMA_SOURCE|LINE=17|([.targets[]|select(.kind=="VM" and .lifecycle=="ACTIVE")]|length)==11 and
REC|HELPER_SCHEMA_SOURCE|LINE=18|([.targets[]|select(.kind=="APP" and .lifecycle=="ACTIVE")]|length)==4 and
REC|HELPER_SCHEMA_SOURCE|LINE=19|([.targets[]|select(.kind=="APP" and .lifecycle=="RETIRED_PRESERVE")]|length)==3 and
REC|HELPER_SCHEMA_SOURCE|LINE=20|([.targets[]|select(.kind=="CONTROL" and .lifecycle=="ACTIVE")]|length)==1 and
REC|HELPER_SCHEMA_SOURCE|LINE=21|([.targets[]|select((.kind!="VM" and .kind!="APP" and .kind!="CONTROL") or (.lifecycle!="ACTIVE" and .lifecycle!="RETIRED_PRESERVE"))]|length)==0 and
REC|HELPER_SCHEMA_SOURCE|LINE=22|([.targets[]|select(.kind=="VM")|select(.owner!="pve01" and .owner!="pve02" and .owner!="pve03")]|length)==0 and
REC|HELPER_SCHEMA_SOURCE|LINE=23|([.systemd_expectations[].unit]|length)==([.systemd_expectations[].unit]|unique|length) and
REC|HELPER_SCHEMA_SOURCE|LINE=24|([.systemd_expectations[]|select(.expected_state!="ENABLED_ACTIVE" and .expected_state!="ABSENT")]|length)==0
REC|HELPER_SCHEMA_SOURCE|LINE=25|' "STR_SHA_060e76138f09" >PATH_REDACTED || die REGISTRY_SCHEMA_INVALID 66
REC|HELPER_SCHEMA_SOURCE|LINE=26|}
REC|HELPER_SCHEMA_SOURCE|LINE=27|rows(){ validate; jq -r '.targets[]|[.kind,.id,.logical_id,.owner,.lifecycle,(.source_host/PATH_REDACTED,((.migrate/PATH_REDACTED "STR_SHA_060e76138f09"; }
REC|HELPER_SCHEMA_SOURCE|LINE=28|find_by_id(){ local kind="STR_SHA_c1b43b36df09" id="STR_SHA_fc4d602aa161"; validate; jq -er --arg k "STR_SHA_e4bc76ce5c49" --arg i "STR_SHA_ec4918e40d55" 'STR_SHA_95b645f19a43' "STR_SHA_060e76138f09"; }
REC|HELPER_SCHEMA_SOURCE|LINE=29|find_by_logical(){ local logical="STR_SHA_c1b43b36df09"; validate; jq -er --arg l "STR_SHA_49411c7ad16d" 'STR_SHA_f2080f9514b9' "STR_SHA_060e76138f09"; }
REC|HELPER_SCHEMA_SOURCE|LINE=30|case "STR_SHA_47688171c2f1" in
REC|HELPER_SCHEMA_SOURCE|LINE=31|validate) [[ "STR_SHA_984bfec110aa" == 1 ]] || die USAGE 64; validate; printf 'STR_SHA_413ae53f1553' ;;
REC|HELPER_SCHEMA_SOURCE|LINE=32|active-vm-ids) [[ "STR_SHA_984bfec110aa" == 1 ]] || die USAGE 64; validate; jq -r 'STR_SHA_9fee448edc18' "STR_SHA_060e76138f09" ;;
REC|HELPER_SCHEMA_SOURCE|LINE=33|active-app-ids) [[ "STR_SHA_984bfec110aa" == 1 ]] || die USAGE 64; validate; jq -r 'STR_SHA_c25a70c95b29' "STR_SHA_060e76138f09" ;;
REC|HELPER_SCHEMA_SOURCE|LINE=34|migrate-app-ids) [[ "STR_SHA_984bfec110aa" == 1 ]] || die USAGE 64; validate; jq -r 'STR_SHA_c7791a90ad7b' "STR_SHA_060e76138f09" ;;
REC|HELPER_SCHEMA_SOURCE|LINE=35|app-active) [[ "STR_SHA_984bfec110aa" == 2 ]] || die USAGE 64; find_by_id APP "STR_SHA_fc4d602aa161" | jq -e 'STR_SHA_7027d7777639' >PATH_REDACTED ;;
REC|HELPER_SCHEMA_SOURCE|LINE=36|app-logical) [[ "STR_SHA_984bfec110aa" == 2 ]] || die USAGE 64; find_by_id APP "STR_SHA_fc4d602aa161" | jq -er 'STR_SHA_35a51cca66c0' ;;
REC|HELPER_SCHEMA_SOURCE|LINE=37|app-source-host) [[ "STR_SHA_984bfec110aa" == 2 ]] || die USAGE 64; find_by_id APP "STR_SHA_fc4d602aa161" | jq -er 'STR_SHA_bda5c8d010bc' ;;
REC|HELPER_SCHEMA_SOURCE|LINE=38|logical-owner) [[ "STR_SHA_984bfec110aa" == 2 ]] || die USAGE 64; find_by_logical "STR_SHA_fc4d602aa161" | jq -er '.owner' ;;
REC|HELPER_SCHEMA_SOURCE|LINE=39|lifecycle) [[ "STR_SHA_984bfec110aa" == 2 ]] || die USAGE 64; find_by_logical "STR_SHA_fc4d602aa161" | jq -er '.lifecycle' ;;
REC|HELPER_SCHEMA_SOURCE|LINE=40|retention-logicals) [[ "STR_SHA_984bfec110aa" == 1 ]] || die USAGE 64; validate; jq -r 'STR_SHA_82d76addc312' "STR_SHA_060e76138f09" ;;
REC|HELPER_SCHEMA_SOURCE|LINE=41|retention-keep) [[ "STR_SHA_984bfec110aa" == 2 ]] || die USAGE 64; rec="STR_SHA_7534d8d5f95b"$2"STR_SHA_ba5ec51d07a4"; life="STR_SHA_454c6a8e3109"$rec"STR_SHA_ba5ec51d07a4"; [[ "STR_SHA_84a56cce4890" == ACTIVE ]] || die RETENTION_KEEP_NOT_ACTIVE 64; kind="STR_SHA_df9501a81fc8"$rec"STR_SHA_ba5ec51d07a4"; jq -er --arg k "STR_SHA_e4bc76ce5c49" 'STR_SHA_dafe51033d40' "STR_SHA_060e76138f09" ;;
REC|HELPER_SCHEMA_SOURCE|LINE=42|policy-keep) [[ "STR_SHA_984bfec110aa" == 2 ]] || die USAGE 64; validate; jq -er --arg k "STR_SHA_fc4d602aa161" 'STR_SHA_dafe51033d40' "STR_SHA_060e76138f09" ;;
REC|HELPER_SCHEMA_SOURCE|LINE=43|freshness-seconds) [[ "STR_SHA_984bfec110aa" == 2 ]] || die USAGE 64; validate; jq -er --arg k "STR_SHA_fc4d602aa161" 'STR_SHA_ce57d65e7846' "STR_SHA_060e76138f09" ;;
REC|HELPER_SCHEMA_SOURCE|LINE=44|systemd-expectations) [[ "STR_SHA_984bfec110aa" == 1 ]] || die USAGE 64; validate; jq -r 'STR_SHA_fe303dc2f08c' "STR_SHA_060e76138f09" ;;
REC|HELPER_SCHEMA_SOURCE|LINE=45|rows) [[ "STR_SHA_984bfec110aa" == 1 ]] || die USAGE 64; rows ;;
REC|HELPER_SCHEMA_SOURCE|LINE=46|*) die USAGE_validate_active-vm-ids_active-app-ids_migrate-app-ids_app-active_app-logical_app-source-host_logical-owner_lifecycle_retention-logicals_retention-keep_policy-keep_freshness-seconds_systemd-expectations_rows 64 ;;
REC|HELPER_SCHEMA_SOURCE|LINE=47|esac
HELPER_APP_SOURCE_HOST_RC=4
HELPER_APP_SOURCE_HOST_STDOUT_LINES=0
HELPER_APP_SOURCE_HOST_STDERR_LINES=1
REC|HELPER_QUERY_ERR|1|TARGET_REGISTRY_ERROR=REGISTRY_SCHEMA_INVALID
V2_TARGET_COUNT=28
V2_ENABLED_TRUE_COUNT=25
V2_ENABLED_FALSE_COUNT=3
REC|V2_DISABLED_EXAMPLE|LOGICAL_ID=md-relay|TYPE=vps_md|VMID=|NODE=
REC|V2_DISABLED_EXAMPLE|LOGICAL_ID=spb-ingress|TYPE=vps_spb|VMID=|NODE=
REC|V2_DISABLED_EXAMPLE|LOGICAL_ID=us-netbird|TYPE=vps_us|VMID=|NODE=
V2_VMID160_COUNT=7
V2_VMID160_ENABLED_TRUE_COUNT=7
REC|V2_VMID160_SEMANTIC|LOGICAL_ID=vm160|TYPE=pve_guest|ENABLED=True|GREEN1=False|VMID=160|NODE=
REC|V2_VMID160_SEMANTIC|LOGICAL_ID=xf-codevipe|TYPE=xenforo|ENABLED=True|GREEN1=True|VMID=160|NODE=pve02
REC|V2_VMID160_SEMANTIC|LOGICAL_ID=xf-dsmods|TYPE=xenforo|ENABLED=True|GREEN1=False|VMID=160|NODE=pve02
REC|V2_VMID160_SEMANTIC|LOGICAL_ID=xf-kingofwolk|TYPE=xenforo|ENABLED=True|GREEN1=False|VMID=160|NODE=pve02
REC|V2_VMID160_SEMANTIC|LOGICAL_ID=xf-gamevipe|TYPE=xenforo|ENABLED=True|GREEN1=False|VMID=160|NODE=pve02
REC|V2_VMID160_SEMANTIC|LOGICAL_ID=xf-hkmods|TYPE=xenforo|ENABLED=True|GREEN1=False|VMID=160|NODE=pve02
REC|V2_VMID160_SEMANTIC|LOGICAL_ID=xf-zakrutim|TYPE=xenforo|ENABLED=True|GREEN1=True|VMID=160|NODE=pve02
ENGINE_FOUND=true
UNIFIED_SHA_PRE=21b1d1cc675e0472f05234f3cc160a43f603427a7ae6a511040ef7fb38722e5d
V2_SHA_PRE=89769a5564a8c208ac64a9edbcfa0942d516ec9c9c362595dd0120f091800989
HELPER_SHA_PRE=c681c44be7557d192d7b453b67e31164237874596168f1d4c78e1e926e2e9cb4
OLD_UNIFIED_SHA=2f526330152d49461ff66f50adab57d1a195ea5d1b4c292945d523411b8a68a8
HELPER_PARSE_PRE_OK=true
CLUSTER_QUORATE_PRE=true
VM160_LIVE_CLUSTER_MATCH_COUNT_PRE=0
PVE02_VM160_BACKUP_PROBE_RC=0
VM160_ROLLBACK_BACKUP_COUNT_PVE02=2
UNIFIED_TARGET_COUNT_PRE=20
UNIFIED_VM160_COUNT_PRE=0
OLD_UNIFIED_VM160_COUNT=1
OLD_UNIFIED_VM160_LIFECYCLE=ACTIVE
OLD_UNIFIED_VM160_KIND=VM
OLD_UNIFIED_VM160_OWNER=pve02
V2_TARGET_COUNT_PRE=28
V2_VMID160_COUNT_PRE=7
V2_VMID160_ENABLED_TRUE_PRE=7
V2_ENABLED_FALSE_PRE=3
V2_VMID160_IDS=vm160,xf-codevipe,xf-dsmods,xf-gamevipe,xf-hkmods,xf-kingofwolk,xf-zakrutim
ENGINE_SHA=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7
REC|ENGINE_SEMANTIC_FUNC|load_targets|FOUND=true
REC|ENGINE_SEMANTIC_SOURCE|load_targets|1|def load_targets():
REC|ENGINE_SEMANTIC_SOURCE|load_targets|3|if j.get('schema')!=1 or not isinstance(j.get('targets'),list): raise BackupError('TARGET_MANIFEST_SCHEMA')
REC|ENGINE_SEMANTIC_SOURCE|load_targets|4|ids=[x.get('logical_id') for x in j['targets']]
REC|ENGINE_SEMANTIC_SOURCE|load_targets|6|return j['targets']
REC|ENGINE_SEMANTIC_FUNC|choose_due_target|FOUND=true
REC|ENGINE_SEMANTIC_SOURCE|choose_due_target|1|def choose_due_target(targets,state,now=None):
REC|ENGINE_SEMANTIC_SOURCE|choose_due_target|4|for t in targets:
REC|ENGINE_SEMANTIC_SOURCE|choose_due_target|5|if not t.get('enabled',True): continue
REC|ENGINE_SEMANTIC_SOURCE|choose_due_target|6|due=max(1,int(t.get('due_seconds',86400)))
REC|ENGINE_SEMANTIC_SOURCE|choose_due_target|7|last=int(state.get(t['logical_id'],{}).get('last_success_epoch',0))
REC|ENGINE_SEMANTIC_SOURCE|choose_due_target|9|if last==0 or age>=due: c.append((-(age/due),last,t['logical_id'],t))
REC|ENGINE_SEMANTIC_SOURCE|choose_due_target|10|if not c: return None
REC|ENGINE_SEMANTIC_SOURCE|choose_due_target|12|return c[0][3]
REC|ENGINE_SEMANTIC_FUNC|scheduled_run|FOUND=true
REC|ENGINE_SEMANTIC_SOURCE|scheduled_run|2|targets=load_targets(); state=load_state_all(); t=choose_due_target(targets,state)
REC|ENGINE_SEMANTIC_SOURCE|scheduled_run|4|print('SCHEDULE_DECISION=DEFER_NO_DUE_TARGET'); return 0
REC|ENGINE_SEMANTIC_SOURCE|scheduled_run|5|print('SCHEDULE_TARGET='+t['logical_id'])
REC|ENGINE_SEMANTIC_SOURCE|scheduled_run|6|try: backup_target(t,green_verify=False)
REC|ENGINE_SEMANTIC_SOURCE|scheduled_run|8|print('SCHEDULE_RESULT=FAIL'); print('SCHEDULE_REASON='+e.code); return 2
REC|ENGINE_SEMANTIC_SOURCE|scheduled_run|9|print('SCHEDULE_RESULT=SUCCESS'); return 0
VM160_LIVE_CLUSTER_MATCH_COUNT=0
CEPH_ENTERPRISE_DISABLED=true
PVEENT_ENTERPRISE_DISABLED=true
PVE_NO_SUBSCRIPTION_ACTIVE=true
APT_FULL_UPGRADE_SIM_RC=0
APT_FULL_UPGRADE_SIM_UPGRADE_COUNT=184
APT_FULL_UPGRADE_SIM_REMOVE_COUNT=0
DECISION=PASS_PVE01_RETIRE_SEMANTICS_REGISTRY_GATE
NEXT_GATE=PVE01_DUAL_REGISTRY_RETIRE_REPAIR
TASK_RESULT=PVE01_RETIRE_SEMANTICS_REGISTRY_GATE
ENABLED_FALSE_SKIP_PROVEN=true
HELPER_OLD_VM_ACTIVE_EXPR_COUNT=0
FAIL_REASON=HELPER_TOPOLOGY_EXPR_NOT_EXACT
CHANGES_MADE=false
ROLLBACK_STARTED=false
ROLLBACK_RESTORED=null
MUTATION_OUTCOME=NO_MUTATION
HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-261006-PVE01-RETIRE-SEMANTICS-REGISTRY-GATE-99676R1","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null}
HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-261006-PVE01-DUAL-REGISTRY-RETIRE-REPAIR-99677R1","status":"FAIL","changes_made":false,"rollback_started":false,"rollback_restored":null}
OUTPUT_END
CHAT_OUTPUT_END