Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands - CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround - CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check - NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere - MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates - LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference Co-authored-by: Cursor <cursoragent@cursor.com>
100 lines
3.4 KiB
Bash
Executable File
100 lines
3.4 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
# Check current UDM Pro configuration status
|
|
# Uses Official API to verify configurations
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
|
|
cd "$PROJECT_ROOT"
|
|
|
|
# Load environment variables
|
|
if [ -f ~/.env ]; then
|
|
source <(grep "^UNIFI_" ~/.env | sed 's/^/export /')
|
|
fi
|
|
|
|
UDM_URL="${UNIFI_UDM_URL:-https://192.168.0.1}"
|
|
API_KEY="${UNIFI_API_KEY}"
|
|
|
|
if [ -z "$API_KEY" ]; then
|
|
echo "❌ UNIFI_API_KEY not set in environment"
|
|
exit 1
|
|
fi
|
|
|
|
# Get site ID
|
|
SITE_ID=$(curl -k -s -X GET "$UDM_URL/proxy/network/integration/v1/sites" \
|
|
-H "X-API-KEY: $API_KEY" \
|
|
-H 'Accept: application/json' | python3 -c "import sys, json; data=json.load(sys.stdin); print(data['data'][0]['id'])" 2>/dev/null)
|
|
|
|
if [ -z "$SITE_ID" ]; then
|
|
echo "❌ Failed to get site ID"
|
|
exit 1
|
|
fi
|
|
|
|
echo "UDM Pro Configuration Status Check"
|
|
echo "==================================="
|
|
echo ""
|
|
echo "UDM URL: $UDM_URL"
|
|
echo "Site ID: $SITE_ID"
|
|
echo ""
|
|
|
|
# Check VLANs
|
|
echo "📊 VLAN Configuration:"
|
|
NETWORKS=$(curl -k -s -X GET "$UDM_URL/proxy/network/integration/v1/sites/$SITE_ID/networks" \
|
|
-H "X-API-KEY: $API_KEY" \
|
|
-H 'Accept: application/json')
|
|
|
|
VLAN_COUNT=$(echo "$NETWORKS" | python3 -c "import sys, json; data=json.load(sys.stdin); vlans=[n for n in data.get('data', []) if n.get('vlanId') and n.get('vlanId') > 1]; print(len(vlans))" 2>/dev/null)
|
|
echo " ✅ VLANs configured: $VLAN_COUNT"
|
|
echo ""
|
|
|
|
# Check devices
|
|
echo "🔌 Devices:"
|
|
DEVICES_RESPONSE=$(curl -k -s -X GET "$UDM_URL/proxy/network/integration/v1/sites/$SITE_ID/devices" \
|
|
-H "X-API-KEY: $API_KEY" \
|
|
-H 'Accept: application/json' -w "\n%{http_code}")
|
|
|
|
HTTP_CODE=$(echo "$DEVICES_RESPONSE" | tail -n1)
|
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
DEVICE_COUNT=$(echo "$DEVICES_RESPONSE" | sed '$d' | python3 -c "import sys, json; data=json.load(sys.stdin); print(data.get('count', 0))" 2>/dev/null)
|
|
echo " ✅ Devices endpoint available: $DEVICE_COUNT devices"
|
|
else
|
|
echo " ⚠️ Devices endpoint: HTTP $HTTP_CODE (may not be available)"
|
|
fi
|
|
echo ""
|
|
|
|
# Check clients
|
|
echo "👥 Clients:"
|
|
CLIENTS_RESPONSE=$(curl -k -s -X GET "$UDM_URL/proxy/network/integration/v1/sites/$SITE_ID/clients" \
|
|
-H "X-API-KEY: $API_KEY" \
|
|
-H 'Accept: application/json' -w "\n%{http_code}")
|
|
|
|
HTTP_CODE=$(echo "$CLIENTS_RESPONSE" | tail -n1)
|
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
CLIENT_COUNT=$(echo "$CLIENTS_RESPONSE" | sed '$d' | python3 -c "import sys, json; data=json.load(sys.stdin); print(data.get('count', 0))" 2>/dev/null)
|
|
echo " ✅ Clients endpoint available: $CLIENT_COUNT clients"
|
|
else
|
|
echo " ⚠️ Clients endpoint: HTTP $HTTP_CODE (may not be available)"
|
|
fi
|
|
echo ""
|
|
|
|
# Check firewall rules
|
|
echo "🔥 Firewall Rules:"
|
|
FIREWALL_RESPONSE=$(curl -k -s -X GET "$UDM_URL/proxy/network/integration/v1/sites/$SITE_ID/firewall-rules" \
|
|
-H "X-API-KEY: $API_KEY" \
|
|
-H 'Accept: application/json' -w "\n%{http_code}")
|
|
|
|
HTTP_CODE=$(echo "$FIREWALL_RESPONSE" | tail -n1)
|
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
RULE_COUNT=$(echo "$FIREWALL_RESPONSE" | sed '$d' | python3 -c "import sys, json; data=json.load(sys.stdin); print(data.get('count', 0))" 2>/dev/null)
|
|
echo " ✅ Firewall rules endpoint available: $RULE_COUNT rules"
|
|
else
|
|
echo " ⚠️ Firewall rules endpoint: HTTP $HTTP_CODE (may not be available)"
|
|
fi
|
|
echo ""
|
|
|
|
echo "✅ Configuration check complete"
|