Consolidate service scripts into apps directories
Some checks failed
Integration Tests / test-service-integration (push) Has been cancelled
Python Tests / test-python (push) Has been cancelled
Security Scanning / security-scan (push) Has been cancelled
Systemd Sync / sync-systemd (push) Has been cancelled

- Move blockchain scripts to apps/blockchain-node/scripts/
- Move marketplace scripts to apps/marketplace/scripts/
- Move agent daemon to apps/agent-coordinator/scripts/
- Move monitor to apps/monitor/
- Update systemd service files to point to new locations
- Update internal path references in moved scripts
- Remove empty /opt/aitbc/services directory
This commit is contained in:
aitbc
2026-04-15 11:56:03 +02:00
parent 7e630f53fc
commit ca34b6fee3
13 changed files with 13 additions and 11 deletions

View File

@@ -0,0 +1,78 @@
#!/usr/bin/env python3
"""
GPU Marketplace Launcher for AITBC Production
"""
import os
import sys
import subprocess
import logging
from pathlib import Path
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
def main():
"""Main GPU marketplace launcher function"""
logger.info("Starting AITBC GPU Marketplace Launcher")
try:
# Set environment variables
os.environ.setdefault('PYTHONPATH', '/opt/aitbc/apps/marketplace/scripts:/opt/aitbc/apps/marketplace/src:/opt/aitbc/apps/coordinator-api/src')
# Try to run the GPU marketplace service
logger.info("Launching GPU marketplace service")
# Check if the main marketplace service exists
marketplace_path = '/opt/aitbc/apps/marketplace/scripts/marketplace.py'
if os.path.exists(marketplace_path):
logger.info("Found marketplace service, launching...")
subprocess.run([
'/opt/aitbc/venv/bin/python',
marketplace_path
], check=True)
else:
logger.error(f"Marketplace service not found at {marketplace_path}")
# Fallback to simple service
fallback_service()
except subprocess.CalledProcessError as e:
logger.error(f"GPU marketplace service failed with exit code {e.returncode}: {e}")
logger.info("Starting fallback GPU marketplace service")
fallback_service()
except (FileNotFoundError, PermissionError) as e:
logger.error(f"Cannot launch GPU marketplace service: {type(e).__name__}: {e}")
logger.info("Starting fallback GPU marketplace service")
fallback_service()
except Exception as e:
logger.error(f"Unexpected error launching GPU marketplace: {type(e).__name__}: {e}")
logger.info("Starting fallback GPU marketplace service")
fallback_service()
def fallback_service():
"""Fallback GPU marketplace service"""
logger.info("Starting fallback GPU marketplace service")
try:
# Simple GPU marketplace heartbeat
import time
while True:
logger.info("GPU Marketplace service heartbeat - active")
time.sleep(30)
except KeyboardInterrupt:
logger.info("GPU Marketplace service stopped by user")
except (OSError, IOError) as e:
logger.error(f"System error in fallback service: {type(e).__name__}: {e}")
time.sleep(5)
except Exception as e:
logger.error(f"Unexpected error in fallback service: {type(e).__name__}: {e}")
time.sleep(5)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,87 @@
#!/usr/bin/env python3
"""
Marketplace Service for AITBC Production
"""
import os
import sys
import time
import logging
from pathlib import Path
# Add paths
sys.path.insert(0, '/opt/aitbc/apps/marketplace/src')
sys.path.insert(0, '/opt/aitbc/apps/coordinator-api/src')
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
def main():
"""Main marketplace service function"""
logger.info("Starting AITBC Marketplace Service")
try:
# Try to import and run the actual marketplace service
from production.services.marketplace import app
logger.info("Successfully imported marketplace app")
# Run the marketplace service
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8007)
except ImportError as e:
logger.error(f"Failed to import marketplace app: {e}")
logger.info("Trying alternative marketplace import...")
try:
# Try the unified marketplace
from production.services.unified_marketplace import app
logger.info("Successfully imported unified marketplace app")
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8007)
except ImportError as e2:
logger.error(f"Failed to import unified marketplace: {e2}")
logger.info("Starting simple marketplace heartbeat service")
heartbeat_service()
except Exception as e:
logger.error(f"Error starting marketplace service: {e}")
heartbeat_service()
def heartbeat_service():
"""Simple heartbeat service for marketplace"""
logger.info("Starting marketplace heartbeat service")
try:
# Create a simple FastAPI app for health checks
from fastapi import FastAPI
import uvicorn
app = FastAPI(title="AITBC Marketplace Service")
@app.get("/health")
async def health():
return {"status": "healthy", "service": "marketplace", "message": "Marketplace service running"}
@app.get("/")
async def root():
return {"service": "marketplace", "status": "running", "endpoints": ["/health", "/"]}
logger.info("Starting simple marketplace API on port 8007")
uvicorn.run(app, host="0.0.0.0", port=8007)
except ImportError:
# Fallback to simple heartbeat
logger.info("FastAPI not available, using simple heartbeat")
while True:
logger.info("Marketplace service heartbeat - active")
time.sleep(30)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,49 @@
#!/usr/bin/env python3
"""
Real Marketplace Launcher for AITBC Production
"""
import os
import sys
import subprocess
import logging
# Configure logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
def main():
"""Main real marketplace launcher function"""
logger.info("Starting AITBC Real Marketplace Launcher")
try:
# Launch real marketplace service
logger.info("Launching real marketplace service")
subprocess.run([
'/opt/aitbc/venv/bin/python',
'/opt/aitbc/apps/marketplace/scripts/marketplace.py'
], check=True)
except subprocess.CalledProcessError as e:
logger.error(f"Marketplace service failed with exit code {e.returncode}: {e}")
# Fallback
import time
while True:
logger.info("Real Marketplace service heartbeat (fallback mode)")
time.sleep(30)
except (FileNotFoundError, PermissionError) as e:
logger.error(f"Cannot launch marketplace service: {type(e).__name__}: {e}")
# Fallback
import time
while True:
logger.info("Real Marketplace service heartbeat (fallback mode)")
time.sleep(30)
except Exception as e:
logger.error(f"Unexpected error launching marketplace: {type(e).__name__}: {e}")
# Fallback
import time
while True:
logger.info("Real Marketplace service heartbeat (fallback mode)")
time.sleep(30)
if __name__ == "__main__":
main()