Some checks failed
CLI Tests / test-cli (push) Failing after 4s
Deploy to Testnet / deploy-testnet (push) Successful in 1m40s
Documentation Validation / validate-docs (push) Failing after 12s
Documentation Validation / validate-policies-strict (push) Successful in 4s
Integration Tests / test-service-integration (push) Successful in 2m42s
Package Tests / Python package - aitbc-agent-sdk (push) Failing after 34s
Package Tests / Python package - aitbc-core (push) Successful in 27s
Package Tests / Python package - aitbc-crypto (push) Successful in 13s
Package Tests / Python package - aitbc-sdk (push) Successful in 16s
Package Tests / JavaScript package - aitbc-sdk-js (push) Successful in 8s
Package Tests / JavaScript package - aitbc-token (push) Successful in 18s
Python Tests / test-python (push) Failing after 50s
Security Scanning / security-scan (push) Failing after 43s
Multi-Node Stress Testing / stress-test (push) Successful in 12s
Cross-Node Transaction Testing / transaction-test (push) Successful in 9s
- Created aitbc/_version.py with centralized version definition - Updated aitbc/__init__.py to import __version__ from _version module - Updated constants.py to use __version__ for PACKAGE_VERSION - Replaced print() calls with logger in decorators.py, events.py, queue_manager.py, and state.py - Added logger initialization using get_logger(__name__) in config.py, decorators.py, events.py, queue_manager.py, and state.py - Added cli/commands
133 lines
4.9 KiB
Python
133 lines
4.9 KiB
Python
"""Blockchain event bridge handlers."""
|
|
|
|
import subprocess
|
|
|
|
from aitbc import AITBCHTTPClient, NetworkError
|
|
|
|
|
|
def handle_bridge_health(args):
|
|
"""Health check for blockchain event bridge service."""
|
|
try:
|
|
from commands.legacy.blockchain_event_bridge import get_config as get_bridge_config
|
|
config = get_bridge_config()
|
|
|
|
if args.test_mode:
|
|
print("🏥 Blockchain Event Bridge Health (test mode):")
|
|
print("✅ Status: healthy")
|
|
print("📦 Service: blockchain-event-bridge")
|
|
return
|
|
|
|
bridge_url = getattr(config, "bridge_url", "http://localhost:8204")
|
|
http_client = AITBCHTTPClient(base_url=bridge_url, timeout=10)
|
|
health = http_client.get("/health")
|
|
|
|
print("🏥 Blockchain Event Bridge Health:")
|
|
for key, value in health.items():
|
|
print(f" {key}: {value}")
|
|
except NetworkError as e:
|
|
print(f"❌ Health check failed: {e}")
|
|
except Exception as e:
|
|
print(f"❌ Error checking health: {e}")
|
|
|
|
|
|
def handle_bridge_metrics(args):
|
|
"""Get Prometheus metrics from blockchain event bridge service."""
|
|
try:
|
|
from commands.legacy.blockchain_event_bridge import get_config as get_bridge_config
|
|
config = get_bridge_config()
|
|
|
|
if args.test_mode:
|
|
print("📊 Prometheus Metrics (test mode):")
|
|
print(" bridge_events_total: 103691")
|
|
print(" bridge_events_processed_total: 103691")
|
|
return
|
|
|
|
bridge_url = getattr(config, "bridge_url", "http://localhost:8204")
|
|
http_client = AITBCHTTPClient(base_url=bridge_url, timeout=10)
|
|
metrics = http_client.get("/metrics", return_response=True)
|
|
|
|
print("📊 Prometheus Metrics:")
|
|
print(metrics.text)
|
|
except NetworkError as e:
|
|
print(f"❌ Failed to get metrics: {e}")
|
|
except Exception as e:
|
|
print(f"❌ Error getting metrics: {e}")
|
|
|
|
|
|
def handle_bridge_status(args):
|
|
"""Get detailed status of blockchain event bridge service."""
|
|
try:
|
|
from commands.legacy.blockchain_event_bridge import get_config as get_bridge_config
|
|
config = get_bridge_config()
|
|
|
|
if args.test_mode:
|
|
print("📊 Blockchain Event Bridge Status (test mode):")
|
|
print("✅ Status: running")
|
|
print("🔔 Subscriptions: blocks, transactions, contract_events")
|
|
return
|
|
|
|
bridge_url = getattr(config, "bridge_url", "http://localhost:8204")
|
|
http_client = AITBCHTTPClient(base_url=bridge_url, timeout=10)
|
|
status = http_client.get("/")
|
|
|
|
print("📊 Blockchain Event Bridge Status:")
|
|
for key, value in status.items():
|
|
print(f" {key}: {value}")
|
|
except NetworkError as e:
|
|
print(f"❌ Failed to get status: {e}")
|
|
except Exception as e:
|
|
print(f"❌ Error getting status: {e}")
|
|
|
|
|
|
def handle_bridge_config(args):
|
|
"""Show current configuration of blockchain event bridge service."""
|
|
try:
|
|
from commands.legacy.blockchain_event_bridge import get_config as get_bridge_config
|
|
config = get_bridge_config()
|
|
|
|
if args.test_mode:
|
|
print("⚙️ Blockchain Event Bridge Configuration (test mode):")
|
|
print("🔗 Blockchain RPC URL: http://localhost:8006")
|
|
print("💬 Gossip Backend: redis")
|
|
return
|
|
|
|
bridge_url = getattr(config, "bridge_url", "http://localhost:8204")
|
|
http_client = AITBCHTTPClient(base_url=bridge_url, timeout=10)
|
|
service_config = http_client.get("/config")
|
|
|
|
print("⚙️ Blockchain Event Bridge Configuration:")
|
|
for key, value in service_config.items():
|
|
print(f" {key}: {value}")
|
|
except NetworkError as e:
|
|
print(f"❌ Failed to get config: {e}")
|
|
except Exception as e:
|
|
print(f"❌ Error getting config: {e}")
|
|
|
|
|
|
def handle_bridge_restart(args):
|
|
"""Restart blockchain event bridge service (via systemd)."""
|
|
try:
|
|
if args.test_mode:
|
|
print("🔄 Blockchain event bridge restart triggered (test mode)")
|
|
print("✅ Restart completed successfully")
|
|
return
|
|
|
|
result = subprocess.run(
|
|
["sudo", "systemctl", "restart", "aitbc-blockchain-event-bridge"],
|
|
capture_output=True,
|
|
text=True,
|
|
timeout=30
|
|
)
|
|
|
|
if result.returncode == 0:
|
|
print("🔄 Blockchain event bridge restart triggered")
|
|
print("✅ Restart completed successfully")
|
|
else:
|
|
print(f"❌ Restart failed: {result.stderr}")
|
|
except subprocess.TimeoutExpired:
|
|
print("❌ Restart timeout - service may be starting")
|
|
except FileNotFoundError:
|
|
print("❌ systemctl not found - cannot restart service")
|
|
except Exception as e:
|
|
print(f"❌ Error restarting service: {e}")
|