All Projects → arkuznetsov → irac

arkuznetsov / irac

Licence: MPL-2.0 license
Интерфейсная библиотека (oscript) к утилите администрирования кластера серверов 1С (rac).

Programming Languages

1C Enterprise
81 projects
Gherkin
971 projects

Projects that are alternatives of or similar to irac

yabr.os
Чтение скобочного формата файлов 1С (oscript)
Stars: ✭ 33 (-46.77%)
Mutual labels:  oscript, onescript, bsl, 1c
onecover
Расчет покрытия тестами в 1С
Stars: ✭ 17 (-72.58%)
Mutual labels:  oscript, onescript, bsl
snegopat
Snegopat для 1С 8.Х (32x)- Snegopat for 1C:Enterprise
Stars: ✭ 66 (+6.45%)
Mutual labels:  bsl, 1c
1C-Gitter
ПРОЕКТ БОЛЬШЕ НЕ РАЗВИВАЕТСЯ. Конфигурация 1С для выгрузки коммитов из хранилища в GIT
Stars: ✭ 31 (-50%)
Mutual labels:  bsl, 1c
oscript-ssh
sshlib для oscript
Stars: ✭ 15 (-75.81%)
Mutual labels:  oscript, onescript
bsl-parser
Парсер конфигурации 1С
Stars: ✭ 27 (-56.45%)
Mutual labels:  onescript, bsl
ovm
OneScript Version Manager
Stars: ✭ 20 (-67.74%)
Mutual labels:  onescript
entity
OneScript Persistence API
Stars: ✭ 30 (-51.61%)
Mutual labels:  oscript
autodocgen
Проект переехал
Stars: ✭ 20 (-67.74%)
Mutual labels:  oscript
12c-rac-docker
Multiple node Oracle RAC cluster running in Docker containers
Stars: ✭ 39 (-37.1%)
Mutual labels:  rac
MyMoney
"Мои деньги" - конфигурация на платформе 1С 8.3
Stars: ✭ 18 (-70.97%)
Mutual labels:  1c
1c http
Подсистема 1С для работы с HTTP
Stars: ✭ 48 (-22.58%)
Mutual labels:  1c
whatsapp-chatbot-1c-example
Внешняя обработка для программы 1С:Предприятие, которая демонстрирует реализацию простого чат-бота для мессенджера WhatsApp.
Stars: ✭ 13 (-79.03%)
Mutual labels:  1c
DotRas
Provides remote access service (RAS) components for .NET languages like C#, VB.NET, and C++ CLR projects.
Stars: ✭ 93 (+50%)
Mutual labels:  ras
vagrant
Vagrant Builds
Stars: ✭ 154 (+148.39%)
Mutual labels:  rac
OneSTools.EventLog
Библиотеки и готовые инструменты для чтения и экспорта журнала регистрации 1С в ClickHouse и ElasticSearch
Stars: ✭ 96 (+54.84%)
Mutual labels:  1c
bsl-parser
Коллекция парсеров языка 1С (BSL) в формате ANTLR4.
Stars: ✭ 23 (-62.9%)
Mutual labels:  bsl
precommit4onec
Проект переехал
Stars: ✭ 22 (-64.52%)
Mutual labels:  oscript
onec-docker
Файлы для сборки образов Docker c платформой 1С:Предприятие 8.3.
Stars: ✭ 87 (+40.32%)
Mutual labels:  1c
bootstrap-1c
Шаблон для быстрого создания проектов 1С.
Stars: ✭ 36 (-41.94%)
Mutual labels:  1c

Библиотека управления кластером 1С

GitHub release GitHub license GitHub Releases GitHub All Releases Build Status Quality Gate Coverage Tech debt

Назначение

Библиотека (oscript) irac предоставляет интерфейс управления кластером серверов 1С:Предприятие 8 с использованием утилиты администрирования кластера (RAC).

Принцип работы

Библиотека подключается, как отдельный класс и используется для вызова команд утилиты RAC для взаимодействия с одним экземпляром сервера администрирования кластера 1С.

Используемая кодировка

В некоторых случаях консольная утилита RAC может выводить результат в некорректной кодировке.

Для указания кодировки можно использовать переменную среды RAC_ENCODING. Возможные значения OEM, ANSI, UTF8. По умолчанию используется кодировка UTF8.

В известных случаях для Windows проблему устраняет установка кодировки в значение OEM.

Пример получения списка кластеров, параметров серверов и информационных баз

#Использовать irac
Админ = Новый Структура();
Админ.Вставить("Администратор", "admin");
Админ.Вставить("Пароль", "P@$$w0rd");

