23 lines
962 B
Bash
Executable file
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"
|