#!/bin/bash

# Script to validate Grafana datasources and test queries

echo "🔍 Validating Grafana Datasources"
echo "=================================="
echo ""

# Test PostgreSQL datasource
echo "1. Testing PostgreSQL Datasource..."
pg_health=$(curl -s -u admin:admin -X POST http://localhost:3000/api/datasources/uid/PCC52D03280B7034C/health)
pg_status=$(echo "$pg_health" | jq -r '.status')

if [ "$pg_status" = "OK" ]; then
    echo "   ✅ PostgreSQL: Connected"
else
    echo "   ❌ PostgreSQL: Connection failed"
    echo "   Error: $pg_health"
fi

# Test Prometheus datasource
echo ""
echo "2. Testing Prometheus Datasource..."
prom_health=$(curl -s -u admin:admin -X POST http://localhost:3000/api/datasources/uid/PBFA97CFB590B2093/health)
prom_status=$(echo "$prom_health" | jq -r '.status')

if [ "$prom_status" = "OK" ]; then
    echo "   ✅ Prometheus: Connected"
else
    echo "   ❌ Prometheus: Connection failed"
    echo "   Error: $prom_health"
fi

# List all datasources
echo ""
echo "3. Configured Datasources:"
curl -s -u admin:admin http://localhost:3000/api/datasources | jq -r '.[] | "   - \(.name) (\(.type))"'

# List all dashboards
echo ""
echo "4. Available Dashboards:"
curl -s -u admin:admin http://localhost:3000/api/search?type=dash-db | jq -r '.[] | "   - \(.title) (UID: \(.uid))"'

echo ""
echo "=================================="
echo "✅ Validation Complete"
echo ""
echo "Access dashboards at:"
echo "  • http://localhost:3000/d/tab-api-metrics"
echo "  • http://localhost:3000/d/scheduler-monitoring"
echo ""
echo "Login: admin / admin"
