mirror of https://github.com/jumpserver/jumpserver
93 lines
2.4 KiB
Python
93 lines
2.4 KiB
Python
from django.db import models
|
|
from django.utils.translation import gettext_lazy as _
|
|
from common.db.models import IncludesTextChoicesMeta
|
|
|
|
|
|
__all__ = [
|
|
'Category', 'HostTypes', 'NetworkTypes', 'DatabaseTypes',
|
|
'RemoteAppTypes', 'CloudTypes', 'Protocol', 'AllTypes',
|
|
]
|
|
|
|
|
|
class Category(models.TextChoices):
|
|
HOST = 'host', _('Host')
|
|
NETWORK = 'network', _("Networking")
|
|
DATABASE = 'database', _("Database")
|
|
REMOTE_APP = 'remote_app', _("Remote app")
|
|
CLOUD = 'cloud', _("Clouding")
|
|
|
|
|
|
class HostTypes(models.TextChoices):
|
|
LINUX = 'linux', 'Linux'
|
|
WINDOWS = 'windows', 'Windows'
|
|
UNIX = 'unix', 'Unix'
|
|
BSD = 'bsd', 'BSD'
|
|
MACOS = 'macos', 'MacOS'
|
|
MAINFRAME = 'mainframe', _("Mainframe")
|
|
OTHER_HOST = 'other_host', _("Other host")
|
|
|
|
|
|
class NetworkTypes(models.TextChoices):
|
|
SWITCH = 'switch', _("Switch")
|
|
ROUTER = 'router', _("Router")
|
|
FIREWALL = 'firewall', _("Firewall")
|
|
OTHER_NETWORK = 'other_network', _("Other device")
|
|
|
|
|
|
class DatabaseTypes(models.TextChoices):
|
|
MYSQL = 'mysql', 'MySQL'
|
|
MARIADB = 'mariadb', 'MariaDB'
|
|
POSTGRESQL = 'postgresql', 'PostgreSQL'
|
|
ORACLE = 'oracle', 'Oracle'
|
|
SQLSERVER = 'sqlserver', 'SQLServer'
|
|
MONGODB = 'mongodb', 'MongoDB'
|
|
REDIS = 'redis', 'Redis'
|
|
|
|
|
|
class RemoteAppTypes(models.TextChoices):
|
|
CHROME = 'chrome', 'Chrome'
|
|
VSPHERE = 'vsphere', 'vSphere client'
|
|
MYSQL_WORKBENCH = 'mysql_workbench', 'MySQL workbench'
|
|
CUSTOM_REMOTE_APP = 'custom_remote_app', _("Custom")
|
|
|
|
|
|
class CloudTypes(models.TextChoices):
|
|
K8S = 'k8s', 'Kubernetes'
|
|
|
|
|
|
class AllTypes(metaclass=IncludesTextChoicesMeta):
|
|
choices: list
|
|
includes = [
|
|
HostTypes, NetworkTypes, DatabaseTypes,
|
|
RemoteAppTypes, CloudTypes
|
|
]
|
|
|
|
|
|
class Protocol(models.TextChoices):
|
|
ssh = 'ssh', 'SSH'
|
|
rdp = 'rdp', 'RDP'
|
|
telnet = 'telnet', 'Telnet'
|
|
vnc = 'vnc', 'VNC'
|
|
|
|
mysql = 'mysql', 'MySQL'
|
|
mariadb = 'mariadb', 'MariaDB'
|
|
oracle = 'oracle', 'Oracle'
|
|
postgresql = 'postgresql', 'PostgreSQL'
|
|
sqlserver = 'sqlserver', 'SQLServer'
|
|
redis = 'redis', 'Redis'
|
|
mongodb = 'mongodb', 'MongoDB'
|
|
|
|
k8s = 'k8s', 'K8S'
|
|
|
|
@classmethod
|
|
def host_protocols(cls):
|
|
return [cls.ssh, cls.rdp, cls.telnet, cls.vnc]
|
|
|
|
@classmethod
|
|
def db_protocols(cls):
|
|
return [
|
|
cls.mysql, cls.mariadb, cls.postgresql, cls.oracle,
|
|
cls.sqlserver, cls.redis, cls.mongodb,
|
|
]
|
|
|