This commit is contained in:
2025-08-04 11:03:25 +03:00
commit b1bde827de
20 changed files with 3579 additions and 0 deletions

View File

@@ -0,0 +1,291 @@
package constants
import "time"
// Версия приложения
const (
// AppVersion версия приложения
AppVersion = "1.0.0"
)
// Константы для сервисного режима
const (
// DefaultDeniedMessage сообщение по умолчанию при включении сервисного режима
DefaultDeniedMessage = "Техническое обслуживание. Попробуйте позже."
// DefaultPermissionCode код разрешения для сервисного режима
DefaultPermissionCode = "service-mode"
// TechnicalMaintenanceMessage сообщение для завершения сессий
TechnicalMaintenanceMessage = "Техническое обслуживание"
)
// Константы таймаутов
const (
// DEFAULT_CONNECTION_TIMEOUT таймаут подключения по умолчанию
DEFAULT_CONNECTION_TIMEOUT = 30 * time.Second
// DEFAULT_COMMAND_TIMEOUT таймаут выполнения команды по умолчанию
DEFAULT_COMMAND_TIMEOUT = 60 * time.Second
// DEFAULT_RETRY_COUNT количество попыток повтора по умолчанию
DEFAULT_RETRY_COUNT = 3
// DEFAULT_RETRY_DELAY задержка между попытками по умолчанию
DEFAULT_RETRY_DELAY = 5 * time.Second
)
// Константы для RAC команд
const (
// RAC_INFOBASE_UPDATE команда обновления информационной базы
RAC_INFOBASE_UPDATE = "infobase"
// RAC_SESSION_LIST команда получения списка сессий
RAC_SESSION_LIST = "session"
// RAC_CLUSTER_LIST команда получения списка кластеров
RAC_CLUSTER_LIST = "cluster"
)
// Константы состояний сервисного режима
const (
// SERVICE_MODE_ON включение сервисного режима
SERVICE_MODE_ON = "on"
// SERVICE_MODE_OFF выключение сервисного режима
SERVICE_MODE_OFF = "off"
)
// Константы для CLI параметров
const (
// DefaultConfigPath путь к файлу конфигурации по умолчанию
DefaultConfigPath = "config.yaml"
// DefaultSecretPath путь к файлу секретов по умолчанию
DefaultSecretPath = "secret.yaml"
// CmdEnable команда включения сервисного режима
CmdEnable = "enable"
// CmdDisable команда отключения сервисного режима
CmdDisable = "disable"
// CmdStatus команда проверки статуса
CmdStatus = "status"
)
// Константы для сообщений ошибок
const (
// ErrCommandFailed сообщение об ошибке выполнения команды
ErrCommandFailed = "command failed after %d attempts: %w"
// ErrFailedToParseCommandTimeout сообщение об ошибке парсинга таймаута команды
ErrFailedToParseCommandTimeout = "failed to parse command timeout: %w"
// ErrRACCommandFailed сообщение об ошибке RAC команды
ErrRACCommandFailed = "RAC command failed: %w, output: %s"
// ErrGetClusterList сообщение об ошибке получения списка кластеров
ErrGetClusterList = "failed to get cluster list: %w"
// ErrClusterUUIDNotFound сообщение об ошибке поиска UUID кластера
ErrClusterUUIDNotFound = "cluster UUID not found in output"
// ErrGetInfobaseList сообщение об ошибке получения списка информационных баз
ErrGetInfobaseList = "failed to get infobase list: %w"
// ErrInfobaseUUIDNotFound сообщение об ошибке поиска UUID информационной базы
ErrInfobaseUUIDNotFound = "infobase UUID not found for name: %s"
// ErrUnknownCommand сообщение об неизвестной команде
ErrUnknownCommand = "unknown command: %s"
// ErrEnableServiceMode сообщение об ошибке включения сервисного режима
ErrEnableServiceMode = "failed to enable service mode: %w"
// ErrDisableServiceMode сообщение об ошибке отключения сервисного режима
ErrDisableServiceMode = "failed to disable service mode: %w"
// ErrGetSessions сообщение об ошибке получения списка сессий
ErrGetSessions = "failed to get sessions: %w"
// ErrGetSessionList сообщение об ошибке получения списка сессий
ErrGetSessionList = "failed to get session list: %w"
// ErrTerminateSession сообщение об ошибке завершения сессии
ErrTerminateSession = "failed to terminate session %s: %w"
// ErrGetInfobaseInfo сообщение об ошибке получения информации о базе
ErrGetInfobaseInfo = "failed to get infobase info: %w"
// ErrSessionsDenyVerification сообщение об ошибке проверки блокировки сессий
ErrSessionsDenyVerification = "sessions-deny verification failed: expected %s, got %s"
// ErrScheduledJobsDenyVerification сообщение об ошибке проверки блокировки заданий
ErrScheduledJobsDenyVerification = "scheduled-jobs-deny verification failed: expected %s, got %s"
// ErrLoadConfig сообщение об ошибке загрузки конфигурации
ErrLoadConfig = "failed to load config: %w"
// ErrLoadSecret сообщение об ошибке загрузки секретов
ErrLoadSecret = "failed to load secret: %w"
// ErrConfigValidation сообщение об ошибке валидации конфигурации
ErrConfigValidation = "config validation failed: %w"
// ErrGetClusterUUID сообщение об ошибке получения UUID кластера
ErrGetClusterUUID = "failed to get cluster UUID: %w"
// ErrGetInfobaseUUID сообщение об ошибке получения UUID информационной базы
ErrGetInfobaseUUID = "failed to get infobase UUID: %w"
// ErrDetermineServiceModeStatus сообщение об ошибке определения статуса сервисного режима
ErrDetermineServiceModeStatus = "failed to determine service mode status: %w"
// ErrReadConfigFile сообщение об ошибке чтения файла конфигурации
ErrReadConfigFile = "failed to read config file: %w"
// ErrUnmarshalConfig сообщение об ошибке парсинга конфигурации
ErrUnmarshalConfig = "failed to unmarshal config: %w"
// ErrReadSecretFile сообщение об ошибке чтения файла секретов
ErrReadSecretFile = "failed to read secret file: %w"
// ErrUnmarshalSecret сообщение об ошибке парсинга секретов
ErrUnmarshalSecret = "failed to unmarshal secret: %w"
// ErrServerHostRequired сообщение об обязательном поле server_host
ErrServerHostRequired = "server_host is required"
// ErrRACPathRequired сообщение об обязательном поле rac_path
ErrRACPathRequired = "rac_path is required"
// ErrBaseNameRequired сообщение об обязательном поле base_name
ErrBaseNameRequired = "base_name is required"
// ErrClusterAdminRequired сообщение об обязательном поле cluster_admin
ErrClusterAdminRequired = "cluster_admin is required"
// ErrDBAdminRequired сообщение об обязательном поле db_admin
ErrDBAdminRequired = "db_admin is required"
)
// Константы для сообщений логгера
const (
// LogMsgTerminatingAllSessions сообщение о завершении всех сессий
LogMsgTerminatingAllSessions = "Terminating all sessions"
// LogMsgNoActiveSessions сообщение об отсутствии активных сессий
LogMsgNoActiveSessions = "No active sessions found"
// LogMsgFoundActiveSessions сообщение о найденных активных сессиях
LogMsgFoundActiveSessions = "Found active sessions"
// LogMsgSessionTerminated сообщение о завершении сессии
LogMsgSessionTerminated = "Session terminated"
// LogMsgAllSessionsTerminated сообщение о завершении всех сессий
LogMsgAllSessionsTerminated = "All sessions termination completed"
// LogMsgVerifyingServiceMode сообщение о проверке сервисного режима
LogMsgVerifyingServiceMode = "Verifying service mode"
// LogMsgServiceModeEnabled сообщение об успешном включении сервисного режима
LogMsgServiceModeEnabled = "Service mode enabled successfully"
// LogMsgServiceModeDisabled сообщение об успешном отключении сервисного режима
LogMsgServiceModeDisabled = "Service mode disabled successfully"
// LogMsgServiceModeVerificationSuccessful сообщение об успешной проверке сервисного режима
LogMsgServiceModeVerificationSuccessful = "Service mode verification successful"
// LogMsgExecutingRACCommand сообщение о выполнении RAC команды
LogMsgExecutingRACCommand = "Executing RAC command"
// LogMsgRACCommandExecutedSuccessfully сообщение об успешном выполнении RAC команды
LogMsgRACCommandExecutedSuccessfully = "RAC command executed successfully"
// LogMsgRACCommandFailed сообщение об ошибке выполнения RAC команды
LogMsgRACCommandFailed = "RAC command failed"
// LogMsgFailedToTerminateSession сообщение об ошибке завершения сессии
LogMsgFailedToTerminateSession = "Failed to terminate session"
// LogMsgCommandExecutionFailed сообщение об ошибке выполнения команды
LogMsgCommandExecutionFailed = "Command execution failed"
// LogMsgRACCommand сообщение о RAC команде
LogMsgRACCommand = "RAC command"
// LogMsgEnablingServiceMode сообщение о включении сервисного режима
LogMsgEnablingServiceMode = "Enabling service mode"
// LogMsgDisablingServiceMode сообщение об отключении сервисного режима
LogMsgDisablingServiceMode = "Disabling service mode"
// LogMsgFailedToTerminateAllSessions сообщение об ошибке завершения всех сессий
LogMsgFailedToTerminateAllSessions = "Failed to terminate all sessions"
// LogMsgFailedToParseRetryDelay сообщение об ошибке парсинга задержки повтора
LogMsgFailedToParseRetryDelay = "Failed to parse retry delay, using default"
// LogMsgRetryingAfterDelay сообщение о повторе после задержки
LogMsgRetryingAfterDelay = "Retrying after delay"
// LogMsgRACCommandFailedAfterAllRetries сообщение об ошибке RAC команды после всех попыток
LogMsgRACCommandFailedAfterAllRetries = "RAC command failed after all retries"
// LogMsgGettingClusterUUID сообщение о получении UUID кластера
LogMsgGettingClusterUUID = "Getting cluster UUID"
// LogMsgFoundClusterUUID сообщение о найденном UUID кластера
LogMsgFoundClusterUUID = "Found cluster UUID"
// LogMsgGettingInfobaseUUID сообщение о получении UUID информационной базы
LogMsgGettingInfobaseUUID = "Getting infobase UUID"
// LogMsgFoundInfobaseUUID сообщение о найденном UUID информационной базы
LogMsgFoundInfobaseUUID = "Found infobase UUID"
)
// Константы для статусных сообщений
const (
// StatusServiceModeEnabled статус включенного сервисного режима
StatusServiceModeEnabled = "Service mode: ENABLED"
// StatusServiceModeDisabled статус отключенного сервисного режима
StatusServiceModeDisabled = "Service mode: DISABLED"
// MsgErrorLoadingConfig сообщение об ошибке загрузки конфигурации
MsgErrorLoadingConfig = "Error loading config: %v\n"
// MsgConfigValidationError сообщение об ошибке валидации конфигурации
MsgConfigValidationError = "Config validation error: %v\n"
// MsgVersionFormat формат вывода версии
MsgVersionFormat = "GitOps RAC v%s\n"
)
// Константы для magic numbers
const (
// UUIDLength длина UUID
UUIDLength = 36
// UUIDDashCount количество дефисов в UUID
UUIDDashCount = 4
// DefaultRACPort порт RAC по умолчанию
DefaultRACPort = 1545
// DefaultMainTimeout таймаут main функции
DefaultMainTimeout = 5
)
// Константы для логгера
const (
// PasswordMask маска для паролей
PasswordMask = "***"
// PasswordFlags флаги паролей через запятую для маскирования
PasswordFlags = "--cluster-pwd,--infobase-pwd"
)