From b660bfb7fff26f6b9ff36cee5a149f2348d70858 Mon Sep 17 00:00:00 2001 From: Eric Date: Mon, 11 Nov 2024 15:59:28 +0800 Subject: [PATCH] perf: add nec vnc component and endpoint migrations --- apps/terminal/connect_methods.py | 10 +++++++++ apps/terminal/const.py | 2 ++ apps/terminal/migrations/0001_initial.py | 2 +- .../migrations/0005_endpoint_vnc_port.py | 21 +++++++++++++++++++ apps/terminal/models/component/endpoint.py | 1 + apps/terminal/serializers/endpoint.py | 2 +- 6 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 apps/terminal/migrations/0005_endpoint_vnc_port.py diff --git a/apps/terminal/connect_methods.py b/apps/terminal/connect_methods.py index 731853217..e05eb9826 100644 --- a/apps/terminal/connect_methods.py +++ b/apps/terminal/connect_methods.py @@ -35,6 +35,9 @@ class NativeClient(TextChoices): # Razor mstsc = 'mstsc', _('Remote Desktop') rdp_guide = 'rdp_guide', _('RDP Guide') + # NEC + vnc_client = 'vnc_client', _('VNC Client') + vnc_guide = 'vnc_guide', _('VNC Guide') @classmethod def get_native_clients(cls): @@ -51,6 +54,7 @@ class NativeClient(TextChoices): Protocol.oracle: [cls.db_client, cls.db_guide], Protocol.postgresql: [cls.db_client, cls.db_guide], Protocol.sqlserver: [cls.db_client, cls.db_guide], + Protocol.vnc: [cls.vnc_guide,] } return clients @@ -201,6 +205,12 @@ class ConnectMethodUtil: 'listen': [Protocol.http], 'support': [Protocol.chatgpt], 'match': 'm2m' + }, + TerminalType.nec: { + 'web_methods': [], + 'listen': [Protocol.vnc], + 'support': [Protocol.vnc], + 'match': 'map' } } return protocols diff --git a/apps/terminal/const.py b/apps/terminal/const.py index 8ad37e93d..36ea0ee80 100644 --- a/apps/terminal/const.py +++ b/apps/terminal/const.py @@ -67,6 +67,8 @@ class TerminalType(TextChoices): chen = 'chen', 'Chen' kael = 'kael', 'Kael' panda = 'panda', 'Panda' + nec = 'nec', 'Nec' + facelive = 'facelive', 'Facelive' @classmethod def types(cls): diff --git a/apps/terminal/migrations/0001_initial.py b/apps/terminal/migrations/0001_initial.py index 8a3b6eddb..30804aba2 100644 --- a/apps/terminal/migrations/0001_initial.py +++ b/apps/terminal/migrations/0001_initial.py @@ -357,7 +357,7 @@ class Migration(migrations.Migration): ('comment', models.TextField(blank=True, default='', verbose_name='Comment')), ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('name', models.CharField(max_length=128, verbose_name='Name')), - ('type', models.CharField(choices=[('koko', 'KoKo'), ('guacamole', 'Guacamole'), ('omnidb', 'OmniDB'), ('xrdp', 'Xrdp'), ('lion', 'Lion'), ('core', 'Core'), ('celery', 'Celery'), ('magnus', 'Magnus'), ('razor', 'Razor'), ('tinker', 'Tinker'), ('video_worker', 'Video Worker'), ('chen', 'Chen'), ('kael', 'Kael'), ('panda', 'Panda')], default='koko', max_length=64, verbose_name='type')), + ('type', models.CharField(choices=[('koko', 'KoKo'), ('guacamole', 'Guacamole'), ('omnidb', 'OmniDB'), ('xrdp', 'Xrdp'), ('lion', 'Lion'), ('core', 'Core'), ('celery', 'Celery'), ('magnus', 'Magnus'), ('razor', 'Razor'), ('tinker', 'Tinker'), ('video_worker', 'Video Worker'), ('chen', 'Chen'), ('kael', 'Kael'), ('panda', 'Panda'), ('nec', 'Nec'), ('facelive', 'Facelive')], default='koko', max_length=64, verbose_name='type')), ('remote_addr', models.CharField(blank=True, max_length=128, verbose_name='Remote Address')), ('command_storage', models.CharField(default='default', max_length=128, verbose_name='Command storage')), ('replay_storage', models.CharField(default='default', max_length=128, verbose_name='Replay storage')), diff --git a/apps/terminal/migrations/0005_endpoint_vnc_port.py b/apps/terminal/migrations/0005_endpoint_vnc_port.py new file mode 100644 index 000000000..acf301dbc --- /dev/null +++ b/apps/terminal/migrations/0005_endpoint_vnc_port.py @@ -0,0 +1,21 @@ +# Generated by Django 4.1.13 on 2024-11-11 09:32 + +import django.core.validators +from django.db import migrations + +import common.db.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('terminal', '0004_endpoint_is_active'), + ] + + operations = [ + migrations.AddField( + model_name='endpoint', + name='vnc_port', + field=common.db.fields.PortField(default=5900, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(65535)], verbose_name='VNC port'), + ), + ] diff --git a/apps/terminal/models/component/endpoint.py b/apps/terminal/models/component/endpoint.py index 0df5f7519..79df177bf 100644 --- a/apps/terminal/models/component/endpoint.py +++ b/apps/terminal/models/component/endpoint.py @@ -22,6 +22,7 @@ class Endpoint(JMSBaseModel): postgresql_port = PortField(default=54320, verbose_name=_('PostgreSQL port')) redis_port = PortField(default=63790, verbose_name=_('Redis port')) sqlserver_port = PortField(default=14330, verbose_name=_('SQLServer port')) + vnc_port = PortField(default=5900, verbose_name=_('VNC port')) comment = models.TextField(default='', blank=True, verbose_name=_('Comment')) is_active = models.BooleanField(default=True, verbose_name=_('Active')) diff --git a/apps/terminal/serializers/endpoint.py b/apps/terminal/serializers/endpoint.py index c0e236195..8f6a18560 100644 --- a/apps/terminal/serializers/endpoint.py +++ b/apps/terminal/serializers/endpoint.py @@ -27,7 +27,7 @@ class EndpointSerializer(BulkModelSerializer): fields_mini = ['id', 'name'] fields_small = [ 'host', 'https_port', 'http_port', 'ssh_port', 'rdp_port', - 'mysql_port', 'mariadb_port', 'postgresql_port', 'redis_port', + 'mysql_port', 'mariadb_port', 'postgresql_port', 'redis_port','vnc_port', 'oracle_port_range', 'oracle_port', 'sqlserver_port', 'is_active' ] fields = fields_mini + fields_small + [