Files

57 lines
1.7 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Simple HTTP server to expose validation script for n8n
Usage: python3 validation-server.py
Access: http://localhost:8080/validate
"""
import http.server
import socketserver
import subprocess
import json
import os
PORT = 8080
REPO_DIR = "/home/garfield/mql-trading-bots"
class ValidationHandler(http.server.SimpleHTTPRequestHandler):
def do_GET(self):
if self.path == '/validate':
# Run validation script
os.chdir(REPO_DIR)
result = subprocess.run(
['./scripts/validate-settings.sh'],
capture_output=True,
text=True
)
# Build response
response = {
'status': 'ok' if result.returncode == 0 else 'error',
'code': result.returncode,
'stdout': result.stdout,
'stderr': result.stderr
}
# Send response
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self.end_headers()
self.wfile.write(json.dumps(response).encode())
elif self.path == '/health':
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self.end_headers()
self.wfile.write(json.dumps({'status': 'healthy'}).encode())
else:
self.send_error(404)
def log_message(self, format, *args):
# Suppress logs
pass
if __name__ == '__main__':
with socketserver.TCPServer(("127.0.0.1", PORT), ValidationHandler) as httpd:
print(f"Validation server running at http://127.0.0.1:{PORT}/validate")
httpd.serve_forever()