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:
108
examples/library_usage/main.go
Normal file
108
examples/library_usage/main.go
Normal 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("Режим обслуживания успешно отключен")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user