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
This commit is contained in:
2025-08-04 12:03:45 +03:00
parent ccbe0c669d
commit 46261f066b
7 changed files with 1152 additions and 678 deletions

View File

@@ -0,0 +1,108 @@
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("Режим обслуживания успешно отключен")
}
}