#!/bin/bash
# Test SSH password from .env file

set -e

# Get the directory where this script is located
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Get the project root (one level up from scripts directory)
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
# Locate .env file in project root
ENV_FILE="$PROJECT_ROOT/.env"

# Verify .env file exists
if [[ ! -f "$ENV_FILE" ]]; then
    echo "Error: .env file not found at $ENV_FILE"
    echo "Current directory: $(pwd)"
    echo "Script directory: $SCRIPT_DIR"
    echo "Project root: $PROJECT_ROOT"
    exit 1
fi

if [[ -f "$ENV_FILE" ]]; then
    # Extract password from .env (lines 45-46)
    PROXMOX_PASSWORD=$(sed -n '45,46p' "$ENV_FILE" | grep "PROXMOX_ROOT_PASS" | head -1 | cut -d'=' -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
    # Remove quotes if present
    PROXMOX_PASSWORD="${PROXMOX_PASSWORD#\"}"
    PROXMOX_PASSWORD="${PROXMOX_PASSWORD%\"}"
    PROXMOX_PASSWORD="${PROXMOX_PASSWORD#\'}"
    PROXMOX_PASSWORD="${PROXMOX_PASSWORD%\'}"
    
    echo "Password extracted from .env:"
    echo "  Length: ${#PROXMOX_PASSWORD} characters"
    echo "  First 3 chars: ${PROXMOX_PASSWORD:0:3}..."
    echo ""
    
    if ! command -v sshpass &> /dev/null; then
        echo "Error: sshpass not installed"
        exit 1
    fi
    
    echo "Testing ML110-01 (192.168.11.10)..."
    if sshpass -p "$PROXMOX_PASSWORD" ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no root@192.168.11.10 'hostname && pveversion' 2>&1; then
        echo "✅ ML110-01: Connection successful!"
    else
        echo "❌ ML110-01: Connection failed"
        echo ""
        echo "Note: If password is incorrect, update .env file line 45-46"
    fi
    
    echo ""
    echo "Testing R630-01 (192.168.11.11)..."
    if sshpass -p "$PROXMOX_PASSWORD" ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no root@192.168.11.11 'hostname && pveversion' 2>&1; then
        echo "✅ R630-01: Connection successful!"
    else
        echo "❌ R630-01: Connection failed"
        echo ""
        echo "Note: If password is incorrect, update .env file line 45-46"
    fi
else
    echo "Error: .env file not found at $ENV_FILE"
    exit 1
fi

