refactor: rename package from gitops_rac to benadis_rac
The package and related files have been renamed to better reflect the project's naming conventions. This change includes: - Renaming the main package file - Updating all references in integration tests - Maintaining all existing functionality without behavior changes
This commit is contained in:
124
benadis_rac.go
Normal file
124
benadis_rac.go
Normal file
@@ -0,0 +1,124 @@
|
||||
// Package benadis_rac provides functionality for managing 1C service mode
|
||||
package benadis_rac
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"git.benadis.ru/gitops/benadis-rac/internal/config"
|
||||
"git.benadis.ru/gitops/benadis-rac/internal/logger"
|
||||
"git.benadis.ru/gitops/benadis-rac/internal/service"
|
||||
)
|
||||
|
||||
// ServiceModeManager интерфейс для управления сервисным режимом
|
||||
type ServiceModeManager interface {
|
||||
// EnableServiceMode включает сервисный режим
|
||||
EnableServiceMode(ctx context.Context) error
|
||||
|
||||
// DisableServiceMode выключает сервисный режим
|
||||
DisableServiceMode(ctx context.Context) error
|
||||
|
||||
// GetServiceModeStatus получает текущий статус сервисного режима
|
||||
GetServiceModeStatus(ctx context.Context) (bool, error)
|
||||
}
|
||||
|
||||
// Client клиент для работы с 1C сервисным режимом
|
||||
type Client struct {
|
||||
service *service.ServiceModeService
|
||||
}
|
||||
|
||||
// Config конфигурация для создания клиента
|
||||
type Config struct {
|
||||
ConfigPath string // Путь к файлу конфигурации
|
||||
SecretPath string // Путь к файлу с секретами
|
||||
ProjectPath string // Путь к файлу проекта
|
||||
LogLevel string // Уровень логирования (Debug, Info, Warn, Error)
|
||||
}
|
||||
|
||||
// NewClient создает новый клиент для управления сервисным режимом
|
||||
func NewClient(cfg Config) (*Client, error) {
|
||||
if cfg.ConfigPath == "" {
|
||||
cfg.ConfigPath = "config.yaml"
|
||||
}
|
||||
if cfg.SecretPath == "" {
|
||||
cfg.SecretPath = "secret.yaml"
|
||||
}
|
||||
if cfg.ProjectPath == "" {
|
||||
cfg.ProjectPath = "project.yaml"
|
||||
}
|
||||
if cfg.LogLevel == "" {
|
||||
cfg.LogLevel = "Info"
|
||||
}
|
||||
|
||||
// Загружаем конфигурацию
|
||||
appConfig, err := config.LoadConfig(cfg.ConfigPath, cfg.SecretPath, cfg.ProjectPath)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to load config: %w", err)
|
||||
}
|
||||
|
||||
// Переопределяем уровень логирования если указан
|
||||
if appConfig.Project != nil && appConfig.Project.ServiceMode != nil {
|
||||
appConfig.Project.ServiceMode.LogLevel = cfg.LogLevel
|
||||
}
|
||||
|
||||
// Валидируем конфигурацию
|
||||
if err := appConfig.Validate(); err != nil {
|
||||
return nil, fmt.Errorf("config validation failed: %w", err)
|
||||
}
|
||||
|
||||
// Создаем логгер
|
||||
logLevel := "Info"
|
||||
if appConfig.Project != nil && appConfig.Project.ServiceMode != nil && appConfig.Project.ServiceMode.LogLevel != "" {
|
||||
logLevel = appConfig.Project.ServiceMode.LogLevel
|
||||
}
|
||||
log := logger.NewLogger(logLevel)
|
||||
|
||||
// Создаем сервис
|
||||
svc := service.NewServiceModeService(appConfig, log)
|
||||
|
||||
return &Client{
|
||||
service: svc,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// EnableServiceMode включает сервисный режим
|
||||
func (c *Client) EnableServiceMode(ctx context.Context) error {
|
||||
return c.service.EnableServiceMode(ctx)
|
||||
}
|
||||
|
||||
// DisableServiceMode выключает сервисный режим
|
||||
func (c *Client) DisableServiceMode(ctx context.Context) error {
|
||||
return c.service.DisableServiceMode(ctx)
|
||||
}
|
||||
|
||||
// GetServiceModeStatus получает текущий статус сервисного режима
|
||||
// Возвращает true если сервисный режим включен, false если выключен
|
||||
func (c *Client) GetServiceModeStatus(ctx context.Context) (bool, error) {
|
||||
return c.service.GetServiceModeStatus(ctx)
|
||||
}
|
||||
|
||||
// NewClientFromConfig создает клиент из готовой конфигурации
|
||||
func NewClientFromConfig(appConfig *config.AppConfig, logLevel string) (*Client, error) {
|
||||
if logLevel != "" && appConfig.Project != nil && appConfig.Project.ServiceMode != nil {
|
||||
appConfig.Project.ServiceMode.LogLevel = logLevel
|
||||
}
|
||||
|
||||
// Валидируем конфигурацию
|
||||
if err := appConfig.Validate(); err != nil {
|
||||
return nil, fmt.Errorf("config validation failed: %w", err)
|
||||
}
|
||||
|
||||
// Создаем логгер
|
||||
logLevelToUse := "Info"
|
||||
if appConfig.Project != nil && appConfig.Project.ServiceMode != nil && appConfig.Project.ServiceMode.LogLevel != "" {
|
||||
logLevelToUse = appConfig.Project.ServiceMode.LogLevel
|
||||
}
|
||||
log := logger.NewLogger(logLevelToUse)
|
||||
|
||||
// Создаем сервис
|
||||
svc := service.NewServiceModeService(appConfig, log)
|
||||
|
||||
return &Client{
|
||||
service: svc,
|
||||
}, nil
|
||||
}
|
||||
Reference in New Issue
Block a user