Some checks failed
CI Pipeline / changes (push) Has been cancelled
CI Pipeline / core (push) Has been cancelled
CI Pipeline / trading-backend (push) Has been cancelled
CI Pipeline / trading-data-service (push) Has been cancelled
CI Pipeline / trading-frontend (push) Has been cancelled
CI Pipeline / erp-core (push) Has been cancelled
CI Pipeline / erp-mecanicas (push) Has been cancelled
CI Pipeline / gamilit-backend (push) Has been cancelled
CI Pipeline / gamilit-frontend (push) Has been cancelled
190 lines
5.6 KiB
Bash
Executable File
190 lines
5.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# =============================================================================
|
|
# OrbiQuant IA - Integration Verification Script
|
|
# Verifies all services are running and can communicate
|
|
# =============================================================================
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
|
|
|
# Colors
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
# Default ports
|
|
BACKEND_PORT=${BACKEND_PORT:-3000}
|
|
ML_ENGINE_PORT=${ML_ENGINE_PORT:-8001}
|
|
DATA_SERVICE_PORT=${DATA_SERVICE_PORT:-8002}
|
|
LLM_AGENT_PORT=${LLM_AGENT_PORT:-8003}
|
|
OLLAMA_PORT=${OLLAMA_PORT:-11434}
|
|
|
|
echo -e "${BLUE}"
|
|
echo "╔══════════════════════════════════════════════════════════════╗"
|
|
echo "║ OrbiQuant IA - Integration Verification ║"
|
|
echo "╚══════════════════════════════════════════════════════════════╝"
|
|
echo -e "${NC}"
|
|
|
|
PASSED=0
|
|
FAILED=0
|
|
|
|
# Function to check service
|
|
check_service() {
|
|
local name=$1
|
|
local url=$2
|
|
local expected_status=${3:-200}
|
|
|
|
echo -n " Checking $name... "
|
|
|
|
response=$(curl -s -o /dev/null -w "%{http_code}" "$url" 2>/dev/null || echo "000")
|
|
|
|
if [ "$response" = "$expected_status" ]; then
|
|
echo -e "${GREEN}✓ OK${NC} (HTTP $response)"
|
|
((PASSED++))
|
|
return 0
|
|
else
|
|
echo -e "${RED}✗ FAILED${NC} (HTTP $response, expected $expected_status)"
|
|
((FAILED++))
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Function to check JSON endpoint
|
|
check_json_endpoint() {
|
|
local name=$1
|
|
local url=$2
|
|
local json_path=$3
|
|
local expected_value=$4
|
|
|
|
echo -n " Checking $name... "
|
|
|
|
response=$(curl -s "$url" 2>/dev/null)
|
|
|
|
if [ -z "$response" ]; then
|
|
echo -e "${RED}✗ FAILED${NC} (no response)"
|
|
((FAILED++))
|
|
return 1
|
|
fi
|
|
|
|
# Use jq if available, otherwise just check for 200
|
|
if command -v jq &> /dev/null; then
|
|
value=$(echo "$response" | jq -r "$json_path" 2>/dev/null)
|
|
if [ "$value" = "$expected_value" ]; then
|
|
echo -e "${GREEN}✓ OK${NC}"
|
|
((PASSED++))
|
|
return 0
|
|
else
|
|
echo -e "${RED}✗ FAILED${NC} (got '$value', expected '$expected_value')"
|
|
((FAILED++))
|
|
return 1
|
|
fi
|
|
else
|
|
echo -e "${GREEN}✓ OK${NC} (response received)"
|
|
((PASSED++))
|
|
return 0
|
|
fi
|
|
}
|
|
|
|
echo ""
|
|
echo -e "${YELLOW}1. Checking Core Services${NC}"
|
|
echo ""
|
|
|
|
# Backend API
|
|
check_service "Backend API Health" "http://localhost:$BACKEND_PORT/health"
|
|
|
|
# ML Engine
|
|
check_service "ML Engine Health" "http://localhost:$ML_ENGINE_PORT/health"
|
|
|
|
# Data Service
|
|
check_service "Data Service Health" "http://localhost:$DATA_SERVICE_PORT/health"
|
|
|
|
# LLM Agent
|
|
check_service "LLM Agent Health" "http://localhost:$LLM_AGENT_PORT/health"
|
|
|
|
echo ""
|
|
echo -e "${YELLOW}2. Checking Ollama (Local LLM)${NC}"
|
|
echo ""
|
|
|
|
# Ollama
|
|
check_service "Ollama API" "http://localhost:$OLLAMA_PORT/api/tags"
|
|
|
|
echo ""
|
|
echo -e "${YELLOW}3. Checking ML Endpoints${NC}"
|
|
echo ""
|
|
|
|
# Test ICT Analysis endpoint
|
|
echo -n " Testing ICT Analysis... "
|
|
ict_response=$(curl -s -X POST "http://localhost:$ML_ENGINE_PORT/api/ict/EURUSD" 2>/dev/null)
|
|
if echo "$ict_response" | grep -q "market_bias"; then
|
|
echo -e "${GREEN}✓ OK${NC}"
|
|
((PASSED++))
|
|
else
|
|
echo -e "${YELLOW}⚠ Skipped${NC} (may need data service)"
|
|
fi
|
|
|
|
# Test Ensemble Signal endpoint
|
|
echo -n " Testing Ensemble Signal... "
|
|
ensemble_response=$(curl -s -X POST "http://localhost:$ML_ENGINE_PORT/api/ensemble/EURUSD" 2>/dev/null)
|
|
if echo "$ensemble_response" | grep -q "action"; then
|
|
echo -e "${GREEN}✓ OK${NC}"
|
|
((PASSED++))
|
|
else
|
|
echo -e "${YELLOW}⚠ Skipped${NC} (may need data service)"
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${YELLOW}4. Checking API Documentation${NC}"
|
|
echo ""
|
|
|
|
# Swagger/OpenAPI docs
|
|
check_service "ML Engine Docs" "http://localhost:$ML_ENGINE_PORT/docs"
|
|
check_service "Data Service Docs" "http://localhost:$DATA_SERVICE_PORT/docs"
|
|
check_service "LLM Agent Docs" "http://localhost:$LLM_AGENT_PORT/docs"
|
|
|
|
echo ""
|
|
echo -e "${YELLOW}5. Checking Database Connectivity${NC}"
|
|
echo ""
|
|
|
|
# Check via backend (which connects to Postgres)
|
|
echo -n " PostgreSQL (via Backend)... "
|
|
if curl -s "http://localhost:$BACKEND_PORT/health" | grep -q "healthy\|ok\|status"; then
|
|
echo -e "${GREEN}✓ OK${NC}"
|
|
((PASSED++))
|
|
else
|
|
echo -e "${YELLOW}⚠ Unknown${NC}"
|
|
fi
|
|
|
|
echo ""
|
|
echo "═══════════════════════════════════════════════════════════════"
|
|
echo ""
|
|
|
|
# Summary
|
|
TOTAL=$((PASSED + FAILED))
|
|
|
|
if [ $FAILED -eq 0 ]; then
|
|
echo -e "${GREEN}All checks passed! ($PASSED/$TOTAL)${NC}"
|
|
echo ""
|
|
echo "Your OrbiQuant IA platform is ready!"
|
|
echo ""
|
|
echo "Access points:"
|
|
echo " - Frontend: http://localhost:5173"
|
|
echo " - Backend API: http://localhost:$BACKEND_PORT"
|
|
echo " - ML Engine: http://localhost:$ML_ENGINE_PORT/docs"
|
|
echo " - LLM Agent: http://localhost:$LLM_AGENT_PORT/docs"
|
|
echo ""
|
|
exit 0
|
|
else
|
|
echo -e "${YELLOW}Some checks failed: $PASSED passed, $FAILED failed${NC}"
|
|
echo ""
|
|
echo "Troubleshooting:"
|
|
echo " 1. Ensure all services are running: docker compose ps"
|
|
echo " 2. Check logs: docker compose logs <service>"
|
|
echo " 3. Verify .env configuration"
|
|
echo ""
|
|
exit 1
|
|
fi
|