wip: make work Services Status

This commit is contained in:
Constantin
2025-09-13 14:23:31 +03:00
parent 2277b11563
commit f0b6d1cff1
18 changed files with 2568 additions and 2130 deletions
+56 -31
View File
@@ -102,9 +102,9 @@ CORS(app)
app.config['DEVELOPMENT_MODE'] = True # Set to True for development, False for production
# Initialize enhanced components
config_manager = ConfigManager()
config_manager = ConfigManager(config_file='./config/cell_config.json', data_dir='./data')
service_bus = ServiceBus()
log_manager = LogManager()
log_manager = LogManager(log_dir='./data/logs')
# Initialize service loggers
service_log_configs = {
@@ -150,17 +150,17 @@ def log_request(response):
def clear_log_context(exc):
request_context.set({})
# Initialize managers
network_manager = NetworkManager()
wireguard_manager = WireGuardManager()
peer_registry = PeerRegistry()
email_manager = EmailManager()
calendar_manager = CalendarManager()
file_manager = FileManager()
routing_manager = RoutingManager()
cell_manager = CellManager()
app.vault_manager = VaultManager()
container_manager = ContainerManager()
# Initialize managers with proper directories
network_manager = NetworkManager(data_dir='./data', config_dir='./config')
wireguard_manager = WireGuardManager(data_dir='./data', config_dir='./config')
peer_registry = PeerRegistry(data_dir='./data', config_dir='./config')
email_manager = EmailManager(data_dir='./data', config_dir='./config')
calendar_manager = CalendarManager(data_dir='./data', config_dir='./config')
file_manager = FileManager(data_dir='./data', config_dir='./config')
routing_manager = RoutingManager(data_dir='./data', config_dir='./config')
cell_manager = CellManager(data_dir='./data', config_dir='./config')
app.vault_manager = VaultManager(data_dir='./data', config_dir='./config')
container_manager = ContainerManager(data_dir='./data', config_dir='./config')
# Register services with service bus
service_bus.register_service('network', network_manager)
@@ -686,8 +686,8 @@ def test_network():
def get_wireguard_keys():
"""Get WireGuard keys."""
try:
keys = wireguard_manager.get_keys()
return jsonify(keys)
# For now, return empty keys - this would need to be implemented
return jsonify({"error": "Not implemented yet"}), 501
except Exception as e:
logger.error(f"Error getting WireGuard keys: {e}")
return jsonify({"error": str(e)}), 500
@@ -697,7 +697,9 @@ def generate_peer_keys():
"""Generate peer keys."""
try:
data = request.get_json(silent=True)
result = wireguard_manager.generate_peer_keys(data)
if data is None or 'peer_name' not in data:
return jsonify({"error": "Missing peer_name"}), 400
result = wireguard_manager.generate_peer_keys(data['peer_name'])
return jsonify(result)
except Exception as e:
logger.error(f"Error generating peer keys: {e}")
@@ -707,8 +709,8 @@ def generate_peer_keys():
def get_wireguard_config():
"""Get WireGuard configuration."""
try:
config = wireguard_manager.get_config()
return jsonify(config)
# For now, return empty config - this would need to be implemented
return jsonify({"error": "Not implemented yet"}), 501
except Exception as e:
logger.error(f"Error getting WireGuard config: {e}")
return jsonify({"error": str(e)}), 500
@@ -717,7 +719,7 @@ def get_wireguard_config():
def get_wireguard_peers():
"""Get WireGuard peers."""
try:
peers = wireguard_manager.get_peers()
peers = wireguard_manager.get_wireguard_peers()
return jsonify(peers)
except Exception as e:
logger.error(f"Error getting WireGuard peers: {e}")
@@ -728,8 +730,22 @@ def add_wireguard_peer():
"""Add WireGuard peer."""
try:
data = request.get_json(silent=True)
result = wireguard_manager.add_peer(data)
return jsonify(result)
if data is None:
return jsonify({"error": "No data provided"}), 400
required_fields = ['name', 'public_key', 'allowed_ips']
for field in required_fields:
if field not in data:
return jsonify({"error": f"Missing required field: {field}"}), 400
result = wireguard_manager.add_wireguard_peer(
name=data['name'],
public_key=data['public_key'],
allowed_ips=data['allowed_ips'],
endpoint=data.get('endpoint', ''),
persistent_keepalive=data.get('persistent_keepalive', 25)
)
return jsonify({"success": result})
except Exception as e:
logger.error(f"Error adding WireGuard peer: {e}")
return jsonify({"error": str(e)}), 500
@@ -739,8 +755,11 @@ def remove_wireguard_peer():
"""Remove WireGuard peer."""
try:
data = request.get_json(silent=True)
result = wireguard_manager.remove_peer(data)
return jsonify(result)
if data is None or 'name' not in data:
return jsonify({"error": "Missing peer name"}), 400
result = wireguard_manager.remove_wireguard_peer(data['name'])
return jsonify({"success": result})
except Exception as e:
logger.error(f"Error removing WireGuard peer: {e}")
return jsonify({"error": str(e)}), 500
@@ -772,8 +791,11 @@ def update_peer_ip():
"""Update peer IP."""
try:
data = request.get_json(silent=True)
result = wireguard_manager.update_peer_ip(data)
return jsonify(result)
if data is None or 'name' not in data or 'ip' not in data:
return jsonify({"error": "Missing peer name or IP"}), 400
# For now, return not implemented - this would need to be implemented
return jsonify({"error": "Not implemented yet"}), 501
except Exception as e:
logger.error(f"Error updating peer IP: {e}")
return jsonify({"error": str(e)}), 500
@@ -782,10 +804,11 @@ def update_peer_ip():
def get_peer_config():
try:
data = request.get_json(silent=True)
if data is None:
return jsonify({"error": "No data provided"}), 400
result = wireguard_manager.get_peer_config(data)
return jsonify(result)
if data is None or 'name' not in data:
return jsonify({"error": "Missing peer name"}), 400
# For now, return not implemented - this would need to be implemented
return jsonify({"error": "Not implemented yet"}), 501
except Exception as e:
logger.error(f"Error getting peer config: {e}")
return jsonify({"error": str(e)}), 500
@@ -883,7 +906,8 @@ def update_peer_ip_registry(peer_name):
except Exception as e:
logger.warning(f"RoutingManager update_peer_ip failed: {e}")
try:
wireguard_manager.update_peer_ip(peer_name, new_ip)
# For now, skip WireGuard update - method not implemented
logger.warning(f"WireGuardManager update_peer_ip not implemented yet")
except Exception as e:
logger.warning(f"WireGuardManager update_peer_ip failed: {e}")
return jsonify({"message": f"IP update received for {peer_name}"})
@@ -912,7 +936,8 @@ def ip_update():
except Exception as e:
logger.warning(f"RoutingManager update_peer_ip failed: {e}")
try:
wireguard_manager.update_peer_ip(peer_name, new_ip)
# For now, skip WireGuard update - method not implemented
logger.warning(f"WireGuardManager update_peer_ip not implemented yet")
except Exception as e:
logger.warning(f"WireGuardManager update_peer_ip failed: {e}")
return jsonify({"message": f"IP update received for {peer_name}"})