Files
smom-dbis-138/scripts/deployment/verify-chain138-services.sh
defiQUG 1fb7266469 Add Oracle Aggregator and CCIP Integration
- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control.
- Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities.
- Created .gitmodules to include OpenZeppelin contracts as a submodule.
- Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment.
- Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks.
- Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring.
- Created scripts for resource import and usage validation across non-US regions.
- Added tests for CCIP error handling and integration to ensure robust functionality.
- Included various new files and directories for the orchestration portal and deployment scripts.
2025-12-12 14:57:48 -08:00

171 lines
5.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Verify all Chain-138 services
set -e
cd "$(dirname "$0")/../.."
# Color codes
echo "==================================================================="
echo " CHAIN-138 SERVICES VERIFICATION"
echo "==================================================================="
# Load environment variables
if [ -f .env ]; then
source .env 2>/dev/null || true
fi
ERRORS=0
WARNINGS=0
SUCCESS=0
check_service() {
local name=$1
local status=$2
local details=$3
if [ "$status" = "success" ]; then
echo -e " ${GREEN}$name${NC}"
SUCCESS=$((SUCCESS + 1))
elif [ "$status" = "warning" ]; then
echo -e " ${YELLOW}⚠️ $name${NC}"
WARNINGS=$((WARNINGS + 1))
else
echo -e " ${RED}$name${NC}"
ERRORS=$((ERRORS + 1))
fi
if [ -n "$details" ]; then
echo " $details"
fi
}
log_info "1. Blockchain Services"
# Check Besu validators
if command -v kubectl &> /dev/null && kubectl cluster-info &> /dev/null 2>&1; then
VALIDATOR_PODS=$(kubectl get pods -n besu-network -l app=besu-validator 2>/dev/null | grep -v NAME | wc -l)
if [ "$VALIDATOR_PODS" -gt 0 ]; then
RUNNING=$(kubectl get pods -n besu-network -l app=besu-validator 2>/dev/null | grep Running | wc -l)
check_service "Besu Validators" "success" "$RUNNING/$VALIDATOR_PODS running"
else
check_service "Besu Validators" "warning" "No validator pods found"
fi
# Check sentries
SENTRY_PODS=$(kubectl get pods -n besu-network -l app=besu-sentry 2>/dev/null | grep -v NAME | wc -l)
if [ "$SENTRY_PODS" -gt 0 ]; then
RUNNING=$(kubectl get pods -n besu-network -l app=besu-sentry 2>/dev/null | grep Running | wc -l)
check_service "Besu Sentries" "success" "$RUNNING/$SENTRY_PODS running"
else
check_service "Besu Sentries" "warning" "No sentry pods found"
fi
# Check RPC nodes
RPC_PODS=$(kubectl get pods -n besu-network -l app=besu-rpc 2>/dev/null | grep -v NAME | wc -l)
if [ "$RPC_PODS" -gt 0 ]; then
RUNNING=$(kubectl get pods -n besu-network -l app=besu-rpc 2>/dev/null | grep Running | wc -l)
check_service "Besu RPC Nodes" "success" "$RUNNING/$RPC_PODS running"
else
check_service "Besu RPC Nodes" "warning" "No RPC pods found"
fi
else
check_service "Kubernetes Access" "warning" "kubectl not available or cluster not accessible"
fi
log_info "2. Monitoring Services"
# Check Prometheus
if command -v kubectl &> /dev/null && kubectl cluster-info &> /dev/null 2>&1; then
if kubectl get pods -n monitoring -l app=prometheus 2>/dev/null | grep -q Running; then
check_service "Prometheus" "success" "Running"
else
check_service "Prometheus" "warning" "Not running or not found"
fi
# Check Grafana
if kubectl get pods -n monitoring -l app=grafana 2>/dev/null | grep -q Running; then
check_service "Grafana" "success" "Running"
else
check_service "Grafana" "warning" "Not running or not found"
fi
else
check_service "Monitoring Services" "warning" "Cannot check (kubectl not available)"
fi
log_info "3. Explorer Services"
# Check Blockscout
if command -v kubectl &> /dev/null && kubectl cluster-info &> /dev/null 2>&1; then
if kubectl get pods -n besu-network -l app=blockscout 2>/dev/null | grep -q Running; then
check_service "Blockscout" "success" "Running"
else
check_service "Blockscout" "warning" "Not running or not found"
fi
else
check_service "Blockscout" "warning" "Cannot check (kubectl not available)"
fi
log_info "4. Network Services"
# Check RPC endpoint
if [ -n "$CHAIN138_RPC_URL" ]; then
if curl -s --max-time 5 "$CHAIN138_RPC_URL" -X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' 2>/dev/null | grep -q "result"; then
check_service "RPC Endpoint" "success" "$CHAIN138_RPC_URL"
else
check_service "RPC Endpoint" "error" "$CHAIN138_RPC_URL (not accessible)"
fi
else
check_service "RPC Endpoint" "error" "Not configured"
fi
# Check WebSocket endpoint (if configured)
if [ -n "$CHAIN138_WS_URL" ]; then
check_service "WebSocket Endpoint" "success" "Configured: $CHAIN138_WS_URL"
else
check_service "WebSocket Endpoint" "warning" "Not configured"
fi
log_info "5. Configuration Files"
# Check Kubernetes manifests
if [ -d "k8s" ]; then
MANIFEST_COUNT=$(find k8s -name "*.yaml" -o -name "*.yml" 2>/dev/null | wc -l)
check_service "Kubernetes Manifests" "success" "$MANIFEST_COUNT files found"
else
check_service "Kubernetes Manifests" "warning" "k8s directory not found"
fi
# Check Helm charts
if [ -d "helm" ]; then
CHART_COUNT=$(find helm -name "Chart.yaml" 2>/dev/null | wc -l)
check_service "Helm Charts" "success" "$CHART_COUNT charts found"
else
check_service "Helm Charts" "warning" "helm directory not found"
fi
# Check Terraform
if [ -d "terraform" ]; then
TF_FILES=$(find terraform -name "*.tf" 2>/dev/null | wc -l)
check_service "Terraform Config" "success" "$TF_FILES files found"
else
check_service "Terraform Config" "warning" "terraform directory not found"
fi
echo "==================================================================="
log_info "SUMMARY"
echo "==================================================================="
echo " ✅ Successful: $SUCCESS"
echo " ⚠️ Warnings: $WARNINGS"
echo " ❌ Errors: $ERRORS"
if [ $ERRORS -eq 0 ]; then
log_success "✅ All services verified!"
exit 0
else
log_error "❌ Some services have errors"
exit 1
fi