runtime: publish SUPPORT-260923-SKLADCHIK-CURRENT-EDGE-UPDATER-SOURCE-944R1
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -0,0 +1,281 @@
|
||||
CHAT_OUTPUT_BEGIN
|
||||
COMMAND_ID=SUPPORT-260923-SKLADCHIK-CURRENT-EDGE-UPDATER-SOURCE-944R1
|
||||
STATUS=OK
|
||||
RC=0
|
||||
HOST=pve01
|
||||
MODE=read-only
|
||||
COMPONENT=skladchik-current-edge-updater-source
|
||||
REFERENCE_REGISTER_CHECK=OK
|
||||
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
|
||||
ERROR_REGISTER_CHECK=OK
|
||||
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
|
||||
COMMAND_SHA256=0171a3ced661558ed6f0ab909ba014aea79053b21400f6b2f2eceba92257d7b8
|
||||
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=ba150554aca68c2348134a9f0017b998a31eba97431978781bb51e7cf1999c75
|
||||
SANITIZED_OUTPUT_SHA256=ba150554aca68c2348134a9f0017b998a31eba97431978781bb51e7cf1999c75
|
||||
OUTPUT_BEGIN
|
||||
SKLADCHIK944_BEGIN=true
|
||||
COMMAND_ID=SUPPORT-260923-SKLADCHIK-CURRENT-EDGE-UPDATER-SOURCE-944R1
|
||||
MODE=read-only
|
||||
COMPONENT=skladchik-current-edge-updater-source
|
||||
PREDECESSOR_943=STALE_MIGRATION_PREFLIGHT_EXPECTS_ORIGINAL_SHA
|
||||
MUTATION_BOUNDARY=NONE_READ_ONLY
|
||||
VERSIONED_EDGE_BEGIN
|
||||
VERSIONED_EDGE_PATH_BASENAME=skladchik-reports-monitor-cookie-update-edge
|
||||
VERSIONED_EDGE_PRESENT=true
|
||||
VERSIONED_EDGE_SHA256=10fe854274dca1a053cfd8c0155340bd689bf3f6555c70dbc14b890cbafb93fa
|
||||
VERSIONED_EDGE_BYTES=5247
|
||||
VERSIONED_EDGE_LINES=178
|
||||
VERSIONED_EDGE_LINE_0001=#!/usr/bin/env bash
|
||||
VERSIONED_EDGE_LINE_0002=set -Eeuo pipefail
|
||||
VERSIONED_EDGE_LINE_0003=umask 077
|
||||
VERSIONED_EDGE_LINE_0004=
|
||||
VERSIONED_EDGE_LINE_0005=SECRETS=/etc/skladchik-reports-monitor/secrets.env
|
||||
VERSIONED_EDGE_LINE_0006=MONITOR=/opt/skladchik-reports-monitor/monitor.py
|
||||
VERSIONED_EDGE_LINE_0007=COOKIE_JAR=/var/lib/skladchik-reports-monitor/cookies.jar
|
||||
VERSIONED_EDGE_LINE_0008=HEALTH=/var/lib/skladchik-reports-monitor/health.txt
|
||||
VERSIONED_EDGE_LINE_0009=OUTPUT=/tmp/skladchik-cookie-update-monitor.out
|
||||
VERSIONED_EDGE_LINE_0010=TIMER=skladchik-reports-monitor.timer
|
||||
VERSIONED_EDGE_LINE_0011=SERVICE=skladchik-reports-monitor.service
|
||||
VERSIONED_EDGE_LINE_0012=
|
||||
VERSIONED_EDGE_LINE_0013=TMP="$(mktemp)"
|
||||
VERSIONED_EDGE_LINE_0014=NO_COOKIE_SECRET="$(mktemp)"
|
||||
VERSIONED_EDGE_LINE_0015=SECRETS_BACKUP=""
|
||||
VERSIONED_EDGE_LINE_0016=JAR_BACKUP=""
|
||||
VERSIONED_EDGE_LINE_0017=JAR_EXISTED=0
|
||||
VERSIONED_EDGE_LINE_0018=AUTH_MUTATED=0
|
||||
VERSIONED_EDGE_LINE_0019=FINALIZED=0
|
||||
VERSIONED_EDGE_LINE_0020=
|
||||
VERSIONED_EDGE_LINE_0021=TIMER_WAS_ENABLED="$(systemctl is-enabled "$TIMER" 2>/dev/null || true)"
|
||||
VERSIONED_EDGE_LINE_0022=TIMER_WAS_ACTIVE="$(systemctl is-active "$TIMER" 2>/dev/null || true)"
|
||||
VERSIONED_EDGE_LINE_0023=
|
||||
VERSIONED_EDGE_LINE_0024=on_err(){
|
||||
VERSIONED_EDGE_LINE_0025= local rc=$?
|
||||
VERSIONED_EDGE_LINE_0026= trap - ERR
|
||||
VERSIONED_EDGE_LINE_0027= printf 'ROOT_CAUSE=UNEXPECTED_COOKIE_UPDATE_ERROR\nROOT_CAUSE_COUNT=1\nDETAIL=line=%s rc=%s\n' "${1:-0}" "$rc"
|
||||
VERSIONED_EDGE_LINE_0028= exit "$rc"
|
||||
VERSIONED_EDGE_LINE_0029=}
|
||||
VERSIONED_EDGE_LINE_0030=
|
||||
VERSIONED_EDGE_LINE_0031=restore_timer_state(){
|
||||
VERSIONED_EDGE_LINE_0032= systemctl stop "$TIMER" >/dev/null 2>&1 || true
|
||||
VERSIONED_EDGE_LINE_0033= if [ "$TIMER_WAS_ENABLED" = enabled ]; then
|
||||
VERSIONED_EDGE_LINE_0034= systemctl enable "$TIMER" >/dev/null 2>&1 || true
|
||||
VERSIONED_EDGE_LINE_0035= else
|
||||
VERSIONED_EDGE_LINE_0036= systemctl disable "$TIMER" >/dev/null 2>&1 || true
|
||||
VERSIONED_EDGE_LINE_0037= fi
|
||||
VERSIONED_EDGE_LINE_0038= if [ "$TIMER_WAS_ACTIVE" = active ]; then
|
||||
VERSIONED_EDGE_LINE_0039= systemctl start "$TIMER" >/dev/null 2>&1 || true
|
||||
VERSIONED_EDGE_LINE_0040= fi
|
||||
VERSIONED_EDGE_LINE_0041=}
|
||||
VERSIONED_EDGE_LINE_0042=
|
||||
VERSIONED_EDGE_LINE_0043=restore_auth_state(){
|
||||
VERSIONED_EDGE_LINE_0044= if [ "$AUTH_MUTATED" -eq 1 ]; then
|
||||
VERSIONED_EDGE_LINE_0045= if [ -n "$SECRETS_BACKUP" ] && [ -s "$SECRETS_BACKUP" ]; then
|
||||
VERSIONED_EDGE_LINE_0046= install -m 0600 -o root -g root "$SECRETS_BACKUP" "$SECRETS"
|
||||
VERSIONED_EDGE_LINE_0047= fi
|
||||
VERSIONED_EDGE_LINE_0048= if [ "$JAR_EXISTED" -eq 1 ] && [ -n "$JAR_BACKUP" ] && [ -s "$JAR_BACKUP" ]; then
|
||||
VERSIONED_EDGE_LINE_0049= install -m 0600 -o root -g root "$JAR_BACKUP" "$COOKIE_JAR"
|
||||
VERSIONED_EDGE_LINE_0050= else
|
||||
VERSIONED_EDGE_LINE_0051= rm -f "$COOKIE_JAR"
|
||||
VERSIONED_EDGE_LINE_0052= fi
|
||||
VERSIONED_EDGE_LINE_0053= AUTH_MUTATED=0
|
||||
VERSIONED_EDGE_LINE_0054= fi
|
||||
VERSIONED_EDGE_LINE_0055=}
|
||||
VERSIONED_EDGE_LINE_0056=
|
||||
VERSIONED_EDGE_LINE_0057=cleanup(){
|
||||
VERSIONED_EDGE_LINE_0058= local rc=$?
|
||||
VERSIONED_EDGE_LINE_0059= trap - ERR
|
||||
VERSIONED_EDGE_LINE_0060= trap - EXIT INT TERM HUP
|
||||
VERSIONED_EDGE_LINE_0061= set +e
|
||||
VERSIONED_EDGE_LINE_0062= if [ "$FINALIZED" -ne 1 ]; then
|
||||
VERSIONED_EDGE_LINE_0063= restore_auth_state
|
||||
VERSIONED_EDGE_LINE_0064= restore_timer_state
|
||||
VERSIONED_EDGE_LINE_0065= fi
|
||||
VERSIONED_EDGE_LINE_0066= rm -f "$TMP" "$NO_COOKIE_SECRET"
|
||||
VERSIONED_EDGE_LINE_0067= [ -z "$SECRETS_BACKUP" ] || rm -f "$SECRETS_BACKUP"
|
||||
VERSIONED_EDGE_LINE_0068= [ -z "$JAR_BACKUP" ] || rm -f "$JAR_BACKUP"
|
||||
VERSIONED_EDGE_LINE_0069= exit "$rc"
|
||||
VERSIONED_EDGE_LINE_0070=}
|
||||
VERSIONED_EDGE_LINE_0071=
|
||||
VERSIONED_EDGE_LINE_0072=trap 'on_err "$LINENO"' ERR
|
||||
VERSIONED_EDGE_LINE_0073=trap cleanup EXIT
|
||||
VERSIONED_EDGE_LINE_0074=trap 'exit 130' INT
|
||||
VERSIONED_EDGE_LINE_0075=trap 'exit 143' TERM
|
||||
VERSIONED_EDGE_LINE_0076=trap 'exit 129' HUP
|
||||
VERSIONED_EDGE_LINE_0077=
|
||||
VERSIONED_EDGE_LINE_0078=systemctl stop "$TIMER"
|
||||
VERSIONED_EDGE_LINE_0079=
|
||||
VERSIONED_EDGE_LINE_0080=WAIT_SECONDS=90
|
||||
VERSIONED_EDGE_LINE_0081=DEADLINE=$((SECONDS + WAIT_SECONDS))
|
||||
VERSIONED_EDGE_LINE_0082=while systemctl is-active --quiet "$SERVICE" || pgrep -f '/opt/skladchik-reports-monitor/monitor.py' >/dev/null; do
|
||||
VERSIONED_EDGE_LINE_0083= if (( SECONDS >= DEADLINE )); then
|
||||
VERSIONED_EDGE_LINE_0084= restore_timer_state
|
||||
VERSIONED_EDGE_LINE_0085= FINALIZED=1
|
||||
VERSIONED_EDGE_LINE_0086= printf 'MONITOR_QUIESCENCE_TIMEOUT\n'
|
||||
VERSIONED_EDGE_LINE_0087= exit 75
|
||||
VERSIONED_EDGE_LINE_0088= fi
|
||||
VERSIONED_EDGE_LINE_0089= sleep 2
|
||||
VERSIONED_EDGE_LINE_0090=done
|
||||
VERSIONED_EDGE_LINE_0091=
|
||||
VERSIONED_EDGE_LINE_0092=printf "Вставь полный новый Cookie header для skladchik.org без слова Cookie: и нажми Enter:\n"
|
||||
VERSIONED_EDGE_LINE_0093=IFS= read -r -s NEW_COOKIE
|
||||
VERSIONED_EDGE_LINE_0094=printf '\n'
|
||||
VERSIONED_EDGE_LINE_0095=if [ -z "$NEW_COOKIE" ]; then
|
||||
VERSIONED_EDGE_LINE_0096= printf 'COOKIE_EMPTY\n'
|
||||
VERSIONED_EDGE_LINE_0097= exit 1
|
||||
VERSIONED_EDGE_LINE_0098=fi
|
||||
VERSIONED_EDGE_LINE_0099=case "$NEW_COOKIE" in
|
||||
VERSIONED_EDGE_LINE_0100= *$'\r'*|*$'\n'*)
|
||||
VERSIONED_EDGE_LINE_0101= printf 'COOKIE_INVALID_LINE_BREAK\n'
|
||||
VERSIONED_EDGE_LINE_0102= exit 64
|
||||
VERSIONED_EDGE_LINE_0103= ;;
|
||||
VERSIONED_EDGE_LINE_0104=esac
|
||||
VERSIONED_EDGE_LINE_0105=
|
||||
VERSIONED_EDGE_LINE_0106=SECRETS_BACKUP="$(mktemp /etc/skladchik-reports-monitor/.secrets.env.rollback.XXXXXX)"
|
||||
VERSIONED_EDGE_LINE_0107=cp -a "$SECRETS" "$SECRETS_BACKUP"
|
||||
VERSIONED_EDGE_LINE_0108=
|
||||
VERSIONED_EDGE_LINE_0109=if [ -s "$COOKIE_JAR" ]; then
|
||||
VERSIONED_EDGE_LINE_0110= JAR_BACKUP="$(mktemp /var/lib/skladchik-reports-monitor/.cookies.jar.rollback.XXXXXX)"
|
||||
VERSIONED_EDGE_LINE_0111= cp -a "$COOKIE_JAR" "$JAR_BACKUP"
|
||||
VERSIONED_EDGE_LINE_0112= JAR_EXISTED=1
|
||||
VERSIONED_EDGE_LINE_0113=fi
|
||||
VERSIONED_EDGE_LINE_0114=AUTH_MUTATED=1
|
||||
VERSIONED_EDGE_LINE_0115=
|
||||
VERSIONED_EDGE_LINE_0116=awk '!/^SKLADCHIK_COOKIE=/' "$SECRETS" >"$TMP"
|
||||
VERSIONED_EDGE_LINE_0117=printf 'SKLADCHIK_COOKIE=%s\n' "$NEW_COOKIE" >>"$TMP"
|
||||
VERSIONED_EDGE_LINE_0118=install -m 0600 -o root -g root "$TMP" "$SECRETS"
|
||||
VERSIONED_EDGE_LINE_0119=
|
||||
VERSIONED_EDGE_LINE_0120=# The monitor prefers a non-empty cookie jar over SKLADCHIK_COOKIE.
|
||||
VERSIONED_EDGE_LINE_0121=# Removing the stale jar forces the first probe to use the newly entered Cookie header.
|
||||
VERSIONED_EDGE_LINE_0122=rm -f "$COOKIE_JAR"
|
||||
VERSIONED_EDGE_LINE_0123=: >"$OUTPUT"
|
||||
VERSIONED_EDGE_LINE_0124=
|
||||
VERSIONED_EDGE_LINE_0125=set +e
|
||||
VERSIONED_EDGE_LINE_0126=python3 "$MONITOR" run >>"$OUTPUT" 2>&1
|
||||
VERSIONED_EDGE_LINE_0127=FIRST_RUN_RC=$?
|
||||
VERSIONED_EDGE_LINE_0128=set -e
|
||||
VERSIONED_EDGE_LINE_0129=FIRST_RUN_STATUS="$(awk -F= '$1=="STATUS"{print $2;exit}' "$HEALTH" 2>/dev/null || true)"
|
||||
VERSIONED_EDGE_LINE_0130=
|
||||
VERSIONED_EDGE_LINE_0131=SECOND_RUN_RC=1
|
||||
VERSIONED_EDGE_LINE_0132=SECOND_RUN_STATUS=NOT_RUN
|
||||
VERSIONED_EDGE_LINE_0133=if [ "$FIRST_RUN_RC" -eq 0 ] && [ "$FIRST_RUN_STATUS" = OK ] && [ -s "$COOKIE_JAR" ]; then
|
||||
VERSIONED_EDGE_LINE_0134= # Prove unattended persistence: temporarily remove the header secret, then run only from the new jar.
|
||||
VERSIONED_EDGE_LINE_0135= awk '!/^SKLADCHIK_COOKIE=/' "$TMP" >"$NO_COOKIE_SECRET"
|
||||
VERSIONED_EDGE_LINE_0136= install -m 0600 -o root -g root "$NO_COOKIE_SECRET" "$SECRETS"
|
||||
VERSIONED_EDGE_LINE_0137= set +e
|
||||
VERSIONED_EDGE_LINE_0138= python3 "$MONITOR" run >>"$OUTPUT" 2>&1
|
||||
VERSIONED_EDGE_LINE_0139= SECOND_RUN_RC=$?
|
||||
VERSIONED_EDGE_LINE_0140= set -e
|
||||
VERSIONED_EDGE_LINE_0141= SECOND_RUN_STATUS="$(awk -F= '$1=="STATUS"{print $2;exit}' "$HEALTH" 2>/dev/null || true)"
|
||||
VERSIONED_EDGE_LINE_0142= install -m 0600 -o root -g root "$TMP" "$SECRETS"
|
||||
VERSIONED_EDGE_LINE_0143=fi
|
||||
VERSIONED_EDGE_LINE_0144=
|
||||
VERSIONED_EDGE_LINE_0145=if [ "$FIRST_RUN_RC" -ne 0 ] || [ "$FIRST_RUN_STATUS" != OK ] || [ ! -s "$COOKIE_JAR" ] || [ "$SECOND_RUN_RC" -ne 0 ] || [ "$SECOND_RUN_STATUS" != OK ]; then
|
||||
VERSIONED_EDGE_LINE_0146= restore_auth_state
|
||||
VERSIONED_EDGE_LINE_0147= restore_timer_state
|
||||
VERSIONED_EDGE_LINE_0148= FINALIZED=1
|
||||
VERSIONED_EDGE_LINE_0149= printf 'COOKIE_UPDATE_FAILED_ROLLED_BACK\n'
|
||||
VERSIONED_EDGE_LINE_0150= printf 'FIRST_RUN_RC=%s\nFIRST_RUN_STATUS=%s\n' "$FIRST_RUN_RC" "$FIRST_RUN_STATUS"
|
||||
VERSIONED_EDGE_LINE_0151= printf 'SECOND_JAR_ONLY_RUN_RC=%s\nSECOND_JAR_ONLY_RUN_STATUS=%s\n' "$SECOND_RUN_RC" "$SECOND_RUN_STATUS"
|
||||
VERSIONED_EDGE_LINE_0152= printf 'HEALTH_BEGIN\n'
|
||||
VERSIONED_EDGE_LINE_0153= cat "$HEALTH" 2>/dev/null || true
|
||||
VERSIONED_EDGE_LINE_0154= printf 'HEALTH_END\n'
|
||||
VERSIONED_EDGE_LINE_0155= printf 'MONITOR_OUTPUT_TAIL\n'
|
||||
VERSIONED_EDGE_LINE_0156= tail -n 40 "$OUTPUT" 2>/dev/null || true
|
||||
VERSIONED_EDGE_LINE_0157= exit 1
|
||||
VERSIONED_EDGE_LINE_0158=fi
|
||||
VERSIONED_EDGE_LINE_0159=
|
||||
VERSIONED_EDGE_LINE_0160=AUTH_MUTATED=0
|
||||
VERSIONED_EDGE_LINE_0161=rm -f "$SECRETS_BACKUP"
|
||||
VERSIONED_EDGE_LINE_0162=SECRETS_BACKUP=""
|
||||
VERSIONED_EDGE_LINE_0163=if [ -n "$JAR_BACKUP" ]; then
|
||||
VERSIONED_EDGE_LINE_0164= rm -f "$JAR_BACKUP"
|
||||
VERSIONED_EDGE_LINE_0165= JAR_BACKUP=""
|
||||
VERSIONED_EDGE_LINE_0166=fi
|
||||
VERSIONED_EDGE_LINE_0167=
|
||||
VERSIONED_EDGE_LINE_0168=systemctl reset-failed "$SERVICE" "$TIMER" >/dev/null 2>&1 || true
|
||||
VERSIONED_EDGE_LINE_0169=systemctl enable --now skladchik-reports-monitor.timer >/dev/null 2>&1 || true
|
||||
VERSIONED_EDGE_LINE_0170=FINALIZED=1
|
||||
VERSIONED_EDGE_LINE_0171=echo "COOKIE_UPDATE_OK"
|
||||
VERSIONED_EDGE_LINE_0172=echo "FRESH_COOKIE_FORCED=YES"
|
||||
VERSIONED_EDGE_LINE_0173=echo "STALE_COOKIE_JAR_BYPASSED=YES"
|
||||
VERSIONED_EDGE_LINE_0174=echo "SECOND_JAR_ONLY_PERSISTENCE_RUN=OK"
|
||||
VERSIONED_EDGE_LINE_0175=echo "SECRET_PRINTED=NO"
|
||||
VERSIONED_EDGE_LINE_0176=echo "HEALTH_BEGIN"
|
||||
VERSIONED_EDGE_LINE_0177=cat "$HEALTH" 2>/dev/null || true
|
||||
VERSIONED_EDGE_LINE_0178=echo "HEALTH_END"
|
||||
VERSIONED_EDGE_END
|
||||
VERSIONED_WRAPPER_BEGIN
|
||||
VERSIONED_WRAPPER_PATH_BASENAME=skladchik-reports-monitor-cookie-update
|
||||
VERSIONED_WRAPPER_PRESENT=true
|
||||
VERSIONED_WRAPPER_SHA256=ea2d89ce67893a6d89b29610e4d46e207932ecc157173454585f67890f58810c
|
||||
VERSIONED_WRAPPER_BYTES=638
|
||||
VERSIONED_WRAPPER_LINES=16
|
||||
VERSIONED_WRAPPER_LINE_0001=#!/usr/bin/env bash
|
||||
VERSIONED_WRAPPER_LINE_0002=set -Eeuo pipefail
|
||||
VERSIONED_WRAPPER_LINE_0003=export SYSTEMD_PAGER=cat PAGER=cat SYSTEMD_LESS=FRXMK
|
||||
VERSIONED_WRAPPER_LINE_0004=EDGE=debian@[PRIVATE_IP]
|
||||
VERSIONED_WRAPPER_LINE_0005=EDGE_SCRIPT=/usr/local/sbin/skladchik-reports-monitor-cookie-update-edge
|
||||
VERSIONED_WRAPPER_LINE_0006=SSH=(-o BatchMode=yes -o ConnectTimeout=15 -o StrictHostKeyChecking=yes -o UserKnownHostsFile=[SENSITIVE_PATH]
|
||||
VERSIONED_WRAPPER_LINE_0007=printf '\033[93m%s\033[0m\n' 'SKLADCHIK CONTROLLED COOKIE UPDATE'
|
||||
VERSIONED_WRAPPER_LINE_0008=printf 'SAFE_OUTPUT=YES\nSECRET_PRINTED=NO\nSTEP=SKLADCHIK_REPORTS_MONITOR_COOKIE_UPDATE\n'
|
||||
VERSIONED_WRAPPER_LINE_0009=if ssh -tt "${SSH[@]}" "$EDGE" sudo -n "$EDGE_SCRIPT"; then
|
||||
VERSIONED_WRAPPER_LINE_0010= rc=0
|
||||
VERSIONED_WRAPPER_LINE_0011=else
|
||||
VERSIONED_WRAPPER_LINE_0012= rc=$?
|
||||
VERSIONED_WRAPPER_LINE_0013=fi
|
||||
VERSIONED_WRAPPER_LINE_0014=printf 'SSH_COOKIE_UPDATE_RC=%s\n' "$rc"
|
||||
VERSIONED_WRAPPER_LINE_0015=printf '\033[93m%s\033[0m\n' 'END'
|
||||
VERSIONED_WRAPPER_LINE_0016=exit "$rc"
|
||||
VERSIONED_WRAPPER_END
|
||||
LIVE_WRAPPER_BEGIN
|
||||
LIVE_WRAPPER_PATH_BASENAME=skladchik-reports-monitor-cookie-update
|
||||
LIVE_WRAPPER_PRESENT=true
|
||||
LIVE_WRAPPER_SHA256=ea2d89ce67893a6d89b29610e4d46e207932ecc157173454585f67890f58810c
|
||||
LIVE_WRAPPER_BYTES=638
|
||||
LIVE_WRAPPER_LINES=16
|
||||
LIVE_WRAPPER_LINE_0001=#!/usr/bin/env bash
|
||||
LIVE_WRAPPER_LINE_0002=set -Eeuo pipefail
|
||||
LIVE_WRAPPER_LINE_0003=export SYSTEMD_PAGER=cat PAGER=cat SYSTEMD_LESS=FRXMK
|
||||
LIVE_WRAPPER_LINE_0004=EDGE=debian@[PRIVATE_IP]
|
||||
LIVE_WRAPPER_LINE_0005=EDGE_SCRIPT=/usr/local/sbin/skladchik-reports-monitor-cookie-update-edge
|
||||
LIVE_WRAPPER_LINE_0006=SSH=(-o BatchMode=yes -o ConnectTimeout=15 -o StrictHostKeyChecking=yes -o UserKnownHostsFile=[SENSITIVE_PATH]
|
||||
LIVE_WRAPPER_LINE_0007=printf '\033[93m%s\033[0m\n' 'SKLADCHIK CONTROLLED COOKIE UPDATE'
|
||||
LIVE_WRAPPER_LINE_0008=printf 'SAFE_OUTPUT=YES\nSECRET_PRINTED=NO\nSTEP=SKLADCHIK_REPORTS_MONITOR_COOKIE_UPDATE\n'
|
||||
LIVE_WRAPPER_LINE_0009=if ssh -tt "${SSH[@]}" "$EDGE" sudo -n "$EDGE_SCRIPT"; then
|
||||
LIVE_WRAPPER_LINE_0010= rc=0
|
||||
LIVE_WRAPPER_LINE_0011=else
|
||||
LIVE_WRAPPER_LINE_0012= rc=$?
|
||||
LIVE_WRAPPER_LINE_0013=fi
|
||||
LIVE_WRAPPER_LINE_0014=printf 'SSH_COOKIE_UPDATE_RC=%s\n' "$rc"
|
||||
LIVE_WRAPPER_LINE_0015=printf '\033[93m%s\033[0m\n' 'END'
|
||||
LIVE_WRAPPER_LINE_0016=exit "$rc"
|
||||
LIVE_WRAPPER_END
|
||||
SOURCE_RELATION_BEGIN
|
||||
VERSIONED_EDGE_SHA_EXPECTED=10fe854274dca1a053cfd8c0155340bd689bf3f6555c70dbc14b890cbafb93fa
|
||||
VERSIONED_EDGE_SHA_MATCH=true
|
||||
VERSIONED_WRAPPER_SHA_EXPECTED=ea2d89ce67893a6d89b29610e4d46e207932ecc157173454585f67890f58810c
|
||||
VERSIONED_WRAPPER_SHA_MATCH=true
|
||||
LIVE_WRAPPER_EQUALS_VERSIONED=true
|
||||
SOURCE_RELATION_END
|
||||
CHANGES_MADE_BY_944=false
|
||||
ROLLBACK_STARTED=false
|
||||
ROLLBACK_RESTORED=null
|
||||
HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260923-SKLADCHIK-CURRENT-EDGE-UPDATER-SOURCE-944R1","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null}
|
||||
SKLADCHIK944_END=true
|
||||
|
||||
OUTPUT_END
|
||||
CHAT_OUTPUT_END
|
||||
+8
-8
File diff suppressed because one or more lines are too long
+254
-66
@@ -1,15 +1,15 @@
|
||||
CHAT_OUTPUT_BEGIN
|
||||
COMMAND_ID=SUPPORT-260923-SPB-TLS-BRIDGE-9189-LOCAL-CARRIER-RCA-9190R1
|
||||
COMMAND_ID=SUPPORT-260923-SKLADCHIK-CURRENT-EDGE-UPDATER-SOURCE-944R1
|
||||
STATUS=OK
|
||||
RC=0
|
||||
HOST=pve01
|
||||
MODE=read-only
|
||||
COMPONENT=spb-tls-bridge-9189-local-carrier-rca
|
||||
COMPONENT=skladchik-current-edge-updater-source
|
||||
REFERENCE_REGISTER_CHECK=OK
|
||||
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
|
||||
ERROR_REGISTER_CHECK=OK
|
||||
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
|
||||
COMMAND_SHA256=67f2bec7a01f39fbfdf79b5496aec0aae6532cca8cfd5192bb6552cbcbe851b9
|
||||
COMMAND_SHA256=0171a3ced661558ed6f0ab909ba014aea79053b21400f6b2f2eceba92257d7b8
|
||||
DUPLICATE_FAILED_COMMAND_BLOCKED=false
|
||||
EXECUTION_STARTED=true
|
||||
CHANGE_DECLARED=false
|
||||
@@ -24,70 +24,258 @@ MUTATION_OUTCOME=NO_MUTATION
|
||||
SANITIZED=yes
|
||||
SECRETS_INCLUDED=no
|
||||
PRIVATE_ADDRESSES_INCLUDED=no
|
||||
RAW_EVIDENCE_SHA256=575faa031e1c1f1224a7c9cae59ecf22d97781ab22ca48ffdb8a6b50cc3e528c
|
||||
SANITIZED_OUTPUT_SHA256=575faa031e1c1f1224a7c9cae59ecf22d97781ab22ca48ffdb8a6b50cc3e528c
|
||||
RAW_EVIDENCE_SHA256=ba150554aca68c2348134a9f0017b998a31eba97431978781bb51e7cf1999c75
|
||||
SANITIZED_OUTPUT_SHA256=ba150554aca68c2348134a9f0017b998a31eba97431978781bb51e7cf1999c75
|
||||
OUTPUT_BEGIN
|
||||
RECOVERY9190_BEGIN=true
|
||||
TARGET_CHANGE_CID=SUPPORT-260923-SPB-TLS-BRIDGE-SELF-PUBLISHING-FINAL-9189R1
|
||||
TARGET_LOCAL_CID=SUPPORT-260923-SPB-TLS-BRIDGE-SELF-PUBLISHING-FINAL-9189R1
|
||||
TARGET_CHANGE_EXACT_GITEA=404
|
||||
TARGET_LOCAL_EXACT_GITEA=404
|
||||
MUTATION_BOUNDARY=READ_ONLY_ONLY;NO_VM130_WRITE;NO_SPB_WRITE;NO_DNS_WRITE;NO_NGINX_RELOAD
|
||||
LOCAL_ARTIFACT=dir.txt|PRESENT=true
|
||||
LOCAL_ARTIFACT_META=dir.txt|SIZE=182|SHA16=09fb7d225bf69875
|
||||
LOCAL_SAFE=dir.txt|L1|endpoint.b64
|
||||
LOCAL_SAFE=dir.txt|L2|local-preflight-err.txt
|
||||
LOCAL_SAFE=dir.txt|L3|local-preflight-out.txt
|
||||
LOCAL_SAFE=dir.txt|L4|local-summary.env
|
||||
LOCAL_SAFE=dir.txt|L5|outer.b64
|
||||
LOCAL_SAFE=dir.txt|L6|outer.sh
|
||||
LOCAL_SAFE=dir.txt|L7|preflight.b64
|
||||
LOCAL_SAFE=dir.txt|L8|preflight.ps1
|
||||
LOCAL_SAFE=dir.txt|L9|spb-probe-err.txt
|
||||
LOCAL_SAFE=dir.txt|L10|spb-probe-out.txt
|
||||
LOCAL_SAFE=dir.txt|L11|sudo.b64
|
||||
LOCAL_ARTIFACT=local-preflight-err.txt|PRESENT=true
|
||||
LOCAL_ARTIFACT_META=local-preflight-err.txt|SIZE=0|SHA16=e3b0c44298fc1c14
|
||||
LOCAL_ARTIFACT=local-preflight-out.txt|PRESENT=true
|
||||
LOCAL_ARTIFACT_META=local-preflight-out.txt|SIZE=0|SHA16=e3b0c44298fc1c14
|
||||
LOCAL_ARTIFACT=local-summary.env|PRESENT=true
|
||||
LOCAL_ARTIFACT_META=local-summary.env|SIZE=365|SHA16=8c6afc015d07d942
|
||||
LOCAL_SAFE=local-summary.env|L1|LOCAL_PREFLIGHT_BEGIN=true
|
||||
LOCAL_SAFE=local-summary.env|L2|CID=SUPPORT-260923-SPB-TLS-BRIDGE-SELF-PUBLISHING-FINAL-9189R1
|
||||
LOCAL_SAFE=local-summary.env|L3|PLINK_PRESENT=true
|
||||
LOCAL_SAFE=local-summary.env|L4|WINDOWS_ENDPOINT_SHA16=6d6149f42864ce03
|
||||
LOCAL_SAFE=local-summary.env|L5|WINDOWS_DNS_IPV4_COUNT=1
|
||||
LOCAL_SAFE=local-summary.env|L6|WINDOWS_ENDPOINT_HASH_MATCH=true
|
||||
LOCAL_SAFE=local-summary.env|L7|WINDOWS_PINNED_SPB_PROBE_RC=0
|
||||
LOCAL_SAFE=local-summary.env|L8|WINDOWS_EDGEADMIN_MATCH=false
|
||||
LOCAL_SAFE=local-summary.env|L9|WINDOWS_DPAPI_DECRYPTABLE_COUNT=1
|
||||
LOCAL_SAFE=local-summary.env|L10|LOCAL_PREFLIGHT_STATUS=FAIL
|
||||
LOCAL_SAFE=local-summary.env|L11|LOCAL_PREFLIGHT_END=true
|
||||
LOCAL_ARTIFACT=status.txt|PRESENT=false
|
||||
LOCAL_ARTIFACT=stdout.txt|PRESENT=false
|
||||
LOCAL_ARTIFACT=stderr.txt|PRESENT=false
|
||||
LOCAL_ARTIFACT=preflight.ps1|PRESENT=true
|
||||
LOCAL_ARTIFACT_META=preflight.ps1|SIZE=5509|SHA16=ccc6689ad5229a5f
|
||||
LOCAL_ARTIFACT=outer.sh|PRESENT=true
|
||||
LOCAL_ARTIFACT_META=outer.sh|SIZE=24740|SHA16=1444bb7fae636e67
|
||||
TARGET_LEDGER_MATCH_COUNT=0
|
||||
TARGET_LOCAL_FILE_COUNT=0
|
||||
TARGET_PROCESS_COUNT=0
|
||||
TARGET_RUN_FILE_COUNT=1
|
||||
TARGET_JOURNAL_MATCH_COUNT=0
|
||||
VM130_QGA_TRANSPORT_RC=0
|
||||
VM130_QGA_STDERR_SHA16=e3b0c44298fc1c14
|
||||
VM130_QGA_EXITCODE=0
|
||||
VM130_GUEST_STDERR_SHA16=e3b0c44298fc1c14
|
||||
RECOVERY9188_VM130={"bridge_root_exists":false,"certs":{"git-read.gram1.ru":{"checkend48h":false,"checkhost":false,"dir_exists":false,"fullchain_exists":false,"privkey_exists":false,"spki_match":false},"www.hbarhub.ru":{"checkend48h":false,"checkhost":false,"dir_exists":false,"fullchain_exists":false,"privkey_exists":false,"spki_match":false},"www.newfilya.ru":{"checkend48h":false,"checkhost":false,"dir_exists":false,"fullchain_exists":false,"privkey_exists":false,"spki_match":false}},"classification":"CLEAN_BASELINE","configs":{"991201.conf":{"exists":false},"991202.conf":{"exists":false},"991203.conf":{"exists":false}},"https":{"git-read.gram1.ru":{"code":"000","rc":60,"stderr_sha16":"6039978cbf174c90"},"www.hbarhub.ru":{"code":"000","rc":60,"stderr_sha16":"6039978cbf174c90"},"www.newfilya.ru":{"code":"000","rc":60,"stderr_sha16":"6039978cbf174c90"}},"nginx_test":{"rc":0,"stderr_sha16":"9cb221b6993277a1"},"npm_root_exists":true,"npmplus":{"data_mount_exact":true,"health":"healthy","inspect_rc":0,"running":true},"proxy_root_exists":true,"uid":0}
|
||||
ACTUAL_VM130_CLASSIFICATION=CLEAN_BASELINE
|
||||
RECOVERY9190_COMPLETE=true
|
||||
CHANGES_MADE=NO
|
||||
TASK_COMPLETE=true
|
||||
TASK_RESULT=PASS_SPB_TLS_BRIDGE_9189_LOCAL_CARRIER_RCA
|
||||
DECISION=READ_EXACT_9190_AND_FIX_ONLY_PROVEN_9189_LOCAL_STAGE
|
||||
NEXT_GATE=EXACT_9190_LOCAL_ERROR_AND_VM130_CLASSIFICATION
|
||||
HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260923-SPB-TLS-BRIDGE-9189-LOCAL-CARRIER-RCA-9190R1","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null}
|
||||
SKLADCHIK944_BEGIN=true
|
||||
COMMAND_ID=SUPPORT-260923-SKLADCHIK-CURRENT-EDGE-UPDATER-SOURCE-944R1
|
||||
MODE=read-only
|
||||
COMPONENT=skladchik-current-edge-updater-source
|
||||
PREDECESSOR_943=STALE_MIGRATION_PREFLIGHT_EXPECTS_ORIGINAL_SHA
|
||||
MUTATION_BOUNDARY=NONE_READ_ONLY
|
||||
VERSIONED_EDGE_BEGIN
|
||||
VERSIONED_EDGE_PATH_BASENAME=skladchik-reports-monitor-cookie-update-edge
|
||||
VERSIONED_EDGE_PRESENT=true
|
||||
VERSIONED_EDGE_SHA256=10fe854274dca1a053cfd8c0155340bd689bf3f6555c70dbc14b890cbafb93fa
|
||||
VERSIONED_EDGE_BYTES=5247
|
||||
VERSIONED_EDGE_LINES=178
|
||||
VERSIONED_EDGE_LINE_0001=#!/usr/bin/env bash
|
||||
VERSIONED_EDGE_LINE_0002=set -Eeuo pipefail
|
||||
VERSIONED_EDGE_LINE_0003=umask 077
|
||||
VERSIONED_EDGE_LINE_0004=
|
||||
VERSIONED_EDGE_LINE_0005=SECRETS=/etc/skladchik-reports-monitor/secrets.env
|
||||
VERSIONED_EDGE_LINE_0006=MONITOR=/opt/skladchik-reports-monitor/monitor.py
|
||||
VERSIONED_EDGE_LINE_0007=COOKIE_JAR=/var/lib/skladchik-reports-monitor/cookies.jar
|
||||
VERSIONED_EDGE_LINE_0008=HEALTH=/var/lib/skladchik-reports-monitor/health.txt
|
||||
VERSIONED_EDGE_LINE_0009=OUTPUT=/tmp/skladchik-cookie-update-monitor.out
|
||||
VERSIONED_EDGE_LINE_0010=TIMER=skladchik-reports-monitor.timer
|
||||
VERSIONED_EDGE_LINE_0011=SERVICE=skladchik-reports-monitor.service
|
||||
VERSIONED_EDGE_LINE_0012=
|
||||
VERSIONED_EDGE_LINE_0013=TMP="$(mktemp)"
|
||||
VERSIONED_EDGE_LINE_0014=NO_COOKIE_SECRET="$(mktemp)"
|
||||
VERSIONED_EDGE_LINE_0015=SECRETS_BACKUP=""
|
||||
VERSIONED_EDGE_LINE_0016=JAR_BACKUP=""
|
||||
VERSIONED_EDGE_LINE_0017=JAR_EXISTED=0
|
||||
VERSIONED_EDGE_LINE_0018=AUTH_MUTATED=0
|
||||
VERSIONED_EDGE_LINE_0019=FINALIZED=0
|
||||
VERSIONED_EDGE_LINE_0020=
|
||||
VERSIONED_EDGE_LINE_0021=TIMER_WAS_ENABLED="$(systemctl is-enabled "$TIMER" 2>/dev/null || true)"
|
||||
VERSIONED_EDGE_LINE_0022=TIMER_WAS_ACTIVE="$(systemctl is-active "$TIMER" 2>/dev/null || true)"
|
||||
VERSIONED_EDGE_LINE_0023=
|
||||
VERSIONED_EDGE_LINE_0024=on_err(){
|
||||
VERSIONED_EDGE_LINE_0025= local rc=$?
|
||||
VERSIONED_EDGE_LINE_0026= trap - ERR
|
||||
VERSIONED_EDGE_LINE_0027= printf 'ROOT_CAUSE=UNEXPECTED_COOKIE_UPDATE_ERROR\nROOT_CAUSE_COUNT=1\nDETAIL=line=%s rc=%s\n' "${1:-0}" "$rc"
|
||||
VERSIONED_EDGE_LINE_0028= exit "$rc"
|
||||
VERSIONED_EDGE_LINE_0029=}
|
||||
VERSIONED_EDGE_LINE_0030=
|
||||
VERSIONED_EDGE_LINE_0031=restore_timer_state(){
|
||||
VERSIONED_EDGE_LINE_0032= systemctl stop "$TIMER" >/dev/null 2>&1 || true
|
||||
VERSIONED_EDGE_LINE_0033= if [ "$TIMER_WAS_ENABLED" = enabled ]; then
|
||||
VERSIONED_EDGE_LINE_0034= systemctl enable "$TIMER" >/dev/null 2>&1 || true
|
||||
VERSIONED_EDGE_LINE_0035= else
|
||||
VERSIONED_EDGE_LINE_0036= systemctl disable "$TIMER" >/dev/null 2>&1 || true
|
||||
VERSIONED_EDGE_LINE_0037= fi
|
||||
VERSIONED_EDGE_LINE_0038= if [ "$TIMER_WAS_ACTIVE" = active ]; then
|
||||
VERSIONED_EDGE_LINE_0039= systemctl start "$TIMER" >/dev/null 2>&1 || true
|
||||
VERSIONED_EDGE_LINE_0040= fi
|
||||
VERSIONED_EDGE_LINE_0041=}
|
||||
VERSIONED_EDGE_LINE_0042=
|
||||
VERSIONED_EDGE_LINE_0043=restore_auth_state(){
|
||||
VERSIONED_EDGE_LINE_0044= if [ "$AUTH_MUTATED" -eq 1 ]; then
|
||||
VERSIONED_EDGE_LINE_0045= if [ -n "$SECRETS_BACKUP" ] && [ -s "$SECRETS_BACKUP" ]; then
|
||||
VERSIONED_EDGE_LINE_0046= install -m 0600 -o root -g root "$SECRETS_BACKUP" "$SECRETS"
|
||||
VERSIONED_EDGE_LINE_0047= fi
|
||||
VERSIONED_EDGE_LINE_0048= if [ "$JAR_EXISTED" -eq 1 ] && [ -n "$JAR_BACKUP" ] && [ -s "$JAR_BACKUP" ]; then
|
||||
VERSIONED_EDGE_LINE_0049= install -m 0600 -o root -g root "$JAR_BACKUP" "$COOKIE_JAR"
|
||||
VERSIONED_EDGE_LINE_0050= else
|
||||
VERSIONED_EDGE_LINE_0051= rm -f "$COOKIE_JAR"
|
||||
VERSIONED_EDGE_LINE_0052= fi
|
||||
VERSIONED_EDGE_LINE_0053= AUTH_MUTATED=0
|
||||
VERSIONED_EDGE_LINE_0054= fi
|
||||
VERSIONED_EDGE_LINE_0055=}
|
||||
VERSIONED_EDGE_LINE_0056=
|
||||
VERSIONED_EDGE_LINE_0057=cleanup(){
|
||||
VERSIONED_EDGE_LINE_0058= local rc=$?
|
||||
VERSIONED_EDGE_LINE_0059= trap - ERR
|
||||
VERSIONED_EDGE_LINE_0060= trap - EXIT INT TERM HUP
|
||||
VERSIONED_EDGE_LINE_0061= set +e
|
||||
VERSIONED_EDGE_LINE_0062= if [ "$FINALIZED" -ne 1 ]; then
|
||||
VERSIONED_EDGE_LINE_0063= restore_auth_state
|
||||
VERSIONED_EDGE_LINE_0064= restore_timer_state
|
||||
VERSIONED_EDGE_LINE_0065= fi
|
||||
VERSIONED_EDGE_LINE_0066= rm -f "$TMP" "$NO_COOKIE_SECRET"
|
||||
VERSIONED_EDGE_LINE_0067= [ -z "$SECRETS_BACKUP" ] || rm -f "$SECRETS_BACKUP"
|
||||
VERSIONED_EDGE_LINE_0068= [ -z "$JAR_BACKUP" ] || rm -f "$JAR_BACKUP"
|
||||
VERSIONED_EDGE_LINE_0069= exit "$rc"
|
||||
VERSIONED_EDGE_LINE_0070=}
|
||||
VERSIONED_EDGE_LINE_0071=
|
||||
VERSIONED_EDGE_LINE_0072=trap 'on_err "$LINENO"' ERR
|
||||
VERSIONED_EDGE_LINE_0073=trap cleanup EXIT
|
||||
VERSIONED_EDGE_LINE_0074=trap 'exit 130' INT
|
||||
VERSIONED_EDGE_LINE_0075=trap 'exit 143' TERM
|
||||
VERSIONED_EDGE_LINE_0076=trap 'exit 129' HUP
|
||||
VERSIONED_EDGE_LINE_0077=
|
||||
VERSIONED_EDGE_LINE_0078=systemctl stop "$TIMER"
|
||||
VERSIONED_EDGE_LINE_0079=
|
||||
VERSIONED_EDGE_LINE_0080=WAIT_SECONDS=90
|
||||
VERSIONED_EDGE_LINE_0081=DEADLINE=$((SECONDS + WAIT_SECONDS))
|
||||
VERSIONED_EDGE_LINE_0082=while systemctl is-active --quiet "$SERVICE" || pgrep -f '/opt/skladchik-reports-monitor/monitor.py' >/dev/null; do
|
||||
VERSIONED_EDGE_LINE_0083= if (( SECONDS >= DEADLINE )); then
|
||||
VERSIONED_EDGE_LINE_0084= restore_timer_state
|
||||
VERSIONED_EDGE_LINE_0085= FINALIZED=1
|
||||
VERSIONED_EDGE_LINE_0086= printf 'MONITOR_QUIESCENCE_TIMEOUT\n'
|
||||
VERSIONED_EDGE_LINE_0087= exit 75
|
||||
VERSIONED_EDGE_LINE_0088= fi
|
||||
VERSIONED_EDGE_LINE_0089= sleep 2
|
||||
VERSIONED_EDGE_LINE_0090=done
|
||||
VERSIONED_EDGE_LINE_0091=
|
||||
VERSIONED_EDGE_LINE_0092=printf "Вставь полный новый Cookie header для skladchik.org без слова Cookie: и нажми Enter:\n"
|
||||
VERSIONED_EDGE_LINE_0093=IFS= read -r -s NEW_COOKIE
|
||||
VERSIONED_EDGE_LINE_0094=printf '\n'
|
||||
VERSIONED_EDGE_LINE_0095=if [ -z "$NEW_COOKIE" ]; then
|
||||
VERSIONED_EDGE_LINE_0096= printf 'COOKIE_EMPTY\n'
|
||||
VERSIONED_EDGE_LINE_0097= exit 1
|
||||
VERSIONED_EDGE_LINE_0098=fi
|
||||
VERSIONED_EDGE_LINE_0099=case "$NEW_COOKIE" in
|
||||
VERSIONED_EDGE_LINE_0100= *$'\r'*|*$'\n'*)
|
||||
VERSIONED_EDGE_LINE_0101= printf 'COOKIE_INVALID_LINE_BREAK\n'
|
||||
VERSIONED_EDGE_LINE_0102= exit 64
|
||||
VERSIONED_EDGE_LINE_0103= ;;
|
||||
VERSIONED_EDGE_LINE_0104=esac
|
||||
VERSIONED_EDGE_LINE_0105=
|
||||
VERSIONED_EDGE_LINE_0106=SECRETS_BACKUP="$(mktemp /etc/skladchik-reports-monitor/.secrets.env.rollback.XXXXXX)"
|
||||
VERSIONED_EDGE_LINE_0107=cp -a "$SECRETS" "$SECRETS_BACKUP"
|
||||
VERSIONED_EDGE_LINE_0108=
|
||||
VERSIONED_EDGE_LINE_0109=if [ -s "$COOKIE_JAR" ]; then
|
||||
VERSIONED_EDGE_LINE_0110= JAR_BACKUP="$(mktemp /var/lib/skladchik-reports-monitor/.cookies.jar.rollback.XXXXXX)"
|
||||
VERSIONED_EDGE_LINE_0111= cp -a "$COOKIE_JAR" "$JAR_BACKUP"
|
||||
VERSIONED_EDGE_LINE_0112= JAR_EXISTED=1
|
||||
VERSIONED_EDGE_LINE_0113=fi
|
||||
VERSIONED_EDGE_LINE_0114=AUTH_MUTATED=1
|
||||
VERSIONED_EDGE_LINE_0115=
|
||||
VERSIONED_EDGE_LINE_0116=awk '!/^SKLADCHIK_COOKIE=/' "$SECRETS" >"$TMP"
|
||||
VERSIONED_EDGE_LINE_0117=printf 'SKLADCHIK_COOKIE=%s\n' "$NEW_COOKIE" >>"$TMP"
|
||||
VERSIONED_EDGE_LINE_0118=install -m 0600 -o root -g root "$TMP" "$SECRETS"
|
||||
VERSIONED_EDGE_LINE_0119=
|
||||
VERSIONED_EDGE_LINE_0120=# The monitor prefers a non-empty cookie jar over SKLADCHIK_COOKIE.
|
||||
VERSIONED_EDGE_LINE_0121=# Removing the stale jar forces the first probe to use the newly entered Cookie header.
|
||||
VERSIONED_EDGE_LINE_0122=rm -f "$COOKIE_JAR"
|
||||
VERSIONED_EDGE_LINE_0123=: >"$OUTPUT"
|
||||
VERSIONED_EDGE_LINE_0124=
|
||||
VERSIONED_EDGE_LINE_0125=set +e
|
||||
VERSIONED_EDGE_LINE_0126=python3 "$MONITOR" run >>"$OUTPUT" 2>&1
|
||||
VERSIONED_EDGE_LINE_0127=FIRST_RUN_RC=$?
|
||||
VERSIONED_EDGE_LINE_0128=set -e
|
||||
VERSIONED_EDGE_LINE_0129=FIRST_RUN_STATUS="$(awk -F= '$1=="STATUS"{print $2;exit}' "$HEALTH" 2>/dev/null || true)"
|
||||
VERSIONED_EDGE_LINE_0130=
|
||||
VERSIONED_EDGE_LINE_0131=SECOND_RUN_RC=1
|
||||
VERSIONED_EDGE_LINE_0132=SECOND_RUN_STATUS=NOT_RUN
|
||||
VERSIONED_EDGE_LINE_0133=if [ "$FIRST_RUN_RC" -eq 0 ] && [ "$FIRST_RUN_STATUS" = OK ] && [ -s "$COOKIE_JAR" ]; then
|
||||
VERSIONED_EDGE_LINE_0134= # Prove unattended persistence: temporarily remove the header secret, then run only from the new jar.
|
||||
VERSIONED_EDGE_LINE_0135= awk '!/^SKLADCHIK_COOKIE=/' "$TMP" >"$NO_COOKIE_SECRET"
|
||||
VERSIONED_EDGE_LINE_0136= install -m 0600 -o root -g root "$NO_COOKIE_SECRET" "$SECRETS"
|
||||
VERSIONED_EDGE_LINE_0137= set +e
|
||||
VERSIONED_EDGE_LINE_0138= python3 "$MONITOR" run >>"$OUTPUT" 2>&1
|
||||
VERSIONED_EDGE_LINE_0139= SECOND_RUN_RC=$?
|
||||
VERSIONED_EDGE_LINE_0140= set -e
|
||||
VERSIONED_EDGE_LINE_0141= SECOND_RUN_STATUS="$(awk -F= '$1=="STATUS"{print $2;exit}' "$HEALTH" 2>/dev/null || true)"
|
||||
VERSIONED_EDGE_LINE_0142= install -m 0600 -o root -g root "$TMP" "$SECRETS"
|
||||
VERSIONED_EDGE_LINE_0143=fi
|
||||
VERSIONED_EDGE_LINE_0144=
|
||||
VERSIONED_EDGE_LINE_0145=if [ "$FIRST_RUN_RC" -ne 0 ] || [ "$FIRST_RUN_STATUS" != OK ] || [ ! -s "$COOKIE_JAR" ] || [ "$SECOND_RUN_RC" -ne 0 ] || [ "$SECOND_RUN_STATUS" != OK ]; then
|
||||
VERSIONED_EDGE_LINE_0146= restore_auth_state
|
||||
VERSIONED_EDGE_LINE_0147= restore_timer_state
|
||||
VERSIONED_EDGE_LINE_0148= FINALIZED=1
|
||||
VERSIONED_EDGE_LINE_0149= printf 'COOKIE_UPDATE_FAILED_ROLLED_BACK\n'
|
||||
VERSIONED_EDGE_LINE_0150= printf 'FIRST_RUN_RC=%s\nFIRST_RUN_STATUS=%s\n' "$FIRST_RUN_RC" "$FIRST_RUN_STATUS"
|
||||
VERSIONED_EDGE_LINE_0151= printf 'SECOND_JAR_ONLY_RUN_RC=%s\nSECOND_JAR_ONLY_RUN_STATUS=%s\n' "$SECOND_RUN_RC" "$SECOND_RUN_STATUS"
|
||||
VERSIONED_EDGE_LINE_0152= printf 'HEALTH_BEGIN\n'
|
||||
VERSIONED_EDGE_LINE_0153= cat "$HEALTH" 2>/dev/null || true
|
||||
VERSIONED_EDGE_LINE_0154= printf 'HEALTH_END\n'
|
||||
VERSIONED_EDGE_LINE_0155= printf 'MONITOR_OUTPUT_TAIL\n'
|
||||
VERSIONED_EDGE_LINE_0156= tail -n 40 "$OUTPUT" 2>/dev/null || true
|
||||
VERSIONED_EDGE_LINE_0157= exit 1
|
||||
VERSIONED_EDGE_LINE_0158=fi
|
||||
VERSIONED_EDGE_LINE_0159=
|
||||
VERSIONED_EDGE_LINE_0160=AUTH_MUTATED=0
|
||||
VERSIONED_EDGE_LINE_0161=rm -f "$SECRETS_BACKUP"
|
||||
VERSIONED_EDGE_LINE_0162=SECRETS_BACKUP=""
|
||||
VERSIONED_EDGE_LINE_0163=if [ -n "$JAR_BACKUP" ]; then
|
||||
VERSIONED_EDGE_LINE_0164= rm -f "$JAR_BACKUP"
|
||||
VERSIONED_EDGE_LINE_0165= JAR_BACKUP=""
|
||||
VERSIONED_EDGE_LINE_0166=fi
|
||||
VERSIONED_EDGE_LINE_0167=
|
||||
VERSIONED_EDGE_LINE_0168=systemctl reset-failed "$SERVICE" "$TIMER" >/dev/null 2>&1 || true
|
||||
VERSIONED_EDGE_LINE_0169=systemctl enable --now skladchik-reports-monitor.timer >/dev/null 2>&1 || true
|
||||
VERSIONED_EDGE_LINE_0170=FINALIZED=1
|
||||
VERSIONED_EDGE_LINE_0171=echo "COOKIE_UPDATE_OK"
|
||||
VERSIONED_EDGE_LINE_0172=echo "FRESH_COOKIE_FORCED=YES"
|
||||
VERSIONED_EDGE_LINE_0173=echo "STALE_COOKIE_JAR_BYPASSED=YES"
|
||||
VERSIONED_EDGE_LINE_0174=echo "SECOND_JAR_ONLY_PERSISTENCE_RUN=OK"
|
||||
VERSIONED_EDGE_LINE_0175=echo "SECRET_PRINTED=NO"
|
||||
VERSIONED_EDGE_LINE_0176=echo "HEALTH_BEGIN"
|
||||
VERSIONED_EDGE_LINE_0177=cat "$HEALTH" 2>/dev/null || true
|
||||
VERSIONED_EDGE_LINE_0178=echo "HEALTH_END"
|
||||
VERSIONED_EDGE_END
|
||||
VERSIONED_WRAPPER_BEGIN
|
||||
VERSIONED_WRAPPER_PATH_BASENAME=skladchik-reports-monitor-cookie-update
|
||||
VERSIONED_WRAPPER_PRESENT=true
|
||||
VERSIONED_WRAPPER_SHA256=ea2d89ce67893a6d89b29610e4d46e207932ecc157173454585f67890f58810c
|
||||
VERSIONED_WRAPPER_BYTES=638
|
||||
VERSIONED_WRAPPER_LINES=16
|
||||
VERSIONED_WRAPPER_LINE_0001=#!/usr/bin/env bash
|
||||
VERSIONED_WRAPPER_LINE_0002=set -Eeuo pipefail
|
||||
VERSIONED_WRAPPER_LINE_0003=export SYSTEMD_PAGER=cat PAGER=cat SYSTEMD_LESS=FRXMK
|
||||
VERSIONED_WRAPPER_LINE_0004=EDGE=debian@[PRIVATE_IP]
|
||||
VERSIONED_WRAPPER_LINE_0005=EDGE_SCRIPT=/usr/local/sbin/skladchik-reports-monitor-cookie-update-edge
|
||||
VERSIONED_WRAPPER_LINE_0006=SSH=(-o BatchMode=yes -o ConnectTimeout=15 -o StrictHostKeyChecking=yes -o UserKnownHostsFile=[SENSITIVE_PATH]
|
||||
VERSIONED_WRAPPER_LINE_0007=printf '\033[93m%s\033[0m\n' 'SKLADCHIK CONTROLLED COOKIE UPDATE'
|
||||
VERSIONED_WRAPPER_LINE_0008=printf 'SAFE_OUTPUT=YES\nSECRET_PRINTED=NO\nSTEP=SKLADCHIK_REPORTS_MONITOR_COOKIE_UPDATE\n'
|
||||
VERSIONED_WRAPPER_LINE_0009=if ssh -tt "${SSH[@]}" "$EDGE" sudo -n "$EDGE_SCRIPT"; then
|
||||
VERSIONED_WRAPPER_LINE_0010= rc=0
|
||||
VERSIONED_WRAPPER_LINE_0011=else
|
||||
VERSIONED_WRAPPER_LINE_0012= rc=$?
|
||||
VERSIONED_WRAPPER_LINE_0013=fi
|
||||
VERSIONED_WRAPPER_LINE_0014=printf 'SSH_COOKIE_UPDATE_RC=%s\n' "$rc"
|
||||
VERSIONED_WRAPPER_LINE_0015=printf '\033[93m%s\033[0m\n' 'END'
|
||||
VERSIONED_WRAPPER_LINE_0016=exit "$rc"
|
||||
VERSIONED_WRAPPER_END
|
||||
LIVE_WRAPPER_BEGIN
|
||||
LIVE_WRAPPER_PATH_BASENAME=skladchik-reports-monitor-cookie-update
|
||||
LIVE_WRAPPER_PRESENT=true
|
||||
LIVE_WRAPPER_SHA256=ea2d89ce67893a6d89b29610e4d46e207932ecc157173454585f67890f58810c
|
||||
LIVE_WRAPPER_BYTES=638
|
||||
LIVE_WRAPPER_LINES=16
|
||||
LIVE_WRAPPER_LINE_0001=#!/usr/bin/env bash
|
||||
LIVE_WRAPPER_LINE_0002=set -Eeuo pipefail
|
||||
LIVE_WRAPPER_LINE_0003=export SYSTEMD_PAGER=cat PAGER=cat SYSTEMD_LESS=FRXMK
|
||||
LIVE_WRAPPER_LINE_0004=EDGE=debian@[PRIVATE_IP]
|
||||
LIVE_WRAPPER_LINE_0005=EDGE_SCRIPT=/usr/local/sbin/skladchik-reports-monitor-cookie-update-edge
|
||||
LIVE_WRAPPER_LINE_0006=SSH=(-o BatchMode=yes -o ConnectTimeout=15 -o StrictHostKeyChecking=yes -o UserKnownHostsFile=[SENSITIVE_PATH]
|
||||
LIVE_WRAPPER_LINE_0007=printf '\033[93m%s\033[0m\n' 'SKLADCHIK CONTROLLED COOKIE UPDATE'
|
||||
LIVE_WRAPPER_LINE_0008=printf 'SAFE_OUTPUT=YES\nSECRET_PRINTED=NO\nSTEP=SKLADCHIK_REPORTS_MONITOR_COOKIE_UPDATE\n'
|
||||
LIVE_WRAPPER_LINE_0009=if ssh -tt "${SSH[@]}" "$EDGE" sudo -n "$EDGE_SCRIPT"; then
|
||||
LIVE_WRAPPER_LINE_0010= rc=0
|
||||
LIVE_WRAPPER_LINE_0011=else
|
||||
LIVE_WRAPPER_LINE_0012= rc=$?
|
||||
LIVE_WRAPPER_LINE_0013=fi
|
||||
LIVE_WRAPPER_LINE_0014=printf 'SSH_COOKIE_UPDATE_RC=%s\n' "$rc"
|
||||
LIVE_WRAPPER_LINE_0015=printf '\033[93m%s\033[0m\n' 'END'
|
||||
LIVE_WRAPPER_LINE_0016=exit "$rc"
|
||||
LIVE_WRAPPER_END
|
||||
SOURCE_RELATION_BEGIN
|
||||
VERSIONED_EDGE_SHA_EXPECTED=10fe854274dca1a053cfd8c0155340bd689bf3f6555c70dbc14b890cbafb93fa
|
||||
VERSIONED_EDGE_SHA_MATCH=true
|
||||
VERSIONED_WRAPPER_SHA_EXPECTED=ea2d89ce67893a6d89b29610e4d46e207932ecc157173454585f67890f58810c
|
||||
VERSIONED_WRAPPER_SHA_MATCH=true
|
||||
LIVE_WRAPPER_EQUALS_VERSIONED=true
|
||||
SOURCE_RELATION_END
|
||||
CHANGES_MADE_BY_944=false
|
||||
ROLLBACK_STARTED=false
|
||||
ROLLBACK_RESTORED=null
|
||||
HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260923-SKLADCHIK-CURRENT-EDGE-UPDATER-SOURCE-944R1","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null}
|
||||
SKLADCHIK944_END=true
|
||||
|
||||
OUTPUT_END
|
||||
CHAT_OUTPUT_END
|
||||
|
||||
Reference in New Issue
Block a user