feat: add new helper methods for RAC operations docs: add comprehensive library usage documentation chore: move example to examples/library_usage directory
109 lines
4.0 KiB
Go
109 lines
4.0 KiB
Go
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("Режим обслуживания успешно отключен")
|
||
}
|
||
}
|