from .base import Base
from .install import Install
from .code_stub import Code_stub
from .cs_only import CS_Only
from .ds_only import DS_Only
from .ins_dscluster_balancer import Ins_DSCluster_Balancer
from .ins_dscluster_ds import Ins_DSCluster_DS
from .ins_dscluster_rabbitmq import Ins_DSCluster_RabbitMQ
from .ins_dscluster_postgres import Ins_DSCluster_Postgres
from .ins_dscluster_redis import Ins_DSCluster_Redis
from .ins_minio import Ins_Minio
from .multinodes import Multinodes
from .mail_only import Mail_Only
from .ins_high_load import Ins_High_Load
from .ins_grafana_loki import Ins_Grafana_Loki
from .ins_promtail import Ins_Promtail
from .ins_dscluster import Ins_DSCluster
from .integrations import Integrations
class Installer(Base):

    def preload(self):
        self.semaphore = ["Выберите необходимое действие:",
            [
                {
                    "lang": "Стандартная установка Корпоративного сервера 2024 и Сервера документов",
                    "exec": Install,
#                    "msg": "Начинаем установку Р7-Офис.\n\n",
                    "logger_name": "Install",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 1
                },
                {
                    "lang": "Расширенная установка Корпоративного сервера 2024 и Сервера документов",
                    "exec": Install,
#                    "msg": "Начинаем установку Р7-Офис.\n\n",
                    "logger_name": "Install",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 2
                },
                {
                    "lang": "Установка только Корпоративного сервера 2024",
                    "exec": CS_Only,
#                    "msg": "Начинаем установку Р7-Офис.\n\n",
                    "logger_name": "Install",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 2
                },
                {
                    "lang": "Установка только Сервера документов",
                    "exec": DS_Only,
#                    "msg": "Начинаем установку Р7-Офис.\n\n",
                    "logger_name": "Install",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 2
                },
                {
                    "lang": "Установка только Почтового сервера",
                    "exec": Mail_Only,
#                    "msg": "Начинаем установку Р7-Офис.\n\n",
                    "logger_name": "Install",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 2
                },
                {
                    "lang": "Установка разнесенной архитектуры Р7 для нагруженных систем",
                    "exec": Ins_High_Load,
#                    "msg": "Начинаем установку Р7-Офис.\n\n",
                    "logger_name": "Ins_High_Load",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 5
                },
                {
                    "lang": "Установка мультинодовой архитектуры Р7 (без поддержки)",
                    "exec": Multinodes,
#                    "msg": "Начинаем установку Р7-Офис. Эта архитектура без технической поддержки\n\n",
                    "logger_name": "Multinodes",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 5
                },
            ]
        ];
