Files
gitops 46261f066b refactor: restructure library to expose public API directly
feat: add new helper methods for RAC operations
docs: add comprehensive library usage documentation
chore: move example to examples/library_usage directory
2025-08-04 12:03:45 +03:00

109 lines
4.0 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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("Режим обслуживания успешно отключен")
}
}