1
0
Files
homelab-public-context/runtime/latest.json
T
2026-09-22 05:40:45 +00:00

39 lines
8.1 KiB
JSON

{
"schema_version": 1,
"channel": "homelab-runtime",
"command_id": "SUPPORT-260922-HOMELAB-BACKUP-1113-FINAL-RCA-1114R1",
"status": "FAIL",
"rc": 3,
"host": "pve01",
"mode": "read-only",
"component": "homelab-backup-1113-final-rca",
"started_at_utc": "2026-09-22T05:40:44Z",
"finished_at_utc": "2026-09-22T05:40:44Z",
"reference_register_checked": true,
"reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66",
"error_register_checked": true,
"error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0",
"command_sha256": "6a9e35fad42bb449e3bba1af241cc9b4e02b094cc00b77de3741866b6cd5e547",
"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": 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": "8366a96d0a48174ea952d98ae908b85c320fc389b2c75252e67bf54bfe624a2a",
"sanitized_output_sha256": "8366a96d0a48174ea952d98ae908b85c320fc389b2c75252e67bf54bfe624a2a",
"output_truncated_in_json": false,
"full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
"output": "WORKERS2_BACKUP_1113_FINAL_RCA_BEGIN=1\nCOMMAND_ID=SUPPORT-260922-HOMELAB-BACKUP-1113-FINAL-RCA-1114R1\nMODE=read-only\nCOMPONENT=homelab-backup-1113-final-rca\nMUTATION_BOUNDARY=NONE;READ_ONLY_EXACT_RESTORE_CHECK_AND_SOURCE_OFFHOST_RCA;NO_SYSTEMCTL_ACTION;NO_BACKUP;NO_RESTORE_EXECUTION;NO_GIT_FETCH;NO_GIT_WRITE;NO_FILE_WRITE_OUTSIDE_RUNNER_TEMP\nERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nREFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66\nERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0\nRUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\nWRAPPER_SHA256=5077444065c732451cb84898680f62361b21a24ef9eb4f191253e82ead524ea2\nAUDIT_SHA256=5777bbb204708ffcebba0753506b819833b76370ecda59b4574e1aff3b9e4593\nRESTORE_SHA256=abb2d17392b6edde3603f77e88fc82240c311f932b0d197b1b8289b990c1dc23\nBACKUP_SHA256=1912f8f0559637563972bb8ac984fb0036694092056ae53968c02cc3b67855f3\nSCHEDULER_RC=0\nSELFTEST_REPLACEMENT486=PASS\nSCHEDULER_LIVE_SELECTION={\"due_seconds\":86400,\"enabled\":true,\"logical_id\":\"us-netbird\"}\nVM_QUEUE_CURRENT_STATE=success,inactive,dead\nBACKUP_AUDIT_CURRENT_STATE=exit-code,failed,failed\nRESTORE_HEALTH_BEGIN=1\nRESTORE_HEALTH_SHA256=c0d8f2008d4f269d13aa9734f4ef856c12c41635e55f1b56917cedaca10380d6\nRESTORE_HEALTH_MTIME_EPOCH=1789966497\nSTATUS=FAIL\nTS=2026-09-21T04:54:57Z\nRUN_ID=20260921T045457Z\nerror_rc=1\nRESTORE_HEALTH_END=1\nBACKUP_HEALTH_BEGIN=1\nBACKUP_HEALTH_SHA256=ac71cf99698817816382eb1d888948f76eb5af2782e4755f41b8bc9948853dca\nBACKUP_HEALTH_MTIME_EPOCH=1784856521\nSTATUS=OK\nTS=2026-07-24T01:28:41Z\nRUN_ID=20260724T012808Z\nSOURCE=debian@[PRIVATE_IP]\nARCHIVE=/mnt/staging/skladchik-reports-monitor-backup/daily/20260724T012808Z/skladchik-reports-monitor-20260724T012808Z.tar.gz\nSIZE_BYTES=93249\nREMOTE_BASE=homelab/skladchik-reports-monitor-backup/daily/20260724T012808Z\nCLOUD_1=pve01-mail-01-crypt:\nCLOUD_2=pve01-mail-02-crypt:\nKEEP_DAILY=30\nBACKUP_VERSION=4\nCOOKIE_JAR_BACKED_UP=yes\nEXTENSION_HEALTH_FILES_BACKED_UP=yes\nTITLE_IN_EMAIL_SUBJECT=yes\nBACKUP_HEALTH_END=1\nRESTORE_SOURCE_CONTRACT_BEGIN=1\n4:CONF=/etc/skladchik-reports-monitor-backup-restore-check.conf\n11:LOGDIR=/var/log/skladchik-reports-monitor-backup\n12:HEALTH=/var/lib/skladchik-reports-monitor-backup/restore-check-health.txt\n13:LOCK=/run/skladchik-reports-monitor-backup-restore-check.lock\n14:RUN_ID=\"$(date -u +%Y%m%dT%H%M%SZ)\"\n15:WORK=\"${WORK_ROOT}/${RUN_ID}\"\n20:fail(){ rc=$?; printf 'STATUS=FAIL\\nTS=%s\\nRUN_ID=%s\\nerror_rc=%s\\n' \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\" \"$RUN_ID\" \"$rc\" > \"$HEALTH\"; log \"FAIL rc=$rc\"; exit \"$rc\"; }\n22:command -v rclone >/dev/null\n28: if rclone lsf \"${remote_path}.parts/\" > \"$plist\" 2>/dev/null && grep -q '^part-' \"$plist\"; then\n29: while IFS= read -r part; do [ -n \"$part\" ] && rclone cat \"${remote_path}.parts/${part}\" >> \"$out\"; done < <(grep '^part-' \"$plist\" | sort)\n31: rclone copyto \"$remote_path\" \"$out\" >/dev/null\n36:check_one_remote(){\n37: local label=\"$1\" remote=\"$2\" rbase latest archive_name remote_archive outdir archive sha_remote expected actual list extract sqlite_status py_status\n39: latest=\"$(rclone lsf --dirs-only \"${rbase}/\" 2>/dev/null | sed 's#/$##' | grep -E '^[0-9]{8}T[0-9]{6}Z$' | sort | tail -n 1)\"\n40: [ -n \"$latest\" ] || { echo \"${label}_STATUS=NO_RUN\" >> \"$WORK/result.env\"; return 20; }\n41: archive_name=\"skladchik-reports-monitor-${latest}.tar.gz\"\n42: remote_archive=\"${rbase}/${latest}/${archive_name}\"\n43: outdir=\"${WORK}/${label}-${latest}\"\n46: log \"${label} DOWNLOAD run=${latest}\"\n93: printf '%s_STATUS=OK\\n%s_RUN=%s\\n%s_ARCHIVE_BYTES=%s\\n%s_SHA256_OK=yes\\n%s_TAR_OK=yes\\n%s_REQUIRED_FILES_OK=yes\\n%s_COOKIE_JAR_OK=yes\\n%s_EXTENSION_HEALTH_FILES_OK=yes\\n%s_EXTENSION_SCRIPTS_OK=yes\\n%s_EXTENSION_UNITS_OK=yes\\n%s_SQLITE=%s\\n%s_PY_COMPILE=%s\\n' \"$label\" \"$label\" \"$latest\" \"$label\" \"$(stat -c %s \"$archive\")\" \"$label\" \"$label\" \"$label\" \"$label\" \"$label\" \"$label\" \"$label\" \"$sqlite_status\" \"$label\" \"$py_status\" >> \"$WORK/result.env\"\n94: log \"${label} OK run=${latest} bytes=$(stat -c %s \"$archive\") cookie_jar=ok sqlite=${sqlite_status} py=${py_status}\"\n97:check_one_remote CLOUD_1 \"$CLOUD_1\"\n98:check_one_remote CLOUD_2 \"$CLOUD_2\"\n100:printf 'STATUS=OK\\nTS=%s\\nRUN_ID=%s\\nREMOTE_BASE=%s\\nCLOUD_1_STATUS=%s\\nCLOUD_1_RUN=%s\\nCLOUD_2_STATUS=%s\\nCLOUD_2_RUN=%s\\nSHA256_OK=yes\\nTAR_OK=yes\\nREQUIRED_FILES_OK=yes\\nCOOKIE_JAR_OK=yes\\nEXTENSION_HEALTH_FILES_OK=yes\\nEXTENSION_SCRIPTS_OK=yes\\nEXTENSION_UNITS_OK=yes\\nSQLITE_OK=yes\\nPY_COMPILE_OK=yes\\nRESTORE_CHECK_VERSION=4\\n' \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\" \"$RUN_ID\" \"$REMOTE_BASE\" \"${CLOUD_1_STATUS:-unknown}\" \"${CLOUD_1_RUN:-}\" \"${CLOUD_2_STATUS:-unknown}\" \"${CLOUD_2_RUN:-}\" > \"$HEALTH\"\nRESTORE_SOURCE_CONTRACT_END=1\nRESTORE_CONFIG_EXISTS=true\nRESTORE_CONFIG_SHA256=c7f63d5707196f9b770cb304333a80fa20d0e9e34554ef11224bd6f2e4208aa5\nRESTORE_SERVICE_EXISTS=false\nRESTORE_TIMER_EXISTS=false\nRESTORE_SERVICE_STATE=success,,,0,inactive,dead\nRESTORE_TIMER_STATE=enabled:not-found,active:inactive\nRESTORE_SERVICE_UNIT_BEGIN=1\nRESTORE_SERVICE_UNIT_END=1\nRESTORE_TIMER_UNIT_BEGIN=1\nRESTORE_TIMER_UNIT_END=1\nRESTORE_JOURNAL_CLASSIFIED_BEGIN=1\nRESTORE_JOURNAL_CLASSIFIED_END=1\nRESTORE_JOURNAL_SHA256=19c4e28b2f54ea8f217db4e622b0a5c758efa7b77ce2dc0394b6d159568c0b2e\nRESTORE_LOG_CLASSIFIED_BEGIN=1\nRESTORE_LOG_SHA256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nRESTORE_LOG_CLASSIFIED_END=1\nSOURCE_WORKTREE_VALID=true\nSOURCE_LOCAL_HEAD=4e59d5afaa670899c56f87a84bc887175f299614\nSOURCE_CURRENT_BRANCH=cr-2026-1005-backup-v2-health-alerting-remediation\nSOURCE_EXPECTED_BRANCH=cr-2026-1005-backup-v2-health-alerting-remediation\nSOURCE_TRACKING_HEAD=UNKNOWN\nSOURCE_PUSHURL_CLASS=DISABLED\nSOURCE_REMOTE_CLASS=HTTP\nSOURCE_REMOTE_URL_SHA256=7507b97d441d05c4e33306608cbf655e96bf2add0ec7683cc2f4e5539f64daf9\nSOURCE_LSREMOTE_RC=0\nSOURCE_LSREMOTE_STDERR_SHA256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nSOURCE_REMOTE_HEAD=UNKNOWN\nRESTORE_SERVICE_BINDING=NOT_PROVEN\nDECISION=HOLD_BACKUP_1114_SCOPE_NOT_YET_SAFE\nNEXT_GATE=RECONCILE_ONLY_BACKUP_1114_FAILURE\nTASK_RESULT=HOLD_HOMELAB_BACKUP_1113_FINAL_RCA\nCHANGES_MADE_BY_1114=false\nPRODUCT_MUTATION_BY_1114=false\nVM_MUTATION_BY_1114=false\nCLOUD_MUTATION_BY_1114=false\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SUPPORT-260922-HOMELAB-BACKUP-1113-FINAL-RCA-1114R1\",\"status\":\"FAIL\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\nWORKERS2_BACKUP_1113_FINAL_RCA_END=1\n"
}