package main import ( "context" "log" "time" benadisrac "git.benadis.ru/gitops/benadis-rac" ) func main() { // Пример 1: Использование функции ManageServiceMode (рекомендуемый способ) log.Println("=== Пример 1: Использование ManageServiceMode ===") // Создаем конфигурацию config := &benadisrac.Config{ // RAC конфигурация RACPath: "C:\\Program Files\\1cv8\\8.3.25.1257\\bin\\rac.exe", ConnectionTimeout: 30 * time.Second, CommandTimeout: 60 * time.Second, RetryCount: 3, RetryDelay: 5 * time.Second, // Настройки сервера ServerHost: "localhost", ServerPort: 1541, RACPort: 1545, ServerName: "server1c", BaseName: "test_base", // Аутентификация ClusterAdmin: "admin", ClusterAdminPassword: "password", DBAdmin: "dbadmin", DBAdminPassword: "dbpassword", // Настройки режима обслуживания DeniedMessage: "Система находится в режиме обслуживания", PermissionCode: "MaintenanceMode", } // Устанавливаем значения по умолчанию config.SetDefaults() // Валидируем конфигурацию if err := config.Validate(); err != nil { log.Fatalf("Ошибка валидации конфигурации: %v", err) } // Создаем логгер logger := benadisrac.NewLogger("info") // Создаем контекст ctx := context.Background() // Включаем режим обслуживания log.Println("Включение режима обслуживания...") if err := benadisrac.ManageServiceMode(ctx, config, logger, true); err != nil { log.Printf("Ошибка включения режима обслуживания: %v", err) } else { log.Println("Режим обслуживания успешно включен") } // Ждем немного time.Sleep(2 * time.Second) // Отключаем режим обслуживания log.Println("Отключение режима обслуживания...") if err := benadisrac.ManageServiceMode(ctx, config, logger, false); err != nil { log.Printf("Ошибка отключения режима обслуживания: %v", err) } else { log.Println("Режим обслуживания успешно отключен") } // Пример 2: Использование Client напрямую log.Println("\n=== Пример 2: Использование Client напрямую ===") // Создаем клиента с той же конфигурацией client, err := benadisrac.NewClient(config) if err != nil { log.Fatalf("Ошибка создания клиента: %v", err) } // Получаем статус режима обслуживания log.Println("Получение статуса режима обслуживания...") status, err := client.GetServiceModeStatus(ctx) if err != nil { log.Printf("Ошибка получения статуса: %v", err) } else { log.Printf("Текущий статус режима обслуживания: %t", status) } // Включаем режим обслуживания log.Println("Включение режима обслуживания через Client...") if err := client.EnableServiceMode(ctx); err != nil { log.Printf("Ошибка включения режима обслуживания: %v", err) } else { log.Println("Режим обслуживания успешно включен") } // Отключаем режим обслуживания log.Println("Отключение режима обслуживания через Client...") if err := client.DisableServiceMode(ctx); err != nil { log.Printf("Ошибка отключения режима обслуживания: %v", err) } else { log.Println("Режим обслуживания успешно отключен") } }