from .base import Base
from .install import Install
from .code_stub import Code_stub
from .ins_ds_rabbitmq import Ins_Ds_Rabbitmq
from .ins_ds_docserver import Ins_Ds_Docserver
from .ins_ds_redis import Ins_Ds_Redis
from .ins_ds_postgres import Ins_Ds_Postgres
from .ins_ds_frontend import Ins_Ds_Frontend
from .ins_cs_api import Ins_Cs_Api
from .ins_cs_frontend import Ins_Cs_Frontend
from .ins_cs_ssoapi import Ins_Cs_Ssoapi
from .ins_cs_draw import Ins_Cs_Draw
from .ins_cs_filestorage import Ins_Cs_Filestorage
from .ins_cs_postgres import Ins_Cs_Postgres
from .ins_cs_registry import Ins_Cs_Registry
from .ins_cs_rabbitmq import Ins_Cs_Rabbitmq
from .ins_cs_processing import Ins_Cs_Processing
from .ins_cs_searchapi import Ins_Cs_Searchapi
from .ins_ds_front_back import Ins_Ds_Front_Back
from .ins_minio import Ins_Minio
# from .ds_only import DS_Only
# from .multinodes import Multinodes

class Multinodes(Base):

    def preload(self):
        self.semaphore = ["Выберите необходимое действие:",
            [
                # {
                #     "lang": "Установка сервиса minio",
                #     "exec": Ins_Minio,
                #     "msg": "Начинаем установку сервиса minio.\n\n",
                #     "logger_name": "Ins_Minio",
                #     "logger_level": self.logger_level,
                #     "DETALIZATION": 5
                # },
                {
                    "lang": "Установка сервиса ds-postgres",
                    "exec": Ins_Ds_Postgres,
#                    "msg": "Начинаем установку сервиса ds-postgres.\n\n",
                    "logger_name": "Ins_Ds_Postgres",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 5
                },                
                {
                    "lang": "Установка сервиса ds-redis",
                    "exec": Ins_Ds_Redis,
#                    "msg": "Начинаем установку сервиса ds-redis.\n\n",
                    "logger_name": "Ins_Ds_Redis",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 5
                },
                {
                    "lang": "Установка сервиса ds frontend+backend+rabbitmq",
                    "exec": Ins_Ds_Front_Back,
#                    "msg": "Начинаем установку сервиса ds frontend+backend+rabbitmq.\n\n",
                    "logger_name": "Ins_Ds_Front_Back_Rabbit",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 5
                },
                # {
                #     "lang": "Установка сервиса ds-docserver",
                #     "exec": Ins_Ds_Docserver,
                #     "msg": "Начинаем установку сервиса ds-docserver.\n\n",
                #     "logger_name": "Ins_Ds_Docserver",
                #     "logger_level": self.logger_level,
                #     "DETALIZATION": 5
                # },
                # {
                #     "lang": "Установка сервиса ds-frontend",
                #     "exec": Ins_Ds_Frontend,
                #     "msg": "Начинаем установку сервиса ds-frontend.\n\n",
                #     "logger_name": "Ins_Ds_Frontend",
                #     "logger_level": self.logger_level,
                #     "DETALIZATION": 5
                # },
                {
                    "lang": "Установка сервиса cs-rabbitmq",
                    "exec": Ins_Cs_Rabbitmq,
#                    "msg": "Начинаем установку сервиса cs-rabbitmq.\n\n",
                    "logger_name": "Ins_Cs_Rabbitmq",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 5
                },
                {
                    "lang": "Установка сервиса cs-postgres",
                    "exec": Ins_Cs_Postgres,
#                    "msg": "Начинаем установку сервиса cs-postgres.\n\n",
                    "logger_name": "Ins_Cs_Postgres",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 5
                },
                {
                    "lang": "Установка сервиса cs-filestorage",
                    "exec": Ins_Cs_Filestorage,
#                    "msg": "Начинаем установку сервиса cs-filestorage.\n\n",
                    "logger_name": "Ins_Cs_Filestorage",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 5
                },
                {
                    "lang": "Установка сервиса cs-searchapi",
                    "exec": Ins_Cs_Searchapi,
#                    "msg": "Начинаем установку сервиса cs-searchapi.\n\n",
                    "logger_name": "Ins_Cs_Searchapi",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 5
                },
                {
                    "lang": "Установка сервиса cs-registry",
                    "exec": Ins_Cs_Registry,
#                    "msg": "Начинаем установку сервиса cs-registry.\n\n",
                    "logger_name": "Ins_Cs_Registry",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 5
                },
                {
                    "lang": "Установка сервиса cs-processing",
                    "exec": Ins_Cs_Processing,
#                    "msg": "Начинаем установку сервиса cs-processing.\n\n",
                    "logger_name": "Ins_Cs_Processing",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 5
                },
                {
                    "lang": "Установка сервиса cs-ssoapi",
                    "exec": Ins_Cs_Ssoapi,
#                    "msg": "Начинаем установку сервиса cs-ssoapi.\n\n",
                    "logger_name": "Ins_Cs_Ssoapi",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 5
                },
                {
                    "lang": "Установка сервиса cs-api",
                    "exec": Ins_Cs_Api,
#                    "msg": "Начинаем установку сервиса cs-api.\n\n",
                    "logger_name": "Ins_Cs_Api",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 5
                },
                {
                    "lang": "Установка сервиса cs-frontend",
                    "exec": Ins_Cs_Frontend,
#                    "msg": "Начинаем установку сервиса cs-frontend.\n\n",
                    "logger_name": "Ins_Cs_Frontend",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 5
                },
                {
                    "lang": "Установка сервиса cs-draw",
                    "exec": Ins_Cs_Draw,
#                    "msg": "Начинаем установку сервиса cs-draw.\n\n",
                    "logger_name": "Ins_Cs_Draw",
                    "logger_level": self.logger_level,
                    "DETALIZATION": 5
                },
            ]
        ];