Админка = Новый УправлениеКластером1С("8.3", "localhost:1545", Админ);

Кластеры = Админка.Кластеры();

// Обходим список кластеров
Для Каждого Кластер Из Кластеры.Список() Цикл
    Сообщить(Кластер.Получить("Имя"));
КонецЦикла;

// Кластер.УстановитьАдминистратора("<admin>", "<pwd>"); // - указывается если задан администратор кластера

Серверы = Кластер.Серверы();

// Обходим список серверов
Для Каждого Сервер Из Серверы.Список() Цикл

    Сообщить(Сервер.Имя() + " (" + Сервер.АдресСервера() + ":" + Сервер.ПортСервера() + ")");

    Для Каждого ТекАтрибут Из Серверы.ПараметрыОбъекта().ОписаниеСвойств() Цикл
        Сообщить(ТекАтрибут.Ключ + " : " + Сервер.Получить(ТекАтрибут.Значение.Имя));
    КонецЦикла;

КонецЦикла;

ИБ = Кластер.ИнформационныеБазы();

Сообщить("Всего ИБ: " + ИБ.Список().Количество());

// Обходим список информационных баз
Для Каждого ТекИБ Из ИБ.Список() Цикл

    Сообщить(ТекИБ.Имя() + " (" + ?(ТекИБ.ПолноеОписание(), "Полное", "Сокращенное") + " " + ТекИБ.Описание() + ")");

    Для Каждого ТекАтрибут Из ИБ.ПараметрыОбъекта().ОписаниеСвойств() Цикл
        Сообщить(ТекАтрибут.Ключ + " : " + ТекИБ.Получить(ТекАтрибут.Значение.Имя));
    КонецЦикла;

КонецЦикла;

Пример блокировки/разблокировки сеансов в информационной базе

#Использовать irac

Админ = Новый Структура("Администратор, Пароль", "agentAdmin", "P@$$w0rd");
Управление = Новый УправлениеКластером1С("8.3", "localhost:1545", Админ);

Кластер = Управление.Кластеры().Список()[0];
Кластер.УстановитьАдминистратора("clusterAdmin", "P@$$w0rd");

// Получение ИБ по имени
ИБ = Кластер.ИнформационныеБазы().Получить("MyAwesomeDatabase");
ИБ.УстановитьАдминистратора("Администратор", "P@$$w0rd");

// Установка блокировки начала сеансов с базой
ПараметрыИБ = Новый Структура();
ПараметрыИБ.Вставить("НачалоБлокировкиСеансов"   , Дата(20010101));
ПараметрыИБ.Вставить("ОкончаниеБлокировкиСеансов", Дата(20991231));
ПараметрыИБ.Вставить("СообщениеБлокировкиСеансов", "База заблокирована до особых распоряжений");
ПараметрыИБ.Вставить("КодРазрешения"             , "SuperSecretKey");
ПараметрыИБ.Вставить("БлокировкаСеансовВключена" , Перечисления.СостоянияВыключателя.Включено);

ИБ.Изменить(ПараметрыИБ);

// Снятие блокировки начала сеансов с базой
ПараметрыИБ = Новый Структура();
ПараметрыИБ.Вставить("БлокировкаСеансовВключена" , Перечисления.СостоянияВыключателя.Выключено);

ИБ.Изменить(ПараметрыИБ);

Пример блокировки/разблокировки регламентных заданий в информационной базе

#Использовать irac

Админ = Новый Структура("Администратор, Пароль", "agentAdmin", "P@$$w0rd");
Управление = Новый УправлениеКластером1С("8.3", "localhost:1545", Админ);

Кластер.УстановитьАдминистратора("clusterAdmin", "P@$$w0rd");

// Получение ИБ по имени
ИБ = Кластер.ИнформационныеБазы().Получить("MyAwesomeDatabase");
ИБ.УстановитьАдминистратора("Администратор", "P@$$w0rd");

// Установка блокировки регламентных заданий
ПараметрыИБ = Новый Структура();
ПараметрыИБ.Вставить("БлокировкаРегламентныхЗаданийВключена" , Перечисления.СостоянияВыключателя.Включено);

ИБ.Изменить(ПараметрыИБ);
// Снятие блокировки регламентных заданий
ПараметрыИБ = Новый Структура();
ПараметрыИБ.Вставить("БлокировкаРегламентныхЗаданийВключена" , Перечисления.СостоянияВыключателя.Выключено);

ИБ.Изменить(ПараметрыИБ);

Структура основных объектов

