jumpserver/apps/assets/const/database.py

69 lines
1.9 KiB
Python
Raw Normal View History

2022-09-19 12:11:55 +00:00
from .base import BaseType
2022-09-18 16:07:59 +00:00
2022-09-19 12:11:55 +00:00
class DatabaseTypes(BaseType):
2022-09-18 16:07:59 +00:00
MYSQL = 'mysql', 'MySQL'
MARIADB = 'mariadb', 'MariaDB'
POSTGRESQL = 'postgresql', 'PostgreSQL'
ORACLE = 'oracle', 'Oracle'
SQLSERVER = 'sqlserver', 'SQLServer'
2022-12-06 09:13:37 +00:00
CLICKHOUSE = 'clickhouse', 'ClickHouse'
2022-09-18 16:07:59 +00:00
MONGODB = 'mongodb', 'MongoDB'
REDIS = 'redis', 'Redis'
2022-09-19 12:11:55 +00:00
@classmethod
def _get_base_constrains(cls) -> dict:
2022-09-18 16:07:59 +00:00
return {
2022-09-19 12:11:55 +00:00
'*': {
2022-09-21 11:03:06 +00:00
'charset_enabled': False,
2022-09-19 12:11:55 +00:00
'domain_enabled': True,
'su_enabled': False,
}
}
@classmethod
def _get_automation_constrains(cls) -> dict:
constrains = {
'*': {
'ansible_enabled': True,
'ansible_config': {
'ansible_connection': 'local',
},
2022-09-19 12:11:55 +00:00
'gather_facts_enabled': True,
'gather_accounts_enabled': True,
'verify_account_enabled': True,
2022-10-13 09:47:29 +00:00
'change_secret_enabled': True,
2022-10-19 03:39:11 +00:00
'push_account_enabled': True,
2022-09-19 12:11:55 +00:00
}
2022-09-18 16:07:59 +00:00
}
2022-09-19 12:11:55 +00:00
return constrains
2022-09-18 16:07:59 +00:00
@classmethod
2022-09-19 12:11:55 +00:00
def _get_protocol_constrains(cls) -> dict:
return {
'*': {
'choices': '__self__',
2022-09-18 16:07:59 +00:00
}
2022-09-19 12:11:55 +00:00
}
2022-09-22 07:24:32 +00:00
@classmethod
def internal_platforms(cls):
return {
cls.MYSQL: [{'name': 'MySQL'}],
cls.MARIADB: [{'name': 'MariaDB'}],
cls.POSTGRESQL: [{'name': 'PostgreSQL'}],
cls.ORACLE: [{'name': 'Oracle'}],
cls.SQLSERVER: [{'name': 'SQLServer'}],
2022-12-06 09:13:37 +00:00
cls.CLICKHOUSE: [
{'name': 'ClickHouse', 'automation': {'ansible_enabled': False}}
],
2022-09-22 07:24:32 +00:00
cls.MONGODB: [{'name': 'MongoDB'}],
cls.REDIS: [{'name': 'Redis'}],
}
@classmethod
def get_community_types(cls):
return [
cls.MYSQL, cls.MARIADB, cls.MONGODB, cls.REDIS
]