feat: 优化Endpoint迁移逻辑,增加XRDP规则和Endpoint

fix: 修改Endpoint迁移文件
pull/8079/head
Jiangjie.Bai 2022-04-18 15:17:28 +08:00 committed by Jiangjie.Bai
parent 548a374c6d
commit 3eab621b28
2 changed files with 48 additions and 14 deletions

View File

@ -313,7 +313,7 @@ class Config(dict):
'TERMINAL_HOST_KEY': '', 'TERMINAL_HOST_KEY': '',
'TERMINAL_TELNET_REGEX': '', 'TERMINAL_TELNET_REGEX': '',
'TERMINAL_COMMAND_STORAGE': {}, 'TERMINAL_COMMAND_STORAGE': {},
# 未来废弃(当下迁移会用) # 未来废弃(目前迁移会用)
'TERMINAL_RDP_ADDR': '', 'TERMINAL_RDP_ADDR': '',
# 保留(Luna还在用) # 保留(Luna还在用)
'TERMINAL_MAGNUS_ENABLED': True, 'TERMINAL_MAGNUS_ENABLED': True,

View File

@ -1,5 +1,6 @@
# Generated by Django 3.1.14 on 2022-04-12 07:39 # Generated by Django 3.1.14 on 2022-04-12 07:39
import copy
import common.fields.model import common.fields.model
import django.core.validators import django.core.validators
from django.db import migrations, models from django.db import migrations, models
@ -9,7 +10,9 @@ from django.conf import settings
def migrate_endpoints(apps, schema_editor): def migrate_endpoints(apps, schema_editor):
endpoint_data = { Endpoint = apps.get_model("terminal", "Endpoint")
# migrate default
default_data = {
'id': '00000000-0000-0000-0000-000000000001', 'id': '00000000-0000-0000-0000-000000000001',
'name': 'Default', 'name': 'Default',
'host': '', 'host': '',
@ -17,19 +20,50 @@ def migrate_endpoints(apps, schema_editor):
'http_port': 0, 'http_port': 0,
'created_by': 'System' 'created_by': 'System'
} }
default_endpoint = Endpoint.objects.create(**default_data)
if settings.XRDP_ENABLED: if not settings.XRDP_ENABLED:
xrdp_addr = settings.TERMINAL_RDP_ADDR return
if ':' in xrdp_addr: # migrate xrdp
hostname, port = xrdp_addr.strip().split(':') xrdp_addr = settings.TERMINAL_RDP_ADDR
else: if ':' in xrdp_addr:
hostname, port = xrdp_addr, 3389 host, rdp_port = xrdp_addr.strip().split(':')
endpoint_data.update({ else:
'host': '' if hostname.strip() in ['localhost', '127.0.0.1'] else hostname.strip(), host, rdp_port = xrdp_addr, 3389
'rdp_port': int(port) host = host.strip()
}) if host in ['localhost', '127.0.0.1']:
Endpoint = apps.get_model("terminal", "Endpoint") host = ''
Endpoint.objects.create(**endpoint_data) if not host:
return
if isinstance(rdp_port, str) and rdp_port.isdigit():
rdp_port = int(rdp_port)
elif isinstance(rdp_port, int) and (0 <= rdp_port <= 65535):
rdp_port = rdp_port
else:
rdp_port = 3389
xrdp_data = {
'name': 'XRDP',
'host': host,
'https_port': 0,
'http_port': 0,
'ssh_port': 0,
'rdp_port': rdp_port,
'mysql_port': 0,
'mariadb_port': 0,
'postgresql_port': 0,
'created_by': 'System'
}
xrdp_endpoint = Endpoint.objects.create(**xrdp_data)
EndpointRule = apps.get_model("terminal", "EndpointRule")
xrdp_rule_data = {
'name': 'XRDP',
'ip_group': ['*'],
'priority': 20,
'endpoint': xrdp_endpoint,
'created_by': 'System'
}
EndpointRule.objects.create(**xrdp_rule_data)
class Migration(migrations.Migration): class Migration(migrations.Migration):