Fallback echo/log audit pass — fallback.sh, fallback_test.sh + Manual

Remove setup banners from fallback.sh and fallback_test.sh. Add Host Detection
to fallback.sh OPERATIONAL SAFEGUARDS; add Lock Acquisition + Host Detection to
fallback_test.sh. Add output tiers section to Manual-Fallback.md documenting
daemon vs one-shot output behaviour.
This commit is contained in:
Gmer4Lfe
2026-05-21 16:33:36 -04:00
parent 0b992a9054
commit c1c12cbe73
3 changed files with 30 additions and 4 deletions
+18
View File
@@ -568,6 +568,24 @@ If it has happened:
--- ---
## ━━━ OUTPUT TIERS ━━━
Both scripts have two output levels controlled by `--log`.
**fallback.sh** — daemon, runs continuously. Without `--log`, only state transitions,
warnings, errors, and the startup banner are visible. Per-cycle detail (ping results,
state evaluation) is suppressed — the daemon runs every 1530 seconds and clean cycles
produce no output by design. State transitions are always visible because they are the
events that matter. Use `--log` when debugging why the state machine is or is not
acting.
**fallback_test.sh** — one-shot test harness. Without `--log`, phase headers, pass/fail
results, and the final test report are always visible. Per-container checks within each
phase are suppressed. With `--log`, every check in every phase is shown. Warnings and
errors are always visible regardless of `--log`.
---
## ━━━ FLAG REFERENCE ━━━ ## ━━━ FLAG REFERENCE ━━━
### fallback.sh ### fallback.sh
+4 -2
View File
@@ -111,6 +111,10 @@
# acquire_lock() prevents two instances running simultaneously. Both would # acquire_lock() prevents two instances running simultaneously. Both would
# modify containers and DDNS independently — conflict is certain. # modify containers and DDNS independently — conflict is certain.
# #
# Host Detection
# detect_hosts() resolves MY_ID / REMOTE_ID from master.conf at startup.
# Exits if the host cannot be identified — prevents running on an unknown machine.
#
# Silent by Default # Silent by Default
# State transitions: warn() — always visible. Healthy routine cycles: log() # State transitions: warn() — always visible. Healthy routine cycles: log()
# — suppressed unless --log. Produces no output on clean cycles. # — suppressed unless --log. Produces no output on clean cycles.
@@ -246,8 +250,6 @@ fi
# ============================================================================================== # ==============================================================================================
# ━━━ Setup ━━━ # ━━━ Setup ━━━
# ============================================================================================== # ==============================================================================================
echo ""
echo "━━━ $ICON_GEAR Setup ━━━"
if [[ "$EUID" -ne 0 ]]; then if [[ "$EUID" -ne 0 ]]; then
error "Must be run as root" error "Must be run as root"
+8 -2
View File
@@ -60,6 +60,14 @@
# Remote Docker Daemon Check # Remote Docker Daemon Check
# Pre-flight confirms remote Docker daemon is responsive before Phase 2. # Pre-flight confirms remote Docker daemon is responsive before Phase 2.
# #
# Lock Acquisition
# acquire_lock() prevents concurrent test runs. Running two tests simultaneously
# would produce conflicting iptables rules and unreliable results.
#
# Host Detection
# detect_hosts() resolves MY_ID / REMOTE_ID from master.conf at startup.
# Exits if the host cannot be identified — prevents testing on an unknown machine.
#
# ============================================================================================== # ==============================================================================================
# CONFIGURATION # CONFIGURATION
# ============================================================================================== # ==============================================================================================
@@ -134,8 +142,6 @@ trap cleanup EXIT
# ============================================================================================== # ==============================================================================================
# ━━━ Setup ━━━ # ━━━ Setup ━━━
# ============================================================================================== # ==============================================================================================
echo ""
echo "━━━ $ICON_GEAR Setup ━━━"
if [[ "$EUID" -ne 0 ]]; then if [[ "$EUID" -ne 0 ]]; then
error "Must be run as root" error "Must be run as root"