Add server management functionality by introducing add_server_to_db function for streamlined database interactions. Refactor server addition logic in sync_servers_with_db and admin handlers to utilize the new function, enhancing code clarity and session management.

This commit is contained in:
Zakhar Izmaylov
2025-01-23 08:03:58 +03:00
parent a1d051a3f1
commit 4addb772a0
3 changed files with 53 additions and 25 deletions
+35
View File
@@ -1295,3 +1295,38 @@ async def delete_key(identifier, session):
logger.info(f"Ключ с идентификатором {identifier} успешно удалён")
except Exception as e:
logger.error(f"Ошибка при удалении ключа с идентификатором {identifier} из базы данных: {e}")
async def add_server_to_db(
cluster_name: str, server_name: str, api_url: str, subscription_url: str, inbound_id: int, session: Any
):
"""
Добавляет новый сервер в базу данных.
Args:
cluster_name (str): Название кластера
server_name (str): Название сервера
api_url (str): URL API сервера
subscription_url (str): URL подписки
inbound_id (int): ID входящего подключения
session (Any): Сессия базы данных
Raises:
Exception: В случае ошибки при добавлении сервера
"""
try:
await session.execute(
"""
INSERT INTO servers (cluster_name, server_name, api_url, subscription_url, inbound_id)
VALUES ($1, $2, $3, $4, $5)
""",
cluster_name,
server_name,
api_url,
subscription_url,
inbound_id,
)
logger.info(f"Сервер {server_name} успешно добавлен в кластер {cluster_name}")
except Exception as e:
logger.error(f"Ошибка при добавлении сервера {server_name} в кластер {cluster_name}: {e}")
raise