УправлениеКластером1С

    |-Администраторы
    |-Кластеры
        |-Администраторы
        |-МенеджерыКластера
        |-Серверы
        |   |-ТребованияНазначения
        |-РабочиеПроцессы
        |   |-Лицензии
        |-ИнформационныеБазы
        |-Сервисы
        |-Сеансы
        |-Соединения
        |   |-Лицензии
        |-Блокировки
        |-ПрофилиБезопасности
        |-СчетчикиПотребленияРесурсов

Объекты и методы

УправлениеКластером1С

Основной класс библиотеки. Предоставляет интерфейс управления серверами 1С.

    Админ = Новый Структура("Администратор, Пароль", "admin", "P@ssw0rd")
    УправлениеКластером = Новый УправлениеКластером1С("8.3.10", "localhost:1545", Админ);
Параметры конструктора
ВерсияИлиПутьКУтилитеАдминистрирования Строка маска версии 1С или путь к утилите RAC
СтрокаПодключенияСервиса Строка адрес:порт сервиса агента администрирования (RAS) (по умолчанию: "localhost:1545")
Администратор Структура параметры администратора агента сервера 1С
   - Администратор    Строка    имя администратора агента сервера 1С
   - Пароль    Строка    пароль администратора агента сервера 1С
Методы
СтрокаПодключения() Строка возвращает строку параметров подключения к агенту администрирования (RAS)
СтрокаАвторизации() Строка возвращает строку параметров авторизации на агенте кластера 1С
УстановитьАдминистратора(Администратор, Пароль) устанавливает параметры авторизации на агенте кластера 1С
ИсполнительКоманд() ИсполнительКоманд возвращает текущий объект-исполнитель команд
УстановитьИсполнительКоманд(НовыйИсполнитель) устанавливает объект-исполнитель команд
ОписаниеПодключения() Строка возвращает строку описания подключения к серверу администрирования кластера 1С
Администраторы() АдминистраторыАгента возвращает список администраторов агента кластера 1С
Кластеры() Кластеры возвращает список кластеров 1С
ВыполнитьКоманду(ПараметрыКоманды) Число передает команду в объект-исполнитель команды и возвращает код возврата команды
ВыводКоманды() Массив(Соответствие) возвращает вывод команды из объекта-исполнитель команд

ИсполнительКоманд

Вспомогательный объект для выполнения команд. Непосредственно вызывает утилиту RAC.

    Админ = Новый Структура("Администратор, Пароль", "admin", "P@ssw0rd")
    УправлениеКластером = Новый УправлениеКластером1С("8.3.10", "localhost:1545", Админ);
    УправлениеКластером.УстановитьИсполнительКоманд(Новый ИсполнительКоманд("8.3"));
Параметры конструктора
ВерсияИлиПутьКРАК Строка маска версии 1С или путь к утилите RAC
Методы
ВерсияУтилитыАдминистрирования() Строка возвращает версию утилиты RAC
ПутьКУтилитеАдминистрирования() Строка возвращает путь к утилите RAC
УстановитьПутьКУтилитеАдминистрирования(Путь) устанавливает переданный путь к утилите RAC
ВыполнитьКоманду(ПараметрыКоманды) Массив(Соответствие) выполняет команду и возвращает код возврата
ВыводКоманды(РазобратьВывод) Строка/Массив(Соответствие) возвращает вывод команды
КодВозврата() Число возвращает код возврата выполнения команды

Кластеры

Объект предоставляет доступ к списку кластеров, доступных для администрирования.

    Админ = Новый Структура("Администратор, Пароль", "admin", "P@ssw0rd")
    УправлениеКластером = Новый УправлениеКластером1С("8.3.10", "localhost:1545", Админ);
    СписокКластеров = Новый Кластеры(УправлениеКластером);
    Админ = Новый Структура("Администратор, Пароль", "admin", "P@ssw0rd")
    УправлениеКластером = Новый УправлениеКластером1С("8.3.10", "localhost:1545", Админ);
    СписокКластеров = УправлениеКластером.Кластеры();
Параметры конструктора
АгентКластера УправлениеКластером1С ссылка на родительский объект агент кластера
Методы
ОбновитьДанные(РежимОбновления) обновляет список кластеров вызывая утилиту RAC
ПараметрыОбъекта() Соответствие список параметров объекта кластера
Список(Отбор, РежимОбновления) возвращает список кластеров, соответствующих отбору
ВыполнитьКоманду(ПараметрыКоманды) Массив(Соответствие) выполняет команду и возвращает код возврата
ВыводКоманды(РазобратьВывод) Строка/Массив(Соответствие) возвращает вывод команды
КодВозврата() Число возвращает код возврата выполнения команды
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].