Files
Sankofa/infrastructure/omada/scripts/discover-aps.sh

75 lines
1.6 KiB
Bash
Raw Normal View History

#!/bin/bash
set -euo pipefail
# Discover Access Points Script
CONTROLLER="${OMADA_CONTROLLER:-}"
ADMIN_USER="${OMADA_ADMIN:-admin}"
ADMIN_PASSWORD="${OMADA_PASSWORD:-}"
SITE_ID="${SITE_ID:-}"
log() {
echo "[$(date +'%Y-%m-%d %H:%M:%S')] $*" >&2
}
error() {
log "ERROR: $*"
exit 1
}
check_prerequisites() {
if [ -z "${CONTROLLER}" ]; then
error "OMADA_CONTROLLER environment variable is required"
fi
if [ -z "${ADMIN_PASSWORD}" ]; then
error "OMADA_PASSWORD environment variable is required"
fi
}
authenticate() {
log "Authenticating with Omada Controller..."
TOKEN_RESPONSE=$(curl -k -s -X POST "https://${CONTROLLER}:8043/api/v2/login" \
-H "Content-Type: application/json" \
-d "{\"username\":\"${ADMIN_USER}\",\"password\":\"${ADMIN_PASSWORD}\"}")
TOKEN=$(echo "${TOKEN_RESPONSE}" | grep -o '"token":"[^"]*' | cut -d'"' -f4)
if [ -z "${TOKEN}" ]; then
error "Authentication failed"
fi
echo "${TOKEN}"
}
discover_aps() {
TOKEN=$1
if [ -n "${SITE_ID}" ]; then
ENDPOINT="/api/v2/sites/${SITE_ID}/access-points"
else
ENDPOINT="/api/v2/access-points"
fi
log "Discovering access points..."
RESPONSE=$(curl -k -s -X GET "https://${CONTROLLER}:8043${ENDPOINT}" \
-H "Authorization: Bearer ${TOKEN}")
echo "${RESPONSE}" | python3 -m json.tool 2>/dev/null || echo "${RESPONSE}"
}
main() {
log "Starting access point discovery..."
check_prerequisites
TOKEN=$(authenticate)
discover_aps "${TOKEN}"
log "Discovery completed!"
}
main "$@"