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 = {
|
|
|
|
'*': {
|
2022-09-26 10:03:48 +00:00
|
|
|
'ansible_enabled': True,
|
|
|
|
'ansible_config': {
|
|
|
|
'ansible_connection': 'local',
|
|
|
|
},
|
2023-01-16 11:02:09 +00:00
|
|
|
'ping_enabled': True,
|
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,
|
2023-01-16 11:02:09 +00:00
|
|
|
'push_account_enabled': True,
|
|
|
|
},
|
|
|
|
cls.REDIS: {
|
|
|
|
'push_account_enabled': False,
|
|
|
|
},
|
|
|
|
cls.CLICKHOUSE: {
|
|
|
|
'push_account_enabled': False,
|
|
|
|
},
|
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'}],
|
|
|
|
}
|
|
|
|
|
2022-12-19 03:35:50 +00:00
|
|
|
@classmethod
|
|
|
|
def get_community_types(cls):
|
|
|
|
return [
|
|
|
|
cls.MYSQL, cls.MARIADB, cls.MONGODB, cls.REDIS
|
|
|
|
]
|