textmachine/platform/docs/p8-review/axis2-auth/session-clocks-probe.sh

23 lines
962 B
Bash
Executable file

#!/usr/bin/env bash
# Probes the two session clocks of a LIVE tmplatformd.
# Requires the daemon started with short TTLs, e.g. TM_PLATFORM_SESSION_IDLE=8s TM_PLATFORM_SESSION_MAX_AGE=20s
# Usage: session-clocks-probe.sh <base-url> <cookie-name> <seconds-to-run> <poll-interval>
set -u
BASE=${1:-http://127.0.0.1:8102}
NAME=${2:-__Host-tm_session}
DUR=${3:-30}
STEP=${4:-2}
JAR=$(mktemp)
TOK=$(curl -s --noproxy '*' -i -X POST "$BASE/auth/dev-login" | awk -v n="$NAME" 'BEGIN{IGNORECASE=0} /^Set-Cookie:/ {print}' | sed -n "s/^Set-Cookie: ${NAME}=\([^;]*\).*/\1/p")
echo "token=${TOK:0:12}... (len ${#TOK})"
START=$(date +%s)
while :; do
NOW=$(date +%s); EL=$((NOW-START))
[ "$EL" -gt "$DUR" ] && break
OUT=$(curl -s --noproxy '*' -i -H "Cookie: ${NAME}=${TOK}" "$BASE/v0/books")
CODE=$(printf '%s' "$OUT" | head -1)
SC=$(printf '%s' "$OUT" | sed -n 's/^Set-Cookie: //p')
echo "t+${EL}s ${CODE} set-cookie=[${SC}]"
sleep "$STEP"
done
rm -f "$JAR"