chore: сохраняем пароль которым ставили сервер

This commit is contained in:
protokey committed 2026-09-25 15:14:17 +04:00
1 parent 6d322f36a9
commit c4300066f5
9 files changed
+133 -38

No files matched your search

+15 -5
View File
@@ -51,9 +51,9 @@ class User(AbstractUser):
class Point(models.Model):
"""Точка доступа: кластер из сервера с панелью 3x-ui и сервера маскировки перед ним.
"""Точка доступа: сервер с панелью 3x-ui и, по желанию, сервер маскировки перед ним.
Клиенты подключаются к серверу маскировки, он перенаправляет трафик на панель и скрывает ее адрес.
С маскировкой клиенты подключаются к серверу маскировки, он перенаправляет трафик на панель и скрывает ее адрес.
"""
CF_WARP = 'cf_warp'
@@ -94,17 +94,22 @@ class Point(models.Model):
def is_busy(self) -> bool:
return self.status in (self.Status.INSTALLING, self.Status.RELEASING)
def server(self, role: str) -> 'Server':
return self.servers.get(role=role)
def server(self, role: str) -> 'Server | None':
return self.servers.filter(role=role).first()
@property
def panel(self) -> 'Server':
return self.server(Server.Role.PANEL)
@property
def mask(self) -> 'Server':
def mask(self) -> 'Server | None':
return self.server(Server.Role.MASK)
@property
def entry(self) -> 'Server':
"""Сервер, к которому подключаются клиенты."""
return self.mask or self.panel
class Server(models.Model):
"""Сервер под управлением системы. Поля ssh отражают текущее состояние сервера."""
@@ -117,6 +122,11 @@ class Server(models.Model):
role = models.CharField(max_length=8, choices=Role.choices)
address = models.GenericIPAddressField(unique=True)
ssh_port = models.PositiveIntegerField(default=22)
default_root_password = models.CharField(
max_length=128,
help_text='Пароль root, который пользователь прислал при добавлении сервера. '
'После сброса сервера у провайдера он снова может быть актуальным',
)
root_password = models.CharField(max_length=128, help_text='Текущий пароль root')
private_key = models.TextField(blank=True)
public_key = models.TextField(blank=True)