diff --git a/readme.md b/readme.md index ebba933..10ef383 100644 --- a/readme.md +++ b/readme.md @@ -1,8 +1,9 @@ # Библиотека управления кластером 1С + [![GitHub release](https://img.shields.io/github/release/ArKuznetsov/irac.svg?style=flat-square)](https://github.com/ArKuznetsov/irac/releases) -[![GitHub license](https://img.shields.io/github/license/ArKuznetsov/irac.svg?style=flat-square)](https://github.com/ArKuznetsov/irac/blob/develop/LICENSE.md) +[![GitHub license](https://img.shields.io/github/license/ArKuznetsov/irac.svg?style=flat-square)](https://github.com/ArKuznetsov/irac/blob/develop/LICENSE) [![Build Status](https://travis-ci.org/arkuznetsov/irac.svg?branch=develop)](https://travis-ci.org/arkuznetsov/irac) -[![Quality Gate](https://oskk-sonar.1solution.ru/api/badges/gate?key=irac)](https://sonar.silverbulleters.org/dashboard/index/irac) +[![Quality Gate](https://oskk-sonar.1solution.ru/api/badges/gate?key=irac)](oskk-sonar.1solution.ru/dashboard/index/irac) [![Coverage](https://oskk-sonar.1solution.ru/api/badges/measure?key=irac&metric=coverage)](https://oskk-sonar.1solution.ru/dashboard/index/irac) [![Tech debt](https://oskk-sonar.1solution.ru/api/badges/measure?key=irac&metric=sqale_debt_ratio)](https://oskk-sonar.1solution.ru/dashboard/index/irac) @@ -10,7 +11,6 @@ Библиотека (oscript) irac предоставляет интерфейс управления кластером серверов 1С:Предприятие 8 с использованием утилиты администрирования кластера (RAC). - ## Принцип работы Библиотека подключается, как отдельный класс и используется для вызова команд утилиты RAC для взаимодействия с одним экземпляром сервера администрирования кластера 1С. @@ -57,31 +57,40 @@ КонецЦикла; ``` + ## Структура основных объектов + АдминистрированиеКластера - + +```txt |-Администраторы |-Кластеры - | |-Администраторы - | |-МенеджерыКластера - | |-Серверы - | | |-ТребованияНазначения - | |-РабочиеПроцессы - | | |-Лицензии - | |-ИнформационныеБазы - | |-Сервисы - | |-Сеансы - | |-Соединения - | | |-Лицензии - | |-Блокировки - | |-ПрофилиБезопасности + |-Администраторы + |-МенеджерыКластера + |-Серверы + | |-ТребованияНазначения + |-РабочиеПроцессы + | |-Лицензии + |-ИнформационныеБазы + |-Сервисы + |-Сеансы + |-Соединения + | |-Лицензии + |-Блокировки + |-ПрофилиБезопасности + |-СчетчикиПотребленияРесурсов +``` ## Объекты и методы + ### АдминистрированиеКластера + Основной класс библиотеки. Предоставляет интерфейс управления серверами 1С. + ```bsl АдминистрированиеКластера = Новый АдминистрированиеКластера("localhost", 1545, "8.3.10", "admin", "P@ssw0rd"); ``` + | Параметры конструктора ||| |-|-|-| | **АдресСервера** |Строка|имя сервера агента администрирования (RAS)| @@ -104,11 +113,14 @@ | **ВыводКоманды()** |Массив(Соответствие)|возвращает вывод команды из объекта-исполнитель команд| ### ИсполнительКоманд + Вспомогательный объект для выполнения команд. Непосредственно вызывает утилиту RAC. + ```bsl АдминистрированиеКластера = Новый АдминистрированиеКластера("localhost", 1545, "8.3.10", "admin", "P@ssw0rd"); АдминистрированиеКластера.УстановитьИсполнительКоманд(Новый ИсполнительКоманд("8.3")); ``` + | Параметры конструктора ||| |-|-|-| | **ВерсияИлиПутьКРАК** |Строка|маска версии 1С или путь к утилите RAC| @@ -123,15 +135,19 @@ | **КодВозврата()** |Число|возвращает код возврата выполнения команды| ### Кластеры + Объект предоставляет доступ к списку кластеров, доступных для администрирования. + ```bsl АдминистрированиеКластера = Новый АдминистрированиеКластера("localhost", 1545, "8.3.10", "admin", "P@ssw0rd"); СписокКластеров = Новый Кластеры(АдминистрированиеКластера); ``` + ```bsl АдминистрированиеКластера = Новый АдминистрированиеКластера("localhost", 1545, "8.3.10", "admin", "P@ssw0rd"); СписокКластеров = АдминистрированиеКластера.Кластеры(); ``` + | Параметры конструктора ||| |-|-|-| | **АгентКластера** |АдминистрированиеКластера|ссылка на родительский объект агент кластера| diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\260\321\217\320\221\320\260\320\267\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\260\321\217\320\221\320\260\320\267\320\260.os" index 31f1813..a473633 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\260\321\217\320\221\320\260\320\267\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\260\321\217\320\221\320\260\320\267\320\260.os" @@ -344,6 +344,8 @@ ОбновитьДанные(ОбновитьПринудительно); + ЗначениеПоля = Неопределено; + Если НЕ Найти(ВРЕг("Ид, infobase"), ВРег(ИмяПоля)) = 0 Тогда Возврат ИБ_Ид; ИначеЕсли НЕ Найти(ВРЕг("Имя, name"), ВРег(ИмяПоля)) = 0 Тогда @@ -352,10 +354,10 @@ Возврат ИБ_Описание; ИначеЕсли НЕ Найти(ВРЕг("ПолноеОписание"), ВРег(ИмяПоля)) = 0 Тогда Возврат ИБ_ПолноеОписание; + Иначе + ЗначениеПоля = ИБ_Параметры.Получить(ИмяПоля); КонецЕсли; - ЗначениеПоля = ИБ_Параметры.Получить(ИмяПоля); - Если ЗначениеПоля = Неопределено Тогда ОписаниеПараметра = ПараметрыОбъекта("ИмяРАК").Получить(ИмяПоля); @@ -426,7 +428,8 @@ Если ДействияСБазойСУБД = Перечисления.ДействияСБазойСУБДПриУдалении.Очистить Тогда ПараметрыКоманды.Вставить("ОчиститьБД", Истина); - ИначеЕсли ДействияСБазойСУБД = Перечисления.ДействияСБазойСУБДПриУдалении.Удалить Тогда + КонецЕсли; + Если ДействияСБазойСУБД = Перечисления.ДействияСБазойСУБДПриУдалении.Удалить Тогда ПараметрыКоманды.Вставить("УдалитьБД", Истина); КонецЕсли; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\276\320\274\320\260\320\275\320\264.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\276\320\274\320\260\320\275\320\264.os" index 6a43583..09abd02 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\276\320\274\320\260\320\275\320\264.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\276\320\274\320\260\320\275\320\264.os" @@ -444,10 +444,7 @@ СтрокаДляЛога = ""; Для Каждого Параметр Из Параметры Цикл - Если Найти(Параметр, "--agent-pwd") = 0 - И Найти(Параметр, "--cluster-pwd") = 0 - И Найти(Параметр, "--infobase-pwd") = 0 - И Найти(Параметр, "--pwd") = 0 Тогда + Если Найти(Параметр, "-pwd") = 0 Тогда СтрокаДляЛога = СтрокаДляЛога + " " + Параметр; КонецЕсли; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\202\320\265\321\200.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\202\320\265\321\200.os" index 892eba4..c61a409 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\202\320\265\321\200.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\202\320\265\321\200.os" @@ -418,6 +418,8 @@ ОбновитьДанные(ОбновитьПринудительно); + ЗначениеПоля = Неопределено; + Если НЕ Найти(ВРЕг("Ид, cluster"), ВРег(ИмяПоля)) = 0 Тогда Возврат Кластер_Ид; ИначеЕсли НЕ Найти(ВРЕг("Имя, name"), ВРег(ИмяПоля)) = 0 Тогда @@ -426,10 +428,10 @@ Возврат Кластер_АдресСервера; ИначеЕсли НЕ Найти(ВРЕг("ПортСервера, port"), ВРег(ИмяПоля)) = 0 Тогда Возврат Кластер_ПортСервера; + Иначе + ЗначениеПоля = Кластер_Параметры.Получить(ИмяПоля); КонецЕсли; - ЗначениеПоля = Кластер_Параметры.Получить(ИмяПоля); - Если ЗначениеПоля = Неопределено Тогда ОписаниеПараметра = ПараметрыОбъекта("ИмяРАК").Получить(ИмяПоля); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\260.os" index a02881a..b8df437 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\260.os" @@ -244,7 +244,7 @@ Продолжить; КонецЕсли; - Если НЕ ТекЭлемент.Значение[ИмяФлагаРазрешения] Тогда + Если ЗначениеЗаполнено(ИмяФлагаРазрешения) И НЕ ТекЭлемент.Значение[ИмяФлагаРазрешения] Тогда Продолжить; КонецЕсли; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\212\320\265\320\272\321\202\321\213\320\237\321\200\320\276\321\204\320\270\320\273\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\212\320\265\320\272\321\202\321\213\320\237\321\200\320\276\321\204\320\270\320\273\321\217.os" index 33c7673..f2c2e84 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\212\320\265\320\272\321\202\321\213\320\237\321\200\320\276\321\204\320\270\320\273\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\212\320\265\320\272\321\202\321\213\320\237\321\200\320\276\321\204\320\270\320\273\321\217.os" @@ -192,8 +192,8 @@ // Процедура добавляет новый или изменяет существующий объект профиля безопасности // // Параметры: -// Имя - Строка - имя объекта профиля безопасности 1С -// ПараметрыОбъекта - Структура - параметры объекта профиля безопасности 1С +// Имя - Строка - имя объекта профиля безопасности 1С +// ПараметрыОбъектаПрофиля - Структура - параметры объекта профиля безопасности 1С // Процедура Изменить(Имя, ПараметрыОбъектаПрофиля = Неопределено) Экспорт diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\262\320\265\321\200.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\262\320\265\321\200.os" index 53339a1..be63d5b 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\262\320\265\321\200.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\262\320\265\321\200.os" @@ -215,6 +215,8 @@ ОбновитьДанные(ОбновитьПринудительно); + ЗначениеПоля = Неопределено; + Если НЕ Найти(ВРЕг("Ид, server"), ВРег(ИмяПоля)) = 0 Тогда Возврат Сервер_Ид; ИначеЕсли НЕ Найти(ВРЕг("Имя, name"), ВРег(ИмяПоля)) = 0 Тогда @@ -223,10 +225,10 @@ Возврат Сервер_АдресАгента; ИначеЕсли НЕ Найти(ВРЕг("ПортАгента, agent-port"), ВРег(ИмяПоля)) = 0 Тогда Возврат Сервер_ПортАгента; + Иначе + ЗначениеПоля = Сервер_Параметры.Получить(ИмяПоля); КонецЕсли; - ЗначениеПоля = Сервер_Параметры.Получить(ИмяПоля); - Если ЗначениеПоля = Неопределено Тогда ОписаниеПараметра = ПараметрыОбъекта("ИмяРАК").Получить(ИмяПоля); diff --git "a/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\242\320\270\320\277\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.json" "b/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\242\320\270\320\277\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.json" index 4c0e1b7..83c6590 100644 --- "a/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\242\320\270\320\277\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.json" +++ "b/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\242\320\270\320\277\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.json" @@ -39,7 +39,7 @@ "Добавить":{ "ИмяРАК" : "register", "АвторизацияАгента" : true, - "Прочие" : true + "ЗначенияПолей" : true }, "Удалить":{ "ИмяРАК" : "remove", @@ -159,7 +159,7 @@ "Добавить":{ "ИмяРАК" : "register", "Кластер" : true, - "Прочие" : true + "ЗначенияПолей" : true }, "Удалить":{ "ИмяРАК" : "remove", @@ -193,7 +193,7 @@ "Параметр" : "Имя" } ], - "Прочие" : true + "ЗначенияПолей" : true }, "Изменить":{ "ИмяРАК" : "update", @@ -205,7 +205,7 @@ "Параметр" : "Имя" } ], - "Прочие" : true + "ЗначенияПолей" : true }, "Удалить":{ "ИмяРАК" : "remove", @@ -363,7 +363,7 @@ "Параметр" : "Локализация" } ], - "Прочие" : true + "ЗначенияПолей" : true }, "Изменить":{ "ИмяРАК" : "update", @@ -375,7 +375,7 @@ "Обязательный" : true } ], - "Прочие" : true + "ЗначенияПолей" : true }, "Удалить":{ "ИмяРАК" : "remove", @@ -713,7 +713,7 @@ "Параметр" : "Локализация" } ], - "Прочие" : true + "ЗначенияПолей" : true }, "Изменить":{ "ИмяРАК" : "update", @@ -725,7 +725,7 @@ "Обязательный" : true } ], - "Прочие" : true + "ЗначенияПолей" : true }, "Удалить":{ "ИмяРАК" : "drop", @@ -1185,7 +1185,7 @@ "Обязательный" : true } ], - "Прочие" : true + "ЗначенияПолей" : true }, "Изменить":{ "ИмяРАК" : "update", @@ -1207,7 +1207,7 @@ "Обязательный" : true } ], - "Прочие" : true + "ЗначенияПолей" : true }, "Удалить":{ "ИмяРАК" : "remove", @@ -1395,7 +1395,7 @@ "Обязательный" : true } ], - "Прочие" : true + "ЗначенияПолей" : true }, "Удалить":{ "ИмяРАК" : "remove", @@ -1466,7 +1466,7 @@ "Обязательный" : true } ], - "Прочие" : true + "ЗначенияПолей" : true }, "Удалить":{ "ИмяРАК" : "remove", @@ -1529,7 +1529,7 @@ "Обязательный" : true } ], - "Прочие" : true + "ЗначенияПолей" : true }, "Удалить":{ "ИмяРАК" : "remove", @@ -1592,7 +1592,7 @@ "Обязательный" : true } ], - "Прочие" : true + "ЗначенияПолей" : true }, "Удалить":{ "ИмяРАК" : "remove", @@ -1656,7 +1656,7 @@ "Обязательный" : true } ], - "Прочие" : true + "ЗначенияПолей" : true }, "Удалить":{ "ИмяРАК" : "remove", @@ -1729,7 +1729,7 @@ "Обязательный" : true } ], - "Прочие" : true + "ЗначенияПолей" : true }, "Удалить":{ "ИмяРАК" : "remove", @@ -1769,7 +1769,7 @@ "Обязательный" : true } ], - "Прочие" : true + "ЗначенияПолей" : true }, "Удалить":{ "ИмяРАК" : "remove", @@ -1967,7 +1967,7 @@ "Обязательный" : true } ], - "Прочие" : true + "ЗначенияПолей" : true }, "Значения":{ "ИмяРАК" : "values", @@ -1983,7 +1983,7 @@ "Параметр" : "Отбор" } ], - "Прочие" : true + "ЗначенияПолей" : true }, "Удалить":{ "ИмяРАК" : "remove", diff --git a/tasks/coverage.os b/tasks/coverage.os index 8150f5e..8a5e574 100644 --- a/tasks/coverage.os +++ b/tasks/coverage.os @@ -21,7 +21,8 @@ КодВозврата = Команда.Исполнить(); Файл_Стат = Новый Файл(ПутьКСтат); -Ожидаем.Что(Файл_Стат.Существует(), СтрШаблон("Файл <%1> с результатами покрытия не существует!", Файл_Стат.ПолноеИмя)).ЭтоИстина(); +Ожидаем.Что(Файл_Стат.Существует(), + СтрШаблон("Файл <%1> с результатами покрытия не существует!", Файл_Стат.ПолноеИмя)).ЭтоИстина(); ЧтениеТекста = Новый ЧтениеТекста(ПутьКСтат, КодировкаТекста.UTF8); diff --git "a/tests/fixtures/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.os" "b/tests/fixtures/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.os" index 90becb0..6779158 100644 --- "a/tests/fixtures/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.os" +++ "b/tests/fixtures/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.os" @@ -1356,7 +1356,9 @@ Описание = Новый Соответствие(); ТекстОбъекта = ""; Продолжить; - ИначеЕсли ПозРазделителя = 0 Тогда + КонецЕсли; + + Если ПозРазделителя = 0 Тогда Продолжить; КонецЕсли; diff --git a/travis.sh b/travis.sh index 5f8cef9..5f1deda 100644 --- a/travis.sh +++ b/travis.sh @@ -17,7 +17,7 @@ if [ "$TRAVIS_SECURE_ENV_VARS" == "true" ]; then -Dsonar.github.oauth=$SONAR_GITHUB_TOKEN \ -Dsonar.login=$SONAR_TOKEN \ -Dsonar.scanner.skip=false \ - -Dsonar.branch.name=$TRAVIS_BRANCH + -Dsonar.branch.name=master elif [ "$TRAVIS_BRANCH" == "develop" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then sonar-scanner \ @@ -25,6 +25,6 @@ if [ "$TRAVIS_SECURE_ENV_VARS" == "true" ]; then -Dsonar.login=$SONAR_TOKEN \ -Dsonar.projectVersion=$version \ -Dsonar.scanner.skip=false \ - -Dsonar.branch.name=$TRAVIS_BRANCH + -Dsonar.branch.name=master fi fi \ No newline at end of file