feat: add --pull-only to conf_sync, wire into intermediate orchestrator

Partner conf cache (/tmp/.vv/) was only refreshed at array start. If a partner
updated their conf mid-day, this host's RAM cache went stale until next reboot.
Intermediate orchestrator now pulls partner confs every 4 hours as step 1.

conf_sync.sh --pull-only: pulls partner confs into local cache, skips push
(push is already handled by conf_populate.sh --push-only on conf save).
This commit is contained in:
Gmer4Lfe
2026-06-05 19:44:10 -04:00
parent f9fe13bdc1
commit c441ac443a
2 changed files with 36 additions and 4 deletions
+26 -3
View File
@@ -6,9 +6,10 @@
# Schedule: 0 */4 * * * (every 4 hours)
#
# ── EXECUTION ORDER ───────────────────────────────────────────────────────────────────────────
# 1. arr_sync.sh — sync Lidarr/Sonarr/Radarr libraries across all nodes
# 2. Rsync window (optional) — INTERMEDIATE_SYNC_SHARES, if any configured
# 3. INTERMEDIATE_MAINTENANCE_SCRIPTS — artwork fetch and any future 4-hour jobs
# 1. conf_sync.sh --pull-only — refresh partner conf cache in RAM (/tmp/.vv/)
# 2. arr_sync.sh — sync Lidarr/Sonarr/Radarr libraries across all nodes
# 3. Rsync window (optional) — INTERMEDIATE_SYNC_SHARES, if any configured
# 4. INTERMEDIATE_MAINTENANCE_SCRIPTS — artwork fetch and any future 4-hour jobs
#
# ── WHY A SEPARATE ORCHESTRATOR ───────────────────────────────────────────────────────────────
# arr libraries need to converge more frequently than once a day. If a remote node adds
@@ -154,6 +155,28 @@ SHARE_TIMES=()
echo ""
echo "━━━ $ICON_GEAR Intermediate Sync — $MY_ID$(date '+%Y-%m-%d %H:%M:%S') ━━━"
# ==============================================================================================
# ━━━ Conf Pull ━━━
# ==============================================================================================
echo ""
echo "━━━ $ICON_GEAR Conf Pull ━━━"
CONF_SYNC_SCRIPT="$SCRIPTS_ROOT/System_Essentials/conf_sync.sh"
if [[ ! -f "$CONF_SYNC_SCRIPT" ]]; then
warn "conf_sync.sh not found — skipping partner conf refresh"
else
_conf_args=("--pull-only")
[[ "$DRY_RUN" == true ]] && _conf_args+=("--dry-run")
if bash "$CONF_SYNC_SCRIPT" "${_conf_args[@]}"; then
log "Partner conf cache refreshed ✅"
JOB_PASS+=("conf_sync.sh --pull-only")
else
warn "Partner conf pull failed — cache may be stale"
JOB_FAIL+=("conf_sync.sh --pull-only")
fi
unset _conf_args
fi
# ==============================================================================================
# ━━━ Arr Sync ━━━
# ==============================================================================================