added helper
This commit is contained in:
Executable
+84
@@ -0,0 +1,84 @@
|
||||
#!/usr/bin/env bash
|
||||
# test-helper.sh — Test de podman-helper direct op de host
|
||||
# Gebruik: ./test-helper.sh <unit> (standaard: test-web.service)
|
||||
set -euo pipefail
|
||||
|
||||
UNIT="${1:-test-web.service}"
|
||||
SOCKET="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}/podman-helper.sock"
|
||||
|
||||
GREEN='\033[0;32m'; RED='\033[0;31m'; NC='\033[0m'
|
||||
ok() { echo -e "${GREEN}✓${NC} $*"; }
|
||||
fail() { echo -e "${RED}✗${NC} $*"; }
|
||||
|
||||
send() {
|
||||
local action="$1"
|
||||
local result
|
||||
result=$(echo "{\"action\": \"$action\", \"unit\": \"$UNIT\"}" | \
|
||||
socat - UNIX-CONNECT:"$SOCKET" 2>/dev/null)
|
||||
echo "$result"
|
||||
}
|
||||
|
||||
echo "Socket: $SOCKET"
|
||||
echo "Unit: $UNIT"
|
||||
echo ""
|
||||
|
||||
# Check socat
|
||||
command -v socat &>/dev/null || { echo "socat niet gevonden — installeer: sudo apt install socat"; exit 1; }
|
||||
|
||||
# Check socket
|
||||
[[ -S "$SOCKET" ]] || { fail "Socket niet gevonden. Is podman-helper.service actief?"; exit 1; }
|
||||
|
||||
# ── Test 1: stop ──────────────────────────────────────────────────────────────
|
||||
echo "Test 1: stop"
|
||||
systemctl --user start "$UNIT" 2>/dev/null || true
|
||||
sleep 2
|
||||
RESULT=$(send "stop")
|
||||
echo " Response: $RESULT"
|
||||
sleep 5
|
||||
STATE=$(systemctl --user is-active "$UNIT" 2>/dev/null || true)
|
||||
echo " State na stop: $STATE"
|
||||
[[ "$STATE" == "inactive" ]] && ok "Stop werkt" || fail "Stop mislukt (state: $STATE)"
|
||||
echo ""
|
||||
|
||||
# ── Test 2: start ─────────────────────────────────────────────────────────────
|
||||
echo "Test 2: start"
|
||||
RESULT=$(send "start")
|
||||
echo " Response: $RESULT"
|
||||
sleep 5
|
||||
STATE=$(systemctl --user is-active "$UNIT" 2>/dev/null || true)
|
||||
echo " State na start: $STATE"
|
||||
[[ "$STATE" == "active" ]] && ok "Start werkt" || fail "Start mislukt (state: $STATE)"
|
||||
echo ""
|
||||
|
||||
# ── Test 3: restart ───────────────────────────────────────────────────────────
|
||||
echo "Test 3: restart"
|
||||
RESULT=$(send "restart")
|
||||
echo " Response: $RESULT"
|
||||
sleep 5
|
||||
STATE=$(systemctl --user is-active "$UNIT" 2>/dev/null || true)
|
||||
echo " State na restart: $STATE"
|
||||
[[ "$STATE" == "active" ]] && ok "Restart werkt" || fail "Restart mislukt (state: $STATE)"
|
||||
echo ""
|
||||
|
||||
# ── Test 4: ongeldige actie (whitelist check) ─────────────────────────────────
|
||||
echo "Test 4: ongeldige actie (whitelist)"
|
||||
RESULT=$(echo '{"action": "kill", "unit": "'"$UNIT"'"}' | \
|
||||
socat - UNIX-CONNECT:"$SOCKET" 2>/dev/null)
|
||||
echo " Response: $RESULT"
|
||||
echo "$RESULT" | grep -q '"ok": false' && ok "Whitelist werkt" || fail "Whitelist werkt NIET"
|
||||
echo ""
|
||||
|
||||
# ── Test 5: gelijktijdige aanvragen ───────────────────────────────────────────
|
||||
echo "Test 5: gelijktijdig (5 status aanvragen)"
|
||||
for i in {1..5}; do
|
||||
echo '{"action": "restart", "unit": "'"$UNIT"'"}' | \
|
||||
socat - UNIX-CONNECT:"$SOCKET" 2>/dev/null &
|
||||
done
|
||||
wait
|
||||
sleep 5
|
||||
STATE=$(systemctl --user is-active "$UNIT" 2>/dev/null || true)
|
||||
echo " State na gelijktijdige aanvragen: $STATE"
|
||||
[[ "$STATE" == "active" ]] && ok "Gelijktijdig werkt" || fail "Gelijktijdig mislukt (state: $STATE)"
|
||||
echo ""
|
||||
|
||||
echo "Tests klaar."
|
||||
Reference in New Issue
Block a user