Files
cc/app/test/test.sh
Oliver c18187f407 fixes
2025-08-16 07:37:53 +02:00

142 lines
3.2 KiB
Bash

#!/bin/bash
#
# test_api.sh — cURL test suite for Container Management API
#
# ========= CONFIG =========
API_KEY="your-secret-api-key"
BASE_URL="http://localhost:8888"
CONTAINER_ID="123e4567-e89b-12d3-a456-426614174000" # sample UUID
# ==========================
# --- Functions for each endpoint ---
root_redirect() {
curl -i "$BASE_URL/"
}
update_container() {
curl -X POST "$BASE_URL/container/update" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{
"UUID": "'"$CONTAINER_ID"'",
"email": "user@example.com",
"expires": "2025-12-31",
"status": "active",
"created": "2025-08-16"
}'
}
start_container() {
curl -X POST "$BASE_URL/container/start" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{ "container_id": "'"$CONTAINER_ID"'" }'
}
stop_container() {
curl -X POST "$BASE_URL/container/stop" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{ "container_id": "'"$CONTAINER_ID"'" }'
}
nuke_container() {
curl -X POST "$BASE_URL/container/nuke" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{ "container_id": "'"$CONTAINER_ID"'" }'
}
info_all() {
curl -X POST "$BASE_URL/container/info" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{}'
}
info_one() {
curl -X POST "$BASE_URL/container/info" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{ "container_id": "'"$CONTAINER_ID"'" }'
}
bump_container() {
curl -X POST "$BASE_URL/container/bump" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{ "container_id": "'"$CONTAINER_ID"'" }'
}
container_quota() {
curl -X POST "$BASE_URL/container/quota" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{ "container_id": "'"$CONTAINER_ID"'" }'
}
system_containers() {
curl -X GET "$BASE_URL/system/containers" \
-H "X-API-Key: $API_KEY"
}
system_images() {
curl -X GET "$BASE_URL/system/images" \
-H "X-API-Key: $API_KEY"
}
system_info() {
curl -X GET "$BASE_URL/system/info" \
-H "X-API-Key: $API_KEY"
}
system_pull() {
curl -X POST "$BASE_URL/system/pull" \
-H "X-API-Key: $API_KEY"
}
# --- Help message ---
show_help() {
cat <<EOF
Usage: $0 <command>
Available commands:
root_redirect - Test root redirect
update_container - Create or update container
start_container - Start container
stop_container - Stop container
nuke_container - Nuke container (status must be "nuke")
info_all - Get info for all containers
info_one - Get info for one container
bump_container - Bump container
container_quota - Show container quota
system_containers - List running containers
system_images - List docker images
system_info - Show system information
system_pull - Pull all container images
Examples:
$0 update_container
$0 system_info
EOF
}
# --- Main ---
if [ $# -eq 0 ] || [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
show_help
exit 0
fi
cmd="$1"
shift
if declare -f "$cmd" >/dev/null 2>&1; then
"$cmd" "$@"
else
echo "Unknown command: $cmd"
show_help
exit 1
fi