#!/bin/bash
# Test Production Server Connectivity

set -e

SERVER="94.16.110.151"
USER="deploy"
SSH_KEY="~/.ssh/production"

echo "🔧 Production Server Connectivity Test"
echo "========================================"
echo "Server: $SERVER"
echo "User: $USER"
echo "SSH-Key: $SSH_KEY"
echo ""

# 1. SSH Key Test
echo "1️⃣ SSH-Key Test..."
if ssh-keygen -l -f $SSH_KEY.pub &>/dev/null; then
    echo "✅ SSH-Key ist gültig"
    ssh-keygen -l -f $SSH_KEY.pub
else
    echo "❌ SSH-Key Problem"
    exit 1
fi
echo ""

# 2. SSH Connectivity Test
echo "2️⃣ SSH Connectivity Test..."
if ssh -i $SSH_KEY -o ConnectTimeout=10 -o StrictHostKeyChecking=no $USER@$SERVER 'echo "SSH Connection successful"' 2>/dev/null; then
    echo "✅ SSH Connection erfolgreich"
else
    echo "❌ SSH Connection fehlgeschlagen"
    echo "Möglicherweise ist der Server noch nicht bereit oder SSH-Key nicht konfiguriert"
    exit 1
fi
echo ""

# 3. System Info
echo "3️⃣ Server System Information..."
ssh -i $SSH_KEY $USER@$SERVER 'echo "Hostname: $(hostname)" && echo "OS: $(cat /etc/os-release | grep PRETTY_NAME)" && echo "Kernel: $(uname -r)" && echo "Uptime: $(uptime -p)" && echo "Available space: $(df -h / | tail -1 | awk "{print \$4}")"'
echo ""

# 4. Docker Readiness Check
echo "4️⃣ Docker Readiness Check..."
if ssh -i $SSH_KEY $USER@$SERVER 'which docker &>/dev/null && which docker-compose &>/dev/null'; then
    echo "✅ Docker bereits installiert"
    ssh -i $SSH_KEY $USER@$SERVER 'docker --version && docker-compose --version'
else
    echo "⚠️ Docker noch nicht installiert (wird durch Ansible installiert)"
fi
echo ""

# 5. Ansible Ping Test
echo "5️⃣ Ansible Ping Test..."
cd "$(dirname "$0")"
if ansible netcup-server -i inventory/hosts.yml -m ping; then
    echo "✅ Ansible Ping erfolgreich"
else
    echo "❌ Ansible Ping fehlgeschlagen"
    exit 1
fi
echo ""

# 6. Ansible Gather Facts
echo "6️⃣ Ansible System Facts..."
ansible netcup-server -i inventory/hosts.yml -m setup -a "filter=ansible_distribution*" | grep -A 10 '"ansible_distribution"'
echo ""

echo "🎉 Connectivity Test erfolgreich abgeschlossen!"
echo ""
echo "Nächste Schritte:"
echo "1. Deployment-Playbook ausführen: ansible-playbook -i inventory/hosts.yml deploy.yml"
echo "2. SSL-Zertifikate konfigurieren"
echo "3. Monitoring einrichten"