diff --git a/.travis.yml b/.travis.yml index 9d9a82f..5ea1d98 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,11 +15,13 @@ before_install: - oscript - sudo git clone -b develop http://github.com/arkuznetsov/1testrunner ./testrunner - sudo opm build ./testrunner -out ./testrunner + - sudo git clone -b develop http://github.com/arkuznetsov/moskito ./moskito + - sudo opm build ./moskito -out ./moskito install: - sudo opm install - sudo opm install 1testrunner - sudo opm install v8runner - - sudo opm install moskito + - sudo opm install -f ./moskito/moskito-0.4.0.ospx - sudo opm install -f ./testrunner/1testrunner-1.5.3.ospx cache: diff --git a/doc/rac.counter.txt b/doc/rac.counter.txt new file mode 100644 index 0000000..c3cac2a Binary files /dev/null and b/doc/rac.counter.txt differ diff --git a/doc/rac.limit.txt b/doc/rac.limit.txt new file mode 100644 index 0000000..5aecdf0 Binary files /dev/null and b/doc/rac.limit.txt differ diff --git a/lib.config b/lib.config index 2484864..8cbbad2 100644 --- a/lib.config +++ b/lib.config @@ -1,33 +1,33 @@  - - + + - - + - - + + - - + + - + - + - + - + - - - + + + + \ No newline at end of file diff --git a/packagedef b/packagedef index 7d94196..fdae126 100644 --- a/packagedef +++ b/packagedef @@ -1,6 +1,6 @@  Описание.Имя("irac") - .Версия("0.8.1") + .Версия("0.9.0") .Автор("Artem Kuznetsov") .АдресАвтора("ArKuznetsov@gmail.com") .Описание("Библиотека администрирования кластера серверов 1С") diff --git a/readme.md b/readme.md index f297127..fbb7fcf 100644 --- a/readme.md +++ b/readme.md @@ -34,7 +34,7 @@ Сообщить(Сервер.Имя() + " (" + Сервер.АдресСервера() + ":" + Сервер.ПортСервера() + ")"); Для Каждого ТекАтрибут Из Серверы.ПараметрыОбъекта() Цикл - Сообщить(ТекАтрибут.Ключ + " : " + Сервер.Получить(ТекАтрибут.Значение.ИмяПараметра)); + Сообщить(ТекАтрибут.Ключ + " : " + Сервер.Получить(ТекАтрибут.Значение.Имя)); КонецЦикла; КонецЦикла; @@ -49,7 +49,7 @@ Сообщить(ТекИБ.Имя() + " (" + ?(ТекИБ.ПолноеОписание(), "Полное", "Сокращенное") + " " + ТекИБ.Описание() + ")"); Для Каждого ТекАтрибут Из ИБ.ПараметрыОбъекта() Цикл - Сообщить(ТекАтрибут.Ключ + " : " + ТекИБ.Получить(ТекАтрибут.Значение.ИмяПараметра)); + Сообщить(ТекАтрибут.Ключ + " : " + ТекИБ.Получить(ТекАтрибут.Значение.Имя)); КонецЦикла; КонецЦикла; diff --git a/src/lib.config b/src/lib.config index 88205b7..cc96211 100644 --- a/src/lib.config +++ b/src/lib.config @@ -1,33 +1,33 @@  - - + + - - + - - + + - - + + - + - + - + - + - - - + + + + \ No newline at end of file diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\263\320\265\320\275\321\202\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213\320\220\320\263\320\265\320\275\321\202\320\260.os" similarity index 64% rename from "src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\263\320\265\320\275\321\202\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213.os" rename to "src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213\320\220\320\263\320\265\320\275\321\202\320\260.os" index 7c20e31..9cd635f 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\263\320\265\320\275\321\202\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213\320\220\320\263\320\265\320\275\321\202\320\260.os" @@ -1,3 +1,12 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + Перем Кластер_Агент; Перем ПараметрыОбъекта; Перем Элементы; @@ -7,7 +16,7 @@ // Конструктор // // Параметры: -// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера +// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера // Процедура ПриСозданииОбъекта(АгентКластера) @@ -23,9 +32,9 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт @@ -43,8 +52,8 @@ Если НЕ КодВозврата = 0 Тогда ВызватьИсключение СтрШаблон("Ошибка получения списка администраторов агента, КодВозврата = %1: %2", - КодВозврата, - Кластер_Агент.ВыводКоманды(Ложь)); + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; Элементы.Заполнить(Кластер_Агент.ВыводКоманды()); @@ -56,13 +65,13 @@ // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); @@ -71,11 +80,11 @@ // Функция возвращает список администраторов агента кластера // // Параметры: -// Отбор - Структура - Структура отбора администраторов (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Отбор - Структура - Структура отбора администраторов (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Массив - список администраторов агента кластера 1С +// Массив - список администраторов агента кластера 1С // Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт @@ -88,12 +97,12 @@ // Функция возвращает список администраторов агента кластеров 1С // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка администраторов, разделенные "," -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ПоляИерархии - Строка - Поля для построения иерархии списка администраторов, разделенные "," +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Соответствие - список администраторов агента кластеров 1С -// <имя поля объекта> - Массив(Соответствие), Соответствие - список администраторов или следующий уровень +// Соответствие - список администраторов агента кластеров 1С +// <имя поля объекта> - Массив(Соответствие), Соответствие - список администраторов или следующий уровень // Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт @@ -106,7 +115,7 @@ // Функция возвращает количество администраторов агента в списке // // Возвращаемое значение: -// Число - количество администраторов агента +// Число - количество администраторов агента // Функция Количество() Экспорт @@ -121,11 +130,11 @@ // Функция возвращает описание администратора агента кластеров 1С // // Параметры: -// Имя - Строка - Имя администраторов агента -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Имя - Строка - Имя администраторов агента +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Соответствие - описание администратора агента кластеров 1С +// Соответствие - описание администратора агента кластеров 1С // Функция Получить(Знач Имя, Знач ОбновитьПринудительно = Ложь) Экспорт @@ -145,14 +154,14 @@ // Процедура добавляет нового администратора агента кластеров // // Параметры: -// Имя - Строка - имя администратора агента кластеров 1С -// ПараметрыАдминАгента - Структура - параметры создаваемого администратора -// - Пароль - Строка - пароль администратора агента кластеров 1С -// - Описание - Строка - описание администратора агента кластеров 1С -// - СпособАвторизации - Строка - Пароль / пользователь ОС -// - ПользовательОС - Строка - пользователь ОС, соответствующий администратору -// УстановитьТекущим - Булево - Истина - сделать добавленного администратора -// текущим для агента кластеров +// Имя - Строка - имя администратора агента кластеров 1С +// ПараметрыАдминАгента - Структура - параметры создаваемого администратора +// - Пароль - Строка - пароль администратора агента кластеров 1С +// - Описание - Строка - описание администратора агента кластеров 1С +// - СпособАвторизации - Строка - Пароль / пользователь ОС +// - ПользовательОС - Строка - пользователь ОС, соответствующий администратору +// УстановитьТекущим - Булево - Истина - сделать добавленного администратора +// текущим для агента кластеров // Процедура Добавить(Знач Имя, Знач ПараметрыАдминАгента = Неопределено, УстановитьТекущим = Ложь) Экспорт @@ -178,9 +187,9 @@ Если НЕ КодВозврата = 0 Тогда ВызватьИсключение СтрШаблон("Ошибка добавления администратора агента ""%1"", КодВозврата = %2: %3", - Имя, - КодВозврата, - Кластер_Агент.ВыводКоманды(Ложь)); + Имя, + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; Если НЕ ПараметрыАдминАгента.Свойство("Пароль") Тогда @@ -200,7 +209,7 @@ // Процедура удаляет администратора агента кластеров // // Параметры: -// Имя - Строка - имя администратора агента кластеров 1С +// Имя - Строка - имя администратора агента кластеров 1С // Процедура Удалить(Имя) Экспорт @@ -218,9 +227,9 @@ Если НЕ КодВозврата = 0 Тогда ВызватьИсключение СтрШаблон("Ошибка удаления администратора агента ""%1"", КодВозврата = %2: %3", - Имя, - КодВозврата, - Кластер_Агент.ВыводКоманды(Ложь)); + Имя, + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; Если ТекущееКоличество = 1 Тогда @@ -233,4 +242,4 @@ КонецПроцедуры // Удалить() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); 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\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" similarity index 66% rename from "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\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213.os" rename to "src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" index 7d115e7..0f8e40f 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\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" @@ -1,3 +1,12 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + Перем Кластер_Агент; Перем Кластер_Владелец; Перем ПараметрыОбъекта; @@ -8,8 +17,8 @@ // Конструктор // // Параметры: -// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера -// Кластер - Кластер - ссылка на родительский объект кластера +// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера +// Кластер - Кластер - ссылка на родительский объект кластера // Процедура ПриСозданииОбъекта(АгентКластера, Кластер) @@ -26,9 +35,9 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт @@ -47,8 +56,8 @@ Если НЕ КодВозврата = 0 Тогда ВызватьИсключение СтрШаблон("Ошибка получения списка администраторов кластера, КодВозврата = %1: %2", - КодВозврата, - Кластер_Агент.ВыводКоманды(Ложь)); + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; Элементы.Заполнить(Кластер_Агент.ВыводКоманды()); @@ -60,13 +69,13 @@ // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); @@ -75,11 +84,11 @@ // Функция возвращает список администраторов кластера // // Параметры: -// Отбор - Структура - Структура отбора администраторов (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Отбор - Структура - Структура отбора администраторов (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Массив - список администраторов кластера 1С +// Массив - список администраторов кластера 1С // Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт @@ -92,12 +101,12 @@ // Функция возвращает список администраторов кластера 1С // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка администраторов, разделенные "," -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ПоляИерархии - Строка - Поля для построения иерархии списка администраторов, разделенные "," +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Соответствие - список администраторов кластеров 1С -// <имя поля объекта> - Массив(Соответствие), Соответствие - список администраторов или следующий уровень +// Соответствие - список администраторов кластеров 1С +// <имя поля объекта> - Массив(Соответствие), Соответствие - список администраторов или следующий уровень // Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт @@ -110,7 +119,7 @@ // Функция возвращает количество администраторов кластера в списке // // Возвращаемое значение: -// Число - количество администраторов кластера +// Число - количество администраторов кластера // Функция Количество() Экспорт @@ -125,11 +134,11 @@ // Функция возвращает описание администратора кластера 1С // // Параметры: -// Имя - Строка - Имя администраторов кластера -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Имя - Строка - Имя администраторов кластера +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Соответствие - описание администратора кластера 1С +// Соответствие - описание администратора кластера 1С // Функция Получить(Знач Имя, Знач ОбновитьПринудительно = Ложь) Экспорт @@ -149,14 +158,14 @@ // Процедура добавляет нового администратора кластера // // Параметры: -// Имя - Строка - имя администратора кластера 1С -// ПараметрыАдминКластера - Структура - параметры создаваемого администратора -// - Пароль - Строка - пароль администратора кластера 1С -// - Описание - Строка - описание администратора кластера 1С -// - СпособАвторизации - Строка - Пароль / пользователь ОС -// - ПользовательОС - Строка - пользователь ОС, соответствующий администратору -// УстановитьТекущим - Булево - Истина - сделать добавленного администратора -// текущим для кластера +// Имя - Строка - имя администратора кластера 1С +// ПараметрыАдминКластера - Структура - параметры создаваемого администратора +// - Пароль - Строка - пароль администратора кластера 1С +// - Описание - Строка - описание администратора кластера 1С +// - СпособАвторизации - Строка - Пароль / пользователь ОС +// - ПользовательОС - Строка - пользователь ОС, соответствующий администратору +// УстановитьТекущим - Булево - Истина - сделать добавленного администратора +// текущим для кластера // Процедура Добавить(Знач Имя, Знач ПараметрыАдминКластера = Неопределено, УстановитьТекущим = Ложь) Экспорт @@ -184,9 +193,9 @@ Если НЕ КодВозврата = 0 Тогда ВызватьИсключение СтрШаблон("Ошибка добавления администратора кластера ""%1"", КодВозврата = %2: %3", - Имя, - КодВозврата, - Кластер_Агент.ВыводКоманды(Ложь)); + Имя, + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; Если УстановитьТекущим ИЛИ ТекущееКоличество = 0 Тогда @@ -202,7 +211,7 @@ // Процедура удаляет администратора кластера // // Параметры: -// Имя - Строка - имя администратора кластера 1С +// Имя - Строка - имя администратора кластера 1С // Процедура Удалить(Имя) Экспорт @@ -222,9 +231,9 @@ Если НЕ КодВозврата = 0 Тогда ВызватьИсключение СтрШаблон("Ошибка удаления администратора кластера ""%1"", КодВозврата = %2: %3", - Имя, - КодВозврата, - Кластер_Агент.ВыводКоманды(Ложь)); + Имя, + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; Если ТекущееКоличество = 1 Тогда @@ -237,4 +246,4 @@ КонецПроцедуры // Удалить() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" index 3600758..b8b693d 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" @@ -1,3 +1,12 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + Перем Админ_АдресСервера; Перем Админ_ПортСервера; Перем Агент_ИсполнительКоманд; @@ -13,17 +22,17 @@ // Конструктор // // Параметры: -// АдресСервера - Строка - имя сервера агента администрирования (RAS) -// ПортСервера - Число - порт сервера агента администрирования (RAS) -// ВерсияИлиПутьКРАК - Строка - маска версии 1С или путь к утилите RAC -// Администратор - Строка - администратор агента сервера 1С -// ПарольАдминистратора - Строка - пароль администратора агента сервера 1С +// АдресСервера - Строка - имя сервера агента администрирования (RAS) +// ПортСервера - Число - порт сервера агента администрирования (RAS) +// ВерсияИлиПутьКРАК - Строка - маска версии 1С или путь к утилите RAC +// Администратор - Строка - администратор агента сервера 1С +// ПарольАдминистратора - Строка - пароль администратора агента сервера 1С // Процедура ПриСозданииОбъекта(АдресСервера - , ПортСервера - , ВерсияИлиПутьКРАК = "8.3" - , Администратор = "" - , ПарольАдминистратора = "") + , ПортСервера + , ВерсияИлиПутьКРАК = "8.3" + , Администратор = "" + , ПарольАдминистратора = "") Админ_АдресСервера = АдресСервера; Админ_ПортСервера = ПортСервера; @@ -44,7 +53,7 @@ // Функция возвращает строку параметров подключения к агенту администрирования (RAS) // // Возвращаемое значение: -// Строка - строка параметров подключения к агенту администрирования (RAS) +// Строка - строка параметров подключения к агенту администрирования (RAS) // Функция СтрокаПодключения() Экспорт @@ -55,7 +64,7 @@ Сервер = Сервер + ":" + Админ_ПортСервера; КонецЕсли; КонецЕсли; - + Возврат Сервер; КонецФункции // СтрокаПодключения() @@ -63,7 +72,7 @@ // Функция возвращает строку параметров авторизации на агенте кластера 1С // // Возвращаемое значение: -// Строка - строка параметров авторизации на агенте кластера 1С +// Строка - строка параметров авторизации на агенте кластера 1С // Функция СтрокаАвторизации() Экспорт @@ -84,7 +93,7 @@ Если НЕ ПустаяСтрока(Агент_Администратор.Пароль) Тогда СтрокаАвторизации = СтрокаАвторизации + СтрШаблон(" --agent-pwd=%1", Агент_Администратор.Пароль); КонецЕсли; - + Возврат СтрокаАвторизации; КонецФункции // СтрокаАвторизации() @@ -92,8 +101,8 @@ // Процедура устанавливает параметры авторизации на агенте кластера 1С // // Параметры: -// Администратор - Строка - администратор агента сервера 1С -// Пароль - Строка - пароль администратора агента сервера 1С +// Администратор - Строка - администратор агента сервера 1С +// Пароль - Строка - пароль администратора агента сервера 1С // Процедура УстановитьАдминистратора(Администратор, Пароль) Экспорт @@ -141,7 +150,7 @@ // Функция возвращает текущий объект-исполнитель команд // // Возвращаемое значение: -// ИсполнительКоманд - текущее значение объекта-исполнителя команд +// ИсполнительКоманд - текущее значение объекта-исполнителя команд // Функция ИсполнительКоманд() Экспорт @@ -152,7 +161,7 @@ // Процедура устанавливает объект-исполнитель команд // // Параметры: -// НовыйИсполнитель - ИсполнительКоманд - новый объект-исполнитель команд +// НовыйИсполнитель - ИсполнительКоманд - новый объект-исполнитель команд // Процедура УстановитьИсполнительКоманд(Знач НовыйИсполнитель = Неопределено) Экспорт @@ -179,10 +188,10 @@ // Функция выполняет команду и возвращает код возврата команды // // Параметры: -// ПараметрыКоманды - Массив - параметры выполнения команды +// ПараметрыКоманды - Массив - параметры выполнения команды // // Возвращаемое значение: -// Число - Код возврата команды +// Число - Код возврата команды // Функция ВыполнитьКоманду(ПараметрыКоманды) Экспорт @@ -200,11 +209,11 @@ // Функция возвращает текст результата выполнения команды // // Параметры: -// РазобратьВывод - Булево - Истина - выполнить преобразование вывода команды в структуру -// Ложь - вернуть текст вывода команды как есть +// РазобратьВывод - Булево - Истина - выполнить преобразование вывода команды в структуру +// Ложь - вернуть текст вывода команды как есть // // Возвращаемое значение: -// Структура, Строка - вывод команды +// Структура, Строка - вывод команды // Функция ВыводКоманды(РазобратьВывод = Истина) Экспорт @@ -219,7 +228,7 @@ // Функция возвращает код возврата выполнения команды // // Возвращаемое значение: -// Число - код возврата команды +// Число - код возврата команды // Функция КодВозврата() Экспорт @@ -232,10 +241,10 @@ // пары <ключ, значение> структуры получаются для каждой строки с учетом разделителя ":" // // Параметры: -// ВыводКоманды - Строка - текст для разбора +// ВыводКоманды - Строка - текст для разбора // // Возвращаемое значение: -// Массив (Соответствие) - результат разбора +// Массив (Соответствие) - результат разбора // Функция РазобратьВыводКоманды(Знач ВыводКоманды) @@ -248,7 +257,7 @@ Для й = 1 По Текст.КоличествоСтрок() Цикл ТекстСтроки = Текст.ПолучитьСтроку(й); - + ПозРазделителя = СтрНайти(ТекстСтроки, ":"); Если НЕ ЗначениеЗаполнено(ТекстСтроки) Тогда @@ -258,10 +267,12 @@ МассивРезультатов.Добавить(Описание); Описание = Новый Соответствие(); Продолжить; - ИначеЕсли ПозРазделителя = 0 Тогда + КонецЕсли; + + Если ПозРазделителя = 0 Тогда Продолжить; КонецЕсли; - + Описание.Вставить(СокрЛП(Лев(ТекстСтроки, ПозРазделителя - 1)), СокрЛП(Сред(ТекстСтроки, ПозРазделителя + 1))); КонецЦикла; @@ -273,7 +284,7 @@ // Функция возвращает строку описания подключения к серверу администрирования кластера 1С // // Возвращаемое значение: -// Строка - описание подключения к серверу администрирования кластера 1С +// Строка - описание подключения к серверу администрирования кластера 1С // Функция ОписаниеПодключения() Экспорт @@ -285,7 +296,7 @@ // Функция возвращает список администраторов агента кластера 1С // // Возвращаемое значение: -// Агент_Администраторы - список администраторов агента кластера 1С +// Агент_Администраторы - список администраторов агента кластера 1С // Функция Администраторы() Экспорт @@ -296,12 +307,12 @@ // Функция возвращает список кластеров 1С // // Возвращаемое значение: -// Кластеры - список кластеров 1С +// Кластеры - список кластеров 1С // Функция Кластеры() Экспорт Возврат Кластеры; -КонецФункции // Кластеры() +КонецФункции // Кластеры() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.os" index 6848cd8..aa2ab25 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.os" @@ -1,3 +1,12 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + Перем Кластер_Агент; Перем Кластер_Владелец; Перем ИБ_Владелец; @@ -12,21 +21,21 @@ // Конструктор // // Параметры: -// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера -// Кластер - Кластер - ссылка на родительский объект кластера -// ИБ - ИнформационнаяБаза - ссылка на родительский объект информационной базы -// Сеанс - ИнформационнаяБаза - ссылка на родительский объект сеанса -// Соединение - ИнформационнаяБаза - ссылка на родительский объект соединения +// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера +// Кластер - Кластер - ссылка на родительский объект кластера +// ИБ - ИнформационнаяБаза - ссылка на родительский объект информационной базы +// Сеанс - ИнформационнаяБаза - ссылка на родительский объект сеанса +// Соединение - ИнформационнаяБаза - ссылка на родительский объект соединения // Процедура ПриСозданииОбъекта(АгентКластера, Кластер, ИБ = Неопределено, Сеанс = Неопределено, Соединение = Неопределено) - Кластер_Агент = АгентКластера; - Кластер_Владелец = Кластер; - ИБ_Владелец = ИБ; - Сеанс_Владелец = Сеанс; - Соединение_Владелец = Соединение; + Кластер_Агент = АгентКластера; + Кластер_Владелец = Кластер; + ИБ_Владелец = ИБ; + Сеанс_Владелец = Сеанс; + Соединение_Владелец = Соединение; - ПараметрыОбъекта = Новый ПараметрыОбъекта("lock"); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Блокировки); Элементы = Новый ОбъектыКластера(ЭтотОбъект); @@ -36,9 +45,9 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт @@ -46,30 +55,36 @@ Возврат; КонецЕсли; - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("lock"); - ПараметрыЗапуска.Добавить("list"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + Если НЕ ИБ_Владелец = Неопределено Тогда - ПараметрыЗапуска.Добавить(СтрШаблон("--infobase=%1", ИБ_Владелец.Ид())); + ПараметрыКоманды.Вставить("ИдентификаторИБ", ИБ_Владелец.Ид()); КонецЕсли; Если НЕ Сеанс_Владелец = Неопределено Тогда - ПараметрыЗапуска.Добавить(СтрШаблон("--session=%1", Сеанс_Владелец.Получить("session"))); + ПараметрыКоманды.Вставить("ИдентификаторСеанса", Сеанс_Владелец.Ид()); КонецЕсли; Если НЕ Соединение_Владелец = Неопределено Тогда - ПараметрыЗапуска.Добавить(СтрШаблон("--connection=%1", Соединение_Владелец.Получить("connection"))); + ПараметрыКоманды.Вставить("ИдентификаторСоединения", Соединение_Владелец.Ид()); КонецЕсли; - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Список")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения списка блокировок, КодВозврата = %1: %2", + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; - Элементы.Заполнить(Кластер_Агент.ВыводКоманды()); + МассивРезультатов = Кластер_Агент.ВыводКоманды(); + + Элементы.Заполнить(МассивРезультатов); Элементы.УстановитьАктуальность(); @@ -78,26 +93,26 @@ // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт - Возврат ПараметрыОбъекта.Получить(ИмяПоляКлюча); + Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); КонецФункции // ПараметрыОбъекта() // Функция возвращает список блокировок // // Параметры: -// Отбор - Структура - Структура отбора блокировок (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Отбор - Структура - Структура отбора блокировок (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Массив - список блокировок +// Массив - список блокировок // Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт @@ -110,11 +125,11 @@ // Функция возвращает список блокировок // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка блокировок, разделенные "," -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ПоляИерархии - Строка - Поля для построения иерархии списка блокировок, разделенные "," +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Соответствие - список блокировок +// Соответствие - список блокировок // Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт @@ -127,7 +142,7 @@ // Функция возвращает количество блокировок в списке // // Возвращаемое значение: -// Число - количество блокировок +// Число - количество блокировок // Функция Количество() Экспорт @@ -139,4 +154,4 @@ КонецФункции // Количество() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); 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 5122544..31f1813 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" @@ -1,6 +1,15 @@ -Перем ИБ_Ид; // infobase -Перем ИБ_Имя; // name -Перем ИБ_Описание; // descr +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +Перем ИБ_Ид; // infobase +Перем ИБ_Имя; // name +Перем ИБ_Описание; // descr Перем ИБ_ПолноеОписание;// Истина - получено полное описание; Ложь - сокращенное Перем ИБ_Сеансы; Перем ИБ_Соединения; @@ -22,7 +31,7 @@ // АгентКластера - АгентКластера - ссылка на родительский объект агента кластера // Кластер - Кластер - ссылка на родительский объект кластера // ИБ - Строка, Соответствие - идентификатор информационной базы в кластере -// или параметры информационной базы +// или параметры информационной базы // Администратор - Строка - администратор информационной базы // ПарольАдминистратора - Строка - пароль администратора информационной базы // @@ -32,7 +41,7 @@ Возврат; КонецЕсли; - ПараметрыОбъекта = Новый КомандыОбъекта("infobase"); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИБ); Кластер_Агент = АгентКластера; Кластер_Владелец = Кластер; @@ -60,9 +69,9 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт @@ -79,7 +88,7 @@ Иначе ИБ_ПолноеОписание = Истина; КонецЕсли; - + Если ТекОписание = Неопределено Тогда Возврат; КонецЕсли; @@ -96,7 +105,7 @@ // Процедура заполняет параметры информационной базы // // Параметры: -// ДанныеЗаполнения - Соответствие - данные, из которых будут заполнены параметры ИБ +// ДанныеЗаполнения - Соответствие - данные, из которых будут заполнены параметры ИБ // Процедура ЗаполнитьПараметрыИБ(ДанныеЗаполнения) @@ -110,13 +119,13 @@ // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); @@ -125,7 +134,7 @@ // Функция возвращает полное описание информационной базы 1С // // Возвращаемое значение: -// Соответствие - полное описание информационной базы 1С +// Соответствие - полное описание информационной базы 1С // Функция ПолучитьПолноеОписаниеИБ() @@ -137,17 +146,19 @@ ПараметрыКоманды.Вставить("СтрокаАвторизацииИБ" , СтрокаАвторизации()); ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("ПолноеОписание")); Если НЕ КодВозврата = 0 Тогда Если Найти(Кластер_Агент.ВыводКоманды(Ложь), "Недостаточно прав пользователя") = 0 Тогда ВызватьИсключение Кластер_Агент.ВыводКоманды(Ложь); Иначе - Возврат Неопределено; + ВызватьИсключение СтрШаблон("Ошибка получения полного описания информационной базы ""%1"": %2", + Имя(), + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; КонецЕсли; - + МассивРезультатов = Кластер_Агент.ВыводКоманды(); Если МассивРезультатов.Количество() = 0 Тогда @@ -161,7 +172,7 @@ // Функция возвращает сокращенное описание информационной базы 1С // // Возвращаемое значение: -// Соответствие - сокращенное описание информационной базы 1С +// Соответствие - сокращенное описание информационной базы 1С // Функция ПолучитьОписаниеИБ() @@ -173,8 +184,14 @@ ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Описание")); - + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Описание")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения описания информационной базы ""%1"": %2", + Имя(), + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + МассивРезультатов = Кластер_Агент.ВыводКоманды(); Если МассивРезультатов.Количество() = 0 Тогда @@ -188,7 +205,7 @@ // Функция возвращает строку параметров авторизации для информационной базы 1С // // Возвращаемое значение: -// Строка - строка параметров авторизации на агенте кластера 1С +// Строка - строка параметров авторизации на агенте кластера 1С // Функция СтрокаАвторизации() Экспорт @@ -211,7 +228,7 @@ Если НЕ ПустаяСтрока(ПараметрыАдминистратора.Пароль) Тогда СтрокаАвторизации = СтрокаАвторизации + СтрШаблон(" --infobase-pwd=%1", ПараметрыАдминистратора.Пароль); КонецЕсли; - + Возврат СтрокаАвторизации; КонецФункции // СтрокаАвторизации() @@ -219,8 +236,8 @@ // Процедура устанавливает параметры авторизации для информационной базы 1С // // Параметры: -// Администратор - Строка - администратор информационной базы 1С -// Пароль - Строка - пароль администратора информационной базы 1С +// Администратор - Строка - администратор информационной базы 1С +// Пароль - Строка - пароль администратора информационной базы 1С // Процедура УстановитьАдминистратора(Администратор, Пароль) Экспорт @@ -231,7 +248,7 @@ // Функция возвращает идентификатор информационной базы 1С // // Возвращаемое значение: -// Строка - идентификатор информационной базы 1С +// Строка - идентификатор информационной базы 1С // Функция Ид() Экспорт @@ -242,7 +259,7 @@ // Функция возвращает имя информационной базы 1С // // Возвращаемое значение: -// Строка - имя информационной базы 1С +// Строка - имя информационной базы 1С // Функция Имя() Экспорт @@ -257,7 +274,7 @@ // Функция возвращает описание информационной базы 1С // // Возвращаемое значение: -// Строка - описание информационной базы 1С +// Строка - описание информационной базы 1С // Функция Описание() Экспорт @@ -272,7 +289,7 @@ // Функция возвращает признак доступности полного описания информационной базы 1С // // Возвращаемое значение: -// Булево - Истина - доступно полное описание; Ложь - доступно сокращенное описание +// Булево - Истина - доступно полное описание; Ложь - доступно сокращенное описание // Функция ПолноеОписание() Экспорт @@ -287,7 +304,7 @@ // Функция возвращает сеансы информационной базы 1С // // Возвращаемое значение: -// Сеансы - сеансы информационной базы 1С +// Сеансы - сеансы информационной базы 1С // Функция Сеансы() Экспорт @@ -296,13 +313,13 @@ КонецЕсли; Возврат ИБ_Сеансы; - + КонецФункции // Сеансы() // Функция возвращает соединения информационной базы 1С // // Возвращаемое значение: -// Соединения - соединения информационной базы 1С +// Соединения - соединения информационной базы 1С // Функция Соединения() Экспорт @@ -311,17 +328,17 @@ КонецЕсли; Возврат ИБ_Соединения; - + КонецФункции // Соединения() // Функция возвращает значение параметра информационной базы 1С // // Параметры: -// ИмяПоля - Строка - Имя параметра информационной базы -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// ИмяПоля - Строка - Имя параметра информационной базы +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) // // Возвращаемое значение: -// Произвольный - значение параметра кластера 1С +// Произвольный - значение параметра кластера 1С // Функция Получить(ИмяПоля, ОбновитьПринудительно = Ложь) Экспорт @@ -340,22 +357,22 @@ ЗначениеПоля = ИБ_Параметры.Получить(ИмяПоля); Если ЗначениеПоля = Неопределено Тогда - - ОписаниеПараметра = ПараметрыОбъекта("ИмяПоляРАК").Получить(ИмяПоля); + + ОписаниеПараметра = ПараметрыОбъекта("ИмяРАК").Получить(ИмяПоля); Если НЕ ОписаниеПараметра = Неопределено Тогда - ЗначениеПоля = ИБ_Параметры.Получить(ОписаниеПараметра["ИмяПараметра"]); + ЗначениеПоля = ИБ_Параметры.Получить(ОписаниеПараметра["Имя"]); КонецЕсли; КонецЕсли; Возврат ЗначениеПоля; - + КонецФункции // Получить() // Процедура изменяет параметры информационной базы // // Параметры: -// ПараметрыИБ - Структура - новые параметры информационной базы +// ПараметрыИБ - Структура - новые параметры информационной базы // Процедура Изменить(Знач ПараметрыИБ = Неопределено) Экспорт @@ -377,7 +394,13 @@ ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Изменить")); + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Изменить")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка изменения информационной базы ""%1"": %2", + Имя(), + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); @@ -385,4 +408,40 @@ КонецПроцедуры // Изменить() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +// Процедура удаляет информационную базу +// +// Параметры: +// ДействияСБазойСУБД - Строка - "drop" - удалить базу данных; "clear" - очистить базу данных; +// иначе оставить базу данных как есть +// +Процедура Удалить(ДействияСБазойСУБД = "") Экспорт + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + ПараметрыКоманды.Вставить("ИдентификаторИБ" , Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииИБ" , СтрокаАвторизации()); + + Если ДействияСБазойСУБД = Перечисления.ДействияСБазойСУБДПриУдалении.Очистить Тогда + ПараметрыКоманды.Вставить("ОчиститьБД", Истина); + ИначеЕсли ДействияСБазойСУБД = Перечисления.ДействияСБазойСУБДПриУдалении.Удалить Тогда + ПараметрыКоманды.Вставить("УдалитьБД", Истина); + КонецЕсли; + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Удалить")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка удаления информационной базы ""%1"": %2", + Имя(), + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); + +КонецПроцедуры // Удалить() + +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); 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\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\321\213\320\265\320\221\320\260\320\267\321\213.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\321\213\320\265\320\221\320\260\320\267\321\213.os" similarity index 60% rename from "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\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\321\213\320\265\320\221\320\260\320\267\321\213.os" rename to "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\321\213\320\265\320\221\320\260\320\267\321\213.os" index 668639d..c7ad08f 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\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\321\213\320\265\320\221\320\260\320\267\321\213.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\321\213\320\265\320\221\320\260\320\267\321\213.os" @@ -1,3 +1,12 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + Перем Кластер_Агент; Перем Кластер_Владелец; Перем ПараметрыОбъекта; @@ -8,15 +17,15 @@ // Конструктор // // Параметры: -// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера -// Кластер - Кластер - ссылка на родительский объект кластера +// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера +// Кластер - Кластер - ссылка на родительский объект кластера // Процедура ПриСозданииОбъекта(АгентКластера, Кластер) Кластер_Агент = АгентКластера; Кластер_Владелец = Кластер; - ПараметрыОбъекта = Новый КомандыОбъекта("infobase"); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИБ); Элементы = Новый ОбъектыКластера(ЭтотОбъект); @@ -26,9 +35,9 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт @@ -43,7 +52,13 @@ ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Список")); + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Список")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения списка информационных баз, КодВозврата = %1: %2", + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; МассивРезультатов = Кластер_Агент.ВыводКоманды(); @@ -61,13 +76,13 @@ // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); @@ -76,11 +91,11 @@ // Функция возвращает список информационных баз // // Параметры: -// Отбор - Структура - Структура отбора информационных баз (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Отбор - Структура - Структура отбора информационных баз (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Массив - список информационных баз +// Массив - список информационных баз // Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт @@ -93,12 +108,12 @@ // Функция возвращает список информационных баз // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка информационных баз, разделенные "," -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// ПоляИерархии - Строка - Поля для построения иерархии списка информационных баз, разделенные "," +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) // // Возвращаемое значение: -// Соответствие - список информационных баз -// <имя поля объекта> - Массив(Соответствие), Соответствие - список информационных баз или следующий уровень +// Соответствие - список информационных баз +// <имя поля объекта> - Массив(Соответствие), Соответствие - список информационных баз или следующий уровень // Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт @@ -111,7 +126,7 @@ // Функция возвращает количество информационных баз в списке // // Возвращаемое значение: -// Число - количество информационных баз +// Число - количество информационных баз // Функция Количество() Экспорт @@ -126,11 +141,11 @@ // Функция возвращает описание информационной базы 1С // // Параметры: -// Имя - Строка - Имя информационной базы 1С -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Имя - Строка - Имя информационной базы 1С +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Соответствие - описание информационной базы 1С +// Соответствие - описание информационной базы 1С // Функция Получить(Знач Имя, Знач ОбновитьПринудительно = Ложь) Экспорт @@ -150,10 +165,10 @@ // Процедура добавляет новую информационную базу // // Параметры: -// Имя - Строка - имя информационной базы -// Локализация - Строка - локализация базы -// СоздатьБазуСУБД - Булево - Истина - создать базу данных на сервере СУБД; Ложь - не создавать -// ПараметрыИБ - Структура - параметры информационной базы +// Имя - Строка - имя информационной базы +// Локализация - Строка - локализация базы +// СоздатьБазуСУБД - Булево - Истина - создать базу данных на сервере СУБД; Ложь - не создавать +// ПараметрыИБ - Структура - параметры информационной базы // Процедура Добавить(Имя, Локализация = "ru_RU", СоздатьБазуСУБД = Ложь, ПараметрыИБ = Неопределено) Экспорт @@ -180,8 +195,8 @@ Если НЕ КодВозврата = 0 Тогда ВызватьИсключение СтрШаблон("Ошибка добавления информационной базы ""%1"": %2", - Имя, - Кластер_Агент.ВыводКоманды(Ложь)); + Имя, + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); @@ -193,36 +208,22 @@ // Процедура удаляет информационную базу // // Параметры: -// Имя - Строка - имя информационной базы -// ДействияСБазойСУБД - Строка - "drop" - удалить базу данных; "clear" - очистить базу данных; -// иначе оставить базу данных как есть +// Имя - Строка - имя информационной базы +// ДействияСБазойСУБД - Строка - "drop" - удалить базу данных; "clear" - очистить базу данных; +// иначе оставить базу данных как есть // Процедура Удалить(Имя, ДействияСБазойСУБД = "") Экспорт - ПараметрыКоманды = Новый Соответствие(); - ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); - ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); - ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); - - ПараметрыКоманды.Вставить("ИдентификаторИБ" , Получить(Имя).Ид()); - ПараметрыКоманды.Вставить("СтрокаАвторизацииИБ" , Получить(Имя).СтрокаАвторизации()); + ИБ = Получить(Имя); - ПараметрыКоманды.Вставить("ДействияСБазойСУБД" , ДействияСБазойСУБД); - - ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - - КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Удалить")); - - Если НЕ КодВозврата = 0 Тогда - ВызватьИсключение СтрШаблон("Ошибка удаления информационной базы ""%1"": %2", - Имя, - Кластер_Агент.ВыводКоманды(Ложь)); + Если ИБ = Неопределено Тогда + Возврат; КонецЕсли; - - Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); + + ИБ.Удалить(ДействияСБазойСУБД); ОбновитьДанные(Истина); КонецПроцедуры // Удалить() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); 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 345be26..6a43583 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" @@ -1,3 +1,12 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + Перем ЭтоWindows; Перем ВыводКоманды; Перем КодВозврата; @@ -9,7 +18,7 @@ // Конструктор // // Параметры: -// ВерсияИлиПутьКРАК - Строка - маска версии 1С или путь к утилите RAC +// ВерсияИлиПутьКРАК - Строка - маска версии 1С или путь к утилите RAC // Процедура ПриСозданииОбъекта(ВерсияИлиПутьКРАК = "8.3") @@ -27,7 +36,7 @@ // Процедура ищет утилиту RAC и выполняет инициализацию // // Параметры: -// ВерсияИлиПутьКРАК - Строка - маска версии 1С или путь к утилите RAC +// ВерсияИлиПутьКРАК - Строка - маска версии 1С или путь к утилите RAC // Процедура ИнициализироватьУтилитуАдминистрирования(ВерсияИлиПутьКРАК = "") Экспорт @@ -47,8 +56,8 @@ ШаблонПроверки = "8."; Если Лев(ПутьКУтилитеАдминистрирования, СтрДлина(ШаблонПроверки)) = ШаблонПроверки Тогда - ПутьКУтилитеАдминистрирования = ПолучитьПутьКВерсииПлатформы(ВерсияИлиПутьКРАК); - УстановитьПутьКУтилитеАдминистрирования(ПутьКУтилитеАдминистрирования); + ПутьКУтилитеАдминистрирования = ПолучитьПутьКВерсииПлатформы(ВерсияИлиПутьКРАК); + УстановитьПутьКУтилитеАдминистрирования(ПутьКУтилитеАдминистрирования); КонецЕсли; ВерсияУтилитыАдминистрирования = ПолучитьВерсиюУтилитыАдминистрирования(ПутьКУтилитеАдминистрирования()); @@ -62,7 +71,7 @@ // Функция возвращает версию утилиты RAC // // Возвращаемое значение: -// Строка - версия утилиты администрирования +// Строка - версия утилиты администрирования // Функция ВерсияУтилитыАдминистрирования() Экспорт @@ -73,7 +82,7 @@ // Функция возвращает путь к утилите RAC // // Возвращаемое значение: -// Строка - текущий путь к утилите RAC +// Строка - текущий путь к утилите RAC // Функция ПутьКУтилитеАдминистрирования() Экспорт @@ -84,12 +93,12 @@ // Процедура устанавливает переданный путь к утилите RAC // // Параметры: -// Путь - Строка - новый путь к утилите RAC +// Путь - Строка - новый путь к утилите RAC // Процедура УстановитьПутьКУтилитеАдминистрирования(Знач Путь = "") Экспорт Если Путь = "" Тогда - Возврат; + Возврат; КонецЕсли; ФайлУтилитыАдминистрирования = Новый Файл(Путь); @@ -104,10 +113,10 @@ // Функция выполняет запуск утилиты администрирования кластера 1С (rac) с указанными параметрами // // Параметры: -// ПараметрыКоманды - Масссив - список параметров запуска утилиты администрирования кластера 1С (rac) -// +// ПараметрыКоманды - Масссив - список параметров запуска утилиты администрирования кластера 1С (rac) +// // Возвращаемое значение: -// Строка - вывод команды +// Строка - вывод команды // Функция ВыполнитьКоманду(Знач ПараметрыКоманды) Экспорт @@ -128,7 +137,7 @@ // Функция возвращает текст результата выполнения команды // // Возвращаемое значение: -// Строка - вывод команды +// Строка - вывод команды // Функция ВыводКоманды() Экспорт @@ -139,7 +148,7 @@ // Функция возвращает код возврата выполнения команды // // Возвращаемое значение: -// Число - код возврата команды +// Число - код возврата команды // Функция КодВозврата() Экспорт @@ -155,11 +164,11 @@ // соответствующие переданной маске версии // // Параметры: -// КаталогиУстановкиПлатформы - Массив - возможные каталоги установки платформы -// Версия - Строка - маска версии платформы вида 8.*, 8.3.*, 8.3.5.*, 8.3.10.2561 +// КаталогиУстановкиПлатформы - Массив - возможные каталоги установки платформы +// Версия - Строка - маска версии платформы вида 8.*, 8.3.*, 8.3.5.*, 8.3.10.2561 // // Возвращаемое значение: -// Массив - массив каталогов с установленной платформой 1С +// Массив - массив каталогов с установленной платформой 1С // Функция НайтиПодкаталоги1СПоМаскеВерсии(КаталогиУстановкиПлатформы, Знач Версия) @@ -167,7 +176,7 @@ Для Каждого ВозможныйПуть Из КаталогиУстановкиПлатформы Цикл Лог.Отладка("Выполняю попытку поиска версии в каталоге " + ВозможныйПуть); - + МассивФайлов = НайтиФайлы(ВозможныйПуть, Версия + "*"); Если МассивФайлов.Количество() = 0 Тогда Лог.Отладка("Не найдено ни одного каталога с версией в %1", ВозможныйПуть); @@ -182,10 +191,10 @@ Если НЕ ФайлУтилитыАдминистрирования.Существует() Тогда Лог.Отладка("Пропускаю каталог 1С %1", Подкаталог1С.Имя); Продолжить; - КонецЕсли; + КонецЕсли; ОписаниеКаталога = Новый Структура("Версия, ФайлУтилитыАдминистрирования", - Подкаталог1С.Имя, - ФайлУтилитыАдминистрирования); + Подкаталог1С.Имя, + ФайлУтилитыАдминистрирования); МассивКаталогов1С.Добавить(ОписаниеКаталога); Лог.Отладка("Нашел платформу 1С %1", Подкаталог1С.Имя); КонецЦикла; @@ -198,8 +207,8 @@ // Процедура добавляет в массив расположений пути расположения платформы 1С из файла настройки платформы 1С // // Параметры: -// ИмяФайла - Строка - путь к файлу настройки платформы 1С -// МассивПутей - Массив - массив расположений платформы 1С +// ИмяФайла - Строка - путь к файлу настройки платформы 1С +// МассивПутей - Массив - массив расположений платформы 1С // Процедура ДополнитьМассивРасположенийИзКонфигурационногоФайла(Знач ИмяФайла, Знач МассивПутей) @@ -225,7 +234,7 @@ // Процедура добавляет в массив расположений стандартные пути расположения платформы 1С // // Параметры: -// МассивПутей - Массив - массив расположений платформы 1С +// МассивПутей - Массив - массив расположений платформы 1С // Процедура ДополнитьМассивРасположенийИзСтандартныхПутей(Знач МассивПутей) @@ -239,7 +248,7 @@ ВызватьИсключение "Не обнаружено установленных версий платформы 1С"; КонецЕсли; КонецЕсли; - + МассивПутей.Добавить(ОбъединитьПути(ФайлProgramFiles.ПолноеИмя, "1Cv8")); КонецПроцедуры // ДополнитьМассивРасположенийИзСтандартныхПутей() @@ -247,7 +256,7 @@ // Функция возвращает массив возможных путей расположения платформы 1С // // Возвращаемое значение: -// Массив - массив расположений платформы 1С +// Массив - массив расположений платформы 1С // Функция СобратьВозможныеКаталогиУстановкиПлатформыWindows() @@ -277,10 +286,10 @@ // Функция возвращает путь к каталогу платформы 1С в ОС Windows, соответствующей маске версии // // Параметры: -// Версия - Строка - маска версии платформы вида 8.*, 8.3.*, 8.3.5.*, 8.3.10.2561 +// Версия - Строка - маска версии платформы вида 8.*, 8.3.*, 8.3.5.*, 8.3.10.2561 // // Возвращаемое значение: -// Строка - путь к версии платформы 1С +// Строка - путь к версии платформы 1С // Функция ПолучитьПутьКВерсииПлатформыWindows(Знач Версия) @@ -304,7 +313,7 @@ Для Сч = 1 По МассивКаталоговВерсий.ВГраница() Цикл Если СтроковыеФункции.СравнитьВерсии(МассивКаталоговВерсий[Сч].Версия, ОписаниеМаксВерсии.Версия) > 0 Тогда ОписаниеМаксВерсии = МассивКаталоговВерсий[Сч]; - КонецЕсли; + КонецЕсли; КонецЦикла; НужныйФайлПлатформы = ОписаниеМаксВерсии.ФайлУтилитыАдминистрирования; ВерсияУтилитыАдминистрирования = ОписаниеМаксВерсии.Версия; @@ -327,10 +336,10 @@ // Функция возвращает путь к каталогу платформы 1С в ОС Linux, соответствующей маске версии // // Параметры: -// Версия - Строка - маска версии платформы вида 8.*, 8.3.*, 8.3.5.*, 8.3.10.2561 +// Версия - Строка - маска версии платформы вида 8.*, 8.3.*, 8.3.5.*, 8.3.10.2561 // // Возвращаемое значение: -// Строка - путь к версии платформы 1С +// Строка - путь к версии платформы 1С // Функция ПолучитьПутьКВерсииПлатформыLinux(Знач Версия) @@ -360,10 +369,10 @@ // Функция возвращает путь к каталогу платформы 1С, соответствующей маске версии // // Параметры: -// Версия - Строка - маска версии платформы вида 8.*, 8.3.*, 8.3.5.*, 8.3.10.2561 +// Версия - Строка - маска версии платформы вида 8.*, 8.3.*, 8.3.5.*, 8.3.10.2561 // // Возвращаемое значение: -// Строка - путь к версии платформы 1С +// Строка - путь к версии платформы 1С // Функция ПолучитьПутьКВерсииПлатформы(Знач Версия) @@ -377,11 +386,11 @@ СписокСтрок = СтрРазделить(Версия, "."); Если СписокСтрок.Количество() < КоличествоЦифрВерсии Тогда ВызватьИсключение "Маска версии платформы должна содержать, - |как минимум, минорную и мажорную версию, т.е. Maj.Min[.Release][.Build]"; + |как минимум, минорную и мажорную версию, т.е. Maj.Min[.Release][.Build]"; КонецЕсли; Если ЭтоWindows Тогда - + Возврат ПолучитьПутьКВерсииПлатформыWindows(Версия); Иначе @@ -395,10 +404,10 @@ // Функция получает версию утилиты RAC по переданному пути // // Параметры: -// Путь - Строка - путь к утилите RAC +// Путь - Строка - путь к утилите RAC // // Возвращаемое значение: -// Строка - версия утилиты RAC +// Строка - версия утилиты RAC // Функция ПолучитьВерсиюУтилитыАдминистрирования(Знач Путь) @@ -425,10 +434,10 @@ // Функция запускает выполнение команды ОС с указанными параметрами и ожидает завершения // // Параметры: -// Параметры - Массив - параметры выполняемой команды +// Параметры - Массив - параметры выполняемой команды // // Возвращаемое значение: -// Число - код возврата команды ОС +// Число - код возврата команды ОС // Функция ЗапуститьИПодождать(Знач Параметры) @@ -436,9 +445,9 @@ Для Каждого Параметр Из Параметры Цикл Если Найти(Параметр, "--agent-pwd") = 0 - И Найти(Параметр, "--cluster-pwd") = 0 - И Найти(Параметр, "--infobase-pwd") = 0 - И Найти(Параметр, "--pwd") = 0 Тогда + И Найти(Параметр, "--cluster-pwd") = 0 + И Найти(Параметр, "--infobase-pwd") = 0 + И Найти(Параметр, "--pwd") = 0 Тогда СтрокаДляЛога = СтрокаДляЛога + " " + Параметр; КонецЕсли; @@ -464,6 +473,6 @@ Возврат КодВозврата; -КонецФункции // ЗапуститьИПодождать() +КонецФункции // ЗапуститьИПодождать() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); 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 36c89a4..892eba4 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" @@ -1,7 +1,16 @@ -Перем Кластер_Ид; // cluster -Перем Кластер_Имя; // name -Перем Кластер_АдресСервера; // host -Перем Кластер_ПортСервера; // port +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +Перем Кластер_Ид; // cluster +Перем Кластер_Имя; // name +Перем Кластер_АдресСервера; // host +Перем Кластер_ПортСервера; // port Перем Кластер_Параметры; Перем Кластер_Агент; @@ -39,7 +48,7 @@ Возврат; КонецЕсли; - ПараметрыОбъекта = Новый КомандыОбъекта("cluster"); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Кластеры); Кластер_Агент = АгентКластера; @@ -58,19 +67,19 @@ ПериодОбновления = 60000; - Кластер_Администраторы = Новый АдминистраторыКластера(Кластер_Агент, ЭтотОбъект); - Кластер_Серверы = Новый СерверыКластера(Кластер_Агент, ЭтотОбъект); - Кластер_Менеджеры = Новый МенеджерыКластера(Кластер_Агент, ЭтотОбъект); - Кластер_Процессы = Новый РабочиеПроцессы(Кластер_Агент, ЭтотОбъект); - Кластер_Сервисы = Новый Сервисы(Кластер_Агент, ЭтотОбъект); - Кластер_ИБ = Новый ИнформационныеБазы(Кластер_Агент, ЭтотОбъект); - Кластер_Сеансы = Новый Сеансы(Кластер_Агент, ЭтотОбъект); - Кластер_Соединения = Новый Соединения(Кластер_Агент, ЭтотОбъект); - Кластер_Блокировки = Новый Блокировки(Кластер_Агент, ЭтотОбъект); - Кластер_Профили = Новый ПрофилиБезопасности(Кластер_Агент, ЭтотОбъект); - Кластер_Счетчики = Новый СчетчикиПотребленияРесурсов(Кластер_Агент, ЭтотОбъект); + Кластер_Администраторы = Новый АдминистраторыКластера(Кластер_Агент, ЭтотОбъект); + Кластер_Серверы = Новый СерверыКластера(Кластер_Агент, ЭтотОбъект); + Кластер_Менеджеры = Новый МенеджерыКластера(Кластер_Агент, ЭтотОбъект); + Кластер_Процессы = Новый РабочиеПроцессы(Кластер_Агент, ЭтотОбъект); + Кластер_Сервисы = Новый Сервисы(Кластер_Агент, ЭтотОбъект); + Кластер_ИБ = Новый ИнформационныеБазы(Кластер_Агент, ЭтотОбъект); + Кластер_Сеансы = Новый Сеансы(Кластер_Агент, ЭтотОбъект); + Кластер_Соединения = Новый Соединения(Кластер_Агент, ЭтотОбъект); + Кластер_Блокировки = Новый Блокировки(Кластер_Агент, ЭтотОбъект); + Кластер_Профили = Новый ПрофилиБезопасности(Кластер_Агент, ЭтотОбъект); + Кластер_Счетчики = Новый СчетчикиРесурсов(Кластер_Агент, ЭтотОбъект); - Кластер_Параметры = Неопределено; + Кластер_Параметры = Неопределено; КонецПроцедуры // ПриСозданииОбъекта() @@ -78,9 +87,9 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт @@ -94,7 +103,7 @@ ПараметрыКоманды.Вставить("ИдентификаторКластера" , Ид()); ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - + Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Описание")); МассивРезультатов = Кластер_Агент.ВыводКоманды(); @@ -112,13 +121,13 @@ // Процедура заполняет параметры кластера 1С // // Параметры: -// ДанныеЗаполнения - Соответствие - данные, из которых будут заполнены параметры кластера +// ДанныеЗаполнения - Соответствие - данные, из которых будут заполнены параметры кластера // Процедура ЗаполнитьПараметрыКластера(ДанныеЗаполнения) - Кластер_АдресСервера = ДанныеЗаполнения.Получить("host"); - Кластер_ПортСервера = ДанныеЗаполнения.Получить("port"); - Кластер_Имя = ДанныеЗаполнения.Получить("name"); + Кластер_АдресСервера = ДанныеЗаполнения.Получить("host"); + Кластер_ПортСервера = ДанныеЗаполнения.Получить("port"); + Кластер_Имя = ДанныеЗаполнения.Получить("name"); Служебный.ЗаполнитьПараметрыОбъекта(ЭтотОбъект, Кластер_Параметры, ДанныеЗаполнения); @@ -127,13 +136,13 @@ // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); @@ -142,7 +151,7 @@ // Функция возвращает строку параметров авторизации в кластере 1С // // Возвращаемое значение: -// Строка - строка параметров авторизации в кластере 1С +// Строка - строка параметров авторизации в кластере 1С // Функция СтрокаАвторизации() Экспорт @@ -165,7 +174,7 @@ Если Не ПустаяСтрока(ПараметрыАдминистратора.Пароль) Тогда СтрокаАвторизации = СтрокаАвторизации + СтрШаблон(" --cluster-pwd=%1", ПараметрыАдминистратора.Пароль); КонецЕсли; - + Возврат СтрокаАвторизации; КонецФункции // СтрокаАвторизации() @@ -173,8 +182,8 @@ // Процедура устанавливает параметры авторизации в кластере 1С // // Параметры: -// Администратор - Строка - администратор кластера 1С -// Пароль - Строка - пароль администратора кластера 1С +// Администратор - Строка - администратор кластера 1С +// Пароль - Строка - пароль администратора кластера 1С // Процедура УстановитьАдминистратора(Администратор, Пароль) Экспорт @@ -222,7 +231,7 @@ // Функция возвращает идентификатор кластера 1С // // Возвращаемое значение: -// Строка - идентификатор кластера 1С +// Строка - идентификатор кластера 1С // Функция Ид() Экспорт @@ -233,7 +242,7 @@ // Функция возвращает имя кластера 1С // // Возвращаемое значение: -// Строка - имя кластера 1С +// Строка - имя кластера 1С // Функция Имя() Экспорт @@ -248,7 +257,7 @@ // Функция возвращает адрес сервера кластера 1С // // Возвращаемое значение: -// Строка - адрес сервера кластера 1С +// Строка - адрес сервера кластера 1С // Функция АдресСервера() Экспорт @@ -257,13 +266,13 @@ КонецЕсли; Возврат Кластер_АдресСервера; - + КонецФункции // АдресСервера() // Функция возвращает порт сервера кластера 1С // // Возвращаемое значение: -// Строка - порт сервера кластера 1С +// Строка - порт сервера кластера 1С // Функция ПортСервера() Экспорт @@ -272,13 +281,13 @@ КонецЕсли; Возврат Кластер_ПортСервера; - + КонецФункции // ПортСервера() // Функция возвращает список администраторов кластера 1С // // Возвращаемое значение: -// Соответствие - список администраторов кластера 1С +// Соответствие - список администраторов кластера 1С // Функция Администраторы() Экспорт @@ -289,7 +298,7 @@ // Функция возвращает список серверов кластера 1С // // Возвращаемое значение: -// СерверыКластера - список серверов кластера 1С +// СерверыКластера - список серверов кластера 1С // Функция Серверы() Экспорт @@ -300,7 +309,7 @@ // Функция возвращает список менеджеров кластера 1С // // Возвращаемое значение: -// МенеджерыКластера - список менеджеров кластера 1С +// МенеджерыКластера - список менеджеров кластера 1С // Функция Менеджеры() Экспорт @@ -311,7 +320,7 @@ // Функция возвращает список рабочих процессов 1С // // Возвращаемое значение: -// РабочиеПроцессы - список рабочих процессов 1С +// РабочиеПроцессы - список рабочих процессов 1С // Функция РабочиеПроцессы() Экспорт @@ -322,7 +331,7 @@ // Функция возвращает список сервисов 1С // // Возвращаемое значение: -// РабочиеПроцессы - список сервисов 1С +// РабочиеПроцессы - список сервисов 1С // Функция Сервисы() Экспорт @@ -333,7 +342,7 @@ // Функция возвращает список информационных баз 1С // // Возвращаемое значение: -// ИнформационныеБазы - список информационных баз 1С +// ИнформационныеБазы - список информационных баз 1С // Функция ИнформационныеБазы() Экспорт @@ -344,7 +353,7 @@ // Функция возвращает список сеансов 1С // // Возвращаемое значение: -// Сеансы - список сеансов 1С +// Сеансы - список сеансов 1С // Функция Сеансы() Экспорт @@ -355,7 +364,7 @@ // Функция возвращает список соединений 1С // // Возвращаемое значение: -// Сеансы - список соединений 1С +// Сеансы - список соединений 1С // Функция Соединения() Экспорт @@ -366,7 +375,7 @@ // Функция возвращает список блокировок 1С // // Возвращаемое значение: -// Сеансы - список блокировок 1С +// Сеансы - список блокировок 1С // Функция Блокировки() Экспорт @@ -377,7 +386,7 @@ // Функция возвращает список профилей безопасности кластера 1С // // Возвращаемое значение: -// Сеансы - список профилей безопасности кластера 1С +// Сеансы - список профилей безопасности кластера 1С // Функция ПрофилиБезопасности() Экспорт @@ -385,20 +394,25 @@ КонецФункции // ПрофилиБезопасности() -Функция СчетчикиПотребленияРесурсов() Экспорт +// Функция возвращает список счетчиков ресурсов кластера 1С +// +// Возвращаемое значение: +// СчетчикиРесурсов - список счетчиков ресурсов кластера 1С +// +Функция СчетчикиРесурсов() Экспорт Возврат Кластер_Счетчики; -КонецФункции // СчетчикиПотребленияРесурсов() +КонецФункции // СчетчикиРесурсов() // Функция возвращает значение параметра кластера 1С // // Параметры: -// ИмяПоля - Строка - Имя параметра кластера -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// ИмяПоля - Строка - Имя параметра кластера +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) // // Возвращаемое значение: -// Произвольный - значение параметра кластера 1С +// Произвольный - значение параметра кластера 1С // Функция Получить(ИмяПоля, ОбновитьПринудительно = Ложь) Экспорт @@ -417,23 +431,23 @@ ЗначениеПоля = Кластер_Параметры.Получить(ИмяПоля); Если ЗначениеПоля = Неопределено Тогда - - ОписаниеПараметра = ПараметрыОбъекта("ИмяПоляРАК").Получить(ИмяПоля); + + ОписаниеПараметра = ПараметрыОбъекта("ИмяРАК").Получить(ИмяПоля); Если НЕ ОписаниеПараметра = Неопределено Тогда - ЗначениеПоля = Кластер_Параметры.Получить(ОписаниеПараметра["ИмяПараметра"]); + ЗначениеПоля = Кластер_Параметры.Получить(ОписаниеПараметра["Имя"]); КонецЕсли; КонецЕсли; Возврат ЗначениеПоля; - + КонецФункции // Получить() // Процедура изменяет параметры кластера // // Параметры: -// Имя - Строка - новое имя кластера -// ПараметрыКластера - Структура - новые параметры кластера +// Имя - Строка - новое имя кластера +// ПараметрыКластера - Структура - новые параметры кластера // Процедура Изменить(Знач Имя = "", Знач ПараметрыКластера = Неопределено) Экспорт @@ -464,4 +478,4 @@ КонецПроцедуры // Изменить() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); 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\320\237\321\200\320\276\321\204\320\270\320\273\320\270\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\321\201\321\202\320\270.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\320\237\321\200\320\276\321\204\320\270\320\273\320\270\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\321\201\321\202\320\270.os" deleted file mode 100644 index d9f6d73..0000000 --- "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\320\237\321\200\320\276\321\204\320\270\320\273\320\270\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\321\201\321\202\320\270.os" +++ /dev/null @@ -1,214 +0,0 @@ -Перем Кластер_Агент; -Перем Кластер_Владелец; -Перем ПараметрыОбъекта; -Перем Элементы; - -Перем Лог; - -// Конструктор -// -// Параметры: -// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера -// Кластер - Кластер - ссылка на родительский объект кластера -// -Процедура ПриСозданииОбъекта(АгентКластера, Кластер) - - Кластер_Агент = АгентКластера; - Кластер_Владелец = Кластер; - - ПараметрыОбъекта = Новый ПараметрыОбъекта("profile"); - - Элементы = Новый ОбъектыКластера(ЭтотОбъект); - -КонецПроцедуры // ПриСозданииОбъекта() - -// Процедура получает данные от сервиса администрирования кластера 1С -// и сохраняет в локальных переменных -// -// Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее -// -Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт - - Если НЕ Элементы.ТребуетсяОбновление(ОбновитьПринудительно) Тогда - Возврат; - КонецЕсли; - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("profile"); - ПараметрыЗапуска.Добавить("list"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - - МассивРезультатов = Кластер_Агент.ВыводКоманды(); - - МассивПрофилей = Новый Массив(); - Для Каждого ТекОписание Из МассивРезультатов Цикл - МассивПрофилей.Добавить(Новый ПрофильБезопасности(Кластер_Агент, Кластер_Владелец, ТекОписание)); - КонецЦикла; - - Элементы.Заполнить(МассивПрофилей); - - Элементы.УстановитьАктуальность(); - -КонецПроцедуры // ОбновитьДанные() - -// Функция возвращает коллекцию параметров объекта -// -// Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия -// -// Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений -// -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт - - Возврат ПараметрыОбъекта.Получить(ИмяПоляКлюча); - -КонецФункции // ПараметрыОбъекта() - -// Функция возвращает список профилей безопасности кластера 1С -// -// Параметры: -// Отбор - Структура - Структура отбора профилей безопасности (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// -// Возвращаемое значение: -// Массив - список профилей безопасности кластера 1С -// -Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт - - СписокПрофилей = Элементы.Список(Отбор, ОбновитьПринудительно); - - Возврат СписокПрофилей; - -КонецФункции // Список() - -// Функция возвращает список профилей безопасности кластера 1С -// -// Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка профилей безопасности, -// разделенные "," -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) -// -// Возвращаемое значение: -// Соответствие - список профилей безопасности кластера 1С -// <имя поля объекта> - Массив(Соответствие), Соответствие - список профилей безопасности -// или следующий уровень -// -Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт - - СписокПрофилей = Элементы.ИерархическийСписок(ПоляИерархии, ОбновитьПринудительно); - - Возврат СписокПрофилей; - -КонецФункции // ИерархическийСписок() - -// Функция возвращает количество профилей безопасности в списке -// -// Возвращаемое значение: -// Число - количество профилей безопасности -// -Функция Количество() Экспорт - - Если Элементы = Неопределено Тогда - Возврат 0; - КонецЕсли; - - Возврат Элементы.Количество(); - -КонецФункции // Количество() - -// Функция возвращает описание профиля безопасности кластера 1С -// -// Параметры: -// Имя - Строка - Имя профиля безопасности -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// -// Возвращаемое значение: -// Соответствие - описание профиля безопасности кластера 1С -// -Функция Получить(Знач Имя, Знач ОбновитьПринудительно = Ложь) Экспорт - - Отбор = Новый Соответствие(); - Отбор.Вставить("name", Имя); - - СписокПрофилей = Элементы.Список(Отбор, ОбновитьПринудительно); - - Если СписокПрофилей.Количество() = 0 Тогда - Возврат Неопределено; - КонецЕсли; - - Возврат СписокПрофилей[0]; - -КонецФункции // Получить() - -// Процедура добавляет новый профиль безопасности в кластер 1С -// -// Параметры: -// Имя - Строка - имя профиля безопасности 1С -// ПараметрыПрофиля - Структура - параметры профиля безопасности 1С -// -Процедура Добавить(Имя, ПараметрыПрофиля = Неопределено) Экспорт - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("profile"); - ПараметрыЗапуска.Добавить("insert"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - ПараметрыЗапуска.Добавить(СтрШаблон("--name=%1", Имя)); - - ВремПараметры = ПараметрыОбъекта(); - - Для Каждого ТекЭлемент Из ВремПараметры Цикл - ЗначениеПараметра = Служебный.ПолучитьЗначениеИзСтруктуры(ПараметрыПрофиля, ТекЭлемент.Ключ, 0); - ПараметрыЗапуска.Добавить(СтрШаблон(ТекЭлемент.Значение.ПараметрКоманды + "=%1", ЗначениеПараметра)); - КонецЦикла; - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - - Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); - - ОбновитьДанные(Истина); - -КонецПроцедуры // Добавить() - -// Процедура удаляет профиль безопасности из кластера 1С -// -// Параметры: -// Имя - Строка - Имя профиля безопасности -// -Процедура Удалить(Имя) Экспорт - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("profile"); - ПараметрыЗапуска.Добавить("remove"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--name=%1", Имя)); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - - Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); - - ОбновитьДанные(Истина); - -КонецПроцедуры // Удалить() - -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); 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\320\241\320\265\321\200\320\262\320\270\321\201\321\213.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\320\241\320\265\321\200\320\262\320\270\321\201\321\213.os" deleted file mode 100644 index 7c63fd7..0000000 --- "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\320\241\320\265\321\200\320\262\320\270\321\201\321\213.os" +++ /dev/null @@ -1,144 +0,0 @@ -Перем Кластер_Агент; -Перем Кластер_Владелец; -Перем ПараметрыОбъекта; -Перем Элементы; -Перем Лог; - -// Конструктор -// -// Параметры: -// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера -// Кластер - Кластер - ссылка на родительский объект кластера -// -Процедура ПриСозданииОбъекта(АгентКластера, Кластер) - - Кластер_Агент = АгентКластера; - Кластер_Владелец = Кластер; - - ПараметрыОбъекта = Новый ПараметрыОбъекта("service"); - - Элементы = Новый ОбъектыКластера(ЭтотОбъект); - -КонецПроцедуры - -// Процедура получает данные от сервиса администрирования кластера 1С -// и сохраняет в локальных переменных -// -// Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее -// -Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт - - Если НЕ Элементы.ТребуетсяОбновление(ОбновитьПринудительно) Тогда - Возврат; - КонецЕсли; - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("service"); - ПараметрыЗапуска.Добавить("list"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - - Элементы.Заполнить(Кластер_Агент.ВыводКоманды()); - - Элементы.УстановитьАктуальность(); - -КонецПроцедуры // ОбновитьДанные() - -// Функция возвращает коллекцию параметров объекта -// -// Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия -// -// Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений -// -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт - - Возврат ПараметрыОбъекта.Получить(ИмяПоляКлюча); - -КонецФункции // ПараметрыОбъекта() - -// Функция возвращает список сервисов кластера -// -// Параметры: -// Отбор - Структура - Структура отбора сервисов (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// -// Возвращаемое значение: -// Массив - список сервисов 1С -// -Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт - - Сервисы = Элементы.Список(Отбор, ОбновитьПринудительно); - - Возврат Сервисы; - -КонецФункции // Список() - -// Функция возвращает список сервисов кластера 1С -// -// Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка сервисов, разделенные "," -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// -// Возвращаемое значение: -// Соответствие - список сервисов кластера 1С -// <имя поля объекта> - Массив(Соответствие), Соответствие - список сервисов или следующий уровень -// -Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт - - Сервисы = Элементы.ИерархическийСписок(ПоляИерархии, ОбновитьПринудительно); - - Возврат Сервисы; - -КонецФункции // ИерархическийСписок() - -// Функция возвращает количество сервисов в списке -// -// Возвращаемое значение: -// Число - количество сервисов -// -Функция Количество() Экспорт - - Если Элементы = Неопределено Тогда - Возврат 0; - КонецЕсли; - - Возврат Элементы.Количество(); - -КонецФункции // Количество() - -// Функция возвращает описание сервиса кластера 1С -// -// Параметры: -// Имя - Строка - имя сервиса -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// -// Возвращаемое значение: -// Соответствие - описание менеджера кластера 1С -// -Функция Получить(Знач Имя, Знач ОбновитьПринудительно = Ложь) Экспорт - - Отбор = Новый Соответствие(); - Отбор.Вставить("name", Имя); - - Сервисы = Элементы.Список(Отбор, ОбновитьПринудительно); - - Если Сервисы.Количество() = 0 Тогда - Возврат Неопределено; - КонецЕсли; - - Возврат Сервисы[0]; - -КонецФункции // Получить() - -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); 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\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\237\320\276\321\202\321\200\320\265\320\261\320\273\320\265\320\275\320\270\321\217\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.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\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\237\320\276\321\202\321\200\320\265\320\261\320\273\320\265\320\275\320\270\321\217\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" deleted file mode 100644 index d18f5b7..0000000 --- "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\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\237\320\276\321\202\321\200\320\265\320\261\320\273\320\265\320\275\320\270\321\217\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" +++ /dev/null @@ -1,215 +0,0 @@ -Перем Кластер_Агент; -Перем Кластер_Владелец; -Перем ПараметрыОбъекта; -Перем Элементы; - -Перем Лог; - -// Конструктор -// -// Параметры: -// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера -// Кластер - Кластер - ссылка на родительский объект кластера -// -Процедура ПриСозданииОбъекта(АгентКластера, Кластер) - - Кластер_Агент = АгентКластера; - Кластер_Владелец = Кластер; - - ПараметрыОбъекта = Новый ПараметрыОбъекта("counter"); - - Элементы = Новый ОбъектыКластера(ЭтотОбъект); - -КонецПроцедуры // ПриСозданииОбъекта() - -// Процедура получает данные от сервиса администрирования кластера 1С -// и сохраняет в локальных переменных -// -// Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее -// -Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт - - Если НЕ Элементы.ТребуетсяОбновление(ОбновитьПринудительно) Тогда - Возврат; - КонецЕсли; - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("counter"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - ПараметрыЗапуска.Добавить("list"); - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - - МассивРезультатов = Кластер_Агент.ВыводКоманды(); - - МассивСчетчиков = Новый Массив(); - Для Каждого ТекОписание Из МассивРезультатов Цикл - МассивСчетчиков.Добавить(Новый СчетчикПотребленияРесурсов(Кластер_Агент, Кластер_Владелец, ТекОписание)); - КонецЦикла; - - Элементы.Заполнить(МассивСчетчиков); - - Элементы.УстановитьАктуальность(); - -КонецПроцедуры // ОбновитьДанные() - -// Функция возвращает коллекцию параметров объекта -// -// Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия -// -// Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений -// -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт - - Возврат ПараметрыОбъекта.Получить(ИмяПоляКлюча); - -КонецФункции // ПараметрыОбъекта() - -// Функция возвращает список счетчиков потребления ресурсов кластера 1С -// -// Параметры: -// Отбор - Структура - Структура отбора счетчиков потребления ресурсов (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// -// Возвращаемое значение: -// Массив - список счетчиков потребления ресурсов кластера 1С -// -Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт - - СписокСчетчиков = Элементы.Список(Отбор, ОбновитьПринудительно); - - Возврат СписокСчетчиков; - -КонецФункции // Список() - -// Функция возвращает счетчиков потребления ресурсов кластера 1С -// -// Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка счетчиков потребления ресурсов, -// разделенные "," -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) -// -// Возвращаемое значение: -// Соответствие - список счетчиков потребления ресурсов кластера 1С -// <имя поля объекта> - Массив(Соответствие), Соответствие - список счетчиков потребления ресурсов -// или следующий уровень -// -Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт - - СписокСчетчиков = Элементы.ИерархическийСписок(ПоляИерархии, ОбновитьПринудительно); - - Возврат СписокСчетчиков; - -КонецФункции // ИерархическийСписок() - -// Функция возвращает количество счетчиков потребления ресурсов в списке -// -// Возвращаемое значение: -// Число - количество счетчиков потребления ресурсов -// -Функция Количество() Экспорт - - Если Элементы = Неопределено Тогда - Возврат 0; - КонецЕсли; - - Возврат Элементы.Количество(); - -КонецФункции // Количество() - -// Функция возвращает описание счетчика потребления ресурсов кластера 1С -// -// Параметры: -// Имя - Строка - Имя счетчика потребления ресурсов -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// -// Возвращаемое значение: -// Соответствие - описание счетчика потребления ресурсов кластера 1С -// -Функция Получить(Знач Имя, Знач ОбновитьПринудительно = Ложь) Экспорт - - Отбор = Новый Соответствие(); - Отбор.Вставить("name", Имя); - - СписокСчетчиков = Элементы.Список(Отбор, ОбновитьПринудительно); - - Если СписокСчетчиков.Количество() = 0 Тогда - Возврат Неопределено; - КонецЕсли; - - Возврат СписокСчетчиков[0]; - -КонецФункции // Получить() - -// Процедура добавляет новый счетчик потребления ресурсов в кластер 1С -// -// Параметры: -// Имя - Строка - имя счетчика потребления ресурсов 1С -// ПараметрыСчетчика - Структура - параметры счетчика потребления ресурсов 1С -// -Процедура Добавить(Имя, ПараметрыСчетчика = Неопределено) Экспорт - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("counter"); - ПараметрыЗапуска.Добавить("insert"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - ПараметрыЗапуска.Добавить(СтрШаблон("--counter=%1", Имя)); - - ВремПараметры = ПараметрыОбъекта(); - - Для Каждого ТекЭлемент Из ВремПараметры Цикл - ЗначениеПараметра = Служебный.ПолучитьЗначениеИзСтруктуры(ПараметрыСчетчика, ТекЭлемент.Ключ, 0); - ПараметрыЗапуска.Добавить(СтрШаблон(ТекЭлемент.Значение.ПараметрКоманды + "=%1", ЗначениеПараметра)); - КонецЦикла; - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - - Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); - - ОбновитьДанные(Истина); - -КонецПроцедуры // Добавить() - -// Процедура удаляет счетчик потребления ресурсов из кластера 1С -// -// Параметры: -// Имя - Строка - Имя счетчикf потребления ресурсов -// -Процедура Удалить(Имя) Экспорт - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("counter"); - ПараметрыЗапуска.Добавить("remove"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--сounter=%1", Имя)); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - - Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); - - ОбновитьДанные(Истина); - -КонецПроцедуры // Удалить() - -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\263\320\265\320\275\321\202\320\232\320\273\320\260\321\201\321\202\320\265\321\200\321\213.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\321\213.os" similarity index 69% rename from "src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\263\320\265\320\275\321\202\320\232\320\273\320\260\321\201\321\202\320\265\321\200\321\213.os" rename to "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\321\213.os" index 2889840..07ae09f 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\263\320\265\320\275\321\202\320\232\320\273\320\260\321\201\321\202\320\265\321\200\321\213.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\321\213.os" @@ -1,3 +1,12 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + Перем Кластер_Агент; Перем ПараметрыОбъекта; Перем Элементы; @@ -7,13 +16,13 @@ // Конструктор // // Параметры: -// АгентКластера - АдминистрированиеКластера - ссылка на родительский объект агента кластера +// АгентКластера - АдминистрированиеКластера - ссылка на родительский объект агента кластера // Процедура ПриСозданииОбъекта(АгентКластера) Кластер_Агент = АгентКластера; - ПараметрыОбъекта = Новый КомандыОбъекта("cluster"); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Кластеры); Элементы = Новый ОбъектыКластера(ЭтотОбъект); @@ -23,9 +32,9 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт @@ -56,13 +65,13 @@ // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); @@ -71,11 +80,11 @@ // Функция возвращает список кластеров 1С // // Параметры: -// Отбор - Структура - Структура отбора кластеров (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Отбор - Структура - Структура отбора кластеров (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Массив - список кластеров 1С +// Массив - список кластеров 1С // Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт @@ -88,12 +97,12 @@ // Функция возвращает иерархический список кластеров 1С // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка кластеров, разделенные "," -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// ПоляИерархии - Строка - Поля для построения иерархии списка кластеров, разделенные "," +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) // // Возвращаемое значение: -// Соответствие - список кластеров 1С -// <имя поля объекта> - Массив(Соответствие), Соответствие - список кластеров или следующий уровень +// Соответствие - список кластеров 1С +// <имя поля объекта> - Массив(Соответствие), Соответствие - список кластеров или следующий уровень // Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт @@ -106,7 +115,7 @@ // Функция возвращает количество кластеров в списке // // Возвращаемое значение: -// Число - количество кластеров в списке +// Число - количество кластеров в списке // Функция Количество() Экспорт @@ -121,11 +130,11 @@ // Функция возвращает описание кластера 1С // // Параметры: -// Кластер - Строка - Адрес кластера в виде <сервер>:<порт> -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Кластер - Строка - Адрес кластера в виде <сервер>:<порт> +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Соответствие - описание кластера 1С +// Соответствие - описание кластера 1С // Функция Получить(Знач Кластер, Знач ОбновитьПринудительно = Ложь) Экспорт @@ -153,10 +162,10 @@ // Процедура добавляет новый кластер 1С // // Параметры: -// Имя - Строка - имя кластера 1С -// АдресСервера - Строка - адрес сервера кластера 1С -// ПортСервера - Число - порт сервера кластера 1С -// ПараметрыКластера - Структура - параметры кластера 1С +// Имя - Строка - имя кластера 1С +// АдресСервера - Строка - адрес сервера кластера 1С +// ПортСервера - Число - порт сервера кластера 1С +// ПараметрыКластера - Структура - параметры кластера 1С // Процедура Добавить(Имя, АдресСервера = "localhost", ПортСервера = 1541, ПараметрыКластера = Неопределено) Экспорт @@ -207,4 +216,4 @@ КонецПроцедуры // Удалить() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); 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 c75876b..00a689c 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" @@ -1,32 +1,19 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + // Класс хранящий структуру свойств и команд объекта указанного типа -// Доступны типы: -// agent.admin - Агент.Администратор -// cluster - Кластер -// cluster.admin - Кластер.Администратор -// lock - Блокировка -// infobase - ИБ -// manager - МенеджерКластера -// process - РабочийПроцесс -// server - Сервер -// service - Сервис -// session - Сеанс -// connection - Соединение -// process.license - РабочийПроцесс.Лицензия -// session.license - Сеанс.Лицензия -// rule - ТребованиеНазначения -// profile - Профиль -// profile.directory - Профиль.Каталог -// profile.com - Профиль.COMКласс -// profile.addin - Профиль.Компонент -// profile.module - Профиль.Модуль -// profile.app - Профиль.Приложение -// profile.inet - Профиль.ИнтернетРесурс - -Перем ТипОбъекта; // наименование типа объектов (Кластер, Сервер, ИБ и т.п.) -Перем ОписаниеСвойств; // структура описания свойств объектов -Перем ПолучениеПараметровОбъектов; // структура описания методов заполнения списка свойств и команд объекта -Перем ПараметрыЗапуска; // массив параметров запуска команды утилиты RAC -Перем ЗначенияПараметров; // значения именованых параметров объекта + +Перем ТипОбъекта; // структура описания типа объектов (Кластер, Сервер, ИБ и т.п.) +Перем ОписаниеСвойств; // структура описания свойств объекта +Перем ОписаниеКоманд; // структура описания команд объекта +Перем ПараметрыЗапуска; // массив параметров запуска команды утилиты RAC +Перем ЗначенияПараметров; // значения именованых параметров объекта Перем Лог; @@ -42,16 +29,11 @@ // Процедура ПриСозданииОбъекта(ИмяТипаОбъекта, ЗначенияПараметровКоманд = Неопределено) - ЗаполнитьПолучениеПараметровОбъекта(); - - ТипОбъекта = ПолучениеПараметровОбъектов[ВРег(ИмяТипаОбъекта)]["ИмяТипа"]; + ТипОбъекта = ТипыОбъектовКластера.ТипОбъекта(ИмяТипаОбъекта); - ПроцедураЗаполнения = ПолучениеПараметровОбъектов[ВРег(ТипОбъекта)]["Параметры"]; + ОписаниеСвойств = ТипыОбъектовКластера.СвойстваОбъекта(ИмяТипаОбъекта); - Если НЕ ПроцедураЗаполнения = Неопределено Тогда - Рефлектор = Новый Рефлектор(); - Рефлектор.ВызватьМетод(ЭтотОбъект, ПроцедураЗаполнения, Новый Массив()); - КонецЕсли; + ОписаниеКоманд = ТипыОбъектовКластера.КомандыОбъекта(ИмяТипаОбъекта); УстановитьЗначенияПараметровКоманд(ЗначенияПараметровКоманд); @@ -61,8 +43,7 @@ // // Параметры: // ЗначенияПараметровКоманд - Структура - список параметров команд: -// Ключ - имя параметра -// Значение - значение параметра +// *<имя параметра> - Произвольный - значение параметра команды // Очистить - Булево - Истина - очистить значения параметров перед заполнением // Ложь - добавить параметры к существующим // (одноименные будут перезаполнены) @@ -84,13 +65,13 @@ // Функция возвращает коллекцию описаний свойств объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция описаний свойств объекта, для получения/изменения значений +// Соответствие - коллекция описаний свойств объекта, для получения/изменения значений // -Функция ОписаниеСвойств(Знач ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ОписаниеСвойств(Знач ИмяПоляКлюча = "Имя") Экспорт СтруктураОписаний = Новый Соответствие(); @@ -110,1057 +91,134 @@ // и возвращает результирующий массив // // Параметры: -// ИмяКоманды - Строка - имя команды для которой выпоняется заполнение +// ИмяКоманды - Строка - имя команды для которой выпоняется заполнение // // Возвращаемое значение: -// Массив - параметры запуска команды +// Массив - параметры запуска команды // Функция ПараметрыКоманды(Знач ИмяКоманды) Экспорт - ПроцедураЗаполнения = ПолучениеПараметровОбъектов[ВРег(ТипОбъекта)]["Команды"][ВРег(ИмяКоманды)]["Параметры"]; - - Если НЕ ПроцедураЗаполнения = Неопределено Тогда - Рефлектор = Новый Рефлектор(); - Попытка - Рефлектор.ВызватьМетод(ЭтотОбъект, ПроцедураЗаполнения, Новый Массив()); - Исключение - ВызватьИсключение - СтрШаблон("Ошибка вызова метода получения параметров команды ""%1"" объекта ""%2"" (%3()): %4 %5", - ИмяКоманды, - ТипОбъекта, - ПроцедураЗаполнения, - Символы.ПС, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; + Если ТипЗнч(ПараметрыЗапуска) = Тип("Массив") Тогда + ПараметрыЗапуска.Очистить(); КонецЕсли; - Возврат ПараметрыЗапуска; - -КонецФункции // ПараметрыКоманды() - -#КонецОбласти // ПрограммныйИнтерфейс - -#Область ПроцедурыЗаполненияПараметровОбъектов - -#Область Кластеры - -// Процедура заполняет массив описаний параметров кластера -// -Процедура Параметры_Кластер_Свойства() Экспорт - - ДобавитьОписаниеСвойстваОбъекта("Ид" , "cluster"); - ДобавитьОписаниеСвойстваОбъекта("АдресСервера" , "host"); - ДобавитьОписаниеСвойстваОбъекта("ПортСервера" , "port"); - ДобавитьОписаниеСвойстваОбъекта("Имя" , "name"); - ДобавитьОписаниеСвойстваОбъекта("ИнтервалПерезапуска" , "lifetime-limit" , 0, - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ДопустимыйОбъемПамяти" , "max-memory-size" , 0, - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ЗащищенноеСоединение" , "security-level" , 0, - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("УровеньОтказоустойчивости" , "session-fault-tolerance-level", 0, - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("РежимРаспределенияНагрузки" , "load-balancing-mode", - Перечисления.РежимыРаспределенияНагрузки.ПоПроизводительности, - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ИнтервалПревышенияДопустимогоОбъемаПамяти" , "max-memory-time-limit" , 0, - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ДопустимоеОтклонениеКоличестваОшибокСервера", "errors-count-threshold" , 0, - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ПринудительноЗавершатьПроблемныеПроцессы" , "kill-problem-processes", - Перечисления.ДаНет.Нет, - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ВыключенныеПроцессыОстанавливатьЧерез" , "expiration-timeout" , 0, - "Чтение, Добавление, Изменение"); - -КонецПроцедуры // Параметры_Кластер_Свойства() - -// Процедура заполняет общие параметры запуска команд кластеров -// -Процедура Параметры_Кластер_Общие() - - ПараметрыЗапуска = Новый Массив(); + Команда = ОписаниеКоманд[ИмяКоманды]; ДобавитьПараметрПоИмени("СтрокаПодключенияАгента"); - ДобавитьПараметрСтроку("cluster"); - -КонецПроцедуры // Параметры_Кластер_Общие() - -// Процедура заполняет параметры запуска команды получения списка кластеров -// -Процедура Параметры_Кластер_Список() Экспорт - - Параметры_Кластер_Общие(); - - ДобавитьПараметрСтроку("list"); - -КонецПроцедуры // Параметры_Кластер_Список() - -// Процедура заполняет параметры запуска команды получения описания кластера -// -Процедура Параметры_Кластер_Описание() Экспорт - - Параметры_Кластер_Общие(); - - ДобавитьПараметрСтроку("info"); - ДобавитьПараметрПоШаблону("--cluster=%1", "ИдентификаторКластера"); - -КонецПроцедуры // Параметры_Кластер_Описание() - -// Процедура заполняет параметры запуска команды добавления кластера -// -Процедура Параметры_Кластер_Добавить() Экспорт - - Параметры_Кластер_Общие(); - - ДобавитьПараметрСтроку("insert"); - - ДобавитьПараметрПоИмени("СтрокаАвторизацииАгента"); - - ДобавитьПараметрПоШаблону("--host=%1", "АдресСервера"); - ДобавитьПараметрПоШаблону("--port=%1", "ПортСервера"); - ДобавитьПараметрПоШаблону("--name=%1", "Имя"); - - ДобавитьПрочиеПараметрыКоманды("Добавление"); - -КонецПроцедуры // Параметры_Кластер_Добавить() - -// Процедура заполняет параметры запуска команды изменения кластера -// -Процедура Параметры_Кластер_Изменить() Экспорт - - Параметры_Кластер_Общие(); - - ДобавитьПараметрСтроку("update"); - - ДобавитьПараметрПоИмени("СтрокаАвторизацииАгента"); - - ДобавитьПараметрПоШаблону("--cluster=%1", "ИдентификаторКластера"); - - Если НЕ ЗначенияПараметров.Получить("Имя") = Неопределено Тогда - ДобавитьПараметрПоШаблону("--name=%1", "Имя"); + Если ТипОбъекта.Свойство("Владелец") Тогда + ДобавитьПараметрСтроку(ТипОбъекта.Владелец.РежимАдминистрирования); + Иначе + ДобавитьПараметрСтроку(ТипОбъекта.РежимАдминистрирования); КонецЕсли; - - ДобавитьПрочиеПараметрыКоманды("Изменение"); - -КонецПроцедуры // Параметры_Кластер_Изменить() - -// Процедура заполняет параметры запуска команды удаления кластера -// -Процедура Параметры_Кластер_Удалить() Экспорт - - Параметры_Кластер_Общие(); - - ДобавитьПараметрСтроку("remove"); - - ДобавитьПараметрПоШаблону("--cluster=%1", "ИдентификаторКластера"); - - ДобавитьПараметрПоИмени("СтрокаАвторизацииКластера"); - -КонецПроцедуры // Параметры_Кластер_Удалить() - -#КонецОбласти // Кластеры - -#Область Администраторы_Общее - -// Процедура заполняет массив описаний параметров администратора (агента / кластера) -// -Процедура Параметры_Администратор_Свойства() Экспорт - - ДобавитьОписаниеСвойстваОбъекта("Имя" , "name" , "Администратор", - "Чтение, Добавление"); - - ДобавитьОписаниеСвойстваОбъекта("Пароль" , "pwd" , "***", - "Добавление"); - - ДобавитьОписаниеСвойстваОбъекта("СпособАвторизации" , "auth" , Перечисления.СпособыАвторизации.Пароль, - "Чтение, Добавление"); - - ДобавитьОписаниеСвойстваОбъекта("ПользовательОС" , "os-user" , "", - "Чтение, Добавление"); - - ДобавитьОписаниеСвойстваОбъекта("Описание" , "descr" , "", - "Чтение, Добавление"); - -КонецПроцедуры // Параметры_Администратор_Свойства() - -#КонецОбласти // Администраторы_Общее - -#Область АдминистраторыАгента - -// Процедура заполняет массив описаний параметров администратора агента -// -Процедура Параметры_Агент_Администратор_Свойства() Экспорт - - Параметры_Администратор_Свойства(); - -КонецПроцедуры // Параметры_Агент_Администратор_Свойства() - -// Процедура заполняет общие параметры запуска команд администраторов агента -// -Процедура Параметры_Агент_Администратор_Общие() Экспорт - - ПараметрыЗапуска = Новый Массив(); - - ДобавитьПараметрПоИмени("СтрокаПодключенияАгента"); - - ДобавитьПараметрСтроку("agent"); - - ДобавитьПараметрПоИмени("СтрокаАвторизацииАгента"); - - ДобавитьПараметрСтроку("admin"); - -КонецПроцедуры // Параметры_Агент_Администратор_Общие() - -// Процедура заполняет параметры запуска команды получения списка администраторов агента -// -Процедура Параметры_Агент_Администратор_Список() Экспорт - - Параметры_Агент_Администратор_Общие(); - - ДобавитьПараметрСтроку("list"); - -КонецПроцедуры // Параметры_Агент_Администратор_Список() - -// Процедура заполняет параметры запуска команды добавления администратора агента -// -Процедура Параметры_Агент_Администратор_Добавить() Экспорт - - Параметры_Агент_Администратор_Общие(); - - ДобавитьПараметрСтроку("register"); - - ДобавитьПараметрСтроку(СтрШаблон("--name=%1", Служебный.ОбернутьВКавычки(ЗначенияПараметров.Получить("Имя")))); - - ДобавитьПрочиеПараметрыКоманды("Добавление", , "Имя"); - -КонецПроцедуры // Параметры_Агент_Администратор_Добавить() - -// Процедура заполняет параметры запуска команды удаления администратора агента -// -Процедура Параметры_Агент_Администратор_Удалить() Экспорт - - Параметры_Агент_Администратор_Общие(); - - ДобавитьПараметрСтроку("remove"); - - ДобавитьПараметрСтроку(СтрШаблон("--name=%1", Служебный.ОбернутьВКавычки(ЗначенияПараметров.Получить("Имя")))); - -КонецПроцедуры // Параметры_Агент_Администратор_Удалить() - -#КонецОбласти // АдминистраторыАгента - -#Область АдминистраторыКластера - -// Процедура заполняет массив описаний параметров администратора кластера -// -Процедура Параметры_Кластер_Администратор_Свойства() Экспорт - - Параметры_Администратор_Свойства(); - -КонецПроцедуры // Параметры_Кластер_Администратор_Свойства() - -// Процедура заполняет общие параметры запуска команд администраторов кластера -// -Процедура Параметры_Кластер_Администратор_Общие() Экспорт - - ПараметрыЗапуска = Новый Массив(); - - ДобавитьПараметрПоИмени("СтрокаПодключенияАгента"); - - ДобавитьПараметрСтроку("cluster"); - - ДобавитьПараметрСтроку("admin"); - - ДобавитьПараметрПоШаблону("--cluster=%1", "ИдентификаторКластера"); - - ДобавитьПараметрПоИмени("СтрокаАвторизацииКластера"); - -КонецПроцедуры // Параметры_Кластер_Администратор_Общие() - -// Процедура заполняет параметры запуска команды получения списка администраторов кластера -// -Процедура Параметры_Кластер_Администратор_Список() Экспорт - - Параметры_Кластер_Администратор_Общие(); - - ДобавитьПараметрСтроку("list"); - -КонецПроцедуры // Параметры_Кластер_Администратор_Список() - -// Процедура заполняет параметры запуска команды добавления администратора кластера -// -Процедура Параметры_Кластер_Администратор_Добавить() Экспорт - - Параметры_Кластер_Администратор_Общие(); - - ДобавитьПараметрСтроку("register"); - - ДобавитьПараметрСтроку(СтрШаблон("--name=%1", Служебный.ОбернутьВКавычки(ЗначенияПараметров.Получить("Имя")))); - - ДобавитьПрочиеПараметрыКоманды("Добавление", , "Имя"); - - ДобавитьПараметрПоИмени("СтрокаАвторизацииАгента"); - -КонецПроцедуры // Параметры_Кластер_Администратор_Добавить() - -// Процедура заполняет параметры запуска команды удаления администратора кластера -// -Процедура Параметры_Кластер_Администратор_Удалить() Экспорт - - Параметры_Кластер_Администратор_Общие(); - - ДобавитьПараметрСтроку("remove"); - - ДобавитьПараметрСтроку(СтрШаблон("--name=%1", Служебный.ОбернутьВКавычки(ЗначенияПараметров.Получить("Имя")))); - -КонецПроцедуры // Параметры_Кластер_Администратор_Удалить() - -#КонецОбласти // АдминистраторыКластера - -#Область МенеджерыКластера - -// Процедура заполняет массив описаний параметров менеджера кластера -// -Процедура Параметры_МенеджерКластера_Свойства() Экспорт - - ДобавитьОписаниеСвойстваОбъекта("Ид" , "manager"); - ДобавитьОписаниеСвойстваОбъекта("ИдПроцессаОС" , "pid"); - ДобавитьОписаниеСвойстваОбъекта("Назначение" , "using"); - ДобавитьОписаниеСвойстваОбъекта("АдресСервера" , "host"); - ДобавитьОписаниеСвойстваОбъекта("ПортСервера" , "port"); - ДобавитьОписаниеСвойстваОбъекта("Описание" , "descr"); - -КонецПроцедуры // Параметры_МенеджерКластера_Свойства() - -// Процедура заполняет параметры запуска команды получения списка менеджеров кластера -// -Процедура Параметры_МенеджерКластера_Список() Экспорт - - ПараметрыЗапуска = Новый Массив(); - - ДобавитьПараметрПоИмени("СтрокаПодключенияАгента"); - - ДобавитьПараметрСтроку("manager"); - ДобавитьПараметрСтроку("list"); - - ДобавитьПараметрПоШаблону("--cluster=%1", "ИдентификаторКластера"); - - ДобавитьПараметрПоИмени("СтрокаАвторизацииКластера"); - -КонецПроцедуры // Параметры_МенеджерКластера_Список() - -#КонецОбласти // МенеджерыКластера - -#Область Серверы - -// Процедура заполняет массив описаний параметров сервера -// -Процедура Параметры_Сервер_Свойства() Экспорт - - ДиапазонПортов = "1560:1591"; - КоличествоИБНаПроцесс = "8"; - КоличествоСоединенийНаПроцесс = "128"; - ПортГлавногоМенеджераКластера = "1541"; - ПортАгента = "1540"; - - ДобавитьОписаниеСвойстваОбъекта("Ид" , "server"); - ДобавитьОписаниеСвойстваОбъекта("Имя" , "name" , , - "Чтение, Добавление"); - ДобавитьОписаниеСвойстваОбъекта("АдресАгента" , "agent-host" , "localhost", - "Чтение, Добавление"); - ДобавитьОписаниеСвойстваОбъекта("ПортАгента" , "agent-port" , ПортАгента, - "Чтение, Добавление"); - ДобавитьОписаниеСвойстваОбъекта("ДиапазонПортов" , "port-range" , ДиапазонПортов, - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ЦентральныйСервер" , "using" , - Перечисления.ВариантыИспользованияРабочегоСервера.Главный, - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("МенеджерПодКаждыйСервис" , "dedicate-managers", - Перечисления.ВариантыРазмещенияСервисов.ВОдномМенеджере, - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("КоличествоИБНаПроцесс" , "infobases-limit" , - КоличествоИБНаПроцесс, - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("МаксОбъемПамятиРабочихПроцессов" , "memory-limit" , "0", - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("КоличествоСоединенийНаПроцесс" , "connections-limit", - КоличествоСоединенийНаПроцесс, - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ПортГлавногоМенеджераКластера" , "cluster-port" , - ПортГлавногоМенеджераКластера, - "Чтение, Добавление"); - - ДобавитьОписаниеСвойстваОбъекта("БезопасныйОбъемПамятиРабочихПроцессов", "safe-working-processes-memory-limit", "0", - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("БезопасныйРасходПамятиЗаОдинВызов" , "safe-call-memory-limit" , "0", - "Чтение, Добавление, Изменение"); - -КонецПроцедуры // Параметры_Сервер_Свойства() - -// Процедура заполняет общие параметры запуска команд серверов -// -Процедура Параметры_Сервер_Общие() - - ПараметрыЗапуска = Новый Массив(); - - ДобавитьПараметрПоИмени("СтрокаПодключенияАгента"); - - ДобавитьПараметрСтроку("server"); - - ДобавитьПараметрПоШаблону("--cluster=%1", "ИдентификаторКластера"); - ДобавитьПараметрПоИмени("СтрокаАвторизацииКластера"); - -КонецПроцедуры // Параметры_Сервера_Общие() - -// Процедура заполняет параметры команды получения списка серверов -// -Процедура Параметры_Сервер_Список() Экспорт - - Параметры_Сервер_Общие(); - - ДобавитьПараметрСтроку("list"); - -КонецПроцедуры // Параметры_Сервер_Список() - -// Процедура заполняет параметры команды получения описания сервера -// -Процедура Параметры_Сервер_Описание() Экспорт - - Параметры_Сервер_Общие(); - - ДобавитьПараметрСтроку("info"); - ДобавитьПараметрПоШаблону("--server=%1", "ИдентификаторСервера"); - -КонецПроцедуры // Параметры_Сервер_Описание() - -// Процедура заполняет параметры команды добавления сервера -// -Процедура Параметры_Сервер_Добавить() Экспорт - - Параметры_Сервер_Общие(); - - ДобавитьПараметрСтроку("insert"); - - ДобавитьПараметрПоШаблону("--name=%1" , "Имя"); - ДобавитьПараметрПоШаблону("--locale=%1", "Локализация"); - - ДобавитьПрочиеПараметрыКоманды("Добавление", , "Имя"); - -КонецПроцедуры // Параметры_Сервер_Добавить() - -// Процедура заполняет параметры команды изменения сервера -// -Процедура Параметры_Сервер_Изменить() Экспорт - - Параметры_Сервер_Общие(); - - ДобавитьПараметрСтроку("update"); - - ДобавитьПараметрПоШаблону("--server=%1", "ИдентификаторСервера"); - - ДобавитьПрочиеПараметрыКоманды("Изменение"); - -КонецПроцедуры // Параметры_Сервер_Изменить() - -// Процедура заполняет параметры команды удаления сервера -// -Процедура Параметры_Сервер_Удалить() Экспорт - - Параметры_Сервер_Общие(); - - ДобавитьПараметрСтроку("remove"); - - ДобавитьПараметрПоШаблону("--server=%1", "ИдентификаторСервеа"); - -КонецПроцедуры // Параметры_Сервер_Удалить() - -#КонецОбласти // Серверы - -#Область РабочиеПроцессы - -// Процедура заполняет массив описаний параметров рабочего процесса -// -Процедура Параметры_РабочийПроцесс_Свойства() Экспорт - - ДобавитьОписаниеСвойстваОбъекта("Ид" , "process"); - ДобавитьОписаниеСвойстваОбъекта("АдресСервера" , "host"); - ДобавитьОписаниеСвойстваОбъекта("ПортСервера" , "port"); - ДобавитьОписаниеСвойстваОбъекта("ИдПроцессаОС" , "pid"); - ДобавитьОписаниеСвойстваОбъекта("Активен" , "is-enable"); - ДобавитьОписаниеСвойстваОбъекта("Выполняется" , "running"); - ДобавитьОписаниеСвойстваОбъекта("ВремяЗапуска" , "started-at"); - ДобавитьОписаниеСвойстваОбъекта("Использование" , "use"); - ДобавитьОписаниеСвойстваОбъекта("ДоступнаяПроизводительность" , "available-perfomance"); - ДобавитьОписаниеСвойстваОбъекта("Емкость" , "capacity"); - ДобавитьОписаниеСвойстваОбъекта("КоличествоСоединений" , "connections"); - ДобавитьОписаниеСвойстваОбъекта("ЗанятьПамяти" , "memory-size"); - ДобавитьОписаниеСвойстваОбъекта("ВремяПревышенияЗанятойПамяти" , " memory-excess-time"); - ДобавитьОписаниеСвойстваОбъекта("ОбъемВыборки" , "selection-size"); - ДобавитьОписаниеСвойстваОбъекта("ЗатраченоКлиентом" , "avg-back-call-time"); - ДобавитьОписаниеСвойстваОбъекта("ЗатраченоВсего" , "avg-call-time"); - ДобавитьОписаниеСвойстваОбъекта("ЗатраченоСУБД" , "avg-db-call-time"); - ДобавитьОписаниеСвойстваОбъекта("ЗатраченоМенеджеромБлокировок" , "avg-lock-call-time"); - ДобавитьОписаниеСвойстваОбъекта("ЗатраченоСервером" , "avg-server-call-time"); - ДобавитьОписаниеСвойстваОбъекта("КлиентскихПотоков" , "avg-threads"); - -КонецПроцедуры // Параметры_РабочийПроцесс_Свойства() - -// Процедура заполняет общие параметры запуска команд рабочих процессов -// -Процедура Параметры_РабочийПроцесс_Общие() - - ПараметрыЗапуска = Новый Массив(); - - ДобавитьПараметрПоИмени("СтрокаПодключенияАгента"); - - ДобавитьПараметрСтроку("process"); - - ДобавитьПараметрПоШаблону("--cluster=%1", "ИдентификаторКластера"); - ДобавитьПараметрПоИмени("СтрокаАвторизацииКластера"); - -КонецПроцедуры // Параметры_РабочийПроцесс_Общие() - -// Процедура заполняет параметры команды получения списка рабочих процессов -// -Процедура Параметры_РабочийПроцесс_Список() Экспорт - - Параметры_РабочийПроцесс_Общие(); - - ДобавитьПараметрСтроку("list"); - -КонецПроцедуры // Параметры_РабочийПроцесс_Список() - -// Процедура заполняет параметры команды получения описания рабочего процесса -// -Процедура Параметры_РабочийПроцесс_Описание() Экспорт - - Параметры_РабочийПроцесс_Общие(); - - ДобавитьПараметрСтроку("info"); - ДобавитьПараметрПоШаблону("--process=%1", "ИдентификаторПроцесса"); - -КонецПроцедуры // Параметры_РабочийПроцесс_Описание() - -#КонецОбласти // РабочиеПроцессы - -#Область ИнформационныеБазы - -// Процедура заполняет массив описаний свойств информационной базы -// -Процедура Параметры_ИБ_Свойства() Экспорт - - ДобавитьОписаниеСвойстваОбъекта("Ид" , "infobase"); - ДобавитьОписаниеСвойстваОбъекта("ТипСУБД" , "dbms", - Перечисления.ТипыСУБД.MSSQLServer, "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("АдресСервераСУБД" , "db-server", "", - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ИмяБазыСУБД" , "db-name", , - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ИмяПользователяБазыСУБД" , "db-user", , - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ПарольПользователяБазыСУБД" , "db-pwd", , - "Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("НачалоБлокировкиСеансов" , "denied-from", , - "Чтение, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ОкончаниеБлокировкиСеансов" , "denied-to", , - "Чтение, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("СообщениеБлокировкиСеансов" , "denied-message", , - "Чтение, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ПараметрБлокировкиСеансов" , "denied-parameter", , - "Чтение, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("КодРазрешения" , "permission-code", , - "Чтение, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("БлокировкаСеансовВключена" , "sessions-deny", , - "Чтение, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("БлокировкаРегламентныхЗаданийВключена" , "scheduled-jobs-deny", - Перечисления.СостоянияВыключателя.Выключено, - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ВыдачаЛицензийСервером" , "license-distribution", - Перечисления.ПраваДоступа.Разрешено, - "Чтение, Добавление, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ПараметрыВнешнегоУправленияСеансами", - "external-session-manager-connection-string", , - "Чтение, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ОбязательноеВнешнееУправлениеСеансами" , "external-session-manager-required", - Перечисления.ДаНет.Нет, - "Чтение, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ПрофильБезопасности" , "security-profile-name", , - "Чтение, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("ПрофильБезопасностиБезопасногоРежима" , "safe-mode-security-profile-name", , - "Чтение, Изменение"); - - ДобавитьОписаниеСвойстваОбъекта("СмещениеДат" , "date-offset", "2000", - "Добавление"); - ДобавитьОписаниеСвойстваОбъекта("Описание" , "descr", , - "Чтение, Изменение"); - -КонецПроцедуры // Параметры_ИБ_Свойства() - -// Процедура заполняет общие параметры запуска команд информационных баз -// -Процедура Параметры_ИБ_Общие() - - ПараметрыЗапуска = Новый Массив(); - - ДобавитьПараметрПоИмени("СтрокаПодключенияАгента"); - - ДобавитьПараметрСтроку("infobase"); - - ДобавитьПараметрПоШаблону("--cluster=%1", "ИдентификаторКластера"); - ДобавитьПараметрПоИмени("СтрокаАвторизацииКластера"); - -КонецПроцедуры // Параметры_ИБ_Общие() - -// Процедура заполняет параметры команды получения списка информационных баз -// -Процедура Параметры_ИБ_Список() Экспорт - - Параметры_ИБ_Общие(); - - ДобавитьПараметрСтроку("summary"); - ДобавитьПараметрСтроку("list"); - -КонецПроцедуры // Параметры_ИБ_Список() - -// Процедура заполняет параметры команды получения сокращенного описания информационной базы -// -Процедура Параметры_ИБ_Описание() Экспорт - - Параметры_ИБ_Общие(); - - ДобавитьПараметрСтроку("summary"); - ДобавитьПараметрСтроку("info"); - ДобавитьПараметрПоШаблону("--infobase=%1", "ИдентификаторИБ"); - -КонецПроцедуры // Параметры_ИБ_Описание() - -// Процедура заполняет параметры команды получения полного описания информационной базы -// -Процедура Параметры_ИБ_ПолноеОписание() Экспорт - - Параметры_ИБ_Общие(); - - ДобавитьПараметрСтроку("info"); - ДобавитьПараметрПоШаблону("--infobase=%1", "ИдентификаторИБ"); - ДобавитьПараметрПоИмени("СтрокаАвторизацииИБ"); - -КонецПроцедуры // Параметры_ИБ_ПолноеОписание() -// Процедура заполняет параметры команды добавления информационной базы -// -Процедура Параметры_ИБ_Добавить() Экспорт - - Параметры_ИБ_Общие(); - - ДобавитьПараметрСтроку("create"); - - ДобавитьПараметрПоШаблону("--name=%1" , "Имя"); - ДобавитьПараметрПоШаблону("--locale=%1", "Локализация"); + АвторизацияАгента = Ложь; + Если Команда.Свойство("АвторизацияАгента") Тогда + АвторизацияАгента = Команда.АвторизацияАгента; + КонецЕсли; - Если ЗначениеФлага("СоздатьБазуСУБД") Тогда - ДобавитьПараметрСтроку("--create-database"); + Если АвторизацияАгента Тогда + ДобавитьПараметрПоИмени("СтрокаАвторизацииАгента"); КонецЕсли; - ДобавитьПрочиеПараметрыКоманды("Добавление"); - -КонецПроцедуры // Параметры_ИБ_Добавить() - -// Процедура заполняет параметры команды изменения информационной базы -// -Процедура Параметры_ИБ_Изменить() Экспорт - - Параметры_ИБ_Общие(); - - ДобавитьПараметрСтроку("update"); - - ДобавитьПараметрПоШаблону("--infobase=%1", "ИдентификаторИБ"); - ДобавитьПараметрПоИмени("СтрокаАвторизацииИБ"); - - ДобавитьПрочиеПараметрыКоманды("Изменение"); - -КонецПроцедуры // Параметры_ИБ_Изменить() - -// Процедура заполняет параметры команды удаления информационной базы -// -Процедура Параметры_ИБ_Удалить() Экспорт - - Параметры_ИБ_Общие(); - - ДобавитьПараметрСтроку("drop"); - - ДобавитьПараметрПоШаблону("--infobase=%1", "ИдентификаторИБ"); - ДобавитьПараметрПоИмени("СтрокаАвторизацииИБ"); - - Если ЗначенияПараметров.Получить("ДействияСБазойСУБД") = "drop" Тогда - ДобавитьПараметрСтроку("--drop-database"); - ИначеЕсли ЗначенияПараметров.Получить("ДействияСБазойСУБД") = "clear" Тогда - ДобавитьПараметрСтроку("--clear-database"); + Если Команда.Кластер Тогда + ДобавитьПараметрПоШаблону("--cluster=%1", "ИдентификаторКластера", Истина); + ДобавитьПараметрПоИмени("СтрокаАвторизацииКластера"); КонецЕсли; - -КонецПроцедуры // Параметры_ИБ_Удалить() - -#КонецОбласти // ИнформационныеБазы - -#Область СчетчикиПотребленияРесурсов - -// Процедура заполняет массив описаний параметров рабочего процесса -// -Процедура Параметры_СчетчикПотребленияРесурсов_Свойства() Экспорт - - ДобавитьОписаниеСвойстваОбъекта("Имя" , "name"); - ДобавитьОписаниеСвойстваОбъекта("ДлительностьСбора" , "collection-time"); - ДобавитьОписаниеСвойстваОбъекта("ДлительностьСбораМс" , "duration"); - ДобавитьОписаниеСвойстваОбъекта("Группировка" , "group"); - ДобавитьОписаниеСвойстваОбъекта("ТипОтбора" , "filter-type"); - ДобавитьОписаниеСвойстваОбъекта("Отбор" , "filter"); - ДобавитьОписаниеСвойстваОбъекта("ПроцессорноеВремя" , "cpu-time"); - ДобавитьОписаниеСвойстваОбъекта("ДлительностьВызововСУБД" , "duration-dbms"); - ДобавитьОписаниеСвойстваОбъекта("ДлительностьВызововСервисов" , "service"); - ДобавитьОписаниеСвойстваОбъекта("ПотреблениеПамяти" , "memory"); - ДобавитьОписаниеСвойстваОбъекта("ОбъемИнформацииСчитаннойСДиска" , "read"); - ДобавитьОписаниеСвойстваОбъекта("ОбъемИнформацииЗаписаннойНаДиск" , "write"); - ДобавитьОписаниеСвойстваОбъекта("ОбъемИнформацииПереданнойСУБД" , "dbms-bytes"); - ДобавитьОписаниеСвойстваОбъекта("КоличествоСерверныхВызовов" , "call"); - ДобавитьОписаниеСвойстваОбъекта("КоличествоАктивныхСеансов" , "number-of-active-sessions"); - ДобавитьОписаниеСвойстваОбъекта("КоличествоСеансов" , "number-of-sessions"); - ДобавитьОписаниеСвойстваОбъекта("Описание" , "descr"); - -КонецПроцедуры // Параметры_СчетчикПотребленияРесурсов_Свойства() - -// Процедура заполняет общие параметры запуска команд счетчиков потребления ресурсов -// -Процедура Параметры_СчетчикПотребленияРесурсов_Общие() - - ПараметрыЗапуска = Новый Массив(); - - ДобавитьПараметрПоИмени("СтрокаПодключенияАгента"); - - ДобавитьПараметрСтроку("counter"); - - ДобавитьПараметрПоШаблону("--cluster=%1", "ИдентификаторКластера"); - ДобавитьПараметрПоИмени("СтрокаАвторизацииКластера"); - -КонецПроцедуры // Параметры_СчетчикПотребленияРесурсов_Общие() - -// Процедура заполняет параметры команды получения списка счетчиков потребления ресурсов -// -Процедура Параметры_СчетчикПотребленияРесурсов_Список() Экспорт - - Параметры_СчетчикПотребленияРесурсов_Общие(); - - ДобавитьПараметрСтроку("list"); - -КонецПроцедуры // Параметры_СчетчикПотребленияРесурсов_Список() - -// Процедура заполняет параметры команды изменения счетчика потребления ресурсов -// -Процедура Параметры_СчетчикПотребленияРесурсов_Изменить() Экспорт - - Параметры_СчетчикПотребленияРесурсов_Общие(); - - ДобавитьПараметрСтроку("update"); - - ДобавитьПараметрПоШаблону("--name=%1", "Имя"); - ДобавитьПараметрПоШаблону("--collection-time=%1", "ДлительностьСбора"); - ДобавитьПараметрПоШаблону("--group=%1", "Группировка"); - ДобавитьПараметрПоШаблону("--filter-type=%1", "ТипОтбора"); - ДобавитьПараметрПоШаблону("--filter=%1", "Отбор"); - ДобавитьПараметрПоШаблону("--duration=%1", "ДлительностьСбораМс"); - ДобавитьПараметрПоШаблону("--cpu-time=%1", "ПроцессорноеВремя"); - ДобавитьПараметрПоШаблону("--memory=%1", "ПотреблениеПамяти"); - ДобавитьПараметрПоШаблону("--read=%1", "ОбъемИнформацииСчитаннойСДиска"); - ДобавитьПараметрПоШаблону("--write=%1", "ОбъемИнформацииЗаписаннойНаДиск"); - ДобавитьПараметрПоШаблону("--duration-dbms=%1", "ДлительностьВызововСУБД"); - ДобавитьПараметрПоШаблону("--dbms-bytes=%1", "ОбъемИнформацииПереданнойСУБД"); - ДобавитьПараметрПоШаблону("--service=%1", "ДлительностьВызововСервисов"); - ДобавитьПараметрПоШаблону("--call=%1", "КоличествоСерверныхВызовов"); - ДобавитьПараметрПоШаблону("--number-of-active-sessions=%1", "КоличествоАктивныхСеансов"); - ДобавитьПараметрПоШаблону("--number-of-sessions=%1", "КоличествоСеансов"); - ДобавитьПараметрПоШаблону("--descr=%1", "Описание"); - ДобавитьПрочиеПараметрыКоманды("Изменение"); - -КонецПроцедуры // Параметры_СчетчикПотребленияРесурсов_Изменить() - -// Процедура заполняет параметры команды получения описания счетчика потребления ресурсов -// -Процедура Параметры_СчетчикПотребленияРесурсов_Описание() Экспорт - - Параметры_СчетчикПотребленияРесурсов_Общие(); - - ДобавитьПараметрСтроку("info"); - ДобавитьПараметрПоШаблону("--counter=%1", "ИмяСчетчика"); - -КонецПроцедуры // Параметры_СчетчикПотребленияРесурсов_Описание() - -// Процедура заполняет параметры команды удаления сервера -// -Процедура Параметры_СчетчикПотребленияРесурсов_Значения() Экспорт - - Параметры_СчетчикПотребленияРесурсов_Общие(); - - ДобавитьПараметрСтроку("values"); - - ДобавитьПараметрПоШаблону("--counter=%1", "ИмяСчетчика"); - ДобавитьПараметрПоШаблону("--object=%1", "Отбор"); - -КонецПроцедуры // Параметры_СчетчикПотребленияРесурсов_Значения() - -// Процедура заполняет параметры команды удаления счетчика потребления ресурсов -// -Процедура Параметры_СчетчикПотребленияРесурсов_Удалить() Экспорт - - Параметры_СчетчикПотребленияРесурсов_Общие(); - - ДобавитьПараметрСтроку("remove"); - - ДобавитьПараметрПоШаблону("--name=%1", "ИмяСчетчика"); - -КонецПроцедуры // Параметры_СчетчикПотребленияРесурсов_Удалить() - -#КонецОбласти // СчетчикиПотребленияРесурсов - -#КонецОбласти // ПроцедурыЗаполненияПараметровОбъектов - -#Область СлужебныеПроцедуры - -// Процедура заполняет структуру правил заполнения описаний свойств и команд объектов -// -Процедура ЗаполнитьПолучениеПараметровОбъекта() - - ОписанияОбъектов = Новый Соответствие(); + Если ТипОбъекта.Свойство("Владелец") Тогда + ДобавитьПараметрСтроку(ТипОбъекта.РежимАдминистрирования); + КонецЕсли; - ОписанияОбъектов.Вставить("Кластер:cluster" , "Список:list, - |Описание:info, - |Добавить:insert, - |Изменить:update, - |Удалить:remove"); - - ОписанияОбъектов.Вставить("Агент.Администратор:agent.admin" , "Список:list, - |Добавить:register, - |Удалить:remove"); - - ОписанияОбъектов.Вставить("Кластер.Администратор:cluster.admin" , "Список:list, - |Добавить:register, - |Удалить:remove"); - - ОписанияОбъектов.Вставить("МенеджерКластера:manager" , "Список:list, - |Описание:info"); - - ОписанияОбъектов.Вставить("Сервис:service" , "Список:list"); - - ОписанияОбъектов.Вставить("Сервер:server" , "Список:list, - |Описание:info, - |Добавить:insert, - |Изменить:update, - |Удалить:remove"); - - ОписанияОбъектов.Вставить("РабочийПроцесс:process" , "Список:list, - |Описание:info"); - - ОписанияОбъектов.Вставить("РабочийПроцесс.Лицензия:process.license", "Список:list, - |Описание:info"); - - ОписанияОбъектов.Вставить("Сеанс:session" , "Список:list, - |Описание:info, - |Удалить:terminate"); - - ОписанияОбъектов.Вставить("Сеанс.Лицензия:session.license" , "Список:list, - |Описание:info"); - - ОписанияОбъектов.Вставить("Соединение:connection" , "Список:list, - |Описание:info, - |Удалить:disconnect"); - - ОписанияОбъектов.Вставить("ИБ:infobase" , "Список:list, - |Описание:summary, - |ПолноеОписание:info, - |Добавить:create, - |Изменить:update, - |Удалить:remove"); - - ОписанияОбъектов.Вставить("Блокировка:lock" , "Список:list"); - - ОписанияОбъектов.Вставить("ТребованиеНазначения:rule" , "Список:list, - |Описание:info, - |Добавить:insert, - |Изменить:update, - |Удалить:remove, - |Применить:apply"); - - ОписанияОбъектов.Вставить("Профиль:profile" , "Список:list, - |Изменить:update, - |Удалить:remove"); - - ОписанияОбъектов.Вставить("Профиль.Каталог:profile.directory" , "Список:list, - |Изменить:update, - |Удалить:remove"); - - ОписанияОбъектов.Вставить("Профиль.COMКласс:profile.com" , "Список:list, - |Изменить:update, - |Удалить:remove"); - - ОписанияОбъектов.Вставить("Профиль.Компонент:profile.addin" , "Список:list, - |Изменить:update, - |Удалить:remove"); - - ОписанияОбъектов.Вставить("Профиль.Модуль:profile.module" , "Список:list, - |Изменить:update, - |Удалить:remove"); - - ОписанияОбъектов.Вставить("Профиль.Приложение:profile.app" , "Список:list, - |Изменить:update, - |Удалить:remove"); - - ОписанияОбъектов.Вставить("Профиль.ИнтернетРесурс:profile.inet" , "Список:list, - |Изменить:update, - |Удалить:remove"); - - ОписанияОбъектов.Вставить("СчетчикПотребленияРесурсов:counter" , "Список:list, - |Изменить:update, - |Значения:values, - |Удалить:remove"); - - Для Каждого ТекОписание Из ОписанияОбъектов Цикл - ДобавитьПолучениеПараметровОбъекта(ТекОписание.Ключ, ТекОписание.Значение); + Для Каждого ТекПараметр Из Команда.ОбщиеПараметры Цикл + ДобавитьПараметрКоманды(ТекПараметр); КонецЦикла; -КонецПроцедуры // ЗаполнитьПолучениеПараметровОбъекта() + ДобавитьПараметрСтроку(Команда.ИмяРАК); -// Процедура добавляет правило заполнения описания свойств и команд объекта -// -Процедура ДобавитьПолучениеПараметровОбъекта(ИменаТипаОбъекта, ДоступныеКоманды) + Для Каждого ТекПараметр Из Команда.ПараметрыКоманды Цикл + ДобавитьПараметрКоманды(ТекПараметр); + КонецЦикла; - Если НЕ ТипЗнч(ПолучениеПараметровОбъектов) = Тип("Соответствие") Тогда - ПолучениеПараметровОбъектов = Новый Соответствие(); + Если Команда.ЗначенияПолей Тогда + ДобавитьПрочиеПараметрыКоманды(Команда.Имя); КонецЕсли; - МассивИменТипов = СтрРазделить(ИменаТипаОбъекта, ":"); - - ОсновноеИмяТипа = СокрЛП(МассивИменТипов[0]); - ИмяПроцедуры = "Параметры_" + СтрЗаменить(ОсновноеИмяТипа, ".", "_") + "_Свойства"; - - ПолучениеПараметровОбъекта = Новый Соответствие(); - ПолучениеПараметровОбъекта.Вставить("ИмяТипа", ОсновноеИмяТипа); - ПолучениеПараметровОбъекта.Вставить("Параметры", ИмяПроцедуры); - - МассивКоманд = СтрРазделить(ДоступныеКоманды, ","); - - ПолучениеПараметровКоманд = Новый Соответствие(); - - Для Каждого ТекИменаКоманды Из МассивКоманд Цикл - МассивИменКоманды = СтрРазделить(СокрЛП(ТекИменаКоманды), ":"); + Возврат ПараметрыЗапуска; - ОсновноеИмяКоманды = СокрЛП(МассивИменКоманды[0]); - ИмяПроцедуры = "Параметры_" + СтрЗаменить(ОсновноеИмяТипа, ".", "_") + "_" + ОсновноеИмяКоманды; +КонецФункции // ПараметрыКоманды() - ПолучениеПараметровКоманды = Новый Соответствие(); - ПолучениеПараметровКоманды.Вставить("ИмяКоманды", ОсновноеИмяКоманды); - ПолучениеПараметровКоманды.Вставить("Параметры", ИмяПроцедуры); +// Функция возвращает описание текущего типа объекта +// +// Возвращаемое значение: +// Структура - описание типа объектов +// *Имя - Строка - имя типа объектов +// *РежимАдминистрирования - Строка - режим утилиты RAC (agent, cluster, infobase и т.п.) +// *Владелец - Струткура - описание типа объекта, владельца +// (например: для типа "Кластер.Администратор" +// будет содержать описание типа "Кластер") +// +Функция ТипОбъекта() Экспорт - Для Каждого ТекИмяКоманды Из МассивИменКоманды Цикл - ПолучениеПараметровКоманд.Вставить(ВРег(СокрЛП(ТекИмяКоманды)), ПолучениеПараметровКоманды); - КонецЦикла; - КонецЦикла; + Возврат ТипОбъекта; - ПолучениеПараметровОбъекта.Вставить("Команды", ПолучениеПараметровКоманд); +КонецФункции // ТипОбъекта() - Для Каждого ТекИмяТипа Из МассивИменТипов Цикл - ПолучениеПараметровОбъектов.Вставить(ВРег(СокрЛП(ТекИмяТипа)), ПолучениеПараметровОбъекта); - КонецЦикла; +#КонецОбласти // ПрограммныйИнтерфейс -КонецПроцедуры // ДобавитьПолучениеПараметровОбъекта() +#Область СлужебныеПроцедуры -// Процедура добавляет описание свойства в массив свойств +// Процедура добавляет параметр указанный параметр команды // // Параметры: -// ИмяПараметра - Строка - имя свойства объекта -// ИмяПоляРАК - Строка - имя свойства, как оно возвращается утилитой RAC -// ЗначениеПоУмолчанию - Произвольный - значение свойства объекта по умолчанию -// Использование - Строка, Структура - строка содержащая флаги использования, разделенные "," -// (Чтение, Добавление, Изменение) -// если указана структура, то в значении можно переопределить -// имя параметра утилиты RAC +// Параметр - Строка, Структура - строковый параметр или структура с описанием параметра +// *Флаг - Строка - имя параметра-флага разрешающего добавление параметра +// *Шаблон - Строка - строка шаблона добавления параметра (например: "--cluster=%1") +// *Параметр - Строка - имя добавляемого параметра или подстановки в шаблон +// *Обязательный - Булево - Истина - при заполнении будет проверено наличие параметра // -Процедура ДобавитьОписаниеСвойстваОбъекта(Знач ИмяПараметра - , Знач ИмяПоляРАК - , Знач ЗначениеПоУмолчанию = "" - , Знач Использование = "Чтение") +Процедура ДобавитьПараметрКоманды(Знач Параметр) - Если НЕ ТипЗнч(ОписаниеСвойств) = Тип("Массив") Тогда - ОписаниеСвойств = Новый Массив(); - КонецЕсли; + Если ТипЗнч(Параметр) = Тип("Структура") Тогда - Если ТипЗнч(Использование) = Тип("Строка") Тогда - Использование = Новый Структура(Использование); - ИначеЕсли НЕ ТипЗнч(Использование) = Тип("Структура") Тогда - Использование = Новый Структура(); - КонецЕсли; + Флаг = Истина; + Если Параметр.Свойство("Флаг") Тогда + Флаг = ЗначениеФлага(Параметр.Флаг); + КонецЕсли; + + Если НЕ Флаг Тогда + Возврат; + КонецЕсли; + + Обязательный = Ложь; + Если Параметр.Свойство("Обязательный") Тогда + Обязательный = Параметр.Обязательный; + КонецЕсли; - ОписаниеСвойства = Новый Структура(); - ОписаниеСвойства.Вставить("ИмяПараметра" , ИмяПараметра); - ОписаниеСвойства.Вставить("ИмяПоляРак" , ИмяПоляРак); - ОписаниеСвойства.Вставить("ПараметрКоманды" , ""); - ОписаниеСвойства.Вставить("ЗначениеПоУмолчанию" , ЗначениеПоУмолчанию); - ОписаниеСвойства.Вставить("Чтение" , Использование.Свойство("Чтение")); - ОписаниеСвойства.Вставить("Добавление" , Использование.Свойство("Добавление")); - ОписаниеСвойства.Вставить("Изменение" , Использование.Свойство("Изменение")); - - Если Использование.Свойство("ПараметрКоманды") Тогда - ОписаниеСвойства.ПараметрКоманды = Использование.ПараметрКоманды; - ИначеЕсли ОписаниеСвойства.Добавление ИЛИ ОписаниеСвойства.Изменение Тогда - ОписаниеСвойства.ПараметрКоманды = "--" + ОписаниеСвойства.ИмяПоляРАК; - КонецЕсли; + Если Параметр.Свойство("Шаблон") Тогда + ДобавитьПараметрПоШаблону(Параметр.Шаблон, Параметр.Параметр, Обязательный); + Иначе + ДобавитьПараметрПоИмени(Параметр.Параметр); + КонецЕсли; - ОписаниеСвойств.Добавить(ОписаниеСвойства); + Иначе + ДобавитьПараметрСтроку(Параметр); + КонецЕсли; -КонецПроцедуры // ДобавитьОписаниеСвойстваОбъекта() +КонецПроцедуры // ДобавитьПараметрКоманды() // Процедура добавляет параметры команды из описания свойств объекта -// проверяя флаг исполсвойства для различных операций +// проверяя флаг использования свойства для различных операций // // Параметры: -// ИмяФлагаРазрешения - Строка - имя проверяемого флага разрешения +// ИмяФлагаРазрешения - Строка - имя проверяемого флага разрешения // (Чтение, Добавление, Изменение и т.п.) -// ВключаяПараметры - Строка - список добавляемых параметров, разделенных "," -// ИсключаяПараметры - Строка - список исключаемых параметров, разделенных "," +// ВключаяПараметры - Строка - список добавляемых параметров, разделенных "," +// ИсключаяПараметры - Строка - список исключаемых параметров, разделенных "," // Процедура ДобавитьПрочиеПараметрыКоманды(Знач ИмяФлагаРазрешения - , Знач ВключаяПараметры = "" - , Знач ИсключаяПараметры = "") + , Знач ВключаяПараметры = "" + , Знач ИсключаяПараметры = "") Если ЗначениеЗаполнено(ВключаяПараметры) Тогда ВключаяПараметры = СтрРазделить(ВключаяПараметры, ",", Ложь); @@ -1190,13 +248,13 @@ Продолжить; КонецЕсли; КонецЕсли; - + Если НЕ ТекЭлемент.Значение[ИмяФлагаРазрешения] Тогда Продолжить; КонецЕсли; Если ЗначенияПараметров.Получить(ТекЭлемент.Ключ) = Неопределено Тогда - Если ЗначениеЗаполнено(ТекЭлемент.Значение.ЗначениеПоУмолчанию) Тогда - ЗначенияПараметров.Вставить(ТекЭлемент.Ключ, ТекЭлемент.Значение.ЗначениеПоУмолчанию); + Если ЗначениеЗаполнено(ТекЭлемент.Значение.ПоУмолчанию) Тогда + ЗначенияПараметров.Вставить(ТекЭлемент.Ключ, ТекЭлемент.Значение.ПоУмолчанию); КонецЕсли; КонецЕсли; ДобавитьПараметрПоШаблону(ТекЭлемент.Значение.ПараметрКоманды + "=%1", ТекЭлемент.Ключ); @@ -1207,7 +265,7 @@ // Процедура добавляет переданное значение в массив параметров запуска команды // // Параметры: -// Параметр - Строка - добавляемое значение +// Параметр - Строка - добавляемое значение // Обязательный - Булево - Истина - если параметр не заполнен будет выдано исключение // ДобавлятьПустой - Булево - Истина - если параметр не заполнен будет добавлена пустая строка // @@ -1234,25 +292,25 @@ // Процедура добавляет значение параметра из структуры значений параметров в массив параметров запуска команды // // Параметры: -// ИмяПараметра - Строка - имя параметра в структуре значений параметров +// Имя - Строка - имя параметра в структуре значений параметров // Обязательный - Булево - Истина - если значение параметра не найдено // или не заполнено будет выдано исключение // ДобавлятьПустой - Булево - Истина - если значение параметра не найдено // или не заполнено будет добавлена пустая строка // -Процедура ДобавитьПараметрПоИмени(Знач ИмяПараметра, Обязательный = Ложь, ДобавлятьПустой = Истина) +Процедура ДобавитьПараметрПоИмени(Знач Имя, Обязательный = Ложь, ДобавлятьПустой = Истина) Если НЕ ТипЗнч(ПараметрыЗапуска) = Тип("Массив") Тогда ПараметрыЗапуска = Новый Массив(); КонецЕсли; - Параметр = ЗначенияПараметров.Получить(ИмяПараметра); + Параметр = ЗначенияПараметров.Получить(Имя); Если Параметр = Неопределено Тогда Параметр = ""; КонецЕсли; Если НЕ ЗначениеЗаполнено(Параметр) И Обязательный Тогда - ВызватьИсключение СтрШаблон("Не заполнен обязательный параметр %1!", ИмяПараметра); + ВызватьИсключение СтрШаблон("Не заполнен обязательный параметр %1!", Имя); КонецЕсли; Если ЗначениеЗаполнено(Параметр) ИЛИ ДобавлятьПустой Тогда @@ -1266,21 +324,21 @@ // // Параметры: // ШаблонПараметра - Строка - шаблон, в который будет выполнена подстановка -// ИмяПараметра - Строка - имя параметра в структуре значений параметров +// Имя - Строка - имя параметра в структуре значений параметров // Обязательный - Булево - Истина - если значение параметра не найдено // или не заполнено будет выдано исключение // -Процедура ДобавитьПараметрПоШаблону(Знач ШаблонПараметра, Знач ИмяПараметра, Знач Обязательный = Ложь) +Процедура ДобавитьПараметрПоШаблону(Знач ШаблонПараметра, Знач Имя, Знач Обязательный = Ложь) Если НЕ ТипЗнч(ПараметрыЗапуска) = Тип("Массив") Тогда ПараметрыЗапуска = Новый Массив(); КонецЕсли; - ЗначениеПараметра = ЗначенияПараметров.Получить(ИмяПараметра); + ЗначениеПараметра = ЗначенияПараметров.Получить(Имя); Если НЕ ЗначениеЗаполнено(ЗначениеПараметра) Тогда Если Обязательный Тогда - ВызватьИсключение СтрШаблон("Не заполнен обязательный параметр %1!", ИмяПараметра); + ВызватьИсключение СтрШаблон("Не заполнен обязательный параметр %1!", Имя); Иначе Возврат; КонецЕсли; @@ -1293,15 +351,15 @@ // Функция возвращает значение параметра-флага из структуры значений параметров // // Параметры: -// ИмяПараметра - Строка - имя параметра в структуре значений параметров +// Имя - Строка - имя параметра в структуре значений параметров // // Возвращаемое значение: -// Булево - значение флага, если параметр отсутствует в структуре значений параметров, +// Булево - значение флага, если параметр отсутствует в структуре значений параметров, // возвращается Ложь // -Функция ЗначениеФлага(Знач ИмяПараметра) +Функция ЗначениеФлага(Знач Имя) - Параметр = ЗначенияПараметров.Получить(ИмяПараметра); + Параметр = ЗначенияПараметров.Получить(Имя); Если Параметр = Неопределено Тогда Параметр = Ложь; КонецЕсли; @@ -1312,4 +370,4 @@ #КонецОбласти // СлужебныеПроцедуры -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); 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\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\321\213.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" similarity index 60% rename from "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\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\321\213.os" rename to "src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" index 399940d..0a04e7a 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\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\321\213.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" @@ -1,3 +1,12 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + Перем Кластер_Агент; Перем Кластер_Владелец; Перем ПараметрыОбъекта; @@ -8,15 +17,15 @@ // Конструктор // // Параметры: -// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера -// Кластер - Кластер - ссылка на родительский объект кластера +// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера +// Кластер - Кластер - ссылка на родительский объект кластера // Процедура ПриСозданииОбъекта(АгентКластера, Кластер) Кластер_Агент = АгентКластера; Кластер_Владелец = Кластер; - ПараметрыОбъекта = Новый КомандыОбъекта("manager"); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Менеджеры); Элементы = Новый ОбъектыКластера(ЭтотОбъект); @@ -26,9 +35,9 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт @@ -47,8 +56,8 @@ Если НЕ КодВозврата = 0 Тогда ВызватьИсключение СтрШаблон("Ошибка получения списка менеджеров кластера, КодВозврата = %1: %2", - КодВозврата, - Кластер_Агент.ВыводКоманды(Ложь)); + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; Элементы.Заполнить(Кластер_Агент.ВыводКоманды()); @@ -60,13 +69,13 @@ // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); @@ -75,11 +84,11 @@ // Функция возвращает список менеджеров кластера // // Параметры: -// Отбор - Структура - Структура отбора менеджеров (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Отбор - Структура - Структура отбора менеджеров (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Массив - список менеджеров кластера 1С +// Массив - список менеджеров кластера 1С // Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт @@ -92,12 +101,12 @@ // Функция возвращает список менеджеров кластера 1С // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка менеджеров, разделенные "," -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ПоляИерархии - Строка - Поля для построения иерархии списка менеджеров, разделенные "," +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Соответствие - список менеджеров кластера 1С -// <имя поля объекта> - Массив(Соответствие), Соответствие - список менеджеров или следующий уровень +// Соответствие - список менеджеров кластера 1С +// <имя поля объекта> - Массив(Соответствие), Соответствие - список менеджеров или следующий уровень // Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт @@ -110,7 +119,7 @@ // Функция возвращает количество менеджеров кластера в списке // // Возвращаемое значение: -// Число - количество менеджеров кластера +// Число - количество менеджеров кластера // Функция Количество() Экспорт @@ -125,11 +134,11 @@ // Функция возвращает описание менеджера кластера 1С // // Параметры: -// Менеджер - Строка - Номер менеджер в виде <адрес сервера>:<номер процесса ОС (pid))> -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Менеджер - Строка - Номер менеджер в виде <адрес сервера>:<номер процесса ОС (pid))> +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Соответствие - описание менеджера кластера 1С +// Соответствие - описание менеджера кластера 1С // Функция Получить(Знач Менеджер, Знач ОбновитьПринудительно = Ложь) Экспорт @@ -153,4 +162,4 @@ КонецФункции // Получить() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\320\270.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\320\270.os" index 594962c..a055bd1 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\320\270.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\320\270.os" @@ -1,5 +1,14 @@ -Перем Требование_Ид; // rule -Перем Требование_Позиция; // position +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +Перем Требование_Ид; // rule +Перем Требование_Позиция; // position Перем Требование_Параметры; Перем Кластер_Агент; @@ -28,7 +37,7 @@ Возврат; КонецЕсли; - ПараметрыОбъекта = Новый ПараметрыОбъекта("rule"); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.НазначенияФункциональности); Кластер_Агент = АгентКластера; Кластер_Владелец = Кластер; @@ -51,9 +60,9 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт @@ -62,27 +71,26 @@ Возврат; КонецЕсли; - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("rule"); - ПараметрыЗапуска.Добавить("info"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--server=%1", Сервер_Владелец.Ид())); - - ПараметрыЗапуска.Добавить(СтрШаблон("--rule=%1", Ид())); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + ПараметрыКоманды.Вставить("ИдентификаторСервера" , Сервер_Владелец.Ид()); + ПараметрыКоманды.Вставить("ИдентификаторТребования", Сервер_Владелец.Ид()); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Описание")); - МассивРезультатов = Кластер_Агент.ВыводКоманды(); - - Если МассивРезультатов.Количество() = 0 Тогда - Возврат; + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения требования назначения функциональности, КодВозврата = %1: %2", + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; + МассивРезультатов = Кластер_Агент.ВыводКоманды(); + Служебный.ЗаполнитьПараметрыОбъекта(ЭтотОбъект, Требование_Параметры, МассивРезультатов[0]); МоментАктуальности = ТекущаяУниверсальнаяДатаВМиллисекундах(); @@ -92,22 +100,22 @@ // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт - Возврат ПараметрыОбъекта.Получить(ИмяПоляКлюча); + Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); КонецФункции // ПараметрыОбъекта() // Функция возвращает идентификатор требования назначения функциональности // // Возвращаемое значение: -// Строка - идентификатор требования назначения функциональности +// Строка - идентификатор требования назначения функциональности // Функция Ид() Экспорт @@ -118,7 +126,7 @@ // Функция возвращает позицию требования назначения функциональности в списке (начиная с 0) // // Возвращаемое значение: -// Строка - позиция требования назначения функциональности в списке +// Строка - позиция требования назначения функциональности в списке // Функция Позиция() Экспорт @@ -133,71 +141,74 @@ // Функция возвращает значение параметра требования назначения функциональности // // Параметры: -// ИмяПоля - Строка - Имя параметра требования назначения функциональности -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// ИмяПоля - Строка - Имя параметра требования назначения функциональности +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) // // Возвращаемое значение: -// Произвольный - значение параметра требования назначения функциональности +// Произвольный - значение параметра требования назначения функциональности // Функция Получить(ИмяПоля, ОбновитьПринудительно = Ложь) Экспорт ОбновитьДанные(ОбновитьПринудительно); - Если НЕ Найти(ВРЕг("Ид, server"), ВРег(ИмяПоля)) = 0 Тогда + Если НЕ Найти(ВРЕг("Ид, rule"), ВРег(ИмяПоля)) = 0 Тогда Возврат Требование_Ид; - ИначеЕсли НЕ Найти(ВРЕг("Позиция, position"), ВРег(ИмяПоля)) = 0 Тогда + КонецЕсли; + + Если НЕ Найти(ВРЕг("Позиция, position"), ВРег(ИмяПоля)) = 0 Тогда Возврат Требование_Позиция; КонецЕсли; ЗначениеПоля = Требование_Параметры.Получить(ИмяПоля); Если ЗначениеПоля = Неопределено Тогда - - ОписаниеПараметра = ПараметрыОбъекта("ИмяПоляРАК").Получить(ИмяПоля); + + ОписаниеПараметра = ПараметрыОбъекта("ИмяРАК").Получить(ИмяПоля); Если НЕ ОписаниеПараметра = Неопределено Тогда - ЗначениеПоля = Требование_Параметры.Получить(ОписаниеПараметра["ИмяПараметра"]); + ЗначениеПоля = Требование_Параметры.Получить(ОписаниеПараметра["Имя"]); КонецЕсли; КонецЕсли; Возврат ЗначениеПоля; - + КонецФункции // Получить() // Процедура изменяет параметры требования назначения функциональности // // Параметры: -// ПараметрыТребования - Структура - новые параметры требования назначения функциональности +// Позиция - Число - позиция требования назначения функциональности в списке (начиная с 0) +// ПараметрыТребования - Структура - новые параметры требования назначения функциональности // -Процедура Изменить(Знач ПараметрыТребования = Неопределено) Экспорт +Процедура Изменить(Позиция, Знач ПараметрыТребования = Неопределено) Экспорт Если НЕ ТипЗнч(ПараметрыТребования) = Тип("Структура") Тогда ПараметрыТребования = Новый Структура(); КонецЕсли; - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("rule"); - ПараметрыЗапуска.Добавить("update"); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + ПараметрыКоманды.Вставить("ИдентификаторСервера" , Сервер_Владелец.Ид()); + ПараметрыКоманды.Вставить("Идентификатортребования" , Ид()); - ПараметрыЗапуска.Добавить(СтрШаблон("--rule=%1", Ид())); + ПараметрыКоманды.Вставить("Позиция" , Позиция); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - ПараметрыЗапуска.Добавить(СтрШаблон("--position=%1", Требование_Позиция)); + Для Каждого ТекЭлемент Из ПараметрыТребования Цикл + ПараметрыКоманды.Вставить(ТекЭлемент.Ключ, ТекЭлемент.Значение); + КонецЦикла; - ВремПараметры = ПараметрыОбъекта(); + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - Для Каждого ТекЭлемент Из ВремПараметры Цикл - Если НЕ ПараметрыТребования.Свойство(ТекЭлемент.Ключ) Тогда - Продолжить; - КонецЕсли; - ПараметрыЗапуска.Добавить(СтрШаблон(ТекЭлемент.ПараметрКоманды + "=%1", ПараметрыТребования[ТекЭлемент.Ключ])); - КонецЦикла; + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Изменить")); - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка изменения требования назначения функциональности ""%1"": %2", + Позиция, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); @@ -205,4 +216,32 @@ КонецПроцедуры // Изменить() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +// Процедура удаляет требование назначения функциональности для сервера 1С +// +Процедура Удалить() Экспорт + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + ПараметрыКоманды.Вставить("ИдентификаторСервера" , Сервер_Владелец.Ид()); + ПараметрыКоманды.Вставить("ИдентификаторТребования" , Ид()); + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Удалить")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка удаления требования назначения функциональности ""%1"": %2", + Получить("Позиция"), + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); + + ОбновитьДанные(Истина); + +КонецПроцедуры // Удалить() + +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\320\270.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\320\270.os" new file mode 100644 index 0000000..bc0748f --- /dev/null +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\320\270.os" @@ -0,0 +1,270 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +Перем Кластер_Агент; +Перем Кластер_Владелец; +Перем Сервер_Владелец; +Перем ПараметрыОбъекта; +Перем Элементы; + +Перем Лог; + +// Конструктор +// +// Параметры: +// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера +// Кластер - Кластер - ссылка на родительский объект кластера +// Сервер - Сервер - ссылка на родительский объект сервера кластера +// +Процедура ПриСозданииОбъекта(АгентКластера, Кластер, Сервер) + + Кластер_Агент = АгентКластера; + Кластер_Владелец = Кластер; + Сервер_Владелец = Сервер; + + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.НазначенияФункциональности); + + Элементы = Новый ОбъектыКластера(ЭтотОбъект); + +КонецПроцедуры // ПриСозданииОбъекта() + +// Процедура получает данные от сервиса администрирования кластера 1С +// и сохраняет в локальных переменных +// +// Параметры: +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее +// +Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт + + Если НЕ Элементы.ТребуетсяОбновление(ОбновитьПринудительно) Тогда + Возврат; + КонецЕсли; + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + ПараметрыКоманды.Вставить("ИдентификаторСервера", Сервер_Владелец.Ид()); + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Список")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения требований назначения функциональности, КодВозврата = %1: %2", + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + МассивРезультатов = Кластер_Агент.ВыводКоманды(); + + МассивНазначений = Новый Массив(); + Для Каждого ТекОписание Из МассивРезультатов Цикл + МассивНазначений.Добавить(Новый НазначениеФункциональности(Кластер_Агент, + Кластер_Владелец, + Сервер_Владелец, + ТекОписание)); + КонецЦикла; + + Элементы.Заполнить(МассивНазначений); + + Элементы.УстановитьАктуальность(); + +КонецПроцедуры // ОбновитьДанные() + +// Функция возвращает коллекцию параметров объекта +// +// Параметры: +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия +// +// Возвращаемое значение: +// Соответствие - коллекция параметров объекта, для получения/изменения значений +// +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт + + Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); + +КонецФункции // ПараметрыОбъекта() + +// Функция возвращает список требований назначения функциональности сервера 1С +// +// Параметры: +// Отбор - Структура - Структура отбора требований +// назначения функциональности (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// +// Возвращаемое значение: +// Массив - список требований назначения функциональности сервера 1С +// +Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт + + СписокНазначений = Элементы.Список(Отбор, ОбновитьПринудительно); + + Возврат СписокНазначений; + +КонецФункции // Список() + +// Функция возвращает список требований назначения функциональности сервера 1С +// +// Параметры: +// ПоляИерархии - Строка - Поля для построения иерархии списка требований +// назначения функциональности, разделенные "," +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// +// Возвращаемое значение: +// Соответствие - список требований назначения функциональности сервера 1С +// <имя поля объекта> - Массив(Соответствие), Соответствие - список требований назначения функциональности +// или следующий уровень +// +Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт + + СписокКластеров = Элементы.ИерархическийСписок(ПоляИерархии, ОбновитьПринудительно); + + Возврат СписокКластеров; + +КонецФункции // ИерархическийСписок() + +// Функция возвращает количество требований назначения функциональности в списке +// +// Возвращаемое значение: +// Число - количество требований назначения функциональности +// +Функция Количество() Экспорт + + Если Элементы = Неопределено Тогда + Возврат 0; + КонецЕсли; + + Возврат Элементы.Количество(); + +КонецФункции // Количество() + +// Функция возвращает описание требования назначения функциональности сервера 1С +// +// Параметры: +// Ид - Строка - Идентификатор требований назначения функциональности +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// +// Возвращаемое значение: +// Соответствие - описание требования назначения функциональности сервера 1С +// +Функция Получить(Знач Ид, Знач ОбновитьПринудительно = Ложь) Экспорт + + Отбор = Новый Соответствие(); + Отбор.Вставить("rule", Ид); + + СписокТребований = Элементы.Список(Отбор, ОбновитьПринудительно); + + Если СписокТребований.Количество() = 0 Тогда + Возврат Неопределено; + КонецЕсли; + + Возврат СписокТребований[0]; + +КонецФункции // Получить() + +// Процедура добавляет новое требование назначения функциональности для сервера 1С +// +// Параметры: +// Позиция - Число - позиция требования назначения функциональности в списке (начиная с 0) +// ПараметрыТребования - Структура - параметры сервера 1С +// +Процедура Добавить(Позиция, ПараметрыТребования = Неопределено) Экспорт + + Если НЕ ТипЗнч(ПараметрыТребования) = Тип("Структура") Тогда + ПараметрыТребования = Новый Структура(); + КонецЕсли; + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + ПараметрыКоманды.Вставить("ИдентификаторСервера" , Сервер_Владелец.Ид()); + + ПараметрыКоманды.Вставить("Позиция" , Позиция); + + Для Каждого ТекЭлемент Из ПараметрыТребования Цикл + ПараметрыКоманды.Вставить(ТекЭлемент.Ключ, ТекЭлемент.Значение); + КонецЦикла; + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Добавить")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка добавления требования назначения функциональности ""%1"": %2", + Позиция, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); + + ОбновитьДанные(Истина); + +КонецПроцедуры // Добавить() + +// Процедура удаляет требование назначения функциональности для сервера 1С +// +// Параметры: +// Ид - Строка - Идентификатор требования назначения функциональности +// +Процедура Удалить(Ид) Экспорт + + Требование = Получить(Ид, Истина); + + Если Требование = Неопределено Тогда + Возврат; + КонецЕсли; + + Требование.Удалить(); + + ОбновитьДанные(Истина); + +КонецПроцедуры // Удалить() + +// Процедура применяет измененные требования назначения функциональности для сервера 1С +// +// Параметры: +// ПрименитьЧастично - Булево - Истина - требования будут применены частично; +// Ложь - требования будут применены полностью +// +Процедура Применить(Знач ПрименитьЧастично = Ложь) Экспорт + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + Если ПрименитьЧастично Тогда + ПараметрыКоманды.Вставить("ПрименитьЧастично", Истина); + Иначе + ПараметрыКоманды.Вставить("ПрименитьПолностью", Истина); + КонецЕсли; + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Применить")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка применения требований назначения функциональности: %1", + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); + + ОбновитьДанные(Истина); + +КонецПроцедуры // Применить() + +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); 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\320\236\320\261\321\212\320\265\320\272\321\202\321\213.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\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" similarity index 61% rename from "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\320\236\320\261\321\212\320\265\320\272\321\202\321\213.os" rename to "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\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" index 277217e..0050fbd 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\320\236\320\261\321\212\320\265\320\272\321\202\321\213.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\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" @@ -1,3 +1,12 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + Перем Владелец; Перем Элементы; @@ -18,18 +27,22 @@ // Процедура заполняет список элементов из переданного массива // // Параметры: -// МассивЭлементов - Массив - элементы, которые будут добавлены +// МассивЭлементов - Массив - элементы, которые будут добавлены // Процедура Заполнить(МассивЭлементов) Экспорт - Элементы = МассивЭлементов; + Элементы = Новый Массив(); + + Для Каждого ТекЭлемент Из МассивЭлементов Цикл + Элементы.Добавить(ТекЭлемент); + КонецЦикла; КонецПроцедуры // Заполнить() // Процедура добавляет элемент в список // // Параметры: -// Элемент - Произвольный - добавляемый элемент +// Элемент - Произвольный - добавляемый элемент // Процедура Добавить(Элемент) Экспорт @@ -40,10 +53,10 @@ // Функция признак необходимости обновления данных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Булево - Истина - требуется обновитьданные +// Булево - Истина - требуется обновитьданные // Функция ТребуетсяОбновление(ОбновитьПринудительно = Ложь) Экспорт @@ -56,13 +69,13 @@ // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт Возврат Владелец.ПараметрыОбъекта(ИмяПоляКлюча); @@ -71,11 +84,11 @@ // Функция возвращает список объектов кластера // // Параметры: -// Отбор - Структура - Структура отбора объектов (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Отбор - Структура - Структура отбора объектов (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Массив - список объектов кластера 1С +// Массив - список объектов кластера 1С // Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт @@ -90,12 +103,12 @@ // Функция возвращает список объектов кластера // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка объектов, разделенные "," -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ПоляИерархии - Строка - Поля для построения иерархии списка объектов, разделенные "," +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Соответствие - список объектов кластера 1С -// <имя поля объекта> - Массив(Соответствие), Соответствие - список объектов кластера или следующий уровень +// Соответствие - список объектов кластера 1С +// <имя поля объекта> - Массив(Соответствие), Соответствие - список объектов кластера или следующий уровень // Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт @@ -110,7 +123,7 @@ // Функция возвращает количество объектов в списке // // Возвращаемое значение: -// Число - количество объектов в списке +// Число - количество объектов в списке // Функция Количество() Экспорт @@ -127,7 +140,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" new file mode 100644 index 0000000..33c7673 --- /dev/null +++ "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" @@ -0,0 +1,267 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +Перем ТипЭлементов; +Перем Кластер_Агент; +Перем Кластер_Владелец; +Перем Профиль_Владелец; +Перем Элементы; + +Перем ПараметрыОбъекта; + +Перем МоментАктуальности; +Перем ПериодОбновления; + +Перем Лог; + +Процедура ПриСозданииОбъекта(Агент, Кластер, Профиль, Тип) + + Элементы = Неопределено; + + Кластер_Агент = Агент; + Кластер_Владелец = Кластер; + Профиль_Владелец = Профиль; + + ТипЭлементов = Тип; + + ПараметрыОбъекта = Новый КомандыОбъекта(СтрШаблон("%1.%2", + Перечисления.РежимыАдминистрирования.ПрофилиБезопасности, + ТипЭлементов)); + + ПериодОбновления = 60000; + МоментАктуальности = 0; + +КонецПроцедуры // ПриСозданииОбъекта() + +// Процедура получает данные от сервиса администрирования кластера 1С +// и сохраняет в локальных переменных +// +// Параметры: +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее +// +Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт + + Если НЕ ТребуетсяОбновление(ОбновитьПринудительно) Тогда + Возврат; + КонецЕсли; + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера" , Кластер_Владелец.СтрокаАвторизации()); + ПараметрыКоманды.Вставить("ИмяПрофиля" , Профиль_Владелец.Имя()); + ПараметрыКоманды.Вставить("ВидОбъектовПрофиля" , ТипЭлементов); + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Список")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения списка доступа объектов ""%1"" профиля ""%2"": %3", + ТипЭлементов, + Профиль_Владелец.Имя(), + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + Элементы = Кластер_Агент.ВыводКоманды(); + + Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); + + МоментАктуальности = ТекущаяУниверсальнаяДатаВМиллисекундах(); + +КонецПроцедуры // ОбновитьДанные() + +// Функция признак необходимости обновления данных +// +// Параметры: +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// +// Возвращаемое значение: +// Булево - Истина - требуется обновитьданные +// +Функция ТребуетсяОбновление(ОбновитьПринудительно = Ложь) Экспорт + + Возврат (ОбновитьПринудительно + ИЛИ Элементы = Неопределено + ИЛИ (ПериодОбновления < (ТекущаяУниверсальнаяДатаВМиллисекундах() - МоментАктуальности))); + +КонецФункции // ТребуетсяОбновление() + +// Функция возвращает коллекцию параметров объекта +// +// Параметры: +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия +// +// Возвращаемое значение: +// Соответствие - коллекция параметров объекта, для получения/изменения значений +// +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт + + Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); + +КонецФункции // ПараметрыОбъекта() + +// Функция возвращает список объектов кластера +// +// Параметры: +// Отбор - Структура - Структура отбора объектов (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// +// Возвращаемое значение: +// Массив - список объектов кластера 1С +// +Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт + + ОбновитьДанные(ОбновитьПринудительно); + + Результат = Служебный.ПолучитьЭлементыИзМассиваСоответствий(Элементы, Отбор); + + Если Результат.Количество() = 0 Тогда + Возврат Неопределено; + Иначе + Возврат Результат; + КонецЕсли; + +КонецФункции // Список() + +// Функция возвращает список объектов кластера +// +// Параметры: +// ПоляИерархии - Строка - Поля для построения иерархии списка объектов, разделенные "," +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// +// Возвращаемое значение: +// Соответствие - список объектов кластера 1С +// <имя поля объекта> - Массив(Соответствие), Соответствие - список объектов кластера или следующий уровень +// +Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт + + ОбновитьДанные(ОбновитьПринудительно); + + Результат = Служебный.ИерархическоеПредставлениеМассиваСоответствий(Элементы, ПоляИерархии); + + Возврат Результат; + +КонецФункции // ИерархическийСписок() + +// Функция возвращает количество обектов в списке профиля безопасности +// +// Возвращаемое значение: +// Число - количество объектов +// +Функция Количество() Экспорт + + ОбновитьДанные(); + + Если Элементы = Неопределено Тогда + Возврат 0; + КонецЕсли; + + Возврат Элементы.Количество(); + +КонецФункции // Количество() + +// Процедура устанавливает значение периода обновления +// +// Параметры: +// НовыйПериодОбновления - Число - новый период обновления +// +Процедура УстановитьПериодОбновления(НовыйПериодОбновления) Экспорт + + ПериодОбновления = НовыйПериодОбновления; + +КонецПроцедуры // УстановитьПериодОбновления() + +// Процедура устанавливает новое значение момента актуальности данных +// +Процедура УстановитьАктуальность() Экспорт + + МоментАктуальности = ТекущаяУниверсальнаяДатаВМиллисекундах(); + +КонецПроцедуры // УстановитьАктуальность() + +// Процедура добавляет новый или изменяет существующий объект профиля безопасности +// +// Параметры: +// Имя - Строка - имя объекта профиля безопасности 1С +// ПараметрыОбъекта - Структура - параметры объекта профиля безопасности 1С +// +Процедура Изменить(Имя, ПараметрыОбъектаПрофиля = Неопределено) Экспорт + + Если НЕ ТипЗнч(ПараметрыОбъектаПрофиля) = Тип("Структура") Тогда + ПараметрыОбъектаПрофиля = Новый Структура(); + КонецЕсли; + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера" , Кластер_Владелец.СтрокаАвторизации()); + ПараметрыКоманды.Вставить("ИмяПрофиля" , Профиль_Владелец.Имя()); + ПараметрыКоманды.Вставить("ВидОбъектовПрофиля" , ТипЭлементов); + ПараметрыКоманды.Вставить("ИмяОбъектаПрофиля" , Имя); + + Для Каждого ТекЭлемент Из ПараметрыОбъектаПрофиля Цикл + ПараметрыКоманды.Вставить(ТекЭлемент.Ключ, ТекЭлемент.Значение); + КонецЦикла; + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Изменить")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка изменения объекта доступа ""%1"" (%2) профиля ""%3"": %4", + Имя, + ТипЭлементов, + Профиль_Владелец.Имя(), + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); + + ОбновитьДанные(Истина); + +КонецПроцедуры // Изменить() + +// Процедура удаляет объект профиля из профиля безопасности +// +// Параметры: +// Имя - Строка - Имя объекта профиля безопасности +// +Процедура Удалить(Имя) Экспорт + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера" , Кластер_Владелец.СтрокаАвторизации()); + ПараметрыКоманды.Вставить("ИмяПрофиля" , Профиль_Владелец.Имя()); + ПараметрыКоманды.Вставить("ВидОбъектовПрофиля" , ТипЭлементов); + ПараметрыКоманды.Вставить("ИмяОбъектаПрофиля" , Имя); + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Удалить")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка удаления объекта доступа ""%1"" (%2) профиля ""%3"": %4", + Имя, + ТипЭлементов, + Профиль_Владелец.Имя(), + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); + + ОбновитьДанные(Истина); + +КонецПроцедуры // Удалить() + +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\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\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\260.os" deleted file mode 100644 index 2816510..0000000 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\260.os" +++ /dev/null @@ -1,430 +0,0 @@ -// Класс хранящий структуру параметров объекта указанного типа -// Доступны типы: -// cluster - Кластер -// admin - Администратор (агента / кластера) -// lock - Блокировка -// manager - МенеджерКластера -// process - РабочийПроцесс -// server - Сервер -// service - Сервис -// session - Сеанс -// connection - Соединение -// process.license - РабочийПроцесс.Лицензия -// session.license - Сеанс.Лицензия -// rule - ТребованиеНазначения -// profile - Профиль -// profile.directory - Профиль.Каталог -// profile.com - Профиль.COMКласс -// profile.addin - Профиль.Компонент -// profile.module - Профиль.Модуль -// profile.app - Профиль.Приложение -// profile.inet - Профиль.ИнтернетРесурс -// counter - СчетчикПотребленияРесурсов - -Перем ТипОбъекта; -Перем Параметры; - -Перем Лог; - -// Конструктор -// -// Параметры: -// ИмяТипаОбъекта - Строка - имя типа объекта для которого создается структура параметров -// -Процедура ПриСозданииОбъекта(ИмяТипаОбъекта) - - ПроцедурыЗаполнения = Новый Соответствие(); - ПроцедурыЗаполнения.Вставить(ВРег("lock") , "ЗаполнитьПараметрыБлокировки"); - ПроцедурыЗаполнения.Вставить(ВРег("Блокировка") , "ЗаполнитьПараметрыБлокировки"); - ПроцедурыЗаполнения.Вставить(ВРег("service") , "ЗаполнитьПараметрыСервиса"); - ПроцедурыЗаполнения.Вставить(ВРег("Сервис") , "ЗаполнитьПараметрыСервиса"); - ПроцедурыЗаполнения.Вставить(ВРег("session") , "ЗаполнитьПараметрыСеанса"); - ПроцедурыЗаполнения.Вставить(ВРег("Сеанс") , "ЗаполнитьПараметрыСеанса"); - ПроцедурыЗаполнения.Вставить(ВРег("connection") , "ЗаполнитьПараметрыСоединения"); - ПроцедурыЗаполнения.Вставить(ВРег("Соединение") , "ЗаполнитьПараметрыСоединения"); - ПроцедурыЗаполнения.Вставить(ВРег("process.license") , "ЗаполнитьПараметрыЛицензииПроцесса"); - ПроцедурыЗаполнения.Вставить(ВРег("Процесс.Лицензия") , "ЗаполнитьПараметрыЛицензииПроцесса"); - ПроцедурыЗаполнения.Вставить(ВРег("session.license") , "ЗаполнитьПараметрыЛицензииСеанса"); - ПроцедурыЗаполнения.Вставить(ВРег("Сеанс.Лицензия") , "ЗаполнитьПараметрыЛицензииСеанса"); - ПроцедурыЗаполнения.Вставить(ВРег("rule") , "ЗаполнитьПараметрыТребованияНазначения"); - ПроцедурыЗаполнения.Вставить(ВРег("ТребованиеНазначения") , "ЗаполнитьПараметрыТребованияНазначения"); - ПроцедурыЗаполнения.Вставить(ВРег("profile") , "ЗаполнитьПараметрыПрофиляБезопасности"); - ПроцедурыЗаполнения.Вставить(ВРег("Профиль") , "ЗаполнитьПараметрыПрофиляБезопасности"); - ПроцедурыЗаполнения.Вставить(ВРег("profile.directory") , "ЗаполнитьПараметрыКаталогаПрофиля"); - ПроцедурыЗаполнения.Вставить(ВРег("Профиль.Каталог") , "ЗаполнитьПараметрыКаталогаПрофиля"); - ПроцедурыЗаполнения.Вставить(ВРег("profile.com") , "ЗаполнитьПараметрыCOMКлассаПрофиля"); - ПроцедурыЗаполнения.Вставить(ВРег("Профиль.COMКласс") , "ЗаполнитьПараметрыCOMКлассаПрофиля"); - ПроцедурыЗаполнения.Вставить(ВРег("profile.addin") , "ЗаполнитьПараметрыКомпонентыМодуляПрофиля"); - ПроцедурыЗаполнения.Вставить(ВРег("Профиль.Компонент") , "ЗаполнитьПараметрыКомпонентыМодуляПрофиля"); - ПроцедурыЗаполнения.Вставить(ВРег("profile.module") , "ЗаполнитьПараметрыКомпонентыМодуляПрофиля"); - ПроцедурыЗаполнения.Вставить(ВРег("Профиль.Модуль") , "ЗаполнитьПараметрыКомпонентыМодуляПрофиля"); - ПроцедурыЗаполнения.Вставить(ВРег("profile.app") , "ЗаполнитьПараметрыПриложенияПрофиля"); - ПроцедурыЗаполнения.Вставить(ВРег("Профиль.Приложение") , "ЗаполнитьПараметрыПриложенияПрофиля"); - ПроцедурыЗаполнения.Вставить(ВРег("profile.inet") , "ЗаполнитьПараметрыИнтернетРесурсаПрофиля"); - ПроцедурыЗаполнения.Вставить(ВРег("Профиль.ИнтернетРесурс") , "ЗаполнитьПараметрыИнтернетРесурсаПрофиля"); - ПроцедурыЗаполнения.Вставить(ВРег("counter") , "ЗаполнитьПараметрыСчетчикаПотребленияРесурсов"); - ПроцедурыЗаполнения.Вставить(ВРег("Счетчик") , "ЗаполнитьПараметрыСчетчикаПотребленияРесурсов"); - - ПроцедураЗаполнения = ПроцедурыЗаполнения[ВРег(ИмяТипаОбъекта)]; - - Если НЕ ПроцедураЗаполнения = Неопределено Тогда - Рефлектор = Новый Рефлектор(); - Рефлектор.ВызватьМетод(ЭтотОбъект, ПроцедураЗаполнения, Новый Массив()); - КонецЕсли; - -КонецПроцедуры // ПриСозданииОбъекта() - -// Функция возвращает коллекцию параметров объекта -// -// Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия -// -// Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений -// -Функция Получить(ИмяПоляКлюча = "ИмяПараметра") Экспорт - - СтруктураПараметров = Новый Соответствие(); - - Если НЕ ТипЗнч(Параметры) = Тип("Массив") Тогда - Возврат СтруктураПараметров; - КонецЕсли; - - Для Каждого ТекПараметр Из Параметры Цикл - СтруктураПараметров.Вставить(ТекПараметр[ИмяПоляКлюча], ТекПараметр); - КонецЦикла; - - Возврат СтруктураПараметров; - -КонецФункции // Получить() - -// Процедура добавляет описание параметра в массив параметров -// -// Параметры: -// ИмяПараметра - Строка - имя параметра объекта -// ИмяПоляРАК - Строка - имя поля, как оно возвращается утилитой RAC -// ЗначениеПоУмолчанию - Произвольный - значение поля объекта по умолчанию -// Использование - Строка, Структура - строка содержащая флаги использования, разделенные "," -// (Чтение, Добавление, Изменение) -// если указана структура, то в значении можно переопределить -// имя параметра утилиты RAC -// -Процедура ДобавитьПараметрОписанияОбъекта(Знач ИмяПараметра - , Знач ИмяПоляРАК - , Знач ЗначениеПоУмолчанию = "" - , Знач Использование = "Чтение") - - Если НЕ ТипЗнч(Параметры) = Тип("Массив") Тогда - Параметры = Новый Массив(); - КонецЕсли; - - Если ТипЗнч(Использование) = Тип("Строка") Тогда - Использование = Новый Структура(Использование); - ИначеЕсли НЕ ТипЗнч(Использование) = Тип("Структура") Тогда - Использование = Новый Структура(); - КонецЕсли; - - ОписаниеПоля = Новый Структура(); - ОписаниеПоля.Вставить("ИмяПараметра" , ИмяПараметра); - ОписаниеПоля.Вставить("ИмяПоляРак" , ИмяПоляРак); - ОписаниеПоля.Вставить("ПараметрКоманды" , ""); - ОписаниеПоля.Вставить("ЗначениеПоУмолчанию" , ЗначениеПоУмолчанию); - ОписаниеПоля.Вставить("Чтение" , Использование.Свойство("Чтение")); - ОписаниеПоля.Вставить("Добавление" , Использование.Свойство("Добавление")); - ОписаниеПоля.Вставить("Изменение" , Использование.Свойство("Изменение")); - - Если Использование.Свойство("ПараметрКоманды") Тогда - ОписаниеПоля.ПараметрКоманды = Использование.ПараметрКоманды; - ИначеЕсли ОписаниеПоля.Добавление ИЛИ ОписаниеПоля.Изменение Тогда - ОписаниеПоля.ПараметрКоманды = "--" + ОписаниеПоля.ИмяПоляРАК; - КонецЕсли; - - Параметры.Добавить(ОписаниеПоля); - -КонецПроцедуры // ДобавитьПараметрОписанияОбъекта() - -// Процедура заполняет массив описаний параметров блокировки -// -Процедура ЗаполнитьПараметрыБлокировки() Экспорт - - ДобавитьПараметрОписанияОбъекта("Соединение_Ид" , "connection"); - ДобавитьПараметрОписанияОбъекта("Сеанс_Ид" , "session"); - ДобавитьПараметрОписанияОбъекта("Объект_Ид" , "object"); - ДобавитьПараметрОписанияОбъекта("НачалоБлокировки" , "locked"); - ДобавитьПараметрОписанияОбъекта("Описание" , "descr"); - -КонецПроцедуры // ЗаполнитьПараметрыБлокировки() - -// Процедура заполняет массив описаний параметров сервиса -// -Процедура ЗаполнитьПараметрыСервиса() Экспорт - - ДобавитьПараметрОписанияОбъекта("Имя" , "name"); - ДобавитьПараметрОписанияОбъекта("ТолькоГлавныйМенеджер" , "main-only"); - ДобавитьПараметрОписанияОбъекта("Менеджер_Ид" , "manager"); - ДобавитьПараметрОписанияОбъекта("Описание" , "descr"); - -КонецПроцедуры // ЗаполнитьПараметрыСервиса() - -// Процедура заполняет массив описаний параметров сеанса -// -Процедура ЗаполнитьПараметрыСеанса() Экспорт - - ДобавитьПараметрОписанияОбъекта("Ид" , "session"); - ДобавитьПараметрОписанияОбъекта("НомерСеанса" , "session-id"); - ДобавитьПараметрОписанияОбъекта("ИнформационнаяБаза_Ид" , "infobase"); - ДобавитьПараметрОписанияОбъекта("Соединение_Ид" , "connection"); - ДобавитьПараметрОписанияОбъекта("Процесс_Ид" , "process"); - ДобавитьПараметрОписанияОбъекта("Пользователь" , "user-name"); - ДобавитьПараметрОписанияОбъекта("Компьютер" , "host"); - ДобавитьПараметрОписанияОбъекта("Приложение" , "app-id"); - ДобавитьПараметрОписанияОбъекта("Язык" , "locale"); - ДобавитьПараметрОписанияОбъекта("ВремяНачала" , "started-at"); - ДобавитьПараметрОписанияОбъекта("ПоследняяАктивность" , "last-active-at"); - ДобавитьПараметрОписанияОбъекта("Спящий" , "hibernate"); - ДобавитьПараметрОписанияОбъекта("ЗаснутьЧерез" , "passive-session-hibernate-time"); - ДобавитьПараметрОписанияОбъекта("ЗавершитьЧерез" , "hibernate-session-terminate-time"); - ДобавитьПараметрОписанияОбъекта("ЗаблокированоСУБД" , "blocked-by-dbms"); - ДобавитьПараметрОписанияОбъекта("ЗаблокированоУпр" , "blocked-by-ls"); - ДобавитьПараметрОписанияОбъекта("ДанныхВсего" , "bytes-all"); - ДобавитьПараметрОписанияОбъекта("Данных5мин" , "bytes-last-5min"); - ДобавитьПараметрОписанияОбъекта("КоличествоВызововВсего" , "calls-all"); - ДобавитьПараметрОписанияОбъекта("КоличествоВызовов5мин" , "calls-last-5min"); - ДобавитьПараметрОписанияОбъекта("ДанныхСУБДВсего" , "dbms-bytes-all"); - ДобавитьПараметрОписанияОбъекта("ДанныхСУБД5мин" , "dbms-bytes-last-5min"); - ДобавитьПараметрОписанияОбъекта("СоединениеССУБД" , "db-proc-info"); - ДобавитьПараметрОписанияОбъекта("ЗахваченоСУБД" , "db-proc-took"); - ДобавитьПараметрОписанияОбъекта("ВремяЗахватаСУБД" , "db-proc-took-at"); - ДобавитьПараметрОписанияОбъекта("ВремяВызововВсего" , "duration-all"); - ДобавитьПараметрОписанияОбъекта("ВремяВызововСУБДВсего" , "duration-all-dbms"); - ДобавитьПараметрОписанияОбъекта("ВремяВызововТекущее" , "duration-current"); - ДобавитьПараметрОписанияОбъекта("ВремяВызововСУБДТекущее" , "duration-current-dbms"); - ДобавитьПараметрОписанияОбъекта("ВремяВызовов5мин" , "duration-last-5min"); - ДобавитьПараметрОписанияОбъекта("ВремяВызововСУБД5мин" , "duration-last-5min-dbms"); - -КонецПроцедуры // ЗаполнитьПараметрыСеанса() - -// Процедура заполняет массив описаний параметров соединения -// -Процедура ЗаполнитьПараметрыСоединения() Экспорт - - ДобавитьПараметрОписанияОбъекта("Ид" , "connection"); - ДобавитьПараметрОписанияОбъекта("НомерСоединения" , "conn-id"); - ДобавитьПараметрОписанияОбъекта("Процесс_Ид" , "process"); - ДобавитьПараметрОписанияОбъекта("ИнформационнаяБаза_Ид" , "infobase"); - ДобавитьПараметрОписанияОбъекта("Приложение" , "application"); - ДобавитьПараметрОписанияОбъекта("НачалоРаботы" , "connected-at"); - ДобавитьПараметрОписанияОбъекта("НомерСеанса" , "session-number"); - ДобавитьПараметрОписанияОбъекта("Заблокировано" , "blocked-by-ls"); - -КонецПроцедуры // ЗаполнитьПараметрыСоединения() - -// Процедура заполняет массив описаний параметров лицензии (общие) -// -Процедура ЗаполнитьПараметрыЛицензииОбщие() Экспорт - - ДобавитьПараметрОписанияОбъекта("ПолноеИмя" , "full-name"); - ДобавитьПараметрОписанияОбъекта("Серия" , "series"); - ДобавитьПараметрОписанияОбъекта("ВыданаСервером" , "issued-by-server"); - ДобавитьПараметрОписанияОбъекта("ТипЛицензии" , "license-type"); - ДобавитьПараметрОписанияОбъекта("Сетевая" , "net"); - ДобавитьПараметрОписанияОбъекта("МаксПользователей" , "max-users-all"); - ДобавитьПараметрОписанияОбъекта("МаксПользователейТек" , "max-users-cur"); - ДобавитьПараметрОписанияОбъекта("Менеджер_АдресСервера" , "rmngr-address"); - ДобавитьПараметрОписанияОбъекта("Менеджер_ПортСервера" , "rmngr-port"); - ДобавитьПараметрОписанияОбъекта("Менеджер_ИдОС" , "rmngr-pid"); - ДобавитьПараметрОписанияОбъекта("КраткоеПредставление" , "short-presentation"); - ДобавитьПараметрОписанияОбъекта("ПолноеПредставление" , "full-presentation"); - -КонецПроцедуры // ЗаполнитьПараметрыЛицензииОбщие() - -// Процедура заполняет массив описаний параметров лицензии процесса -// -Процедура ЗаполнитьПараметрыЛицензииПроцесса() Экспорт - - ДобавитьПараметрОписанияОбъекта("Процесс_Ид" , "process"); - ДобавитьПараметрОписанияОбъекта("Процесс_АдресСервера" , "host"); - ДобавитьПараметрОписанияОбъекта("Процесс_ПортСервера" , "port"); - ДобавитьПараметрОписанияОбъекта("Процесс_ИдОС" , "pid"); - - ЗаполнитьПараметрыЛицензииОбщие(); - -КонецПроцедуры // ЗаполнитьПараметрыЛицензииПроцесса() - -// Процедура заполняет массив описаний параметров лицензии сеанса -// -Процедура ЗаполнитьПараметрыЛицензииСеанса() Экспорт - - ДобавитьПараметрОписанияОбъекта("Сеанс_Ид" , "session"); - ДобавитьПараметрОписанияОбъекта("ИмяПользователя" , "user-name"); - ДобавитьПараметрОписанияОбъекта("АдресМашины" , "host"); - ДобавитьПараметрОписанияОбъекта("ТипПриложения" , "app-id"); - - ЗаполнитьПараметрыЛицензииОбщие(); - -КонецПроцедуры // ЗаполнитьПараметрыЛицензииСеанса() - -// Процедура заполняет массив описаний параметров требования назначения -// -Процедура ЗаполнитьПараметрыТребованияНазначения() Экспорт - - ДобавитьПараметрОписанияОбъекта("Ид" , "rule"); - ДобавитьПараметрОписанияОбъекта("ТипОбъекта" , "object-type", - Перечисления.ОбъектыНазначенияФункциональности.ЛюбойОбъект, - "Чтение, Добавление, Изменение"); - - ДобавитьПараметрОписанияОбъекта("ИмяИБ" , "infobase-name" , "", - "Чтение, Добавление, Изменение"); - - ДобавитьПараметрОписанияОбъекта("ТипНазначения" , "rule-type", - Перечисления.ТипыНазначенияФункциональности.Авто, - "Чтение, Добавление, Изменение"); - - ДобавитьПараметрОписанияОбъекта("ДопПараметр" , "application-ext" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("Приоритет" , "priority" , 0, "Чтение, Добавление, Изменение"); - -КонецПроцедуры // ЗаполнитьПараметрыТребованияНазначения() - -// Процедура заполняет массив описаний параметров профиля безопасности -// -Процедура ЗаполнитьПараметрыПрофиляБезопасности() Экспорт - - ДобавитьПараметрОписанияОбъекта("Имя" , "name"); - ДобавитьПараметрОписанияОбъекта("Описание" , "descr", "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("Каталоги" , "directory", - Перечисления.РежимыДоступа.Список, - "Чтение, Добавление, Изменение"); - - ДобавитьПараметрОписанияОбъекта("COMКлассы" , "com", - Перечисления.РежимыДоступа.Список, - "Чтение, Добавление, Изменение"); - - ДобавитьПараметрОписанияОбъекта("ВнешниеКомпоненты" , "addin", - Перечисления.РежимыДоступа.Список, - "Чтение, Добавление, Изменение"); - - ДобавитьПараметрОписанияОбъекта("Модули" , "module", - Перечисления.РежимыДоступа.Список, - "Чтение, Добавление, Изменение"); - - ДобавитьПараметрОписанияОбъекта("Приложения" , "app", - Перечисления.РежимыДоступа.Список, - "Чтение, Добавление, Изменение"); - - ДобавитьПараметрОписанияОбъекта("ИнтернетРесурсы" , "inet", - Перечисления.РежимыДоступа.Список, - "Чтение, Добавление, Изменение"); - - ДобавитьПараметрОписанияОбъекта("Конфигуратор" , "config", - Перечисления.ДаНет.Нет, - "Чтение, Добавление, Изменение"); - - ДобавитьПараметрОписанияОбъекта("ПривилегированныйРежим" , "priv", - Перечисления.ДаНет.Нет, - "Чтение, Добавление, Изменение"); - - ДобавитьПараметрОписанияОбъекта("Криптография" , "crypto", - Перечисления.ДаНет.Нет, - "Чтение, Добавление, Изменение"); - - ДобавитьПараметрОписанияОбъекта("РасширениеПрав" , "right-extension", - Перечисления.ДаНет.Нет, - "Чтение, Добавление, Изменение"); - - ДобавитьПараметрОписанияОбъекта("ОграничивающиеРоли" , "right-extension-definition-roles" , "", - "Чтение, Добавление, Изменение"); - - ДобавитьПараметрОписанияОбъекта("РасширениеВсехМодулей" , "all-modules-extension", - Перечисления.ДаНет.Нет, - "Чтение, Добавление, Изменение"); - - ДобавитьПараметрОписанияОбъекта("ДоступныеМодули" , "modules-available-for-extension" , "", - "Чтение, Добавление, Изменение"); - - ДобавитьПараметрОписанияОбъекта("НедоступныеМодули" , "modules-not-available-for-extension" , "", - "Чтение, Добавление, Изменение"); - -КонецПроцедуры // ЗаполнитьПараметрыПрофиляБезопасности() - -// Процедура заполняет массив описаний параметров виртуального каталога профиля безопасности -// -Процедура ЗаполнитьПараметрыКаталогаПрофиля() Экспорт - - ДобавитьПараметрОписанияОбъекта("Имя" , "alias"); - ДобавитьПараметрОписанияОбъекта("Описание" , "descr" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("ПутьККаталогу" , "physicalPath" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("Чтение" , "allowedRead" , Перечисления.ДаНет.Нет, - "Чтение, Добавление, Изменение"); - - ДобавитьПараметрОписанияОбъекта("Запись" , "allowedWrite" , Перечисления.ДаНет.Нет, - "Чтение, Добавление, Изменение"); - -КонецПроцедуры // ЗаполнитьПараметрыКаталогаПрофиля() - -// Процедура заполняет массив описаний параметров COM-класса профиля безопасности -// -Процедура ЗаполнитьПараметрыCOMКлассаПрофиля() Экспорт - - ДобавитьПараметрОписанияОбъекта("Имя" , "name"); - ДобавитьПараметрОписанияОбъекта("Описание" , "descr" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("ИмяФайла" , "fileName" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("ИдКласса" , "id" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("Компьютер" , "host" , "", "Чтение, Добавление, Изменение"); - -КонецПроцедуры // ЗаполнитьПараметрыCOMКлассаПрофиля() - -// Процедура заполняет массив описаний параметров внешней компоненты или модуля профиля безопасности -// -Процедура ЗаполнитьПараметрыКомпонентыМодуляПрофиля() Экспорт - - ДобавитьПараметрОписанияОбъекта("Имя" , "name"); - ДобавитьПараметрОписанияОбъекта("Описание" , "descr" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("Хэш" , "hash", , "Чтение, Добавление, Изменение"); - -КонецПроцедуры // ЗаполнитьПараметрыКомпонентыМодуляПрофиля() - -// Процедура заполняет массив описаний параметров разрешенного приложения профиля безопасности -// -Процедура ЗаполнитьПараметрыПриложенияПрофиля() Экспорт - - ДобавитьПараметрОписанияОбъекта("Имя" , "name"); - ДобавитьПараметрОписанияОбъекта("Описание" , "descr" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("Маска" , "wild" , "*", "Чтение, Добавление, Изменение"); - -КонецПроцедуры // ЗаполнитьПараметрыПриложенияПрофиля() - -// Процедура заполняет массив описаний параметров интернет ресурса профиля безопасности -// -Процедура ЗаполнитьПараметрыИнтернетРесурсаПрофиля() Экспорт - - ДобавитьПараметрОписанияОбъекта("Имя" , "name"); - ДобавитьПараметрОписанияОбъекта("Описание" , "descr" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("Протокол" , "protocol" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("АдресРесурса" , "url" , "http", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("ПортСервера" , "port" , "", "Чтение, Добавление, Изменение"); - -КонецПроцедуры // ЗаполнитьПараметрыИнтернетРесурсаПрофиля() - -Процедура ЗаполнитьПараметрыСчетчикаПотребленияРесурсов() Экспорт - - ДобавитьПараметрОписанияОбъекта("Имя" , "name"); - ДобавитьПараметрОписанияОбъекта("ДлительностьСбора" , "collection-time" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("ДлительностьСбораМс" , "duration" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("Группировка" , "group" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("ТипОтбора" , "filter-type" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("Отбор" , "filter" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("ПроцессорноеВремя" , "cpu-time" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("ДлительностьВызововСУБД" , "duration-dbms" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("ДлительностьВызововСервисов" , "service" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("ПотреблениеПамяти" , "memory" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("ОбъемИнформацииСчитаннойСДиска" , "read" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("ОбъемИнформацииЗаписаннойНаДиск" , "write" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("ОбъемИнформацииПереданнойСУБД" , "dbms-bytes" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("КоличествоСерверныхВызовов" , "call" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("Описание" , "descr" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("КоличествоАктивныхСеансов" , "number-of-active-sessions" , "", "Чтение, Добавление, Изменение"); - ДобавитьПараметрОписанияОбъекта("КоличествоСеансов" , "number-of-sessions" , "", "Чтение, Добавление, Изменение"); -КонецПроцедуры // ЗаполнитьПараметрыСчетчикаПотребленияРесурсов() - -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\276\321\204\320\270\320\273\320\270\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\321\201\321\202\320\270.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\276\321\204\320\270\320\273\320\270\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\321\201\321\202\320\270.os" new file mode 100644 index 0000000..79cfb38 --- /dev/null +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\276\321\204\320\270\320\273\320\270\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\321\201\321\202\320\270.os" @@ -0,0 +1,225 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +Перем Кластер_Агент; +Перем Кластер_Владелец; +Перем ПараметрыОбъекта; +Перем Элементы; + +Перем Лог; + +// Конструктор +// +// Параметры: +// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера +// Кластер - Кластер - ссылка на родительский объект кластера +// +Процедура ПриСозданииОбъекта(АгентКластера, Кластер) + + Кластер_Агент = АгентКластера; + Кластер_Владелец = Кластер; + + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ПрофилиБезопасности); + + Элементы = Новый ОбъектыКластера(ЭтотОбъект); + +КонецПроцедуры // ПриСозданииОбъекта() + +// Процедура получает данные от сервиса администрирования кластера 1С +// и сохраняет в локальных переменных +// +// Параметры: +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее +// +Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт + + Если НЕ Элементы.ТребуетсяОбновление(ОбновитьПринудительно) Тогда + Возврат; + КонецЕсли; + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Список")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения списка профилей, КодВозврата = %1: %2", + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + МассивРезультатов = Кластер_Агент.ВыводКоманды(); + + МассивПрофилей = Новый Массив(); + Для Каждого ТекОписание Из МассивРезультатов Цикл + МассивПрофилей.Добавить(Новый ПрофильБезопасности(Кластер_Агент, Кластер_Владелец, ТекОписание)); + КонецЦикла; + + Элементы.Заполнить(МассивПрофилей); + + Элементы.УстановитьАктуальность(); + +КонецПроцедуры // ОбновитьДанные() + +// Функция возвращает коллекцию параметров объекта +// +// Параметры: +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия +// +// Возвращаемое значение: +// Соответствие - коллекция параметров объекта, для получения/изменения значений +// +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт + + Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); + +КонецФункции // ПараметрыОбъекта() + +// Функция возвращает список профилей безопасности кластера 1С +// +// Параметры: +// Отбор - Структура - Структура отбора профилей безопасности (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// +// Возвращаемое значение: +// Массив - список профилей безопасности кластера 1С +// +Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт + + СписокПрофилей = Элементы.Список(Отбор, ОбновитьПринудительно); + + Возврат СписокПрофилей; + +КонецФункции // Список() + +// Функция возвращает список профилей безопасности кластера 1С +// +// Параметры: +// ПоляИерархии - Строка - Поля для построения иерархии списка профилей безопасности, +// разделенные "," +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// +// Возвращаемое значение: +// Соответствие - список профилей безопасности кластера 1С +// <имя поля объекта> - Массив(Соответствие), Соответствие - список профилей безопасности +// или следующий уровень +// +Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт + + СписокПрофилей = Элементы.ИерархическийСписок(ПоляИерархии, ОбновитьПринудительно); + + Возврат СписокПрофилей; + +КонецФункции // ИерархическийСписок() + +// Функция возвращает количество профилей безопасности в списке +// +// Возвращаемое значение: +// Число - количество профилей безопасности +// +Функция Количество() Экспорт + + Если Элементы = Неопределено Тогда + Возврат 0; + КонецЕсли; + + Возврат Элементы.Количество(); + +КонецФункции // Количество() + +// Функция возвращает описание профиля безопасности кластера 1С +// +// Параметры: +// Имя - Строка - Имя профиля безопасности +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// +// Возвращаемое значение: +// Соответствие - описание профиля безопасности кластера 1С +// +Функция Получить(Знач Имя, Знач ОбновитьПринудительно = Ложь) Экспорт + + Отбор = Новый Соответствие(); + Отбор.Вставить("name", Имя); + + СписокПрофилей = Элементы.Список(Отбор, ОбновитьПринудительно); + + Если СписокПрофилей.Количество() = 0 Тогда + Возврат Неопределено; + КонецЕсли; + + Возврат СписокПрофилей[0]; + +КонецФункции // Получить() + +// Процедура добавляет новый профиль безопасности в кластер 1С +// +// Параметры: +// Имя - Строка - имя профиля безопасности 1С +// ПараметрыПрофиля - Структура - параметры профиля безопасности 1С +// +Процедура Добавить(Имя, ПараметрыПрофиля = Неопределено) Экспорт + + Если НЕ ТипЗнч(ПараметрыПрофиля) = Тип("Структура") Тогда + ПараметрыПрофиля = Новый Структура(); + КонецЕсли; + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + ПараметрыКоманды.Вставить("Имя" , Имя); + + Для Каждого ТекЭлемент Из ПараметрыПрофиля Цикл + ПараметрыКоманды.Вставить(ТекЭлемент.Ключ, ТекЭлемент.Значение); + КонецЦикла; + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Изменить")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка добавления профиля безопасности ""%1"": %2", + Имя, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); + + ОбновитьДанные(Истина); + +КонецПроцедуры // Добавить() + +// Процедура удаляет профиль безопасности из кластера 1С +// +// Параметры: +// Имя - Строка - Имя профиля безопасности +// +Процедура Удалить(Имя) Экспорт + + Профиль = Получить(Имя); + + Если Профиль = Неопределено Тогда + Возврат; + КонецЕсли; + + Профиль.Удалить(); + + ОбновитьДанные(Истина); + +КонецПроцедуры // Удалить() + +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\276\321\204\320\270\320\273\321\214\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\321\201\321\202\320\270.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\276\321\204\320\270\320\273\321\214\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\321\201\321\202\320\270.os" index 6650dde..c161534 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\276\321\204\320\270\320\273\321\214\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\321\201\321\202\320\270.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\276\321\204\320\270\320\273\321\214\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\321\201\321\202\320\270.os" @@ -1,4 +1,13 @@ -Перем Профиль_Имя; // name +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +Перем Профиль_Имя; // name Перем Профиль_Параметры; Перем Профиль_Каталоги; @@ -32,9 +41,9 @@ Возврат; КонецЕсли; - ПараметрыОбъекта = Новый ПараметрыОбъекта("profile"); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ПрофилиБезопасности); - Кластер_Агент = АгентКластера; + Кластер_Агент = АгентКластера; Кластер_Владелец = Кластер; Если ТипЗнч(Профиль) = Тип("Соответствие") Тогда @@ -46,18 +55,18 @@ МоментАктуальности = 0; КонецЕсли; - Профиль_Каталоги = Новый ОбъектыПрофиля(Кластер_Агент, Кластер_Владелец, ЭтотОбъект, - Перечисления.ВидыОбъектовПрофиляБезопасности.Каталог); - Профиль_COMКлассы = Новый ОбъектыПрофиля(Кластер_Агент, Кластер_Владелец, ЭтотОбъект, - Перечисления.ВидыОбъектовПрофиляБезопасности.COMКласс); - Профиль_ВнешниеКомпоненты = Новый ОбъектыПрофиля(Кластер_Агент, Кластер_Владелец, ЭтотОбъект, - Перечисления.ВидыОбъектовПрофиляБезопасности.Компонент); - Профиль_ВнешниеМодули = Новый ОбъектыПрофиля(Кластер_Агент, Кластер_Владелец, ЭтотОбъект, - Перечисления.ВидыОбъектовПрофиляБезопасности.Модуль); - Профиль_Приложения = Новый ОбъектыПрофиля(Кластер_Агент, Кластер_Владелец, ЭтотОбъект, - Перечисления.ВидыОбъектовПрофиляБезопасности.Приложение); - Профиль_ИнтернетРесурсы = Новый ОбъектыПрофиля(Кластер_Агент, Кластер_Владелец, ЭтотОбъект, - Перечисления.ВидыОбъектовПрофиляБезопасности.ИнтернетРесурс); + Профиль_Каталоги = Новый ОбъектыПрофиля(Кластер_Агент, Кластер_Владелец, ЭтотОбъект, + Перечисления.ВидыОбъектовПрофиляБезопасности.Каталог); + Профиль_COMКлассы = Новый ОбъектыПрофиля(Кластер_Агент, Кластер_Владелец, ЭтотОбъект, + Перечисления.ВидыОбъектовПрофиляБезопасности.COMКласс); + Профиль_ВнешниеКомпоненты = Новый ОбъектыПрофиля(Кластер_Агент, Кластер_Владелец, ЭтотОбъект, + Перечисления.ВидыОбъектовПрофиляБезопасности.Компонент); + Профиль_ВнешниеМодули = Новый ОбъектыПрофиля(Кластер_Агент, Кластер_Владелец, ЭтотОбъект, + Перечисления.ВидыОбъектовПрофиляБезопасности.Модуль); + Профиль_Приложения = Новый ОбъектыПрофиля(Кластер_Агент, Кластер_Владелец, ЭтотОбъект, + Перечисления.ВидыОбъектовПрофиляБезопасности.Приложение); + Профиль_ИнтернетРесурсы = Новый ОбъектыПрофиля(Кластер_Агент, Кластер_Владелец, ЭтотОбъект, + Перечисления.ВидыОбъектовПрофиляБезопасности.ИнтернетРесурс); ПериодОбновления = 60000; МоментАктуальности = 0; @@ -68,9 +77,9 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт @@ -79,25 +88,38 @@ Возврат; КонецЕсли; - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера" , Кластер_Владелец.СтрокаАвторизации()); - ПараметрыЗапуска.Добавить("profile"); - ПараметрыЗапуска.Добавить("info"); + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - ПараметрыЗапуска.Добавить(СтрШаблон("--name=%1", Имя())); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Список")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения описания профиля безопасности ""%1"": %2", + Имя(), + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - МассивРезультатов = Кластер_Агент.ВыводКоманды(); - Если МассивРезультатов.Количество() = 0 Тогда - Возврат; + ЭлементНайден = Ложь; + Для Каждого ТекЭлемент Из МассивРезультатов Цикл + Если ТекЭлемент["name"] = Имя() Тогда + ЭлементНайден = Истина; + Прервать; + КонецЕсли; + КонецЦикла; + + Если НЕ ЭлементНайден Тогда + ВызватьИсключение СтрШаблон("Ошибка получения описания профиля безопасности ""%1"": %2", + Имя(), + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; - ЗаполнитьПараметрыПрофиля(МассивРезультатов[0]); + ЗаполнитьПараметрыПрофиля(ТекЭлемент); МоментАктуальности = ТекущаяУниверсальнаяДатаВМиллисекундах(); @@ -106,7 +128,7 @@ // Процедура заполняет параметры профиля безопасности // // Параметры: -// ДанныеЗаполнения - Соответствие - данные, из которых будут заполнены параметры профиля +// ДанныеЗаполнения - Соответствие - данные, из которых будут заполнены параметры профиля // Процедура ЗаполнитьПараметрыПрофиля(ДанныеЗаполнения) @@ -119,22 +141,22 @@ // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт - Возврат ПараметрыОбъекта.Получить(ИмяПоляКлюча); + Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); КонецФункции // ПараметрыОбъекта() // Функция возвращает имя профиля безопасности 1С // // Возвращаемое значение: -// Строка - имя профиля безопасности 1С +// Строка - имя профиля безопасности 1С // Функция Имя() Экспорт @@ -145,7 +167,7 @@ // Функция возвращает список разрешенных виртуальных каталогов // // Возвращаемое значение: -// ОбъектыПрофиля - список разрешенных виртуальных каталогов +// ОбъектыПрофиля - список разрешенных виртуальных каталогов // Функция Каталоги() Экспорт @@ -156,7 +178,7 @@ // Функция возвращает список разрешенных COM-классов // // Возвращаемое значение: -// ОбъектыПрофиля - список разрешенных COM-Классов +// ОбъектыПрофиля - список разрешенных COM-Классов // Функция COMКлассы() Экспорт @@ -167,7 +189,7 @@ // Функция возвращает список разрешенных внешних компонент // // Возвращаемое значение: -// ОбъектыПрофиля - список разрешенных внешних компонент +// ОбъектыПрофиля - список разрешенных внешних компонент // Функция ВнешниеКомпоненты() Экспорт @@ -178,7 +200,7 @@ // Функция возвращает список разрешенных внешних модулей // // Возвращаемое значение: -// ОбъектыПрофиля - список разрешенных внешних модулей +// ОбъектыПрофиля - список разрешенных внешних модулей // Функция ВнешниеМодули() Экспорт @@ -189,7 +211,7 @@ // Функция возвращает список разрешенных приложений // // Возвращаемое значение: -// ОбъектыПрофиля - список разрешенных приложений +// ОбъектыПрофиля - список разрешенных приложений // Функция Приложения() Экспорт @@ -200,7 +222,7 @@ // Функция возвращает список разрешенных ресурсов интернет // // Возвращаемое значение: -// ОбъектыПрофиля - список разрешенных ресурсов интернет +// ОбъектыПрофиля - список разрешенных ресурсов интернет // Функция ИнтернетРесурсы() Экспорт @@ -211,11 +233,11 @@ // Функция возвращает значение параметра профиля безопасности кластера 1С // // Параметры: -// ИмяПоля - Строка - Имя параметра кластера -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// ИмяПоля - Строка - Имя параметра кластера +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) // // Возвращаемое значение: -// Произвольный - значение параметра профиля безопасности кластера 1С +// Произвольный - значение параметра профиля безопасности кластера 1С // Функция Получить(ИмяПоля, ОбновитьПринудительно = Ложь) Экспорт @@ -228,52 +250,56 @@ ЗначениеПоля = Профиль_Параметры.Получить(ИмяПоля); Если ЗначениеПоля = Неопределено Тогда - - ОписаниеПараметра = ПараметрыОбъекта("ИмяПоляРАК").Получить(ИмяПоля); + + ОписаниеПараметра = ПараметрыОбъекта("ИмяРАК").Получить(ИмяПоля); Если НЕ ОписаниеПараметра = Неопределено Тогда - ЗначениеПоля = Профиль_Параметры.Получить(ОписаниеПараметра["ИмяПараметра"]); + ЗначениеПоля = Профиль_Параметры.Получить(ОписаниеПараметра["Имя"]); КонецЕсли; КонецЕсли; Возврат ЗначениеПоля; - + КонецФункции // Получить() // Процедура изменяет режим доступа к объектам профиля (список/полный доступ) // // Параметры: -// ВидОбъектовПрофиля - Перечисление. - вид объекта профиля для изменения режима доступа -// ВидыОбъектовПрофиляБезопасности -// РежимДоступа - Перечисление. - устанавливаемый режим доступа -// РежимДоступа +// ВидОбъектовПрофиля - Перечисление. - вид объекта профиля для изменения режима доступа +// ВидыОбъектовПрофиляБезопасности +// РежимДоступа - Перечисление. - устанавливаемый режим доступа +// РежимДоступа // -Процедура ИзменитьРежимДоступаКОбъектамПрофиля(ВидОбъектовПрофиля, РежимДоступа) - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("profile"); - ПараметрыЗапуска.Добавить("acl"); - ПараметрыЗапуска.Добавить(ВидОбъектовПрофиля); - - ПараметрыЗапуска.Добавить(СтрШаблон("--name=%1", Имя())); - ПараметрыЗапуска.Добавить(СтрШаблон("--access=%1", РежимДоступа)); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); +Процедура ИзменитьРежимДоступаКОбъектам(ВидОбъектовПрофиля, РежимДоступа) Экспорт + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера" , Кластер_Владелец.СтрокаАвторизации()); + ПараметрыКоманды.Вставить("Имя" , Имя()); + ПараметрыКоманды.Вставить("ВидОбъектовПрофиля" , ВидОбъектовПрофиля); + ПараметрыКоманды.Вставить("РежимДоступа" , РежимДоступа); + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("ИзменитьРежимДоступа")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка изменения режима доступа объекта ""%1"" профиля ""%2"" на ""%3"": %4", + ВидОбъектовПрофиля, + Имя(), + РежимДоступа, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); -КонецПроцедуры // ИзменитьРежимДоступаКОбъектамПрофиля() +КонецПроцедуры // ИзменитьРежимДоступаКОбъектам() // Процедура изменяет параметры профиля безопасности // // Параметры: -// ПараметрыПрофиля - Структура - новые параметры профиля безопасности +// ПараметрыПрофиля - Структура - новые параметры профиля безопасности // Процедура Изменить(Знач ПараметрыПрофиля = Неопределено) Экспорт @@ -281,38 +307,56 @@ ПараметрыПрофиля = Новый Структура(); КонецЕсли; - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("profile"); - ПараметрыЗапуска.Добавить("update"); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + ПараметрыКоманды.Вставить("Имя" , Имя()); - ПараметрыЗапуска.Добавить(СтрШаблон("--name=%1", Имя())); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); + Для Каждого ТекЭлемент Из ПараметрыПрофиля Цикл + ПараметрыКоманды.Вставить(ТекЭлемент.Ключ, ТекЭлемент.Значение); + КонецЦикла; - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - ПараметрыРежимаДоступа = "directory,com,addin,module,app,inet"; + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - ВремПараметры = ПараметрыОбъекта(); + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Изменить")); - Для Каждого ТекЭлемент Из ВремПараметры Цикл - Если НЕ ПараметрыПрофиля.Свойство(ТекЭлемент.Ключ) Тогда - Продолжить; - КонецЕсли; - Если СтрНайти(ПараметрыРежимаДоступа, ТекЭлемент.ИмяПоляРАК) = 0 Тогда - ПараметрыЗапуска.Добавить(СтрШаблон(ТекЭлемент.ПараметрКоманды + "=%1", ПараметрыПрофиля[ТекЭлемент.Ключ])); - Иначе - ИзменитьРежимДоступаКОбъектамПрофиля(ТекЭлемент.ИмяПоляРАК, ПараметрыПрофиля[ТекЭлемент.Ключ]); - КонецЕсли; - КонецЦикла; + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка изменения профиля безопасности ""%1"": %2", + Имя(), + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); ОбновитьДанные(Истина); КонецПроцедуры // Изменить() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +// Процедура удаляет информационную базу +// +Процедура Удалить() Экспорт + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + ПараметрыКоманды.Вставить("Имя" , Имя()); + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Удалить")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка удаления профиля безопасности ""%1"": %2", + Имя(), + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); + +КонецПроцедуры // Удалить() + +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\276\321\204\320\270\320\273\321\214\320\236\320\261\321\212\320\265\320\272\321\202\321\213.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\276\321\204\320\270\320\273\321\214\320\236\320\261\321\212\320\265\320\272\321\202\321\213.os" deleted file mode 100644 index 824de36..0000000 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\276\321\204\320\270\320\273\321\214\320\236\320\261\321\212\320\265\320\272\321\202\321\213.os" +++ /dev/null @@ -1,247 +0,0 @@ -Перем ТипЭлементов; -Перем Кластер_Агент; -Перем Кластер_Владелец; -Перем Профиль_Владелец; -Перем Элементы; - -Перем ПараметрыЭлементов; - -Перем МоментАктуальности; -Перем ПериодОбновления; - -Перем Лог; - -Процедура ПриСозданииОбъекта(Агент, Кластер, Профиль, Тип) - - Элементы = Неопределено; - - Кластер_Агент = Агент; - Кластер_Владелец = Кластер; - Профиль_Владелец = Профиль; - - ТипЭлементов = Тип; - - ПараметрыЭлементов = Новый ПараметрыОбъекта("profile." + ТипЭлементов); - - ПериодОбновления = 60000; - МоментАктуальности = 0; - -КонецПроцедуры // ПриСозданииОбъекта() - -// Процедура получает данные от сервиса администрирования кластера 1С -// и сохраняет в локальных переменных -// -// Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее -// -Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт - - Если НЕ ТребуетсяОбновление(ОбновитьПринудительно) Тогда - Возврат; - КонецЕсли; - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("profile"); - ПараметрыЗапуска.Добавить("acl"); - ПараметрыЗапуска.Добавить(ТипЭлементов); - ПараметрыЗапуска.Добавить("list"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--name=%1", Профиль_Владелец.Имя())); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - - Элементы = Кластер_Агент.ВыводКоманды(); - - МоментАктуальности = ТекущаяУниверсальнаяДатаВМиллисекундах(); - -КонецПроцедуры // ОбновитьДанные() - -// Функция признак необходимости обновления данных -// -// Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// -// Возвращаемое значение: -// Булево - Истина - требуется обновитьданные -// -Функция ТребуетсяОбновление(ОбновитьПринудительно = Ложь) Экспорт - - Возврат (ОбновитьПринудительно - ИЛИ Элементы = Неопределено - ИЛИ (ПериодОбновления < (ТекущаяУниверсальнаяДатаВМиллисекундах() - МоментАктуальности))); - -КонецФункции // ТребуетсяОбновление() - -// Функция возвращает коллекцию параметров объекта -// -// Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия -// -// Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений -// -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт - - Возврат ПараметрыЭлементов.Получить(ИмяПоляКлюча); - -КонецФункции // ПараметрыОбъекта() - -// Функция возвращает список объектов кластера -// -// Параметры: -// Отбор - Структура - Структура отбора объектов (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// -// Возвращаемое значение: -// Массив - список объектов кластера 1С -// -Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт - - ОбновитьДанные(ОбновитьПринудительно); - - Результат = Служебный.ПолучитьЭлементыИзМассиваСоответствий(Элементы, Отбор); - - Если Результат.Количество() = 0 Тогда - Возврат Неопределено; - Иначе - Возврат Результат; - КонецЕсли; - -КонецФункции // Список() - -// Функция возвращает список объектов кластера -// -// Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка объектов, разделенные "," -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// -// Возвращаемое значение: -// Соответствие - список объектов кластера 1С -// <имя поля объекта> - Массив(Соответствие), Соответствие - список объектов кластера или следующий уровень -// -Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт - - ОбновитьДанные(ОбновитьПринудительно); - - Результат = Служебный.ИерархическоеПредставлениеМассиваСоответствий(Элементы, ПоляИерархии); - - Возврат Результат; - -КонецФункции // ИерархическийСписок() - -// Функция возвращает количество обектов в списке профиля безопасности -// -// Возвращаемое значение: -// Число - количество объектов -// -Функция Количество() Экспорт - - ОбновитьДанные(); - - Если Элементы = Неопределено Тогда - Возврат 0; - КонецЕсли; - - Возврат Элементы.Количество(); - -КонецФункции // Количество() - -// Процедура устанавливает значение периода обновления -// -// Параметры: -// НовыйПериодОбновления - Число - новый период обновления -// -Процедура УстановитьПериодОбновления(НовыйПериодОбновления) Экспорт - - ПериодОбновления = НовыйПериодОбновления; - -КонецПроцедуры // УстановитьПериодОбновления() - -// Процедура устанавливает новое значение момента актуальности данных -// -Процедура УстановитьАктуальность() Экспорт - - МоментАктуальности = ТекущаяУниверсальнаяДатаВМиллисекундах(); - -КонецПроцедуры // УстановитьАктуальность() - -// Процедура добавляет новый или изменяет существующий объект профиля безопасности -// -// Параметры: -// Имя - Строка - имя объекта профиля безопасности 1С -// ПараметрыОбъекта - Структура - параметры объекта профиля безопасности 1С -// -Процедура Изменить(Имя, ПараметрыОбъекта = Неопределено) Экспорт - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("profile"); - ПараметрыЗапуска.Добавить("acl"); - ПараметрыЗапуска.Добавить(ТипЭлементов); - ПараметрыЗапуска.Добавить("update"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - Если ВРег(ТипЭлементов) = ВРег(Перечисления.ВидыОбъектовПрофиляБезопасности.Каталог) Тогда - ПараметрыЗапуска.Добавить(СтрШаблон("--alias=%1", Имя)); - Иначе - ПараметрыЗапуска.Добавить(СтрШаблон("--name=%1", Имя)); - КонецЕсли; - - ВремПараметры = ПараметрыОбъекта(); - - Для Каждого ТекЭлемент Из ВремПараметры Цикл - ЗначениеПараметра = Служебный.ПолучитьЗначениеИзСтруктуры(ПараметрыОбъекта, ТекЭлемент.Ключ, 0); - ПараметрыЗапуска.Добавить(СтрШаблон(ТекЭлемент.Значение.ПараметрКоманды + "=%1", ЗначениеПараметра)); - КонецЦикла; - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - - Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); - - ОбновитьДанные(Истина); - -КонецПроцедуры // Изменить() - -// Процедура удаляет объект профиля из профиля безопасности -// -// Параметры: -// Имя - Строка - Имя объекта профиля безопасности -// -Процедура Удалить(Имя) Экспорт - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("profile"); - ПараметрыЗапуска.Добавить("acl"); - ПараметрыЗапуска.Добавить(ТипЭлементов); - ПараметрыЗапуска.Добавить("remove"); - - Если ВРег(ТипЭлементов) = ВРег(Перечисления.ВидыОбъектовПрофиляБезопасности.Каталог) Тогда - ПараметрыЗапуска.Добавить(СтрШаблон("--alias=%1", Имя)); - Иначе - ПараметрыЗапуска.Добавить(СтрШаблон("--name=%1", Имя)); - КонецЕсли; - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - - Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); - - ОбновитьДанные(Истина); - -КонецПроцедуры // Удалить() - -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); 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\320\240\320\260\320\261\320\276\321\207\320\270\320\265\320\237\321\200\320\276\321\206\320\265\321\201\321\201\321\213.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\320\261\320\276\321\207\320\270\320\265\320\237\321\200\320\276\321\206\320\265\321\201\321\201\321\213.os" similarity index 63% rename from "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\320\240\320\260\320\261\320\276\321\207\320\270\320\265\320\237\321\200\320\276\321\206\320\265\321\201\321\201\321\213.os" rename to "src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\320\261\320\276\321\207\320\270\320\265\320\237\321\200\320\276\321\206\320\265\321\201\321\201\321\213.os" index 5f971f7..3043b1f 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\320\240\320\260\320\261\320\276\321\207\320\270\320\265\320\237\321\200\320\276\321\206\320\265\321\201\321\201\321\213.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\320\261\320\276\321\207\320\270\320\265\320\237\321\200\320\276\321\206\320\265\321\201\321\201\321\213.os" @@ -1,3 +1,12 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + Перем Кластер_Агент; Перем Кластер_Владелец; Перем ПараметрыОбъекта; @@ -8,15 +17,15 @@ // Конструктор // // Параметры: -// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера -// Кластер - Кластер - ссылка на родительский объект кластера +// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера +// Кластер - Кластер - ссылка на родительский объект кластера // Процедура ПриСозданииОбъекта(АгентКластера, Кластер) Кластер_Агент = АгентКластера; Кластер_Владелец = Кластер; - ПараметрыОбъекта = Новый КомандыОбъекта("process"); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.РабочиеПроцессы); Элементы = Новый ОбъектыКластера(ЭтотОбъект); @@ -26,9 +35,9 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт @@ -47,8 +56,8 @@ Если НЕ КодВозврата = 0 Тогда ВызватьИсключение СтрШаблон("Ошибка получения списка рабочих процессов, КодВозврата = %1: %2", - КодВозврата, - Кластер_Агент.ВыводКоманды(Ложь)); + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; МассивРезультатов = Кластер_Агент.ВыводКоманды(); @@ -67,13 +76,13 @@ // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); @@ -82,11 +91,11 @@ // Функция возвращает список рабочих процессов // // Параметры: -// Отбор - Структура - Структура отбора процессов (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Отбор - Структура - Структура отбора процессов (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Массив - список рабочих процессов 1С +// Массив - список рабочих процессов 1С // Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт @@ -99,11 +108,11 @@ // Функция возвращает список рабочих процессов кластера 1С // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка процессов, разделенные "," -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ПоляИерархии - Строка - Поля для построения иерархии списка процессов, разделенные "," +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Соответствие - список рабочих процессов кластера 1С +// Соответствие - список рабочих процессов кластера 1С // Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт @@ -116,7 +125,7 @@ // Функция возвращает количество рабочих процессов в списке // // Возвращаемое значение: -// Число - количество рабочих процессов +// Число - количество рабочих процессов // Функция Количество() Экспорт @@ -131,11 +140,11 @@ // Функция возвращает описание рабочего процесса кластера 1С // // Параметры: -// Процесс - Строка - Номер процесса в виде <адрес сервера>:<номер процесса ОС (pid))> -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Процесс - Строка - Номер процесса в виде <адрес сервера>:<номер процесса ОС (pid))> +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Соответствие - описание рабочего процесса кластера 1С +// Соответствие - описание рабочего процесса кластера 1С // Функция Получить(Знач Процесс, Знач ОбновитьПринудительно = Ложь) Экспорт @@ -159,4 +168,4 @@ КонецФункции // Получить() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\320\261\320\276\321\207\320\270\320\271\320\237\321\200\320\276\321\206\320\265\321\201\321\201.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\320\261\320\276\321\207\320\270\320\271\320\237\321\200\320\276\321\206\320\265\321\201\321\201.os" index e6de39e..a1e8852 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\320\261\320\276\321\207\320\270\320\271\320\237\321\200\320\276\321\206\320\265\321\201\321\201.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\320\261\320\276\321\207\320\270\320\271\320\237\321\200\320\276\321\206\320\265\321\201\321\201.os" @@ -1,6 +1,15 @@ -Перем Процесс_Ид; // process -Перем Процесс_АдресСервера; // host -Перем Процесс_ПортСервера; // port +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +Перем Процесс_Ид; // process +Перем Процесс_АдресСервера; // host +Перем Процесс_ПортСервера; // port Перем Процесс_Параметры; Перем Процесс_Лицензии; @@ -9,6 +18,7 @@ Перем Процесс_Соединения; Перем ПараметрыОбъекта; +Перем ПараметрыЛицензий; Перем ПериодОбновления; Перем МоментАктуальности; @@ -28,7 +38,8 @@ Возврат; КонецЕсли; - ПараметрыОбъекта = Новый КомандыОбъекта("process"); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.РабочиеПроцессы); + ПараметрыЛицензий = Новый КомандыОбъекта("process.license"); Кластер_Агент = АгентКластера; Кластер_Владелец = Кластер; @@ -44,8 +55,8 @@ ПериодОбновления = 60000; - Процесс_Соединения = Новый Соединения(Кластер_Агент, Кластер_Владелец, ЭтотОбъект); - Процесс_Лицензии = Новый ОбъектыКластера(ЭтотОбъект); + Процесс_Соединения = Новый Соединения(Кластер_Агент, Кластер_Владелец, ЭтотОбъект); + Процесс_Лицензии = Новый ОбъектыКластера(ЭтотОбъект); КонецПроцедуры // ПриСозданииОбъекта() @@ -53,9 +64,9 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт @@ -75,7 +86,7 @@ // Процедура получает данные рабочего процесса от сервиса администрирования кластера 1С // и сохраняет в локальных переменных // -Процедура ОбновитьДанныеПроцесса() Экспорт +Процедура ОбновитьДанныеПроцесса() ПараметрыКоманды = Новый Соответствие(); ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); @@ -88,9 +99,9 @@ КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Описание")); Если НЕ КодВозврата = 0 Тогда - ВызватьИсключение СтрШаблон("Ошибка получения описание рабочего процесса, КодВозврата = %1: %2", - КодВозврата, - Кластер_Агент.ВыводКоманды(Ложь)); + ВызватьИсключение СтрШаблон("Ошибка получения описания рабочего процесса, КодВозврата = %1: %2", + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; МассивРезультатов = Кластер_Агент.ВыводКоманды(); @@ -106,7 +117,7 @@ // Процедура заполняет параметры рабочего процесса кластера 1С // // Параметры: -// ДанныеЗаполнения - Соответствие - данные, из которых будут заполнены параметры рабочего процесса +// ДанныеЗаполнения - Соответствие - данные, из которых будут заполнены параметры рабочего процесса // Процедура ЗаполнитьПараметрыПроцесса(ДанныеЗаполнения) @@ -120,37 +131,42 @@ // Процедура получает данные лицензий, выданных рабочим процессом // и сохраняет в локальных переменных // -Процедура ОбновитьДанныеЛицензий() Экспорт +Процедура ОбновитьДанныеЛицензий() - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("process"); - ПараметрыЗапуска.Добавить("info"); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("ИдентификаторПроцесса" , Ид()); + + ПараметрыЛицензий.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - ПараметрыЗапуска.Добавить("--licenses"); + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыЛицензий.ПараметрыКоманды("Описание")); - ПараметрыЗапуска.Добавить(СтрШаблон("--process=%1", Ид())); + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения описания лицензий рабочего процесса, КодВозврата = %1: %2", + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + МассивРезультатов = Кластер_Агент.ВыводКоманды(); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); + Процесс_Лицензии.Заполнить(МассивРезультатов); - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - - Процесс_Лицензии.Заполнить(Кластер_Агент.ВыводКоманды()); + Процесс_Лицензии.УстановитьАктуальность(); КонецПроцедуры // ОбновитьДанныеЛицензий() // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); @@ -159,7 +175,7 @@ // Функция возвращает идентификатор рабочего процесса 1С // // Возвращаемое значение: -// Строка - идентификатор рабочего процесса 1С +// Строка - идентификатор рабочего процесса 1С // Функция Ид() Экспорт @@ -170,7 +186,7 @@ // Функция возвращает адрес сервера рабочего процесса 1С // // Возвращаемое значение: -// Строка - адрес сервера рабочего процесса 1С +// Строка - адрес сервера рабочего процесса 1С // Функция АдресСервера() Экспорт @@ -179,13 +195,13 @@ КонецЕсли; Возврат Процесс_АдресСервера; - + КонецФункции // АдресСервера() // Функция возвращает порт рабочего процесса 1С // // Возвращаемое значение: -// Строка - порт рабочего процесса 1С +// Строка - порт рабочего процесса 1С // Функция ПортСервера() Экспорт @@ -194,17 +210,17 @@ КонецЕсли; Возврат Процесс_ПортСервера; - + КонецФункции // ПортСервера() // Функция возвращает значение параметра рабочего процесса 1С // // Параметры: -// ИмяПоля - Строка - Имя параметра рабочего процесса -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// ИмяПоля - Строка - Имя параметра рабочего процесса +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) // // Возвращаемое значение: -// Произвольный - значение параметра рабочего процесса 1С +// Произвольный - значение параметра рабочего процесса 1С // Функция Получить(ИмяПоля, ОбновитьПринудительно = Ложь) Экспорт @@ -212,31 +228,35 @@ Если НЕ Найти(ВРег("Ид, process"), ВРег(ИмяПоля)) = 0 Тогда Возврат Процесс_Ид; - ИначеЕсли НЕ Найти(ВРег("АдресСервера, host"), ВРег(ИмяПоля)) = 0 Тогда + КонецЕсли; + + Если НЕ Найти(ВРег("АдресСервера, host"), ВРег(ИмяПоля)) = 0 Тогда Возврат Процесс_АдресСервера; - ИначеЕсли НЕ Найти(ВРег("ПортСервера, port"), ВРег(ИмяПоля)) = 0 Тогда + КонецЕсли; + + Если НЕ Найти(ВРег("ПортСервера, port"), ВРег(ИмяПоля)) = 0 Тогда Возврат Процесс_ПортСервера; КонецЕсли; ЗначениеПоля = Процесс_Параметры.Получить(ИмяПоля); Если ЗначениеПоля = Неопределено Тогда - - ОписаниеПараметра = ПараметрыОбъекта("ИмяПоляРАК").Получить(ИмяПоля); + + ОписаниеПараметра = ПараметрыОбъекта("ИмяРАК").Получить(ИмяПоля); Если НЕ ОписаниеПараметра = Неопределено Тогда - ЗначениеПоля = Процесс_Параметры.Получить(ОписаниеПараметра["ИмяПараметра"]); + ЗначениеПоля = Процесс_Параметры.Получить(ОписаниеПараметра["Имя"]); КонецЕсли; КонецЕсли; Возврат ЗначениеПоля; - + КонецФункции // Получить() // Функция возвращает список соединений рабочего процесса 1С // // Возвращаемое значение: -// Соединения - список соединений рабочего процесса 1С +// Соединения - список соединений рабочего процесса 1С // Функция Соединения() Экспорт @@ -247,16 +267,16 @@ // Функция возвращает список лицензий, выданных рабочим процессом 1С // // Возвращаемое значение: -// ОбъектыКластера - список лицензий, выданных рабочим процессом 1С +// ОбъектыКластера - список лицензий, выданных рабочим процессом 1С // Функция Лицензии() Экспорт Если Служебный.ТребуетсяОбновление(Процесс_Лицензии, МоментАктуальности, ПериодОбновления) Тогда - ОбновитьДанные(Истина); + ОбновитьДанныеЛицензий(); КонецЕсли; Возврат Процесс_Лицензии; КонецФункции // Лицензии() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\320\260\320\275\321\201.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\320\260\320\275\321\201.os" index e057f23..f325c4e 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\320\260\320\275\321\201.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\320\260\320\275\321\201.os" @@ -1,4 +1,13 @@ -Перем Сеанс_Ид; // session +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +Перем Сеанс_Ид; // session Перем Сеанс_Параметры; Перем Сеанс_Лицензии; @@ -7,6 +16,7 @@ Перем ИБ_Владелец; Перем ПараметрыОбъекта; +Перем ПараметрыЛицензий; Перем ПериодОбновления; Перем МоментАктуальности; @@ -27,7 +37,8 @@ Возврат; КонецЕсли; - ПараметрыОбъекта = Новый ПараметрыОбъекта("session"); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Сеансы); + ПараметрыЛицензий = Новый КомандыОбъекта("session.license"); Кластер_Агент = АгентКластера; Кластер_Владелец = Кластер; @@ -44,7 +55,7 @@ ПериодОбновления = 60000; - Сеанс_Лицензии = Новый ОбъектыКластера(ЭтотОбъект); + Сеанс_Лицензии = Новый ОбъектыКластера(ЭтотОбъект); КонецПроцедуры // ПриСозданииОбъекта() @@ -52,9 +63,9 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт @@ -76,18 +87,21 @@ // Процедура ОбновитьДанныеСеанса() Экспорт - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера" , Кластер_Владелец.СтрокаАвторизации()); + ПараметрыКоманды.Вставить("ИдентификаторСеанса" , Ид()); - ПараметрыЗапуска.Добавить("session"); - ПараметрыЗапуска.Добавить("info"); + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - ПараметрыЗапуска.Добавить(СтрШаблон("--session=%1", Сеанс_Ид)); + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Описание")); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения описания сеанса, КодВозврата = %1: %2", + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; МассивРезультатов = Кластер_Агент.ВыводКоманды(); @@ -104,44 +118,49 @@ // Процедура ОбновитьДанныеЛицензий() Экспорт - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("ИдентификаторСеанса" , Ид()); + + ПараметрыЛицензий.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - ПараметрыЗапуска.Добавить("session"); - ПараметрыЗапуска.Добавить("info"); + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыЛицензий.ПараметрыКоманды("Описание")); - ПараметрыЗапуска.Добавить("--licenses"); + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения описания лицензий сеанса, КодВозврата = %1: %2", + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + МассивРезультатов = Кластер_Агент.ВыводКоманды(); - ПараметрыЗапуска.Добавить(СтрШаблон("--session=%1", Сеанс_Ид)); + Сеанс_Лицензии.Заполнить(МассивРезультатов); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - - Сеанс_Лицензии.Заполнить(Кластер_Агент.ВыводКоманды()); + Сеанс_Лицензии.УстановитьАктуальность(); КонецПроцедуры // ОбновитьДанныеЛицензий() // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт - Возврат ПараметрыОбъекта.Получить(ИмяПоляКлюча); + Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); КонецФункции // ПараметрыОбъекта() // Функция возвращает идентификатор сеанса 1С // // Возвращаемое значение: -// Строка - идентификатор сеанса 1С +// Строка - идентификатор сеанса 1С // Функция Ид() Экспорт @@ -152,44 +171,44 @@ // Функция возвращает значение параметра сеанса 1С // // Параметры: -// ИмяПоля - Строка - Имя параметра сеанса -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// ИмяПоля - Строка - Имя параметра сеанса +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) // // Возвращаемое значение: -// Произвольный - значение параметра сеанса 1С +// Произвольный - значение параметра сеанса 1С // Функция Получить(ИмяПоля, ОбновитьПринудительно = Ложь) Экспорт ОбновитьДанные(ОбновитьПринудительно); - Если НЕ Найти(ВРег("Ид, process"), ВРег(ИмяПоля)) = 0 Тогда + Если НЕ Найти(ВРег("Ид, session"), ВРег(ИмяПоля)) = 0 Тогда Возврат Сеанс_Ид; КонецЕсли; ЗначениеПоля = Сеанс_Параметры.Получить(ИмяПоля); Если ЗначениеПоля = Неопределено Тогда - - ОписаниеПараметра = ПараметрыОбъекта("ИмяПоляРАК").Получить(ИмяПоля); + + ОписаниеПараметра = ПараметрыОбъекта("ИмяРАК").Получить(ИмяПоля); Если НЕ ОписаниеПараметра = Неопределено Тогда - ЗначениеПоля = Сеанс_Параметры.Получить(ОписаниеПараметра["ИмяПараметра"]); + ЗначениеПоля = Сеанс_Параметры.Получить(ОписаниеПараметра["Имя"]); КонецЕсли; КонецЕсли; Возврат ЗначениеПоля; - + КонецФункции // Получить() // Функция возвращает список лицензий, выданных сеансу 1С // // Возвращаемое значение: -// ОбъектыКластера - список лицензий, выданных сеансу 1С +// ОбъектыКластера - список лицензий, выданных сеансу 1С // Функция Лицензии() Экспорт Если Служебный.ТребуетсяОбновление(Сеанс_Лицензии, МоментАктуальности, ПериодОбновления) Тогда - ОбновитьДанные(Истина); + ОбновитьДанныеЛицензий(); КонецЕсли; Возврат Сеанс_Лицензии; @@ -200,23 +219,25 @@ // Процедура Завершить() Экспорт - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + ПараметрыКоманды.Вставить("ИдентификаторСеанса" , Ид()); - ПараметрыЗапуска.Добавить("session"); - ПараметрыЗапуска.Добавить("terminate"); + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - ПараметрыЗапуска.Добавить(СтрШаблон("--session=%1", Ид())); + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Удалить")); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка завершения сеанса ""%1"": %2", + Ид(), + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); - ОбновитьДанные(Истина); - КонецПроцедуры // Завершить() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\320\260\320\275\321\201\321\213.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\320\260\320\275\321\201\321\213.os" index 5107c1d..fd2767a 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\320\260\320\275\321\201\321\213.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\320\260\320\275\321\201\321\213.os" @@ -1,3 +1,12 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + Перем Кластер_Агент; Перем Кластер_Владелец; Перем ИБ_Владелец; @@ -9,9 +18,9 @@ // Конструктор // // Параметры: -// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера -// Кластер - Кластер - ссылка на родительский объект кластера -// ИБ - ИнформационнаяБаза - ссылка на родительский объект информационной базы +// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера +// Кластер - Кластер - ссылка на родительский объект кластера +// ИБ - ИнформационнаяБаза - ссылка на родительский объект информационной базы // Процедура ПриСозданииОбъекта(АгентКластера, Кластер, ИБ = Неопределено) @@ -19,7 +28,7 @@ Кластер_Владелец = Кластер; ИБ_Владелец = ИБ; - ПараметрыОбъекта = Новый ПараметрыОбъекта("session"); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Сеансы); Элементы = Новый ОбъектыКластера(ЭтотОбъект); @@ -29,9 +38,9 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт @@ -39,29 +48,33 @@ Возврат; КонецЕсли; - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("session"); - ПараметрыЗапуска.Добавить("list"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + Если НЕ ИБ_Владелец = Неопределено Тогда - ПараметрыЗапуска.Добавить(СтрШаблон("--infobase=%1", ИБ_Владелец.Ид())); + ПараметрыКоманды.Вставить("ИдентификаторИБ", ИБ_Владелец.Ид()); КонецЕсли; - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Список")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения списка сеансов, КодВозврата = %1: %2", + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; МассивРезультатов = Кластер_Агент.ВыводКоманды(); - МассивПроцессов = Новый Массив(); + МассивСеансов = Новый Массив(); Для Каждого ТекОписание Из МассивРезультатов Цикл - МассивПроцессов.Добавить(Новый Сеанс(Кластер_Агент, Кластер_Владелец, ИБ_Владелец, ТекОписание)); + МассивСеансов.Добавить(Новый Сеанс(Кластер_Агент, Кластер_Владелец, ИБ_Владелец, ТекОписание)); КонецЦикла; - Элементы.Заполнить(МассивПроцессов); + Элементы.Заполнить(МассивСеансов); Элементы.УстановитьАктуальность(); @@ -70,26 +83,26 @@ // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт - Возврат ПараметрыОбъекта.Получить(ИмяПоляКлюча); + Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); КонецФункции // ПараметрыОбъекта() // Функция возвращает список сеансов // // Параметры: -// Отбор - Структура - Структура отбора сеансов (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Отбор - Структура - Структура отбора сеансов (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Массив - список сеансов +// Массив - список сеансов // Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт @@ -102,11 +115,11 @@ // Функция возвращает список сеансов // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка сеансов, разделенные "," -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ПоляИерархии - Строка - Поля для построения иерархии списка сеансов, разделенные "," +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Соответствие - список сеансов +// Соответствие - список сеансов // Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт @@ -119,7 +132,7 @@ // Функция возвращает количество сеансов в списке // // Возвращаемое значение: -// Число - количество сеансов +// Число - количество сеансов // Функция Количество() Экспорт @@ -134,11 +147,11 @@ // Функция возвращает описание сеанса кластера 1С // // Параметры: -// Сеанс - Строка - Номер сеанса в виде <имя информационной базы>:<номер сеанса> -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Сеанс - Строка - Номер сеанса в виде <имя информационной базы>:<номер сеанса> +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Соответствие - описание сеанса 1С +// Соответствие - описание сеанса 1С // Функция Получить(Знач Сеанс, Знач ОбновитьПринудительно = Ложь) Экспорт @@ -169,4 +182,21 @@ КонецФункции // Получить() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +// Процедура удаляет сеанс +// +// Параметры: +// Сеанс - Сеанс, Строка - Сеанс или номер сеанса в виде <имя информационной базы>:<номер сеанса> +// +Процедура Удалить(Знач Сеанс) Экспорт + + Если ТипЗнч(Сеанс) = Тип("Строка") Тогда + Сеанс = Получить(Сеанс); + КонецЕсли; + + Сеанс.Завершить(); + + ОбновитьДанные(Истина); + +КонецПроцедуры // Удалить() + +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); 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 a421be2..53339a1 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" @@ -1,7 +1,16 @@ -Перем Сервер_Ид; // server -Перем Сервер_Имя; // name -Перем Сервер_АдресАгента; // agent-host -Перем Сервер_ПортАгента; // agent-port +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +Перем Сервер_Ид; // server +Перем Сервер_Имя; // name +Перем Сервер_АдресАгента; // agent-host +Перем Сервер_ПортАгента; // agent-port Перем Сервер_Параметры; Перем Сервер_НазначенияФункциональности; @@ -29,7 +38,7 @@ Возврат; КонецЕсли; - ПараметрыОбъекта = Новый КомандыОбъекта("server"); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Серверы); Кластер_Агент = АгентКластера; Кластер_Владелец = Кластер; @@ -53,9 +62,9 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт @@ -76,8 +85,8 @@ Если НЕ КодВозврата = 0 Тогда ВызватьИсключение СтрШаблон("Ошибка получения описание сервера, КодВозврата = %1: %2", - КодВозврата, - Кластер_Агент.ВыводКоманды(Ложь)); + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; МассивРезультатов = Кластер_Агент.ВыводКоманды(); @@ -95,7 +104,7 @@ // Процедура заполняет параметры сервера кластера 1С // // Параметры: -// ДанныеЗаполнения - Соответствие - данные, из которых будут заполнены параметры сервера +// ДанныеЗаполнения - Соответствие - данные, из которых будут заполнены параметры сервера // Процедура ЗаполнитьПараметрыСервера(ДанныеЗаполнения) @@ -110,13 +119,13 @@ // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); @@ -125,7 +134,7 @@ // Функция возвращает идентификатор сервера 1С // // Возвращаемое значение: -// Строка - идентификатор сервера 1С +// Строка - идентификатор сервера 1С // Функция Ид() Экспорт @@ -136,7 +145,7 @@ // Функция возвращает имя сервера 1С // // Возвращаемое значение: -// Строка - имя сервера 1С +// Строка - имя сервера 1С // Функция Имя() Экспорт @@ -151,7 +160,7 @@ // Функция возвращает адрес сервера 1С // // Возвращаемое значение: -// Строка - адрес сервера 1С +// Строка - адрес сервера 1С // Функция АдресСервера() Экспорт @@ -160,13 +169,13 @@ КонецЕсли; Возврат Сервер_АдресАгента; - + КонецФункции // АдресСервера() // Функция возвращает порт сервера 1С // // Возвращаемое значение: -// Строка - порт сервера 1С +// Строка - порт сервера 1С // Функция ПортСервера() Экспорт @@ -175,13 +184,13 @@ КонецЕсли; Возврат Сервер_ПортАгента; - + КонецФункции // ПортСервера() // Функция возвращает список требований назначения функциональности сервера 1С // // Возвращаемое значение: -// НазначенияФункциональности - список требований назначения функциональности сервера 1С +// НазначенияФункциональности - список требований назначения функциональности сервера 1С // Функция НазначенияФункциональности() Экспорт @@ -190,17 +199,17 @@ КонецЕсли; Возврат Сервер_НазначенияФункциональности; - + КонецФункции // НазначенияФункциональности() // Функция возвращает значение параметра кластера 1С // // Параметры: -// ИмяПоля - Строка - Имя параметра кластера -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// ИмяПоля - Строка - Имя параметра кластера +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) // // Возвращаемое значение: -// Произвольный - значение параметра кластера 1С +// Произвольный - значение параметра кластера 1С // Функция Получить(ИмяПоля, ОбновитьПринудительно = Ложь) Экспорт @@ -219,22 +228,22 @@ ЗначениеПоля = Сервер_Параметры.Получить(ИмяПоля); Если ЗначениеПоля = Неопределено Тогда - - ОписаниеПараметра = ПараметрыОбъекта("ИмяПоляРАК").Получить(ИмяПоля); + + ОписаниеПараметра = ПараметрыОбъекта("ИмяРАК").Получить(ИмяПоля); Если НЕ ОписаниеПараметра = Неопределено Тогда - ЗначениеПоля = Сервер_Параметры.Получить(ОписаниеПараметра["ИмяПараметра"]); + ЗначениеПоля = Сервер_Параметры.Получить(ОписаниеПараметра["Имя"]); КонецЕсли; КонецЕсли; Возврат ЗначениеПоля; - + КонецФункции // Получить() // Процедура изменяет параметры сервера // // Параметры: -// ПараметрыСервера - Структура - новые параметры сервера +// ПараметрыСервера - Структура - новые параметры сервера // Процедура Изменить(Знач ПараметрыСервера = Неопределено) Экспорт @@ -258,8 +267,8 @@ Если НЕ КодВозврата = 0 Тогда ВызватьИсключение СтрШаблон("Ошибка изменения параметров сервера, КодВозврата = %1: %2", - Имя(), - Кластер_Агент.ВыводКоманды(Ложь)); + Имя(), + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); @@ -268,4 +277,4 @@ КонецПроцедуры // Изменить() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); 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\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\320\270.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\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\320\270.os" deleted file mode 100644 index 3419304..0000000 --- "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\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\320\270.os" +++ /dev/null @@ -1,227 +0,0 @@ -Перем Кластер_Агент; -Перем Кластер_Владелец; -Перем Сервер_Владелец; -Перем ПараметрыОбъекта; -Перем Элементы; - -Перем Лог; - -// Конструктор -// -// Параметры: -// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера -// Кластер - Кластер - ссылка на родительский объект кластера -// Сервер - Сервер - ссылка на родительский объект сервера кластера -// -Процедура ПриСозданииОбъекта(АгентКластера, Кластер, Сервер) - - Кластер_Агент = АгентКластера; - Кластер_Владелец = Кластер; - Сервер_Владелец = Сервер; - - ПараметрыОбъекта = Новый ПараметрыОбъекта("rule"); - - Элементы = Новый ОбъектыКластера(ЭтотОбъект); - -КонецПроцедуры // ПриСозданииОбъекта() - -// Процедура получает данные от сервиса администрирования кластера 1С -// и сохраняет в локальных переменных -// -// Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее -// -Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт - - Если НЕ Элементы.ТребуетсяОбновление(ОбновитьПринудительно) Тогда - Возврат; - КонецЕсли; - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("rule"); - ПараметрыЗапуска.Добавить("list"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--server=%1", Сервер_Владелец.Ид())); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - - МассивРезультатов = Кластер_Агент.ВыводКоманды(); - - МассивНазначений = Новый Массив(); - Для Каждого ТекОписание Из МассивРезультатов Цикл - МассивНазначений.Добавить(Новый НазначениеФункциональности(Кластер_Агент, - Кластер_Владелец, - Сервер_Владелец, - ТекОписание)); - КонецЦикла; - - Элементы.Заполнить(МассивНазначений); - - Элементы.УстановитьАктуальность(); - -КонецПроцедуры // ОбновитьДанные() - -// Функция возвращает коллекцию параметров объекта -// -// Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия -// -// Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений -// -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт - - Возврат ПараметрыОбъекта.Получить(ИмяПоляКлюча); - -КонецФункции // ПараметрыОбъекта() - -// Функция возвращает список требований назначения функциональности сервера 1С -// -// Параметры: -// Отбор - Структура - Структура отбора требований -// назначения функциональности (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// -// Возвращаемое значение: -// Массив - список требований назначения функциональности сервера 1С -// -Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт - - СписокНазначений = Элементы.Список(Отбор, ОбновитьПринудительно); - - Возврат СписокНазначений; - -КонецФункции // Список() - -// Функция возвращает список требований назначения функциональности сервера 1С -// -// Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка требований -// назначения функциональности, разделенные "," -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) -// -// Возвращаемое значение: -// Соответствие - список требований назначения функциональности сервера 1С -// <имя поля объекта> - Массив(Соответствие), Соответствие - список требований назначения функциональности -// или следующий уровень -// -Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт - - СписокКластеров = Элементы.ИерархическийСписок(ПоляИерархии, ОбновитьПринудительно); - - Возврат СписокКластеров; - -КонецФункции // ИерархическийСписок() - -// Функция возвращает количество требований назначения функциональности в списке -// -// Возвращаемое значение: -// Число - количество требований назначения функциональности -// -Функция Количество() Экспорт - - Если Элементы = Неопределено Тогда - Возврат 0; - КонецЕсли; - - Возврат Элементы.Количество(); - -КонецФункции // Количество() - -// Функция возвращает описание требования назначения функциональности сервера 1С -// -// Параметры: -// Ид - Строка - Идентификатор требований назначения функциональности -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// -// Возвращаемое значение: -// Соответствие - описание требования назначения функциональности сервера 1С -// -Функция Получить(Знач Ид, Знач ОбновитьПринудительно = Ложь) Экспорт - - Отбор = Новый Соответствие(); - Отбор.Вставить("rule", Ид); - - СписокТребований = Элементы.Список(Отбор, ОбновитьПринудительно); - - Если СписокТребований.Количество() = 0 Тогда - Возврат Неопределено; - КонецЕсли; - - Возврат СписокТребований[0]; - -КонецФункции // Получить() - -// Процедура добавляет новое требование назначения функциональности для сервера 1С -// -// Параметры: -// Позиция - Число - позиция требования назначения функциональности в списке (начиная с 0) -// ПараметрыТребования - Структура - параметры сервера 1С -// -Процедура Добавить(Позиция, ПараметрыТребования = Неопределено) Экспорт - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("rule"); - ПараметрыЗапуска.Добавить("insert"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--server=%1", Сервер_Владелец.Ид())); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - ПараметрыЗапуска.Добавить(СтрШаблон("--position=%1", Позиция)); - - ВремПараметры = ПараметрыОбъекта(); - - Для Каждого ТекЭлемент Из ВремПараметры Цикл - ЗначениеПараметра = Служебный.ПолучитьЗначениеИзСтруктуры(ПараметрыТребования, ТекЭлемент.Ключ, 0); - ПараметрыЗапуска.Добавить(СтрШаблон(ТекЭлемент.Значение.ПараметрКоманды + "=%1", ЗначениеПараметра)); - КонецЦикла; - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - - Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); - - ОбновитьДанные(Истина); - -КонецПроцедуры // Добавить() - -// Процедура удаляет требование назначения функциональности для сервера 1С -// -// Параметры: -// Ид - Строка - Идентификатор требования назначения функциональности -// -Процедура Удалить(Ид) Экспорт - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("rule"); - ПараметрыЗапуска.Добавить("remove"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--rule=%1", Ид)); - - ПараметрыЗапуска.Добавить(СтрШаблон("--server=%1", Сервер_Владелец.Ид())); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - - Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); - - ОбновитьДанные(Истина); - -КонецПроцедуры // Удалить() - -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); 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\320\241\320\265\321\200\320\262\320\265\321\200\321\213.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\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" similarity index 73% rename from "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\320\241\320\265\321\200\320\262\320\265\321\200\321\213.os" rename to "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\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" index a28356d..0ff9b1d 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\320\241\320\265\321\200\320\262\320\265\321\200\321\213.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\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" @@ -1,3 +1,12 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + Перем Кластер_Агент; Перем Кластер_Владелец; Перем ПараметрыОбъекта; @@ -8,15 +17,15 @@ // Конструктор // // Параметры: -// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера -// Кластер - Кластер - ссылка на родительский объект кластера +// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера +// Кластер - Кластер - ссылка на родительский объект кластера // Процедура ПриСозданииОбъекта(АгентКластера, Кластер) Кластер_Агент = АгентКластера; Кластер_Владелец = Кластер; - ПараметрыОбъекта = Новый КомандыОбъекта("server"); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Серверы); Элементы = Новый ОбъектыКластера(ЭтотОбъект); @@ -26,9 +35,9 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт @@ -47,8 +56,8 @@ Если НЕ КодВозврата = 0 Тогда ВызватьИсключение СтрШаблон("Ошибка получения списка серверов кластера, КодВозврата = %1: %2", - КодВозврата, - Кластер_Агент.ВыводКоманды(Ложь)); + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; МассивРезультатов = Кластер_Агент.ВыводКоманды(); @@ -67,13 +76,13 @@ // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); @@ -82,11 +91,11 @@ // Функция возвращает список серверов кластера 1С // // Параметры: -// Отбор - Структура - Структура отбора серверов (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Отбор - Структура - Структура отбора серверов (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Массив - список серверов кластера 1С +// Массив - список серверов кластера 1С // Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт @@ -99,12 +108,12 @@ // Функция возвращает список серверов кластера 1С // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка серверов, разделенные "," -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// ПоляИерархии - Строка - Поля для построения иерархии списка серверов, разделенные "," +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) // // Возвращаемое значение: -// Соответствие - список серверов кластера 1С -// <имя поля объекта> - Массив(Соответствие), Соответствие - список серверов или следующий уровень +// Соответствие - список серверов кластера 1С +// <имя поля объекта> - Массив(Соответствие), Соответствие - список серверов или следующий уровень // Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт @@ -117,7 +126,7 @@ // Функция возвращает количество серверов в списке // // Возвращаемое значение: -// Число - количество серверов +// Число - количество серверов // Функция Количество() Экспорт @@ -136,7 +145,7 @@ // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Соответствие - описание сервера кластера 1С +// Соответствие - описание сервера кластера 1С // Функция Получить(Знач СерверПорт, Знач ОбновитьПринудительно = Ложь) Экспорт @@ -194,8 +203,8 @@ Если НЕ КодВозврата = 0 Тогда ВызватьИсключение СтрШаблон("Ошибка добавления сервера, КодВозврата = %1: %2", - КодВозврата, - Кластер_Агент.ВыводКоманды(Ложь)); + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); @@ -207,7 +216,7 @@ // Процедура удаляет сервер из кластера 1С // // Параметры: -// СерверПорт - Строка - Адрес сервера в виде <сервер>:<порт> +// СерверПорт - Строка - Адрес сервера в виде <сервер>:<порт> // Процедура Удалить(СерверПорт) Экспорт @@ -224,8 +233,8 @@ Если НЕ КодВозврата = 0 Тогда ВызватьИсключение СтрШаблон("Ошибка удаления сервера ""%1"": %2", - Получить(СерверПорт).Имя(), - Кластер_Агент.ВыводКоманды(Ложь)); + Получить(СерверПорт).Имя(), + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); @@ -234,4 +243,4 @@ КонецПроцедуры // Удалить() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); 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\270\321\201\321\213.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\262\320\270\321\201\321\213.os" new file mode 100644 index 0000000..e6d7358 --- /dev/null +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\262\320\270\321\201\321\213.os" @@ -0,0 +1,159 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +Перем Кластер_Агент; +Перем Кластер_Владелец; +Перем ПараметрыОбъекта; +Перем Элементы; +Перем Лог; + +// Конструктор +// +// Параметры: +// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера +// Кластер - Кластер - ссылка на родительский объект кластера +// +Процедура ПриСозданииОбъекта(АгентКластера, Кластер) + + Кластер_Агент = АгентКластера; + Кластер_Владелец = Кластер; + + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Сервисы); + + Элементы = Новый ОбъектыКластера(ЭтотОбъект); + +КонецПроцедуры + +// Процедура получает данные от сервиса администрирования кластера 1С +// и сохраняет в локальных переменных +// +// Параметры: +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее +// +Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт + + Если НЕ Элементы.ТребуетсяОбновление(ОбновитьПринудительно) Тогда + Возврат; + КонецЕсли; + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Список")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения списка сервисов, КодВозврата = %1: %2", + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + МассивРезультатов = Кластер_Агент.ВыводКоманды(); + + Элементы.Заполнить(МассивРезультатов); + + Элементы.УстановитьАктуальность(); + +КонецПроцедуры // ОбновитьДанные() + +// Функция возвращает коллекцию параметров объекта +// +// Параметры: +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия +// +// Возвращаемое значение: +// Соответствие - коллекция параметров объекта, для получения/изменения значений +// +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт + + Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); + +КонецФункции // ПараметрыОбъекта() + +// Функция возвращает список сервисов кластера +// +// Параметры: +// Отбор - Структура - Структура отбора сервисов (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// +// Возвращаемое значение: +// Массив - список сервисов 1С +// +Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт + + Сервисы = Элементы.Список(Отбор, ОбновитьПринудительно); + + Возврат Сервисы; + +КонецФункции // Список() + +// Функция возвращает список сервисов кластера 1С +// +// Параметры: +// ПоляИерархии - Строка - Поля для построения иерархии списка сервисов, разделенные "," +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// +// Возвращаемое значение: +// Соответствие - список сервисов кластера 1С +// <имя поля объекта> - Массив(Соответствие), Соответствие - список сервисов или следующий уровень +// +Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт + + Сервисы = Элементы.ИерархическийСписок(ПоляИерархии, ОбновитьПринудительно); + + Возврат Сервисы; + +КонецФункции // ИерархическийСписок() + +// Функция возвращает количество сервисов в списке +// +// Возвращаемое значение: +// Число - количество сервисов +// +Функция Количество() Экспорт + + Если Элементы = Неопределено Тогда + Возврат 0; + КонецЕсли; + + Возврат Элементы.Количество(); + +КонецФункции // Количество() + +// Функция возвращает описание сервиса кластера 1С +// +// Параметры: +// Имя - Строка - имя сервиса +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// +// Возвращаемое значение: +// Соответствие - описание менеджера кластера 1С +// +Функция Получить(Знач Имя, Знач ОбновитьПринудительно = Ложь) Экспорт + + Отбор = Новый Соответствие(); + Отбор.Вставить("name", Имя); + + Сервисы = Элементы.Список(Отбор, ОбновитьПринудительно); + + Если Сервисы.Количество() = 0 Тогда + Возврат Неопределено; + КонецЕсли; + + Возврат Сервисы[0]; + +КонецФункции // Получить() + +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\320\265.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\320\265.os" index 43f49d9..c44cd7c 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\320\265.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\320\265.os" @@ -1,5 +1,14 @@ -Перем Объект_Ид; -Перем Объект_Параметры; +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +Перем Соединение_Ид; +Перем Соединение_Параметры; Перем ПараметрыОбъекта; Перем Кластер_Агент; @@ -17,7 +26,7 @@ // Параметры: // АгентКластера - АгентКластера - ссылка на родительский объект агента кластера // Кластер - Кластера - ссылка на родительский объект кластера -// Процесс - Процесс - ссылка на родительский объект процесса +// Процесс - Процесс - ссылка на родительский объект процесса // ИБ - ИнформационнаяБаза - ссылка на родительский объект информационной базы // Соединение - Строка, Соответствие - идентификатор или параметры соединения // @@ -28,14 +37,14 @@ ИБ_Владелец = ИБ; Процесс_Владелец = Процесс; - ПараметрыОбъекта = Новый ПараметрыОбъекта("connection"); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Соединения); Если ТипЗнч(Соединение) = Тип("Соответствие") Тогда - Объект_Ид = Соединение["connection"]; - Служебный.ЗаполнитьПараметрыОбъекта(ЭтотОбъект, Объект_Параметры, Соединение); + Соединение_Ид = Соединение["connection"]; + Служебный.ЗаполнитьПараметрыОбъекта(ЭтотОбъект, Соединение_Параметры, Соединение); МоментАктуальности = ТекущаяУниверсальнаяДатаВМиллисекундах(); Иначе - Объект_Ид = Соединение; + Соединение_Ид = Соединение; МоментАктуальности = 0; КонецЕсли; @@ -46,11 +55,11 @@ // Функция возвращает ИД объекта // // Возвращаемое значение: -// Строка - идентификатор объекта +// Строка - идентификатор объекта // Функция Ид() Экспорт - Возврат Объект_Ид; + Возврат Соединение_Ид; КонецФункции // Ид() @@ -58,98 +67,82 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт - Если Служебный.ТребуетсяОбновление(Объект_Параметры, - МоментАктуальности, ПериодОбновления, ОбновитьПринудительно) Тогда - - ОбновитьДанныеОбъекта(); - + Если НЕ Служебный.ТребуетсяОбновление(Соединение_Параметры, + МоментАктуальности, ПериодОбновления, ОбновитьПринудительно) Тогда + Возврат; КонецЕсли; + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); - МоментАктуальности = ТекущаяУниверсальнаяДатаВМиллисекундах(); - -КонецПроцедуры // ОбновитьДанные() + ПараметрыКоманды.Вставить("ИдентификаторСоединения", Ид()); -// Процедура получает данные соединения от сервиса администрирования кластера 1С -// и сохраняет в локальных переменных -// -Процедура ОбновитьДанныеОбъекта() Экспорт - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("connection"); - ПараметрыЗапуска.Добавить("list"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - Если НЕ Процесс_Владелец = Неопределено Тогда - ПараметрыЗапуска.Добавить(СтрШаблон("--process=%1", Процесс_Владелец.Получить("process"))); - КонецЕсли; - - Если НЕ ИБ_Владелец = Неопределено Тогда - ПараметрыЗапуска.Добавить(СтрШаблон("--infobase=%1", ИБ_Владелец.Ид())); - ПараметрыЗапуска.Добавить(СтрШаблон(ИБ_Владелец.СтрокаАвторизации())); + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Описание")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения описания соединения, КодВозврата = %1: %2", + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); КонецЕсли; - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); МассивРезультатов = Кластер_Агент.ВыводКоманды(); - Если МассивРезультатов.Количество() = 0 Тогда - Возврат; - КонецЕсли; - - Служебный.ЗаполнитьПараметрыОбъекта(ЭтотОбъект, Объект_Параметры, МассивРезультатов[0]); + Служебный.ЗаполнитьПараметрыОбъекта(ЭтотОбъект, Соединение_Параметры, МассивРезультатов[0]); + МоментАктуальности = ТекущаяУниверсальнаяДатаВМиллисекундах(); + КонецПроцедуры // ОбновитьДанныеОбъекта() // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт - Возврат ПараметрыОбъекта.Получить(ИмяПоляКлюча); + Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); КонецФункции // ПараметрыОбъекта() // Функция возвращает значение параметра соединения 1С // // Параметры: -// ИмяПоля - Строка - Имя параметра соединения -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// ИмяПоля - Строка - Имя параметра соединения +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) // // Возвращаемое значение: -// Произвольный - значение параметра соединения 1С +// Произвольный - значение параметра соединения 1С // Функция Получить(ИмяПоля, ОбновитьПринудительно = Ложь) Экспорт ОбновитьДанные(ОбновитьПринудительно); - Если НЕ Найти(ВРег("Ид, process"), ВРег(ИмяПоля)) = 0 Тогда - Возврат Объект_Ид; + Если НЕ Найти(ВРег("Ид, connection"), ВРег(ИмяПоля)) = 0 Тогда + Возврат Соединение_Ид; КонецЕсли; - ЗначениеПоля = Объект_Параметры.Получить(ИмяПоля); + ЗначениеПоля = Соединение_Параметры.Получить(ИмяПоля); Если ЗначениеПоля = Неопределено Тогда - - ОписаниеПараметра = ПараметрыОбъекта("ИмяПоляРАК").Получить(ИмяПоля); + + ОписаниеПараметра = ПараметрыОбъекта("ИмяРАК").Получить(ИмяПоля); Если НЕ ОписаниеПараметра = Неопределено Тогда - ЗначениеПоля = Объект_Параметры.Получить(ОписаниеПараметра["ИмяПараметра"]); + ЗначениеПоля = Соединение_Параметры.Получить(ОписаниеПараметра["Имя"]); КонецЕсли; КонецЕсли; @@ -161,33 +154,36 @@ // Процедура Отключить() Экспорт - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); - ПараметрыЗапуска.Добавить("connection"); - ПараметрыЗапуска.Добавить("list"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - Если НЕ Процесс_Владелец = Неопределено Тогда - ПараметрыЗапуска.Добавить(СтрШаблон("--process=%1", Процесс_Владелец.Получить("process"))); - КонецЕсли; + ПараметрыКоманды.Вставить("ИдентификаторПроцесса" , Процесс_Владелец.Ид()); + ПараметрыКоманды.Вставить("ИдентификаторСоединения", Ид()); ОтборИБ = Новый Соответствие(); - ОтборИБ.Вставить("infobase", ИБ_Владелец.Ид()); + ОтборИБ.Вставить("infobase", Получить("infobase")); СписокИБ = Кластер_Владелец.ИнформационныеБазы().Список(ОтборИБ); Если НЕ СписокИБ.Количество() = 0 Тогда - ПараметрыЗапуска.Добавить(СтрШаблон(СписокИБ[0].СтрокаАвторизации())); + ПараметрыКоманды.Вставить("СтрокаАвторизацииИБ", СписокИБ[0].СтрокаАвторизации()); КонецЕсли; - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Отключить")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка удаления соединения, КодВозврата = %1: %2", + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); ОбновитьДанные(Истина); КонецПроцедуры // Отключить() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); \ No newline at end of file +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); \ No newline at end of file diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217.os" index 326fbb5..c839b0d 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217.os" @@ -1,3 +1,12 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + Перем Кластер_Агент; Перем Кластер_Владелец; Перем Процесс_Владелец; @@ -11,19 +20,19 @@ // Конструктор // // Параметры: -// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера -// Кластер - Кластер - ссылка на родительский объект кластера -// Процесс - РабочийПроцесс - ссылка на родительский объект рабочего процесса -// ИБ - ИнформационнаяБаза - ссылка на родительский объект информационной базы +// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера +// Кластер - Кластер - ссылка на родительский объект кластера +// Процесс - РабочийПроцесс - ссылка на родительский объект рабочего процесса +// ИБ - ИнформационнаяБаза - ссылка на родительский объект информационной базы // Процедура ПриСозданииОбъекта(АгентКластера, Кластер, Процесс = Неопределено, ИБ = Неопределено) - Кластер_Агент = АгентКластера; - Кластер_Владелец = Кластер; - Процесс_Владелец = Процесс; - ИБ_Владелец = ИБ; + Кластер_Агент = АгентКластера; + Кластер_Владелец = Кластер; + Процесс_Владелец = Процесс; + ИБ_Владелец = ИБ; - ПараметрыОбъекта = Новый ПараметрыОбъекта("connection"); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Соединения); Элементы = Новый ОбъектыКластера(ЭтотОбъект); @@ -33,9 +42,9 @@ // и сохраняет в локальных переменных // // Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее // Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт @@ -43,31 +52,39 @@ Возврат; КонецЕсли; - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("connection"); - ПараметрыЗапуска.Добавить("list"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + Если НЕ Процесс_Владелец = Неопределено Тогда - ПараметрыЗапуска.Добавить(СтрШаблон("--process=%1", Процесс_Владелец.Получить("process"))); + ПараметрыКоманды.Вставить("ИдентификаторПроцесса", Процесс_Владелец.Ид()); КонецЕсли; Если НЕ ИБ_Владелец = Неопределено Тогда - ПараметрыЗапуска.Добавить(СтрШаблон("--infobase=%1", ИБ_Владелец.Ид())); - ПараметрыЗапуска.Добавить(СтрШаблон(ИБ_Владелец.СтрокаАвторизации())); + ПараметрыКоманды.Вставить("ИдентификаторИБ", ИБ_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииИБ", ИБ_Владелец.СтрокаАвторизации()); КонецЕсли; - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Список")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения списка соединений, КодВозврата = %1: %2", + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; МассивРезультатов = Кластер_Агент.ВыводКоманды(); МассивПроцессов = Новый Массив(); Для Каждого ТекОписание Из МассивРезультатов Цикл - МассивПроцессов.Добавить(Новый Соединение(Кластер_Агент, Кластер_Владелец, ИБ_Владелец, ТекОписание, Процесс_Владелец)); + МассивПроцессов.Добавить(Новый Соединение(Кластер_Агент, + Кластер_Владелец, + ИБ_Владелец, + ТекОписание, + Процесс_Владелец)); КонецЦикла; Элементы.Заполнить(МассивПроцессов); @@ -78,26 +95,26 @@ // Функция возвращает коллекцию параметров объекта // // Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений +// Соответствие - коллекция параметров объекта, для получения/изменения значений // -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт - Возврат ПараметрыОбъекта.Получить(ИмяПоляКлюча); + Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); КонецФункции // ПараметрыОбъекта() // Функция возвращает список соединений // // Параметры: -// Отбор - Структура - Структура отбора соединений (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Отбор - Структура - Структура отбора соединений (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Массив - список соединений +// Массив - список соединений // Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт @@ -110,11 +127,11 @@ // Функция возвращает список соединений // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка соединений, разделенные "," -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ПоляИерархии - Строка - Поля для построения иерархии списка соединений, разделенные "," +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Соответствие - список соединений +// Соответствие - список соединений // Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт @@ -127,7 +144,7 @@ // Функция возвращает количество соединений в списке // // Возвращаемое значение: -// Число - количество соединений +// Число - количество соединений // Функция Количество() Экспорт @@ -142,11 +159,11 @@ // Функция возвращает описание соединения // // Параметры: -// Номер - Структура - Номер соединения -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// Номер - Структура - Номер соединения +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Соответствие - описание соединения +// Соответствие - описание соединения // Функция Получить(Знач Номер, Знач ОбновитьПринудительно = Ложь) Экспорт @@ -162,7 +179,7 @@ // Процедура отключает соединение // // Параметры: -// Номер - Структура - Номер соединения +// Номер - Структура - Номер соединения // Процедура Отключить(Знач Номер) Экспорт @@ -172,27 +189,10 @@ Возврат; КонецЕсли; - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("connection"); - ПараметрыЗапуска.Добавить("list"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - ПараметрыЗапуска.Добавить(СтрШаблон("--process=%1", Соединение.Получить("process"))); - - ОтборИБ = Новый Соответствие(); - ОтборИБ.Вставить("infobase", Соединение.Получить("infobase")); - - СписокИБ = Кластер_Владелец.ИнформационныеБазы().Список(ОтборИБ); - Если НЕ СписокИБ.Количество() = 0 Тогда - ПараметрыЗапуска.Добавить(СтрШаблон(СписокИБ[0].СтрокаАвторизации())); - КонецЕсли; + Соединение.Отключить(); - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); + ОбновитьДанные(Истина); КонецПроцедуры // Отключить() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\237\320\276\321\202\321\200\320\265\320\261\320\273\320\265\320\275\320\270\321\217\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\237\320\276\321\202\321\200\320\265\320\261\320\273\320\265\320\275\320\270\321\217\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" deleted file mode 100644 index 86a73de..0000000 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\237\320\276\321\202\321\200\320\265\320\261\320\273\320\265\320\275\320\270\321\217\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" +++ /dev/null @@ -1,212 +0,0 @@ -Перем Счетчик_Имя; -Перем Счетчик_Параметры; -Перем Счетчик_ДлительностьСбора; -Перем Счетчик_Значения; - -Перем Кластер_Агент; -Перем Кластер_Владелец; - -Перем ПараметрыОбъекта; -Перем ПериодОбновления; -Перем МоментАктуальности; - -Перем Лог; - -// Конструктор -// -// Параметры: -// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера -// Кластер - Кластер - ссылка на родительский объект кластера -// Счетчик - Строка, Соответствие - имя счетчика потребления ресурсов в кластере 1С -// или параметры счетчика потребления ресурсов -// -Процедура ПриСозданииОбъекта(АгентКластера, Кластер, Счетчик) - - Если НЕ ЗначениеЗаполнено(Счетчик) Тогда - Возврат; - КонецЕсли; - - ПараметрыОбъекта = Новый КомандыОбъекта("counter"); - - Кластер_Агент = АгентКластера; - Кластер_Владелец = Кластер; - - Если ТипЗнч(Счетчик) = Тип("Соответствие") Тогда - Счетчик_Имя = Счетчик["name"]; - ЗаполнитьПараметрыСчетчика(Счетчик); - МоментАктуальности = ТекущаяУниверсальнаяДатаВМиллисекундах(); - Иначе - Счетчик_Имя = Счетчик; - МоментАктуальности = 0; - КонецЕсли; - - ПериодОбновления = 60000; - - Счетчик_Значения = Новый ОбъектыКластера(ЭтотОбъект); - -КонецПроцедуры // ПриСозданииОбъекта() - -// Процедура получает данные от сервиса администрирования кластера 1С -// и сохраняет в локальных переменных -// -// Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее -// -Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт - - Если НЕ Служебный.ТребуетсяОбновление(Счетчик_Параметры, - МоментАктуальности, ПериодОбновления, ОбновитьПринудительно) Тогда - Возврат; - КонецЕсли; - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("counter"); - ПараметрыЗапуска.Добавить("info"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--counter=%1", Имя())); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - - МассивРезультатов = Кластер_Агент.ВыводКоманды(); - Если МассивРезультатов.Количество() = 0 Тогда - Возврат; - КонецЕсли; - ЗаполнитьПараметрыСчетчика(МассивРезультатов[0]); - МоментАктуальности = ТекущаяУниверсальнаяДатаВМиллисекундах(); - -КонецПроцедуры // ОбновитьДанные() - -// Процедура заполняет параметры счетчика потребления ресурсов -// -// Параметры: -// ДанныеЗаполнения - Соответствие - данные, из которых будут заполнены параметры счетчика потребления ресурсов -// -Процедура ЗаполнитьПараметрыСчетчика(ДанныеЗаполнения) - - Служебный.ЗаполнитьПараметрыОбъекта(ЭтотОбъект, Счетчик_Параметры, ДанныеЗаполнения); - -КонецПроцедуры // ЗаполнитьПараметрыСчетчика() - -// Функция возвращает коллекцию параметров объекта -// -// Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия -// -// Возвращаемое значение: -// Соответствие - коллекция параметров объекта, для получения/изменения значений -// -Функция ПараметрыОбъекта(ИмяПоляКлюча = "ИмяПараметра") Экспорт - - Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); - -КонецФункции // ПараметрыОбъекта() - -// Функция возвращает имя счетчика потребления ресурсов -// -// Возвращаемое значение: -// Строка - имя счетчика потребления ресурсов -// -Функция Имя() Экспорт - - Возврат Счетчик_Имя; - -КонецФункции // Имя() - -// Функция возвращает значение параметра счетчика потребления ресурсов кластера 1С -// -// Параметры: -// ИмяПоля - Строка - Имя параметра кластера -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) -// -// Возвращаемое значение: -// Произвольный - значение параметра счетчика потребления ресурсов кластера 1С -// -Функция Получить(ИмяПоля, ОбновитьПринудительно = Ложь) Экспорт - - ОбновитьДанные(ОбновитьПринудительно); - - Если НЕ Найти(ВРЕг("Имя, name"), ВРег(ИмяПоля)) = 0 Тогда - Возврат Счетчик_Имя; - КонецЕсли; - - ЗначениеПоля = Счетчик_Параметры.Получить(ИмяПоля); - - Если ЗначениеПоля = Неопределено Тогда - - ОписаниеПараметра = ПараметрыОбъекта("ИмяПоляРАК").Получить(ИмяПоля); - - Если НЕ ОписаниеПараметра = Неопределено Тогда - ЗначениеПоля = Счетчик_Параметры.Получить(ОписаниеПараметра["ИмяПараметра"]); - КонецЕсли; - КонецЕсли; - - Возврат ЗначениеПоля; - -КонецФункции // Получить() - - -// Процедура изменяет параметры счетчика потребления ресурсов -// -// Параметры: -// ПараметрыСчетчика - Структура - новые параметры счетчика потребления ресурсов -// -Процедура Изменить(Знач ПараметрыСчетчика = Неопределено) Экспорт - - Если НЕ ТипЗнч(ПараметрыСчетчика) = Тип("Соответствие") Тогда - ПараметрыСчетчика = Новый Соответствие(); - КонецЕсли; - - ПараметрыКоманды = Новый Соответствие(); - ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); - ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); - ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); - ПараметрыКоманды.Вставить("Имя", Счетчик_Имя); - - Для Каждого ТекЭлемент Из ПараметрыСчетчика Цикл - ПараметрыКоманды.Вставить(ТекЭлемент.Ключ, ТекЭлемент.Значение); - КонецЦикла; - - ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - - КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Изменить")); - - Если НЕ КодВозврата = 0 Тогда - ВызватьИсключение СтрШаблон("Ошибка изменения параметров счетчика, КодВозврата = %1: %2", - Имя(), - Кластер_Агент.ВыводКоманды(Ложь)); - КонецЕсли; - - Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); - ОбновитьДанные(Истина); - -КонецПроцедуры // Изменить() - -Функция Значения() Экспорт - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Кластер_Агент.СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("counter"); - ПараметрыЗапуска.Добавить(СтрШаблон("--counter=%1", Имя())); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Владелец.Ид())); - ПараметрыЗапуска.Добавить(Кластер_Владелец.СтрокаАвторизации()); - - ПараметрыЗапуска.Добавить("values"); - - Кластер_Агент.ВыполнитьКоманду(ПараметрыЗапуска); - - Счетчик_Значения.Заполнить(Кластер_Агент.ВыводКоманды()); - - Возврат Счетчик_Значения; - -КонецФункции - -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" new file mode 100644 index 0000000..c55694b --- /dev/null +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" @@ -0,0 +1,307 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +Перем Счетчик_Имя; +Перем Счетчик_Параметры; +Перем Счетчик_ДлительностьСбора; +Перем Счетчик_Значения; + +Перем Кластер_Агент; +Перем Кластер_Владелец; + +Перем ПараметрыОбъекта; +Перем ПараметрыЗначений; + +Перем ПериодОбновления; +Перем МоментАктуальности; + +Перем Лог; + +// Конструктор +// +// Параметры: +// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера +// Кластер - Кластер - ссылка на родительский объект кластера +// Счетчик - Строка, Соответствие - имя счетчика потребления ресурсов в кластере 1С +// или параметры счетчика потребления ресурсов +// +Процедура ПриСозданииОбъекта(АгентКластера, Кластер, Счетчик) + + Если НЕ ЗначениеЗаполнено(Счетчик) Тогда + Возврат; + КонецЕсли; + + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.СчетчикиРесурсов); + + Кластер_Агент = АгентКластера; + Кластер_Владелец = Кластер; + + Если ТипЗнч(Счетчик) = Тип("Соответствие") Тогда + Счетчик_Имя = Счетчик["name"]; + ЗаполнитьПараметрыСчетчика(Счетчик); + МоментАктуальности = ТекущаяУниверсальнаяДатаВМиллисекундах(); + Иначе + Счетчик_Имя = Счетчик; + МоментАктуальности = 0; + КонецЕсли; + + ПериодОбновления = 60000; + + Счетчик_Значения = Новый ОбъектыКластера(ЭтотОбъект); + +КонецПроцедуры // ПриСозданииОбъекта() + +// Процедура получает данные от сервиса администрирования кластера 1С +// и сохраняет в локальных переменных +// +// Параметры: +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее +// +Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт + + Если Служебный.ТребуетсяОбновление(Счетчик_Параметры, + МоментАктуальности, ПериодОбновления, ОбновитьПринудительно) Тогда + ОбновитьДанныеСчетчика(); + КонецЕсли; + + Если Счетчик_Значения.ТребуетсяОбновление(ОбновитьПринудительно) Тогда + ОбновитьДанныеЗначений(); + КонецЕсли; + +КонецПроцедуры // ОбновитьДанные() + +// Процедура получает данные счетчика потребления ресурсов от сервиса администрирования кластера 1С +// и сохраняет в локальных переменных +// +Процедура ОбновитьДанныеСчетчика() Экспорт + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + ПараметрыКоманды.Вставить("ИмяСчетчика", Имя()); + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Описание")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения описания счетчика потребления ресурсов ""%1"", КодВозврата = %2: %3", + Имя(), + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + МассивРезультатов = Кластер_Агент.ВыводКоманды(); + + ЗаполнитьПараметрыСчетчика(МассивРезультатов[0]); + + МоментАктуальности = ТекущаяУниверсальнаяДатаВМиллисекундах(); + +КонецПроцедуры // ОбновитьДанные() + +// Процедура получает значения счетчика потребления ресурсов +// и сохраняет в локальных переменных +// +// Параметры: +// Отбор - отбор значений счетчика потребления ресурсов +// +Процедура ОбновитьДанныеЗначений(Знач Отбор = "") Экспорт + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + + ПараметрыКоманды.Вставить("ИмяСчетчика" , Имя()); + Если ЗначениеЗаполнено(Отбор) Тогда + ПараметрыКоманды.Вставить("Отбор" , Отбор); + КонецЕсли; + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Значения")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения значений счетчика потребления ресурсов ""%1"" + |с отбором ""%2"", КодВозврата = %3: %4", + Имя(), + ?(ЗначениеЗаполнено(Отбор), Отбор, "<без отбора>"), + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + МассивРезультатов = Кластер_Агент.ВыводКоманды(); + + Счетчик_Значения.Заполнить(МассивРезультатов); + + Счетчик_Значения.УстановитьАктуальность(); + +КонецПроцедуры // ОбновитьДанныеЗначений() + +// Процедура заполняет параметры счетчика потребления ресурсов +// +// Параметры: +// ДанныеЗаполнения - Соответствие - данные, из которых будут заполнены параметры счетчика потребления ресурсов +// +Процедура ЗаполнитьПараметрыСчетчика(ДанныеЗаполнения) + + Служебный.ЗаполнитьПараметрыОбъекта(ЭтотОбъект, Счетчик_Параметры, ДанныеЗаполнения); + +КонецПроцедуры // ЗаполнитьПараметрыСчетчика() + +// Функция возвращает коллекцию параметров объекта +// +// Параметры: +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия +// +// Возвращаемое значение: +// Соответствие - коллекция параметров объекта, для получения/изменения значений +// +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт + + Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); + +КонецФункции // ПараметрыОбъекта() + +// Функция возвращает имя счетчика потребления ресурсов +// +// Возвращаемое значение: +// Строка - имя счетчика потребления ресурсов +// +Функция Имя() Экспорт + + Возврат Счетчик_Имя; + +КонецФункции // Имя() + +// Функция возвращает значение параметра счетчика потребления ресурсов кластера 1С +// +// Параметры: +// ИмяПоля - Строка - Имя параметра кластера +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// +// Возвращаемое значение: +// Произвольный - значение параметра счетчика потребления ресурсов кластера 1С +// +Функция Получить(ИмяПоля, ОбновитьПринудительно = Ложь) Экспорт + + ОбновитьДанные(ОбновитьПринудительно); + + Если НЕ Найти(ВРЕг("Имя, name"), ВРег(ИмяПоля)) = 0 Тогда + Возврат Счетчик_Имя; + КонецЕсли; + + ЗначениеПоля = Счетчик_Параметры.Получить(ИмяПоля); + + Если ЗначениеПоля = Неопределено Тогда + + ОписаниеПараметра = ПараметрыОбъекта("ИмяРАК").Получить(ИмяПоля); + + Если НЕ ОписаниеПараметра = Неопределено Тогда + ЗначениеПоля = Счетчик_Параметры.Получить(ОписаниеПараметра["Имя"]); + КонецЕсли; + КонецЕсли; + + Возврат ЗначениеПоля; + +КонецФункции // Получить() + + +// Процедура изменяет параметры счетчика потребления ресурсов +// +// Параметры: +// ПараметрыСчетчика - Структура - новые параметры счетчика потребления ресурсов +// +Процедура Изменить(Знач ПараметрыСчетчика = Неопределено) Экспорт + + Если НЕ ТипЗнч(ПараметрыСчетчика) = Тип("Соответствие") Тогда + ПараметрыСчетчика = Новый Соответствие(); + КонецЕсли; + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + + ПараметрыКоманды.Вставить("Имя" , Имя()); + + Для Каждого ТекЭлемент Из ПараметрыСчетчика Цикл + ПараметрыКоманды.Вставить(ТекЭлемент.Ключ, ТекЭлемент.Значение); + КонецЦикла; + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Изменить")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка изменения параметров счетчика, КодВозврата = %1: %2", + Имя(), + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); + ОбновитьДанные(Истина); + +КонецПроцедуры // Изменить() + +// Функция возвращает значения счетчика потребления ресурсов +// +// Параметры: +// Отбор - отбор значений счетчика потребления ресурсов +// +// Возвращаемое значение: +// ОбъектыКластера - значения счетчика потребления ресурсов +// +Функция Значения(Знач Отбор = "") Экспорт + + Если Счетчик_Значения.ТребуетсяОбновление(ЗначениеЗаполнено(Отбор)) Тогда + ОбновитьДанныеЗначений(Отбор); + КонецЕсли; + + Возврат Счетчик_Значения; + +КонецФункции // Значения() + +// Процедура удаляет счетчик потребления ресурсов из кластера 1С +// +// Параметры: +// Имя - Строка - Имя счетчик потребления ресурсов +// +Процедура Удалить(Имя) Экспорт + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + ПараметрыКоманды.Вставить("ИмяСчетчика" , Имя()); + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Отключить")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка удаления счетчика потребления ресурсов ""%1"", КодВозврата = %2: %3", + Имя(), + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); + + ОбновитьДанные(Истина); + +КонецПроцедуры // Удалить() + +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" new file mode 100644 index 0000000..8a3b073 --- /dev/null +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" @@ -0,0 +1,225 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +Перем Кластер_Агент; +Перем Кластер_Владелец; +Перем ПараметрыОбъекта; +Перем Элементы; + +Перем Лог; + +// Конструктор +// +// Параметры: +// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера +// Кластер - Кластер - ссылка на родительский объект кластера +// +Процедура ПриСозданииОбъекта(АгентКластера, Кластер) + + Кластер_Агент = АгентКластера; + Кластер_Владелец = Кластер; + + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.СчетчикиРесурсов); + + Элементы = Новый ОбъектыКластера(ЭтотОбъект); + +КонецПроцедуры // ПриСозданииОбъекта() + +// Процедура получает данные от сервиса администрирования кластера 1С +// и сохраняет в локальных переменных +// +// Параметры: +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее +// +Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт + + Если НЕ Элементы.ТребуетсяОбновление(ОбновитьПринудительно) Тогда + Возврат; + КонецЕсли; + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Список")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения списка счетчиков ресурсов, КодВозврата = %1: %2", + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + МассивРезультатов = Кластер_Агент.ВыводКоманды(); + + МассивСчетчиков = Новый Массив(); + Для Каждого ТекОписание Из МассивРезультатов Цикл + МассивСчетчиков.Добавить(Новый СчетчикРесурсов(Кластер_Агент, Кластер_Владелец, ТекОписание)); + КонецЦикла; + + Элементы.Заполнить(МассивСчетчиков); + + Элементы.УстановитьАктуальность(); + +КонецПроцедуры // ОбновитьДанные() + +// Функция возвращает коллекцию параметров объекта +// +// Параметры: +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия +// +// Возвращаемое значение: +// Соответствие - коллекция параметров объекта, для получения/изменения значений +// +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт + + Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); + +КонецФункции // ПараметрыОбъекта() + +// Функция возвращает список счетчиков потребления ресурсов кластера 1С +// +// Параметры: +// Отбор - Структура - Структура отбора счетчиков потребления ресурсов (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// +// Возвращаемое значение: +// Массив - список счетчиков потребления ресурсов кластера 1С +// +Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь) Экспорт + + СписокСчетчиков = Элементы.Список(Отбор, ОбновитьПринудительно); + + Возврат СписокСчетчиков; + +КонецФункции // Список() + +// Функция возвращает счетчиков потребления ресурсов кластера 1С +// +// Параметры: +// ПоляИерархии - Строка - Поля для построения иерархии списка счетчиков потребления ресурсов, +// разделенные "," +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// +// Возвращаемое значение: +// Соответствие - список счетчиков потребления ресурсов кластера 1С +// <имя поля объекта> - Массив(Соответствие), Соответствие - список счетчиков потребления ресурсов +// или следующий уровень +// +Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь) Экспорт + + СписокСчетчиков = Элементы.ИерархическийСписок(ПоляИерархии, ОбновитьПринудительно); + + Возврат СписокСчетчиков; + +КонецФункции // ИерархическийСписок() + +// Функция возвращает количество счетчиков потребления ресурсов в списке +// +// Возвращаемое значение: +// Число - количество счетчиков потребления ресурсов +// +Функция Количество() Экспорт + + Если Элементы = Неопределено Тогда + Возврат 0; + КонецЕсли; + + Возврат Элементы.Количество(); + +КонецФункции // Количество() + +// Функция возвращает описание счетчика потребления ресурсов кластера 1С +// +// Параметры: +// Имя - Строка - Имя счетчика потребления ресурсов +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// +// Возвращаемое значение: +// Соответствие - описание счетчика потребления ресурсов кластера 1С +// +Функция Получить(Знач Имя, Знач ОбновитьПринудительно = Ложь) Экспорт + + ОбновитьДанные(ОбновитьПринудительно); + + Отбор = Новый Соответствие(); + Отбор.Вставить("name", Имя); + + СписокСчетчиков = Элементы.Список(Отбор, ОбновитьПринудительно); + + Если СписокСчетчиков.Количество() = 0 Тогда + Возврат Неопределено; + КонецЕсли; + + Возврат СписокСчетчиков[0]; + +КонецФункции // Получить() + +// Процедура добавляет новый счетчик потребления ресурсов в кластер 1С +// +// Параметры: +// Имя - Строка - имя счетчика потребления ресурсов 1С +// ПараметрыСчетчика - Структура - параметры счетчика потребления ресурсов 1С +// +Процедура Добавить(Имя, ПараметрыСчетчика = Неопределено) Экспорт + + Если НЕ ТипЗнч(ПараметрыСчетчика) = Тип("Структура") Тогда + ПараметрыСчетчика = Новый Структура(); + КонецЕсли; + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + ПараметрыКоманды.Вставить("ИмяСчетчика" , Имя); + + Для Каждого ТекЭлемент Из ПараметрыСчетчика Цикл + ПараметрыКоманды.Вставить(ТекЭлемент.Ключ, ТекЭлемент.Значение); + КонецЦикла; + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды("Изменить")); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка добавления счетчика потребления ресурсов ""%1"": %2", + Имя, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + Лог.Отладка(Кластер_Агент.ВыводКоманды(Ложь)); + + ОбновитьДанные(Истина); + +КонецПроцедуры // Добавить() + +// Процедура удаляет счетчик потребления ресурсов +// +// Параметры: +// Имя - Строка - Имя счетчика потребления ресурсов +// +Процедура Удалить(Знач Имя) Экспорт + + Если ТипЗнч(Имя) = Тип("Строка") Тогда + Счетчик = Получить(Имя); + КонецЕсли; + + Счетчик.Удалить(); + + ОбновитьДанные(Истина); + +КонецПроцедуры // Удалить() + +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); diff --git "a/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\321\217.json" "b/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\321\217.json" new file mode 100644 index 0000000..ced7c0f --- /dev/null +++ "b/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\321\217.json" @@ -0,0 +1,143 @@ +{ + "РежимыАдминистрирования":{ + "Агент" : "agent", + "Кластеры" : "cluster", + "Менеджеры" : "manager", + "Серверы" : "server", + "РабочиеПроцессы" : "process", + "Сервисы" : "service", + "ИБ" : "infobase", + "Соединения" : "connection", + "Сеансы" : "session", + "Блокировки" : "lock", + "НазначенияФункциональности" : "rule", + "ПрофилиБезопасности" : "profile", + "СчетчикиРесурсов" : "counter", + "ОграниченияРесурсов" : "limit" + }, + "ВариантыИспользованияРабочегоСервера":{ + "Главный" : "main", + "Обычный" : "normal" + }, + "ВариантыИспользованияМенеджераКластера":{ + "Обычный" : "normal" + }, + "ВариантыРазмещенияСервисов":{ + "ВОтдельныхМенеджерах" : "all", + "ВОдномМенеджере" : "none" + }, + "СостоянияВыключателя":{ + "Включено" : "on", + "Выключено" : "off" + }, + "ДаНет":{ + "Да" : "yes", + "Нет" : "no" + }, + "ПраваДоступа":{ + "Разрешено" : "allow", + "Запрещено" : "deny" + }, + "РежимыРаспределенияНагрузки":{ + "ПоПамяти" : "memory", + "ПоПроизводительности": "performance" + }, + "СпособыАвторизации":{ + "Пароль" : "pwd", + "ОС" : "os", + "ПарольИОС" : "pwd|os" + }, + "ТипыСУБД":{ + "MSSQLServer" : "MSSQLServer", + "PostgreSQL" : "PostgreSQL", + "IBMDB2" : "IBMDB2", + "OracleDatabase" : "OracleDatabase" + }, + "Использование":{ + "Использовать" : "use" + }, + "ТипыНазначенияФункциональности":{ + "Авто" : "auto", + "Назначать" : "always", + "НеНазначать" : "never" + }, + "ОбъектыНазначенияФункциональности":{ + "ЛюбойОбъект" : "", + "КлиентскиеСоединения" : "Connection", + "ОбновлениеКонфигураций" : "DataBaseConfigurationUpdateService", + "ЖурналРегистрации" : "EventLogService", + "ПровайдерOpenID" : "OpenID2ProviderContextService", + "ПолнотекстовыйПоиск" : "FulltextSearchService", + "ПользовательскиеНастройки" : "SettingsService", + "ТранзакционныеБлокировки" : "TransactionLockService", + "ВнешнееУправлениеСеансами" : "ExternalSessionManagerService", + "ВнешниеИсточникиXML" : "ExternalDataSourceXMLAService", + "Тестирование" : "ClientTestingService", + "Лицензирование" : "LicenseService", + "ДопФункцииКластера" : "AuxiliaryService", + "Время" : "TimestampService", + "БлокировкиОбъектов" : "DataEditLockService", + "СеансовыеДанные" : "SessionDataService", + "Задания" : "JobService", + "Нумерация" : "NumerationService", + "ПовторноеИспользованиеСеансов" : "SessionReuseService", + "ВнешниеИсточникиODBC" : "ExternalDataSourceODBCService" + }, + "РежимыДоступа":{ + "Список" : "list", + "ПолныйДоступ" : "full" + }, + "ВидыОбъектовПрофиляБезопасности":{ + "Каталог" : "directory", + "COMКласс" : "com", + "Компонент" : "addin", + "Модуль" : "module", + "Приложение" : "app", + "ИнтернетРесурс" : "inet" + }, + "ДействияСБазойСУБДПриУдалении":{ + "Очистить" : "clear", + "Удалить" : "drop", + "ОставитьБезИзменений" : "leave-as-is" + }, + "Приложения":{ + "Конфигуратор" : "Designer", + "ТонкийКлиент" : "1CV8C", + "ТолстыйКлиент" : "1CV8", + "COMСоединение" : "COMConnection", + "РасширениеWebСервера" : "WebServerExtension", + "Планировщик" : "JobScheduler", + "ФоновоеЗадание" : "BackgroundJob", + "КонсольКластера" : "SrvrConsole" + }, + "ТипыГруппировкиСчетчиковРесурсов":{ + "Пользователи" : "users", + "РазделительДанных" : "data-separation" + }, + "ТипыОтбораСчетчиковРесурсов":{ + "Выбранные" : "all-selected", + "ВсеКромеВыбранных" : "all-but-selected", + "Все" : "all" + }, + "ВремяНакопленияСчетчиковРесурсов":{ + "ТекущийВызов" : "current-call" + }, + "СостоянияСчетчиковРесурсов":{ + "Включен" : "analyze", + "Выключен" : "not-analyze" + }, + "ПоляОтбораСчетчиковРесурсов":{ + "ИБ" : "infobase", + "Разделитель" : "data-separation", + "Пользователь" : "user", + "БезопасныйРежим" : "safe-mode", + "ПрофильБезопасногоРежима" : "safe-mode-profile-name", + "Приложение" : "appID" + }, + "ДействияОграниченияРесурсов":{ + "Нет" : "none", + "СнизитьПриоритетПотока" : "set-low-priority-thread", + "ЗавершитьТекущийВызов" : "interrupt-current-call", + "ЗавершитьСеанс" : "interrupt-session" + } +} 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" new file mode 100644 index 0000000..4c0e1b7 --- /dev/null +++ "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" @@ -0,0 +1,2086 @@ +{ + "Агент":{ + "Имя" : "Агент", + "РежимАдминистрирования" : "agent", + "Свойства":{ + "Администраторы":{ + "Имя" : "Администратор", + "РежимАдминистрирования" : "admin", + "Свойства":{ + "Имя":{ + "ИмяРАК" : "name", + "ПоУмолчанию" : "Администратор", + "Использование" : "Чтение, Добавление" + }, + "Пароль":{ + "ИмяРАК" : "pwd", + "Использование" : "Чтение" + }, + "СпособАвторизации":{ + "ИмяРАК" : "auth", + "ПоУмолчанию" : "$Перечисления.СпособыАвторизации.Пароль", + "Использование" : "Чтение, Добавление" + }, + "ПользовательОС":{ + "ИмяРАК" : "os-user", + "Использование" : "Чтение, Добавление" + }, + "Описание":{ + "ИмяРАК" : "descr", + "ПоУмолчанию" : "Администратор", + "Использование" : "Чтение, Добавление" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "АвторизацияАгента" : true + }, + "Добавить":{ + "ИмяРАК" : "register", + "АвторизацияАгента" : true, + "Прочие" : true + }, + "Удалить":{ + "ИмяРАК" : "remove", + "АвторизацияАгента" : true + } + } + }, + "Версия":{ + "Имя" : "Версия", + "РежимАдминистрирования" : "version", + "МинВерсия" : "8.3.16" + } + } + }, + "Кластеры":{ + "Имя" : "Кластер", + "РежимАдминистрирования" : "cluster", + "Свойства":{ + "Ид":{ + "ИмяРАК" : "cluster" + }, + "АдресСервера":{ + "ИмяРАК" : "host" + }, + "ПортСервера":{ + "ИмяРАК" : "port" + }, + "Имя":{ + "ИмяРАК" : "name" + }, + "ИнтервалПерезапуска":{ + "ИмяРАК" : "lifetime-limit", + "ПоУмолчанию" : 0, + "Использование" : "Чтение, Добавление, Изменение" + }, + "ДопустимыйОбъемПамяти":{ + "ИмяРАК" : "max-memory-size", + "ПоУмолчанию" : 0, + "Использование" : "Чтение, Добавление, Изменение" + }, + "ЗащищенноеСоединение":{ + "ИмяРАК" : "security-level", + "ПоУмолчанию" : 0, + "Использование" : "Чтение, Добавление, Изменение" + }, + "УровеньОтказоустойчивости":{ + "ИмяРАК" : "session-fault-tolerance-level", + "ПоУмолчанию" : 0, + "Использование" : "Чтение, Добавление, Изменение" + }, + "РежимРаспределенияНагрузки":{ + "ИмяРАК" : "load-balancing-mode", + "ПоУмолчанию" : "$Перечисления.РежимыРаспределенияНагрузки.ПоПроизводительности", + "Использование" : "Чтение, Добавление, Изменение", + "МинВерсия" : "8.3.3" + }, + "ИнтервалПревышенияДопустимогоОбъемаПамяти":{ + "ИмяРАК" : "max-memory-time-limit", + "ПоУмолчанию" : 0, + "Использование" : "Чтение, Добавление, Изменение" + }, + "ДопустимоеОтклонениеКоличестваОшибокСервера":{ + "ИмяРАК" : "errors-count-threshold", + "ПоУмолчанию" : 0, + "Использование" : "Чтение, Добавление, Изменение", + "МинВерсия" : "8.3.6" + }, + "ПринудительноЗавершатьПроблемныеПроцессы":{ + "ИмяРАК" : "kill-problem-processes", + "ПоУмолчанию" : "$Перечисления.ДаНет.Нет", + "Использование" : "Чтение, Добавление, Изменение", + "МинВерсия" : "8.3.6" + }, + "ВыключенныеПроцессыОстанавливатьЧерез":{ + "ИмяРАК" : "expiration-timeout", + "ПоУмолчанию" : 0, + "Использование" : "Чтение, Добавление, Изменение" + }, + "ЗаписыватьДампПриЗавершенииПоПревышениюПамяти":{ + "ИмяРАК" : "kill-by-memory-with-dump", + "Использование" : "Чтение, Добавление, Изменение", + "МинВерсия" : "8.3.15" + }, + "Администраторы":{ + "Имя" : "Администратор", + "РежимАдминистрирования" : "admin", + "Свойства":{ + "Имя":{ + "ИмяРАК" : "name", + "ПоУмолчанию" : "Администратор", + "Использование" : "Чтение, Добавление" + }, + "Пароль":{ + "ИмяРАК" : "pwd", + "Использование" : "Чтение" + }, + "СпособАвторизации":{ + "ИмяРАК" : "auth", + "ПоУмолчанию" : "$Перечисления.СпособыАвторизации.Пароль", + "Использование" : "Чтение, Добавление" + }, + "ПользовательОС":{ + "ИмяРАК" : "os-user", + "Использование" : "Чтение, Добавление" + }, + "Описание":{ + "ИмяРАК" : "descr", + "ПоУмолчанию" : "Администратор", + "Использование" : "Чтение, Добавление" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true + }, + "Добавить":{ + "ИмяРАК" : "register", + "Кластер" : true, + "Прочие" : true + }, + "Удалить":{ + "ИмяРАК" : "remove", + "Кластер" : true + } + } + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list" + }, + "Описание":{ + "ИмяРАК" : "info", + "Кластер" : true + }, + "Добавить":{ + "ИмяРАК" : "insert", + "АвторизацияАгента" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--host=%1", + "Параметр" : "АдресСервера" + }, + { + "Шаблон" : "--port=%1", + "Параметр" : "ПортСервера" + }, + { + "Шаблон" : "--name=%1", + "Параметр" : "Имя" + } + ], + "Прочие" : true + }, + "Изменить":{ + "ИмяРАК" : "update", + "АвторизацияАгента" : true, + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--name=%1", + "Параметр" : "Имя" + } + ], + "Прочие" : true + }, + "Удалить":{ + "ИмяРАК" : "remove", + "АвторизацияАгента" : true, + "Кластер" : true + } + } + }, + "МенеджерыКластера":{ + "Имя" : "МенеджерКластера", + "РежимАдминистрирования" : "manager", + "Свойства":{ + "Ид":{ + "ИмяРАК" : "manager" + }, + "ИдПроцессаОС":{ + "ИмяРАК" : "pid" + }, + "Назначение":{ + "ИмяРАК" : "using" + }, + "АдресСервера":{ + "ИмяРАК" : "host" + }, + "ПортСервера":{ + "ИмяРАК" : "port" + }, + "Описание":{ + "ИмяРАК" : "descr" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true + }, + "Описание":{ + "ИмяРАК" : "info", + "Кластер" : true + } + } + }, + "Серверы":{ + "Имя" : "Сервер", + "РежимАдминистрирования" : "server", + "Свойства":{ + "Ид":{ + "ИмяРАК" : "server" + }, + "Имя":{ + "ИмяРАК" : "name", + "Использование" : "Чтение, Добавление" + }, + "АдресАгента":{ + "ИмяРАК" : "agent-host", + "ПоУмолчанию" : "localhost", + "Использование" : "Чтение, Добавление" + }, + "ПортАгента":{ + "ИмяРАК" : "agent-port", + "ПоУмолчанию" : "1540", + "Использование" : "Чтение, Добавление" + }, + "ДиапазонПортов":{ + "ИмяРАК" : "port-range", + "ПоУмолчанию" : "1560:1591", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ЦентральныйСервер":{ + "ИмяРАК" : "using", + "ПоУмолчанию" : "$Перечисления.ВариантыИспользованияРабочегоСервера.Главный", + "Использование" : "Чтение, Добавление, Изменение" + }, + "МенеджерПодКаждыйСервис":{ + "ИмяРАК" : "dedicate-managers", + "ПоУмолчанию" : "$Перечисления.ВариантыРазмещенияСервисов.ВОдномМенеджере", + "Использование" : "Чтение, Добавление, Изменение" + }, + "КоличествоИБНаПроцесс":{ + "ИмяРАК" : "infobases-limit", + "ПоУмолчанию" : 8, + "Использование" : "Чтение, Добавление, Изменение" + }, + "МаксОбъемПамятиРабочихПроцессов":{ + "ИмяРАК" : "memory-limit", + "ПоУмолчанию" : 0, + "Использование" : "Чтение, Добавление, Изменение" + }, + "КоличествоСоединенийНаПроцесс":{ + "ИмяРАК" : "connections-limit", + "ПоУмолчанию" : 128, + "Использование" : "Чтение, Добавление, Изменение" + }, + "ПортГлавногоМенеджераКластера":{ + "ИмяРАК" : "cluster-port", + "ПоУмолчанию" : "1541", + "Использование" : "Чтение, Добавление" + }, + "БезопасныйОбъемПамятиРабочихПроцессов":{ + "ИмяРАК" : "safe-working-processes-memory-limit", + "ПоУмолчанию" : 0, + "Использование" : "Чтение, Добавление, Изменение" + }, + "БезопасныйРасходПамятиЗаОдинВызов":{ + "ИмяРАК" : "safe-call-memory-limit", + "ПоУмолчанию" : 0, + "Использование" : "Чтение, Добавление, Изменение" + }, + "КритическийОбъемПамятиПроцессов":{ + "ИмяРАК" : "critical-total-memory", + "ПоУмолчанию" : 0, + "Использование" : "Чтение, Добавление, Изменение", + "МинВерсия" : "8.3.15" + }, + "ВременноДопустимыйОбъемПамятиПроцессов":{ + "ИмяРАК" : "temporary-allowed-total-memory", + "ПоУмолчанию" : 0, + "Использование" : "Чтение, Добавление, Изменение", + "МинВерсия" : "8.3.15" + }, + "ПериодПревышенияВременноДопустимогоОбъемаПамятиПроцессов":{ + "ИмяРАК" : "temporary-allowed-total-memory-time-limit", + "ПоУмолчанию" : 0, + "Использование" : "Чтение, Добавление, Изменение", + "МинВерсия" : "8.3.15" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true + }, + "Описание":{ + "ИмяРАК" : "info", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--server=%1", + "Параметр" : "ИдентификаторСервера", + "Обязательный" : true + } + ] + }, + "Добавить":{ + "ИмяРАК" : "insert", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--name=%1", + "Параметр" : "Имя", + "Обязательный" : true + }, + { + "Шаблон" : "--locale=%1", + "Параметр" : "Локализация" + } + ], + "Прочие" : true + }, + "Изменить":{ + "ИмяРАК" : "update", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--server=%1", + "Параметр" : "ИдентификаторСервера", + "Обязательный" : true + } + ], + "Прочие" : true + }, + "Удалить":{ + "ИмяРАК" : "remove", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--server=%1", + "Параметр" : "ИдентификаторСервера", + "Обязательный" : true + } + ] + } + } + }, + "РабочиеПроцессы":{ + "Имя" : "РабочийПроцесс", + "РежимАдминистрирования" : "process", + "Свойства":{ + "Ид":{ + "ИмяРАК" : "process" + }, + "АдресСервера":{ + "ИмяРАК" : "host" + }, + "ПортСервера":{ + "ИмяРАК" : "port" + }, + "ИдПроцессаОС":{ + "ИмяРАК" : "pid" + }, + "Активен":{ + "ИмяРАК" : "is-enable" + }, + "Выполняется":{ + "ИмяРАК" : "running" + }, + "ВремяЗапуска":{ + "ИмяРАК" : "started-at" + }, + "Использование":{ + "ИмяРАК" : "use" + }, + "ДоступнаяПроизводительность":{ + "ИмяРАК" : "available-perfomance" + }, + "Емкость":{ + "ИмяРАК" : "capacity" + }, + "КоличествоСоединений":{ + "ИмяРАК" : "connections" + }, + "ЗанятьПамяти":{ + "ИмяРАК" : "memory-size" + }, + "ВремяПревышенияЗанятойПамяти":{ + "ИмяРАК" : "memory-excess-time" + }, + "ОбъемВыборки":{ + "ИмяРАК" : "selection-size" + }, + "ЗатраченоКлиентом":{ + "ИмяРАК" : "avg-back-call-time" + }, + "ЗатраченоВсего":{ + "ИмяРАК" : "avg-call-time" + }, + "ЗатраченоСУБД":{ + "ИмяРАК" : "avg-db-call-time" + }, + "ЗатраченоМенеджеромБлокировок":{ + "ИмяРАК" : "avg-lock-call-time" + }, + "ЗатраченоСервером":{ + "ИмяРАК" : "avg-server-call-time" + }, + "КлиентскихПотоков":{ + "ИмяРАК" : "avg-threads" + }, + "Резервный":{ + "ИмяРАК" : "reserve", + "МинВерсия" : "8.3.16" + }, + "Лицензии":{ + "Имя" : "Лицензия", + "РежимАдминистрирования" : "license", + "Свойства":{ + "Процесс_Ид":{ + "ИмяРАК" : "process" + }, + "Процесс_АдресСервера":{ + "ИмяРАК" : "host" + }, + "Процесс_ПортСервера":{ + "ИмяРАК" : "port" + }, + "Процесс_ИдОС":{ + "ИмяРАК" : "pid" + }, + "ПолноеИмя":{ + "ИмяРАК" : "full-name" + }, + "Серия":{ + "ИмяРАК" : "pwd" + }, + "ВыданаСервером":{ + "ИмяРАК" : "series" + }, + "ТипЛицензии":{ + "ИмяРАК" : "license-type" + }, + "Сетевая":{ + "ИмяРАК" : "net" + }, + "МаксПользователей":{ + "ИмяРАК" : "max-users-all" + }, + "МаксПользователейТек":{ + "ИмяРАК" : "max-users-cur" + }, + "Менеджер_АдресСервера":{ + "ИмяРАК" : "rmngr-address" + }, + "Менеджер_ПортСервера":{ + "ИмяРАК" : "rmngr-port" + }, + "Менеджер_ИдОС":{ + "ИмяРАК" : "rmngr-pid" + }, + "КраткоеПредставление":{ + "ИмяРАК" : "short-presentation" + }, + "ПолноеПредставление":{ + "ИмяРАК" : "full-presentation" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true, + "ПараметрыКоманды" : ["--license"] + }, + "Описание":{ + "ИмяРАК" : "info", + "Кластер" : true, + "ПараметрыКоманды" : [ + "--license", + { + "Шаблон" : "--process=%1", + "Параметр" : "ИдентификаторПроцесса", + "Обязательный" : true + } + ] + } + } + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true + }, + "Описание":{ + "ИмяРАК" : "info", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--process=%1", + "Параметр" : "ИдентификаторПроцесса", + "Обязательный" : true + } + ] + } + } + }, + "Сервисы":{ + "Имя" : "Сервис", + "РежимАдминистрирования" : "service", + "Свойства":{ + "Имя":{ + "ИмяРАК" : "name" + }, + "ТолькоГлавныйМенеджер":{ + "ИмяРАК" : "main-only" + }, + "Менеджер_Ид":{ + "ИмяРАК" : "manager" + }, + "Описание":{ + "ИмяРАК" : "descr" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true + } + } + }, + "ИБ":{ + "Имя" : "ИБ", + "РежимАдминистрирования" : "infobase", + "Свойства":{ + "Ид":{ + "ИмяРАК" : "infobase" + }, + "ТипСУБД":{ + "ИмяРАК" : "dbms", + "ПоУмолчанию" : "$Перечисления.ТипыСУБД.MSSQLServer", + "Использование" : "Чтение, Добавление, Изменение" + }, + "АдресСервераСУБД":{ + "ИмяРАК" : "db-server", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ИмяБазыСУБД":{ + "ИмяРАК" : "db-name", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ИмяПользователяБазыСУБД":{ + "ИмяРАК" : "db-user", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ПарольПользователяБазыСУБД":{ + "ИмяРАК" : "db-pwd", + "Использование" : "Добавление, Изменение" + }, + "НачалоБлокировкиСеансов":{ + "ИмяРАК" : "denied-from", + "Использование" : "Чтение, Изменение" + }, + "ОкончаниеБлокировкиСеансов":{ + "ИмяРАК" : "denied-to", + "Использование" : "Чтение, Изменение" + }, + "СообщениеБлокировкиСеансов":{ + "ИмяРАК" : "denied-message", + "Использование" : "Чтение, Изменение" + }, + "ПараметрБлокировкиСеансов":{ + "ИмяРАК" : "denied-parameter", + "Использование" : "Чтение, Изменение" + }, + "КодРазрешения":{ + "ИмяРАК" : "permission-code", + "Использование" : "Чтение, Изменение" + }, + "БлокировкаСеансовВключена":{ + "ИмяРАК" : "sessions-deny", + "ПоУмолчанию" : false, + "Использование" : "Чтение, Изменение" + }, + "БлокировкаРегламентныхЗаданийВключена":{ + "ИмяРАК" : "scheduled-jobs-deny", + "ПоУмолчанию" : "$Перечисления.СостоянияВыключателя.Выключено", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ВыдачаЛицензийСервером":{ + "ИмяРАК" : "license-distribution", + "ПоУмолчанию" : "$Перечисления.ПраваДоступа.Разрешено", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ПараметрыВнешнегоУправленияСеансами":{ + "ИмяРАК" : "external-session-manager-connection-string", + "Использование" : "Чтение, Изменение" + }, + "ОбязательноеВнешнееУправлениеСеансами":{ + "ИмяРАК" : "external-session-manager-required", + "ПоУмолчанию" : "$Перечисления.ДаНет.Нет", + "Использование" : "Чтение, Изменение" + }, + "ПрофильБезопасности":{ + "ИмяРАК" : "security-profile-name", + "Использование" : "Чтение, Изменение" + }, + "ПрофильБезопасностиБезопасногоРежима":{ + "ИмяРАК" : "safe-mode-security-profile-name", + "ПоУмолчанию" : "$Перечисления.ПраваДоступа.Разрешено", + "Использование" : "Чтение, Изменение" + }, + "СмещениеДат":{ + "ИмяРАК" : "date-offset", + "ПоУмолчанию" : 2000, + "Использование" : "Добавление" + }, + "Описание":{ + "ИмяРАК" : "descr", + "Использование" : "Чтение, Изменение" + }, + "РезервироватьРабочийПроцесс":{ + "ИмяРАК" : "reserve-working-process", + "Использование" : "Чтение, Изменение, Добавление", + "МинВерсия" : "8.3.16" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true, + "ОбщиеПараметры" : ["summary"] + }, + "Описание":{ + "ИмяРАК" : "info", + "Кластер" : true, + "ОбщиеПараметры" : ["summary"], + "ПараметрыКоманды" : [ + { + "Шаблон" : "--infobase=%1", + "Параметр" : "ИдентификаторИБ", + "Обязательный" : true + } + ] + }, + "ПолноеОписание":{ + "ИмяРАК" : "info", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--infobase=%1", + "Параметр" : "ИдентификаторИБ", + "Обязательный" : true + } + ] + }, + "Добавить":{ + "ИмяРАК" : "create", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--name=%1", + "Параметр" : "Имя", + "Обязательный" : true + }, + { + "Шаблон" : "--locale=%1", + "Параметр" : "Локализация" + } + ], + "Прочие" : true + }, + "Изменить":{ + "ИмяРАК" : "update", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--infobase=%1", + "Параметр" : "ИдентификаторИБ", + "Обязательный" : true + } + ], + "Прочие" : true + }, + "Удалить":{ + "ИмяРАК" : "drop", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--infobase=%1", + "Параметр" : "ИдентификаторИБ" + }, + { + "Флаг" : "ОчиститьБД", + "Параметр" : "--clear-database" + }, + { + "Флаг" : "УдалитьБД", + "Параметр" : "--drop-database" + } + ] + } + } + }, + "Соединения":{ + "Имя" : "Соединение", + "РежимАдминистрирования" : "connection", + "Свойства":{ + "Ид":{ + "ИмяРАК" : "connection" + }, + "НомерСоединения":{ + "ИмяРАК" : "conn-id" + }, + "Процесс_Ид":{ + "ИмяРАК" : "process" + }, + "ИнформационнаяБаза_Ид":{ + "ИмяРАК" : "infobase" + }, + "Приложение":{ + "ИмяРАК" : "application" + }, + "НачалоРаботы":{ + "ИмяРАК" : "connected-at" + }, + "НомерСеанса":{ + "ИмяРАК" : "session-number" + }, + "Заблокировано":{ + "ИмяРАК" : "blocked-by-ls" + }, + "ВремяРаботыСервисаТекущее":{ + "ИмяРАК" : "duration-current-service", + "МинВремя" : "8.3.12" + }, + "ИмяИсполняемогоСервиса":{ + "ИмяРАК" : "current-service-name", + "МинВремя" : "8.3.12" + }, + "ВремяРаботыСервиса5мин":{ + "ИмяРАК" : "duration-last-5min-service", + "МинВремя" : "8.3.12" + }, + "ВремяРаботыСервисаВсего":{ + "ИмяРАК" : "duration-all-service", + "МинВремя" : "8.3.12" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--process=%1", + "Параметр" : "ИдентификаторПроцесса" + }, + { + "Шаблон" : "--infobase=%1", + "Параметр" : "ИдентификаторИБ" + } + ] + }, + "Описание":{ + "ИмяРАК" : "info", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--connection=%1", + "Параметр" : "ИдентификаторСоединения", + "Обязательный" : true + } + ] + }, + "Отключить":{ + "ИмяРАК" : "disconnect", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--process=%1", + "Параметр" : "ИдентификаторПроцесса", + "Обязательный" : true + }, + { + "Шаблон" : "--connection=%1", + "Параметр" : "ИдентификаторСоединения", + "Обязательный" : true + } + ] + } + } + }, + "Сеансы":{ + "Имя" : "Сеанс", + "РежимАдминистрирования" : "session", + "Свойства":{ + "Ид":{ + "ИмяРАК" : "session" + }, + "НомерСеанса":{ + "ИмяРАК" : "session-id" + }, + "ИнформационнаяБаза_Ид":{ + "ИмяРАК" : "infobase" + }, + "Соединение_Ид":{ + "ИмяРАК" : "connection" + }, + "Процесс_Ид":{ + "ИмяРАК" : "process" + }, + "Пользователь":{ + "ИмяРАК" : "user-name" + }, + "Компьютер":{ + "ИмяРАК" : "host" + }, + "Приложение":{ + "ИмяРАК" : "app-id" + }, + "Язык":{ + "ИмяРАК" : "locale" + }, + "ВремяНачала":{ + "ИмяРАК" : "started-at" + }, + "ПоследняяАктивность":{ + "ИмяРАК" : "last-active-at" + }, + "Спящий":{ + "ИмяРАК" : "hibernate" + }, + "ЗаснутьЧерез":{ + "ИмяРАК" : "passive-session-hibernate-time" + }, + "ЗавершитьЧерез":{ + "ИмяРАК" : "hibernate-session-terminate-time" + }, + "ЗаблокированоСУБД":{ + "ИмяРАК" : "blocked-by-dbms" + }, + "ЗаблокированоУпр":{ + "ИмяРАК" : "blocked-by-ls" + }, + "ДанныхВсего":{ + "ИмяРАК" : "bytes-all" + }, + "Данных5мин":{ + "ИмяРАК" : "bytes-last-5min" + }, + "КоличествоВызововВсего":{ + "ИмяРАК" : "calls-all" + }, + "КоличествоВызовов5мин":{ + "ИмяРАК" : "calls-last-5min" + }, + "ДанныхСУБДВсего":{ + "ИмяРАК" : "dbms-bytes-all" + }, + "ДанныхСУБД5мин":{ + "ИмяРАК" : "dbms-bytes-last-5min" + }, + "СоединениеССУБД":{ + "ИмяРАК" : "db-proc-info" + }, + "ЗахваченоСУБД":{ + "ИмяРАК" : "db-proc-took" + }, + "ВремяЗахватаСУБД":{ + "ИмяРАК" : "db-proc-took-at" + }, + "ВремяВызововВсего":{ + "ИмяРАК" : "duration-all" + }, + "ВремяВызововСУБДВсего":{ + "ИмяРАК" : "duration-all-dbms" + }, + "ВремяВызововТекущее":{ + "ИмяРАК" : "duration-current" + }, + "ВремяВызововСУБДТекущее":{ + "ИмяРАК" : "duration-current-dbms" + }, + "ВремяВызовов5мин":{ + "ИмяРАК" : "duration-last-5min" + }, + "ВремяВызововСУБД5мин":{ + "ИмяРАК" : "duration-last-5min-dbms" + }, + "ВремяРаботыСервисаТекущее":{ + "ИмяРАК" : "duration-current-service", + "МинВремя" : "8.3.12" + }, + "ИмяИсполняемогоСервиса":{ + "ИмяРАК" : "current-service-name", + "МинВремя" : "8.3.12" + }, + "ВремяРаботыСервиса5мин":{ + "ИмяРАК" : "duration-last-5min-service", + "МинВремя" : "8.3.12" + }, + "ВремяРаботыСервисаВсего":{ + "ИмяРАК" : "duration-all-service", + "МинВремя" : "8.3.12" + }, + "ВремяПроцессораТекущее":{ + "ИмяРАК" : "cpu-time-current", + "МинВремя" : "8.3.13" + }, + "ВремяПроцессора5мин":{ + "ИмяРАК" : "cpu-time-5min-last", + "МинВремя" : "8.3.13" + }, + "ВремяПроцессораВсего":{ + "ИмяРАК" : "cpu-time-total", + "МинВремя" : "8.3.13" + }, + "Лицензии":{ + "Имя" : "Лицензия", + "РежимАдминистрирования" : "license", + "Свойства":{ + "Сеанс_Ид":{ + "ИмяРАК" : "session" + }, + "ИмяПользователя":{ + "ИмяРАК" : "user-name" + }, + "АдресМашины":{ + "ИмяРАК" : "host" + }, + "ТипПриложения":{ + "ИмяРАК" : "app-id" + }, + "ПолноеИмя":{ + "ИмяРАК" : "full-name" + }, + "Серия":{ + "ИмяРАК" : "pwd" + }, + "ВыданаСервером":{ + "ИмяРАК" : "series" + }, + "ТипЛицензии":{ + "ИмяРАК" : "license-type" + }, + "Сетевая":{ + "ИмяРАК" : "net" + }, + "МаксПользователей":{ + "ИмяРАК" : "max-users-all" + }, + "МаксПользователейТек":{ + "ИмяРАК" : "max-users-cur" + }, + "Менеджер_АдресСервера":{ + "ИмяРАК" : "rmngr-address" + }, + "Менеджер_ПортСервера":{ + "ИмяРАК" : "rmngr-port" + }, + "Менеджер_ИдОС":{ + "ИмяРАК" : "rmngr-pid" + }, + "КраткоеПредставление":{ + "ИмяРАК" : "short-presentation" + }, + "ПолноеПредставление":{ + "ИмяРАК" : "full-presentation" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true, + "ПараметрыКоманды" : ["--license"] + }, + "Описание":{ + "ИмяРАК" : "info", + "Кластер" : true, + "ПараметрыКоманды" : [ + "--license", + { + "Шаблон" : "--session=%1", + "Параметр" : "ИдентификаторСеанса", + "Обязательный" : true + } + ] + } + } + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--infobase=%1", + "Параметр" : "ИдентификаторИБ" + } + ] + }, + "Описание":{ + "ИмяРАК" : "info", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--session=%1", + "Параметр" : "ИдентификаторСеанса", + "Обязательный" : true + } + ] + }, + "Удалить":{ + "ИмяРАК" : "terminate", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--session=%1", + "Параметр" : "ИдентификаторСеанса", + "Обязательный" : true + } + ] + } + } + }, + "Блокировки":{ + "Имя" : "Блокировка", + "РежимАдминистрирования" : "lock", + "Свойства":{ + "Соединение_Ид":{ + "ИмяРАК" : "connection" + }, + "Сеанс_Ид":{ + "ИмяРАК" : "session" + }, + "Объект_Ид":{ + "ИмяРАК" : "object" + }, + "НачалоБлокировки":{ + "ИмяРАК" : "locked" + }, + "Описание":{ + "ИмяРАК" : "descr" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--infobase=%1", + "Параметр" : "ИдентификаторИБ" + }, + { + "Шаблон" : "--connection=%1", + "Параметр" : "ИдентификаторСоединения" + }, + { + "Шаблон" : "--session=%1", + "Параметр" : "ИдентификаторСеанса" + } + ] + } + } + }, + "НазначенияФункциональности":{ + "Имя" : "НазначениеФункциональности", + "РежимАдминистрирования" : "rule", + "Свойства":{ + "Ид":{ + "ИмяРАК" : "rule" + }, + "ТипОбъекта":{ + "ИмяРАК" : "object-type", + "ПоУмолчанию" : "$Перечисления.ОбъектыНазначенияФункциональности.ЛюбойОбъект", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ИмяИБ":{ + "ИмяРАК" : "infobase-name", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ТипНазначения":{ + "ИмяРАК" : "rule-type", + "ПоУмолчанию" : "$Перечисления.ТипыНазначенияФункциональности.Авто", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ДопПараметр":{ + "ИмяРАК" : "application-ext", + "Использование" : "Чтение, Добавление, Изменение" + }, + "Приоритет":{ + "ИмяРАК" : "priority", + "ПоУмолчанию" : 0, + "Использование" : "Чтение, Добавление, Изменение" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--server=%1", + "Параметр" : "ИдентификаторСервера", + "Обязательный" : true + } + ] + }, + "Описание":{ + "ИмяРАК" : "info", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--server=%1", + "Параметр" : "ИдентификаторСервера", + "Обязательный" : true + }, + { + "Шаблон" : "--rule=%1", + "Параметр" : "ИдентификаторТребования", + "Обязательный" : true + } + ] + }, + "Добавить":{ + "ИмяРАК" : "insert", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--server=%1", + "Параметр" : "ИдентификаторСервера", + "Обязательный" : true + }, + { + "Шаблон" : "--position=%1", + "Параметр" : "Позиция", + "Обязательный" : true + } + ], + "Прочие" : true + }, + "Изменить":{ + "ИмяРАК" : "update", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--server=%1", + "Параметр" : "ИдентификаторСервера", + "Обязательный" : true + }, + { + "Шаблон" : "--position=%1", + "Параметр" : "Позиция", + "Обязательный" : true + }, + { + "Шаблон" : "--rule=%1", + "Параметр" : "ИдентификаторТребования", + "Обязательный" : true + } + ], + "Прочие" : true + }, + "Удалить":{ + "ИмяРАК" : "remove", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--server=%1", + "Параметр" : "ИдентификаторСервера", + "Обязательный" : true + }, + { + "Шаблон" : "--rule=%1", + "Параметр" : "ИдентификаторТребования", + "Обязательный" : true + } + ] + }, + "Применить":{ + "ИмяРАК" : "apply", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Флаг" : "ПрименитьЧастично", + "Параметр" : "--partial" + }, + { + "Флаг" : "ПрименитьПолностью", + "Параметр" : "--full" + } + ] + } + } + }, + "ПрофилиБезопасности":{ + "Имя" : "ПрофильБезопасности", + "РежимАдминистрирования" : "profile", + "МинВерсия" : "8.3.3", + "Свойства":{ + "Имя":{ + "ИмяРАК" : "name" + }, + "Описание":{ + "ИмяРАК" : "descr", + "Использование" : "Чтение, Добавление, Изменение" + }, + "Каталоги":{ + "ИмяРАК" : "directory", + "ПоУмолчанию" : "$Перечисления.РежимыДоступа.Список" + }, + "COMКлассы":{ + "ИмяРАК" : "com", + "ПоУмолчанию" : "$Перечисления.РежимыДоступа.Список" + }, + "ВнешниеКомпоненты":{ + "ИмяРАК" : "addin", + "ПоУмолчанию" : "$Перечисления.РежимыДоступа.Список" + }, + "Модули":{ + "ИмяРАК" : "module", + "ПоУмолчанию" : "$Перечисления.РежимыДоступа.Список" + }, + "Приложения":{ + "ИмяРАК" : "app", + "ПоУмолчанию" : "$Перечисления.РежимыДоступа.Список" + }, + "ИнтернетРесурсы":{ + "ИмяРАК" : "inet", + "ПоУмолчанию" : "$Перечисления.РежимыДоступа.Список" + }, + "Конфигуратор":{ + "ИмяРАК" : "config", + "ПоУмолчанию" : "$Перечисления.ДаНет.Нет", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ПривилегированныйРежим":{ + "ИмяРАК" : "priv", + "ПоУмолчанию" : "$Перечисления.ДаНет.Нет", + "Использование" : "Чтение, Добавление, Изменение" + }, + "Криптография":{ + "ИмяРАК" : "crypto", + "ПоУмолчанию" : "$Перечисления.ДаНет.Нет", + "Использование" : "Чтение, Добавление, Изменение", + "МинВремя" : "8.3.7" + }, + "РасширениеПрав":{ + "ИмяРАК" : "right-extension", + "ПоУмолчанию" : "$Перечисления.ДаНет.Нет", + "Использование" : "Чтение, Добавление, Изменение", + "МинВремя" : "8.3.9" + }, + "ОграничивающиеРоли":{ + "ИмяРАК" : "right-extension-definition-roles", + "Использование" : "Чтение, Добавление, Изменение", + "МинВремя" : "8.3.9" + }, + "РасширениеВсехМодулей":{ + "ИмяРАК" : "all-modules-extension", + "ПоУмолчанию" : "$Перечисления.ДаНет.Нет", + "Использование" : "Чтение, Добавление, Изменение", + "МинВремя" : "8.3.9" + }, + "ДоступныеМодули":{ + "ИмяРАК" : "modules-available-for-extension", + "Использование" : "Чтение, Добавление, Изменение", + "МинВремя" : "8.3.9" + }, + "НедоступныеМодули":{ + "ИмяРАК" : "modules-not-available-for-extension", + "Использование" : "Чтение, Добавление, Изменение", + "МинВремя" : "8.3.9" + }, + "РолиПривилегированногоРежима":{ + "ИмяРАК" : "privileged-mode-roles", + "Использование" : "Чтение, Добавление, Изменение", + "МинВерсия" : "8.3.16" + }, + "ПолныйПривилегированныйРежим":{ + "ИмяРАК" : "full–privileged-mode", + "Использование" : "Чтение, Добавление, Изменение", + "МинВерсия" : "8.3.16" + }, + "КаталогиСписок":{ + "Имя" : "Каталог", + "РежимАдминистрирования" : "directory", + "Свойства":{ + "Имя":{ + "ИмяРАК" : "alias" + }, + "Описание":{ + "ИмяРАК" : "descr", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ПутьККаталогу":{ + "ИмяРАК" : "physicalPath", + "Использование" : "Чтение, Добавление, Изменение" + }, + "Чтение":{ + "ИмяРАК" : "allowedRead", + "ПоУмолчанию" : "$Перечисления.ДаНет.Нет", + "Использование" : "Чтение, Добавление, Изменение" + }, + "Запись":{ + "ИмяРАК" : "allowedWrite", + "ПоУмолчанию" : "$Перечисления.ДаНет.Нет", + "Использование" : "Чтение, Добавление, Изменение" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true, + "ПараметрыОбщие" : [ + "acl", + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяПрофиля", + "Обязательный" : true + }, + { + "Параметр" : "ВидОбъектовПрофиля", + "Обязательный" : true + } + ] + }, + "Изменить":{ + "ИмяРАК" : "update", + "Кластер" : true, + "ПараметрыОбщие" : [ + "acl", + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяПрофиля", + "Обязательный" : true + }, + { + "Параметр" : "ВидОбъектовПрофиля", + "Обязательный" : true + } + ], + "ПараметрыКоманды" : [ + { + "Шаблон" : "--alias=%1", + "Параметр" : "ИмяОбъектаПрофиля", + "Обязательный" : true + } + ], + "Прочие" : true + }, + "Удалить":{ + "ИмяРАК" : "remove", + "Кластер" : true + } + } + }, + "COMКлассыСписок":{ + "Имя" : "COMКласс", + "РежимАдминистрирования" : "com", + "Свойства":{ + "Имя":{ + "ИмяРАК" : "name" + }, + "Описание":{ + "ИмяРАК" : "descr", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ИмяФайла":{ + "ИмяРАК" : "fileName", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ИдКласса":{ + "ИмяРАК" : "id", + "Использование" : "Чтение, Добавление, Изменение" + }, + "Компьютер":{ + "ИмяРАК" : "host", + "Использование" : "Чтение, Добавление, Изменение" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true, + "ПараметрыОбщие" : [ + "acl", + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяПрофиля", + "Обязательный" : true + }, + { + "Параметр" : "ВидОбъектовПрофиля", + "Обязательный" : true + } + ] + }, + "Изменить":{ + "ИмяРАК" : "update", + "Кластер" : true, + "ПараметрыОбщие" : [ + "acl", + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяПрофиля", + "Обязательный" : true + }, + { + "Параметр" : "ВидОбъектовПрофиля", + "Обязательный" : true + } + ], + "ПараметрыКоманды" : [ + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяОбъектаПрофиля", + "Обязательный" : true + } + ], + "Прочие" : true + }, + "Удалить":{ + "ИмяРАК" : "remove", + "Кластер" : true + } + } + }, + "ВнешниеКомпонентыСписок":{ + "Имя" : "ВнешняяКомпонента", + "РежимАдминистрирования" : "addin", + "Свойства":{ + "Имя":{ + "ИмяРАК" : "name" + }, + "Описание":{ + "ИмяРАК" : "descr", + "Использование" : "Чтение, Добавление, Изменение" + }, + "Хэш":{ + "ИмяРАК" : "hash", + "Использование" : "Чтение, Добавление, Изменение" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true, + "ПараметрыОбщие" : [ + "acl", + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяПрофиля", + "Обязательный" : true + }, + { + "Параметр" : "ВидОбъектовПрофиля", + "Обязательный" : true + } + ] + }, + "Изменить":{ + "ИмяРАК" : "update", + "Кластер" : true, + "ПараметрыОбщие" : [ + "acl", + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяПрофиля", + "Обязательный" : true + }, + { + "Параметр" : "ВидОбъектовПрофиля", + "Обязательный" : true + } + ], + "ПараметрыКоманды" : [ + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяОбъектаПрофиля", + "Обязательный" : true + } + ], + "Прочие" : true + }, + "Удалить":{ + "ИмяРАК" : "remove", + "Кластер" : true + } + } + }, + "МодулиСписок":{ + "Имя" : "Модуль", + "РежимАдминистрирования" : "module", + "Свойства":{ + "Имя":{ + "ИмяРАК" : "name" + }, + "Описание":{ + "ИмяРАК" : "descr", + "Использование" : "Чтение, Добавление, Изменение" + }, + "Хэш":{ + "ИмяРАК" : "hash", + "Использование" : "Чтение, Добавление, Изменение" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true, + "ПараметрыОбщие" : [ + "acl", + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяПрофиля", + "Обязательный" : true + }, + { + "Параметр" : "ВидОбъектовПрофиля", + "Обязательный" : true + } + ] + }, + "Изменить":{ + "ИмяРАК" : "update", + "Кластер" : true, + "ПараметрыОбщие" : [ + "acl", + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяПрофиля", + "Обязательный" : true + }, + { + "Параметр" : "ВидОбъектовПрофиля", + "Обязательный" : true + } + ], + "ПараметрыКоманды" : [ + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяОбъектаПрофиля", + "Обязательный" : true + } + ], + "Прочие" : true + }, + "Удалить":{ + "ИмяРАК" : "remove", + "Кластер" : true + } + } + }, + "ПриложенияСписок":{ + "Имя" : "Приложение", + "РежимАдминистрирования" : "app", + "Свойства":{ + "Имя":{ + "ИмяРАК" : "name" + }, + "Описание":{ + "ИмяРАК" : "descr", + "Использование" : "Чтение, Добавление, Изменение" + }, + "Маска":{ + "ИмяРАК" : "wild", + "ПоУмолчанию" : "*", + "Использование" : "Чтение, Добавление, Изменение" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true, + "ПараметрыОбщие" : [ + "acl", + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяПрофиля", + "Обязательный" : true + }, + { + "Параметр" : "ВидОбъектовПрофиля", + "Обязательный" : true + } + ] + }, + "Изменить":{ + "ИмяРАК" : "update", + "Кластер" : true, + "ПараметрыОбщие" : [ + "acl", + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяПрофиля", + "Обязательный" : true + }, + { + "Параметр" : "ВидОбъектовПрофиля", + "Обязательный" : true + } + ], + "ПараметрыКоманды" : [ + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяОбъектаПрофиля", + "Обязательный" : true + } + ], + "Прочие" : true + }, + "Удалить":{ + "ИмяРАК" : "remove", + "Кластер" : true + } + } + }, + "ИнтернетРесурсыСписок":{ + "Имя" : "ИнтернетРесурс", + "РежимАдминистрирования" : "inet", + "Свойства":{ + "Имя":{ + "ИмяРАК" : "name" + }, + "Описание":{ + "ИмяРАК" : "descr", + "Использование" : "Чтение, Добавление, Изменение" + }, + "Протокол":{ + "ИмяРАК" : "protocol", + "ПоУмолчанию" : "http", + "Использование" : "Чтение, Добавление, Изменение" + }, + "АдресРесурса":{ + "ИмяРАК" : "url", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ПортСервера":{ + "ИмяРАК" : "port", + "ПоУмолчанию" : 80, + "Использование" : "Чтение, Добавление, Изменение" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true, + "ПараметрыОбщие" : [ + "acl", + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяПрофиля", + "Обязательный" : true + }, + { + "Параметр" : "ВидОбъектовПрофиля", + "Обязательный" : true + } + ] + }, + "Изменить":{ + "ИмяРАК" : "update", + "Кластер" : true, + "ПараметрыОбщие" : [ + "acl", + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяПрофиля", + "Обязательный" : true + }, + { + "Параметр" : "ВидОбъектовПрофиля", + "Обязательный" : true + } + ], + "ПараметрыКоманды" : [ + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяОбъектаПрофиля", + "Обязательный" : true + } + ], + "Прочие" : true + }, + "Удалить":{ + "ИмяРАК" : "remove", + "Кластер" : true + } + } + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true + }, + "ИзменитьРежимДоступа":{ + "ИмяРАК" : "acl", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяПрофиля", + "Обязательный" : true + }, + { + "Шаблон" : "--access=%1", + "Параметр" : "РежимДоступа", + "Обязательный" : true + } + ] + }, + "Изменить":{ + "ИмяРАК" : "update", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяПрофиля", + "Обязательный" : true + } + ], + "Прочие" : true + }, + "Удалить":{ + "ИмяРАК" : "remove", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяПрофиля", + "Обязательный" : true + } + ] + } + } + }, + "СчетчикиРесурсов":{ + "Имя" : "СчетчикРесурсов", + "РежимАдминистрирования" : "counter", + "МинВерсия" : "8.3.13", + "Свойства":{ + "Имя":{ + "ИмяРАК" : "name", + "Использование" : "Чтение, Добавление" + }, + "ДлительностьСбора":{ + "ИмяРАК" : "collection-time", + "ПоУмолчанию" : "$Перечисления.ВремяНакопленияСчетчиковРесурсов.ТекущийВызов", + "Использование" : "Чтение, Добавление, Изменение" + }, + "Группировка":{ + "ИмяРАК" : "group", + "ПоУмолчанию" : "$Перечисления.ТипыГруппировкиСчетчиковРесурсов.Пользователи", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ТипОтбора":{ + "ИмяРАК" : "filter-type", + "ПоУмолчанию" : "$Перечисления.ТипыОтбораСчетчиковРесурсов.Все", + "Использование" : "Чтение, Добавление, Изменение" + }, + "Отбор":{ + "ИмяРАК" : "filter", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ДлительностьСервереыхВызовов":{ + "ИмяРАК" : "duration", + "ПоУмолчанию" : "$Перечисления.СостоянияСчетчиковРесурсов.Выключен", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ПроцессорноеВремя":{ + "ИмяРАК" : "cpu-time", + "ПоУмолчанию" : "$Перечисления.СостоянияСчетчиковРесурсов.Выключен", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ПотреблениеПамяти":{ + "ИмяРАК" : "memory", + "ПоУмолчанию" : "$Перечисления.СостоянияСчетчиковРесурсов.Выключен", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ОбъемИнформацииСчитаннойСДиска":{ + "ИмяРАК" : "read", + "ПоУмолчанию" : "$Перечисления.СостоянияСчетчиковРесурсов.Выключен", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ОбъемИнформацииЗаписаннойНаДиск":{ + "ИмяРАК" : "write", + "ПоУмолчанию" : "$Перечисления.СостоянияСчетчиковРесурсов.Выключен", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ДлительностьВызововСУБД":{ + "ИмяРАК" : "duration-dbms", + "ПоУмолчанию" : "$Перечисления.СостоянияСчетчиковРесурсов.Выключен", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ОбъемИнформацииПереданнойСУБД":{ + "ИмяРАК" : "dbms-bytes", + "ПоУмолчанию" : "$Перечисления.СостоянияСчетчиковРесурсов.Выключен", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ДлительностьВызововСервисов":{ + "ИмяРАК" : "service", + "ПоУмолчанию" : "$Перечисления.СостоянияСчетчиковРесурсов.Выключен", + "Использование" : "Чтение, Добавление, Изменение" + }, + "КоличествоСерверныхВызовов":{ + "ИмяРАК" : "call", + "ПоУмолчанию" : "$Перечисления.СостоянияСчетчиковРесурсов.Выключен", + "Использование" : "Чтение, Добавление, Изменение" + }, + "КоличествоАктивныхСеансов":{ + "ИмяРАК" : "number-of-active-sessions", + "ПоУмолчанию" : "$Перечисления.СостоянияСчетчиковРесурсов.Выключен", + "Использование" : "Чтение, Добавление, Изменение" + }, + "КоличествоСеансов":{ + "ИмяРАК" : "number-of-sessions", + "ПоУмолчанию" : "$Перечисления.СостоянияСчетчиковРесурсов.Выключен", + "Использование" : "Чтение, Добавление, Изменение" + }, + "Описание":{ + "ИмяРАК" : "descr", + "Использование" : "Чтение, Добавление, Изменение" + }, + "Значения":{ + "Имя" : "Значения", + "РежимАдминистрирования" : "values", + "Свойства":{ + "Отбор":{ + "ИмяРАК" : "object" + }, + "ДлительностьСбора":{ + "ИмяРАК" : "collection-time" + }, + "ДлительностьСбораМс":{ + "ИмяРАК" : "duration" + }, + "ПроцессорноеВремя":{ + "ИмяРАК" : "cpu-time" + }, + "ПотреблениеПамяти":{ + "ИмяРАК" : "memory" + }, + "ОбъемИнформацииСчитаннойСДиска":{ + "ИмяРАК" : "read" + }, + "ОбъемИнформацииЗаписаннойНаДиск":{ + "ИмяРАК" : "write" + }, + "ДлительностьВызововСУБД":{ + "ИмяРАК" : "duration-dbms" + }, + "ОбъемИнформацииПереданнойСУБД":{ + "ИмяРАК" : "dbms-bytes" + }, + "ДлительностьВызововСервисов":{ + "ИмяРАК" : "service" + }, + "КоличествоСерверныхВызовов":{ + "ИмяРАК" : "call" + }, + "КоличествоАктивныхСеансов":{ + "ИмяРАК" : "number-of-active-sessions" + }, + "КоличествоСеансов":{ + "ИмяРАК" : "number-of-sessions" + }, + "Время":{ + "ИмяРАК" : "time", + "МинВерсия" : "8.3.15" + } + } + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true + }, + "Описание":{ + "ИмяРАК" : "info", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--counter=%1", + "Параметр" : "ИмяСчетчика", + "Обязательный" : true + } + ] + }, + "Изменить":{ + "ИмяРАК" : "update", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяСчетчика", + "Обязательный" : true + }, + { + "Шаблон" : "--collection-time=%1", + "Параметр" : "ДлительностьСбора", + "Обязательный" : true + }, + { + "Шаблон" : "--group=%1", + "Параметр" : "Группировка", + "Обязательный" : true + }, + { + "Шаблон" : "--filter-type=%1", + "Параметр" : "ТипОтбора", + "Обязательный" : true + }, + { + "Шаблон" : "--filter=%1", + "Параметр" : "Отбор", + "Обязательный" : true + } + ], + "Прочие" : true + }, + "Значения":{ + "ИмяРАК" : "values", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--counter=%1", + "Параметр" : "ИмяСчетчика", + "Обязательный" : true + }, + { + "Шаблон" : "--object=%1", + "Параметр" : "Отбор" + } + ], + "Прочие" : true + }, + "Удалить":{ + "ИмяРАК" : "remove", + "Кластер" : true, + "ПараметрыКоманды" : [ + { + "Шаблон" : "--name=%1", + "Параметр" : "ИмяСчетчика", + "Обязательный" : true + } + ] + } + } + }, + "ОграниченияРесурсов":{ + "Имя" : "ОграничениеРесурсов", + "РежимАдминистрирования" : "limit", + "МинВерсия" : "8.3.13", + "Свойства":{ + "Имя":{ + "ИмяРАК" : "name", + "Использование" : "Чтение, Добавление" + }, + "СчетчикРесурсов":{ + "ИмяРАК" : "counter", + "Использование" : "Чтение, Добавление, Изменение" + }, + "Действие":{ + "ИмяРАК" : "action", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ПроцессорноеВремя":{ + "ИмяРАК" : "cpu-time", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ПотреблениеПамяти":{ + "ИмяРАК" : "memory", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ОбъемИнформацииСчитаннойСДиска":{ + "ИмяРАК" : "read", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ОбъемИнформацииЗаписаннойНаДиск":{ + "ИмяРАК" : "write", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ДлительностьВызововСУБД":{ + "ИмяРАК" : "duration-dbms", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ОбъемИнформацииПереданнойСУБД":{ + "ИмяРАК" : "dbms-bytes", + "Использование" : "Чтение, Добавление, Изменение" + }, + "ДлительностьВызововСервисов":{ + "ИмяРАК" : "service", + "Использование" : "Чтение, Добавление, Изменение" + }, + "КоличествоСерверныхВызовов":{ + "ИмяРАК" : "call", + "Использование" : "Чтение, Добавление, Изменение" + }, + "КоличествоАктивныхСеансов":{ + "ИмяРАК" : "number-of-active-sessions", + "Использование" : "Чтение, Добавление, Изменение" + }, + "КоличествоСеансов":{ + "ИмяРАК" : "number-of-sessions", + "Использование" : "Чтение, Добавление, Изменение" + }, + "СообщениеОбОшибке":{ + "ИмяРАК" : "error-message", + "Использование" : "Чтение, Добавление, Изменение" + }, + "Описание":{ + "ИмяРАК" : "descr", + "Использование" : "Чтение, Добавление, Изменение" + } + }, + "Команды":{ + "Список":{ + "ИмяРАК" : "list", + "Кластер" : true + }, + "Описание":{ + "ИмяРАК" : "info", + "Кластер" : true + }, + "Изменить":{ + "ИмяРАК" : "update", + "Кластер" : true + }, + "Удалить":{ + "ИмяРАК" : "remove", + "Кластер" : true + } + } + } +} diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\321\217.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\321\217.os" index 49d5e6a..ca1502e 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\321\217.os" @@ -1,237 +1,56 @@ -Перем ВариантыИспользованияРабочегоСервера Экспорт; // Перечисление.ВариантыИспользованияРабочегоСервера -Перем ВариантыИспользованияМенеджераКластера Экспорт; // Перечисление.ВариантыИспользованияМенеджераКластера -Перем ВариантыРазмещенияСервисов Экспорт; // Перечисление.ВариантыРазмещенияСервисов -Перем СостоянияВыключателя Экспорт; // Перечисление.СостоянияВыключателя -Перем ДаНет Экспорт; // Перечисление.ДаНет -Перем ПраваДоступа Экспорт; // Перечисление.ПраваДоступа -Перем РежимыРаспределенияНагрузки Экспорт; // Перечисление.РежимыРаспределенияНагрузки -Перем СпособыАвторизации Экспорт; // Перечисление.СпособыАвторизации -Перем ТипыСУБД Экспорт; // Перечисление.ТипыСУБД -Перем Использование Экспорт; // Перечисление.Использование -Перем ТипыНазначенияФункциональности Экспорт; // Перечисление.ТипыНазначенияФункциональности -Перем ОбъектыНазначенияФункциональности Экспорт; // Перечисление.ОбъектыНазначенияФункциональности -Перем РежимыДоступа Экспорт; // Перечисление.РежимыДоступа -Перем ВидыОбъектовПрофиляБезопасности Экспорт; // Перечисление.ВидыОбъектовПрофиляБезопасности - -// Процедура добавляет значение перечисления в структуру -// -// Параметры: -// Перечисление - Структура - перечисление -// Имя - Строка - имя значения перечисления -// Значение - Строка - значение перечисления -// -Процедура ДобавитьЗначениеПеречисления(Перечисление, Знач Имя, Знач Значение) - - Если НЕ ТипЗнч(Перечисление) = Тип("Структура") Тогда - Перечисление = Новый Структура(); - КонецЕсли; - - Перечисление.Вставить(Имя, Значение); - -КонецПроцедуры // ДобавитьЗначениеПеречисления() +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +Перем РежимыАдминистрирования Экспорт; +Перем ВариантыИспользованияРабочегоСервера Экспорт; +Перем ВариантыИспользованияМенеджераКластера Экспорт; +Перем ВариантыРазмещенияСервисов Экспорт; +Перем СостоянияВыключателя Экспорт; +Перем ДаНет Экспорт; +Перем ПраваДоступа Экспорт; +Перем РежимыРаспределенияНагрузки Экспорт; +Перем СпособыАвторизации Экспорт; +Перем ТипыСУБД Экспорт; +Перем Использование Экспорт; +Перем ТипыНазначенияФункциональности Экспорт; +Перем ОбъектыНазначенияФункциональности Экспорт; +Перем РежимыДоступа Экспорт; +Перем ВидыОбъектовПрофиляБезопасности Экспорт; +Перем ДействияСБазойСУБДПриУдалении Экспорт; +Перем Приложения Экспорт; +Перем ТипыГруппировкиСчетчиковРесурсов Экспорт; +Перем ТипыОтбораСчетчиковРесурсов Экспорт; +Перем ВремяНакопленияСчетчиковРесурсов Экспорт; +Перем СостоянияСчетчиковРесурсов Экспорт; +Перем ПоляОтбораСчетчиковРесурсов Экспорт; +Перем ДействияОграниченияРесурсов Экспорт; + +Функция Значение(Знач ПутьКЗначению) Экспорт + + Возврат Вычислить(ПутьКЗначению); + +КонецФункции // Значение() // Процедура инициализирует значения перечислений +// из данных макета Перечисления.json // Процедура Инициализация() - ЗаполнитьВариантыИспользованияРабочегоСервера(); - - ЗаполнитьВариантыИспользованияМенеджераКластера(); - - ЗаполнитьВариантыРазмещенияСервисов(); - - ЗаполнитьСостоянияВыключателя(); - - ЗаполнитьДаНет(); - - ЗаполнитьПраваДоступа(); - - ЗаполнитьРежимыРаспределенияНагрузки(); - - ЗаполнитьСпособыАвторизации(); + ДанныеМакета = Служебный.ПрочитатьДанныеИзМакетаJSON("Перечисления"); - ЗаполнитьТипыСУБД(); - - ЗаполнитьИспользование(); - - ЗаполнитьТипыНазначенияФункциональности(); - - ЗаполнитьОбъектыНазначенияФункциональности(); - - ЗаполнитьРежимыДоступа(); - - ЗаполнитьВидыОбъектовПрофиляБезопасности(); + Для Каждого ТекПеречисление Из ДанныеМакета Цикл + Выполнить(СтрШаблон("%1 = Новый Структура();", ТекПеречисление.Ключ)); + Для Каждого ТекЗначение Из ТекПеречисление.Значение Цикл + Выполнить(СтрШаблон("%1.Вставить(""%2"", ""%3"");", ТекПеречисление.Ключ, ТекЗначение.Ключ, ТекЗначение.Значение)); + КонецЦикла; + КонецЦикла; КонецПроцедуры // Инициализация() -// Процедура - заполняет значения перечисления ВариантыИспользованияРабочегоСервера -// -Процедура ЗаполнитьВариантыИспользованияРабочегоСервера() - - ДобавитьЗначениеПеречисления(ВариантыИспользованияРабочегоСервера, "Главный", "main"); - ДобавитьЗначениеПеречисления(ВариантыИспользованияРабочегоСервера, "Обычный", "normal"); - -КонецПроцедуры // ЗаполнитьВариантыИспользованияРабочегоСервера() - -// Процедура - заполняет значения перечисления ВариантыИспользованияМенеджераКластера -// -Процедура ЗаполнитьВариантыИспользованияМенеджераКластера() - - ДобавитьЗначениеПеречисления(ВариантыИспользованияМенеджераКластера, "Обычный", "normal"); - -КонецПроцедуры // ЗаполнитьВариантыИспользованияМенеджераКластера() - -// Процедура - заполняет значения перечисления ВариантыРазмещенияСервисов -// -Процедура ЗаполнитьВариантыРазмещенияСервисов() - - ДобавитьЗначениеПеречисления(ВариантыРазмещенияСервисов, "ВОтдельныхМенеджерах" , "all"); - ДобавитьЗначениеПеречисления(ВариантыРазмещенияСервисов, "ВОдномМенеджере" , "none"); - -КонецПроцедуры // ЗаполнитьВариантыРазмещенияСервисов() - -// Процедура - заполняет значения перечисления СостоянияВыключателя -// -Процедура ЗаполнитьСостоянияВыключателя() - - ДобавитьЗначениеПеречисления(СостоянияВыключателя, "Включено" , "on"); - ДобавитьЗначениеПеречисления(СостоянияВыключателя, "Выключено" , "off"); - -КонецПроцедуры // ЗаполнитьСостоянияВыключателя() - -// Процедура - заполняет значения перечисления ДаНет -// -Процедура ЗаполнитьДаНет() - - ДобавитьЗначениеПеречисления(ДаНет, "Да" , "yes"); - ДобавитьЗначениеПеречисления(ДаНет, "Нет" , "no"); - -КонецПроцедуры // ЗаполнитьДаНет() - -// Процедура - заполняет значения перечисления ПраваДоступа -// -Процедура ЗаполнитьПраваДоступа() - - ДобавитьЗначениеПеречисления(ПраваДоступа, "Разрешено", "allow"); - ДобавитьЗначениеПеречисления(ПраваДоступа, "Запрещено", "deny"); - -КонецПроцедуры // ЗаполнитьПраваДоступа() - -// Процедура - заполняет значения перечисления РежимыРаспределенияНагрузки -// -Процедура ЗаполнитьРежимыРаспределенияНагрузки() - - ДобавитьЗначениеПеречисления(РежимыРаспределенияНагрузки, "ПоПамяти" , "memory"); - ДобавитьЗначениеПеречисления(РежимыРаспределенияНагрузки, "ПоПроизводительности", "performance"); - -КонецПроцедуры // ЗаполнитьРежимыРаспределенияНагрузки() - -// Процедура - заполняет значения перечисления СпособыАвторизации -// -Процедура ЗаполнитьСпособыАвторизации() - - ДобавитьЗначениеПеречисления(СпособыАвторизации, "Пароль" , "pwd"); - ДобавитьЗначениеПеречисления(СпособыАвторизации, "ОС" , "os"); - ДобавитьЗначениеПеречисления(СпособыАвторизации, "ПарольИОС", "pwd|os"); - -КонецПроцедуры // ЗаполнитьСпособыАвторизации() - -// Процедура - заполняет значения перечисления ТипыСУБД -// -Процедура ЗаполнитьТипыСУБД() - - ДобавитьЗначениеПеречисления(ТипыСУБД, "MSSQLServer" , "MSSQLServer"); - ДобавитьЗначениеПеречисления(ТипыСУБД, "PostgreSQL" , "PostgreSQL"); - ДобавитьЗначениеПеречисления(ТипыСУБД, "IBMDB2" , "IBMDB2"); - ДобавитьЗначениеПеречисления(ТипыСУБД, "OracleDatabase" , "OracleDatabase"); - -КонецПроцедуры // ЗаполнитьТипыСУБД() - -// Процедура - заполняет значения перечисления Использование -// -Процедура ЗаполнитьИспользование() - - ДобавитьЗначениеПеречисления(Использование, "Использовать" , "use"); - -КонецПроцедуры // ЗаполнитьИспользование() - -// Процедура - заполняет значения перечисления ТипыНазначенияФункциональности -// -Процедура ЗаполнитьТипыНазначенияФункциональности() - - ДобавитьЗначениеПеречисления(ТипыНазначенияФункциональности, "Авто" , "auto"); - ДобавитьЗначениеПеречисления(ТипыНазначенияФункциональности, "Назначать" , "always"); - ДобавитьЗначениеПеречисления(ТипыНазначенияФункциональности, "НеНазначать" , "never"); - -КонецПроцедуры // ЗаполнитьТипыНазначенияФункциональности() - -// Процедура - заполняет значения перечисления ОбъектыНазначенияФункциональности -// -Процедура ЗаполнитьОбъектыНазначенияФункциональности() - - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "ЛюбойОбъект" , ""); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "КлиентскиеСоединения" , "Connection"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "ОбновлениеКонфигураций" , "DataBaseConfigurationUpdateService"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "ЖурналРегистрации" , "EventLogService"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "ПровайдерOpenID" , "OpenID2ProviderContextService"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "ПолнотекстовыйПоиск" , "FulltextSearchService"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "ПользовательскиеНастройки" , "SettingsService"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "ТранзакционныеБлокировки" , "TransactionLockService"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "ВнешнееУправлениеСеансами" , "ExternalSessionManagerService"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "ВнешниеИсточникиXML" , "ExternalDataSourceXMLAService"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "Тестирование" , "ClientTestingService"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "Лицензирование" , "LicenseService"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "ДопФункцииКластера" , "AuxiliaryService"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "Время" , "TimestampService"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "БлокировкиОбъектов" , "DataEditLockService"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "СеансовыеДанные" , "SessionDataService"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "Задания" , "JobService"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "Нумерация" , "NumerationService"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "ПовторноеИспользованиеСеансов" , "SessionReuseService"); - ДобавитьЗначениеПеречисления(ОбъектыНазначенияФункциональности, - "ВнешниеИсточникиODBC" , "ExternalDataSourceODBCService"); - -КонецПроцедуры // ЗаполнитьОбъектыНазначенияФункциональности() - -// Процедура - заполняет значения перечисления РежимыДоступа -// -Процедура ЗаполнитьРежимыДоступа() - - ДобавитьЗначениеПеречисления(РежимыДоступа , "Список" , "list"); - ДобавитьЗначениеПеречисления(РежимыДоступа , "ПолныйДоступ" , "full"); - -КонецПроцедуры // ЗаполнитьРежимыДоступа() - -// Процедура - заполняет значения перечисления ВидыОбъектовПрофиляБезопасности -// -Процедура ЗаполнитьВидыОбъектовПрофиляБезопасности() - - ДобавитьЗначениеПеречисления(ВидыОбъектовПрофиляБезопасности , "Каталог" , "directory"); - ДобавитьЗначениеПеречисления(ВидыОбъектовПрофиляБезопасности , "COMКласс" , "com"); - ДобавитьЗначениеПеречисления(ВидыОбъектовПрофиляБезопасности , "Компонент" , "addin"); - ДобавитьЗначениеПеречисления(ВидыОбъектовПрофиляБезопасности , "Модуль" , "module"); - ДобавитьЗначениеПеречисления(ВидыОбъектовПрофиляБезопасности , "Приложение" , "app"); - ДобавитьЗначениеПеречисления(ВидыОбъектовПрофиляБезопасности , "ИнтернетРесурс" , "inet"); - -КонецПроцедуры // ЗаполнитьВидыОбъектовПрофиляБезопасности() - Инициализация(); \ No newline at end of file diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.os" index 40fe48c..bf84644 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.os" @@ -1,3 +1,12 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + #Использовать logos #Использовать tempfiles #Использовать asserts @@ -7,13 +16,32 @@ Перем Лог; +// Функция - читает указанный макет JSON и возвращает содержимое в виде структуры/массива +// +// Параметры: +// ИмяМакета - Строка - имя макета (файла) json +// +// Возвращаемое значение: +// Структура, Массив - прочитанные данные из макета +// +Функция ПрочитатьДанныеИзМакетаJSON(ИмяМакета) Экспорт + + Чтение = Новый ЧтениеJSON(); + + Чтение.ОткрытьФайл(СтрШаблон("%1/../Макеты/%2.json", ТекущийСценарий().Каталог, ИмяМакета), + КодировкаТекста.UTF8); + + Возврат ПрочитатьJSON(Чтение, Ложь); + +КонецФункции // ПрочитатьДанныеИзМакетаJSON() + // Функция добавляет кавычки в начале и в конце переданной строки // // Параметры: -// Строка - Строка - Строка для добавления кавычек +// Строка - Строка - Строка для добавления кавычек // // Возвращаемое значение: -// Строка - строка с добавленными кавычками +// Строка - строка с добавленными кавычками // Функция ОбернутьВКавычки(Знач Строка) Экспорт Если Лев(Строка, 1) = """" И Прав(Строка, 1) = """" Тогда @@ -26,9 +54,9 @@ // Процедура заполняет параметры объекта кластера 1С // // Параметры: -// ОбъектКластера - Произвольный - объект, параметры которого будут заполнены -// Параметры - Соответствие - переменная, которая будет заполнена параметрами объекта -// ДанныеЗаполнения - Соответствие - данные, из которых будут заполнены параметры объекта +// ОбъектКластера - Произвольный - объект, параметры которого будут заполнены +// Параметры - Соответствие - переменная, которая будет заполнена параметрами объекта +// ДанныеЗаполнения - Соответствие - данные, из которых будут заполнены параметры объекта // Процедура ЗаполнитьПараметрыОбъекта(ОбъектКластера, Параметры, ДанныеЗаполнения) Экспорт @@ -38,8 +66,8 @@ Для Каждого ТекЭлемент Из СтруктураПараметров Цикл ЗначениеПараметра = Служебный.ПолучитьЗначениеИзСтруктуры(ДанныеЗаполнения, - ТекЭлемент.Значение.ИмяПоляРАК, - ТекЭлемент.Значение.ЗначениеПоУмолчанию); + ТекЭлемент.Значение.ИмяРАК, + ТекЭлемент.Значение.ПоУмолчанию); Параметры.Вставить(ТекЭлемент.Ключ, ЗначениеПараметра); КонецЦикла; @@ -48,15 +76,15 @@ // Функция возвращает значение указанного поля структуры/соответствия или значение по умолчанию // // Параметры: -// ПарамСтруктура - Структура, Соответствие - коллекция из которой возвращается значение -// Ключ - Произвольный - значение ключа коллекции для получения значения -// ЗначениеПоУмолчанию - Произвольный - значение, возвращаемое в случае, -// когда ключ отсутствует в коллекции +// ПарамСтруктура - Структура, Соответствие - коллекция из которой возвращается значение +// Ключ - Произвольный - значение ключа коллекции для получения значения +// ПоУмолчанию - Произвольный - значение, возвращаемое в случае, +// когда ключ отсутствует в коллекции // // Возвращаемое значение: -// Произвольный - значение элемента коллекции или значение по умолчанию +// Произвольный - значение элемента коллекции или значение по умолчанию // -Функция ПолучитьЗначениеИзСтруктуры(ПарамСтруктура, Ключ, ЗначениеПоУмолчанию = Неопределено) Экспорт +Функция ПолучитьЗначениеИзСтруктуры(ПарамСтруктура, Ключ, ПоУмолчанию = Неопределено) Экспорт Если ТипЗнч(ПарамСтруктура) = Тип("Структура") Тогда Если ПарамСтруктура.Свойство(Ключ) Тогда @@ -66,26 +94,26 @@ Если НЕ ПарамСтруктура.Получить(Ключ) = Неопределено Тогда Возврат ПарамСтруктура.Получить(Ключ); КонецЕсли; + Иначе + Возврат ПоУмолчанию; КонецЕсли; - Возврат ЗначениеПоУмолчанию; - КонецФункции // ПолучитьЗначениеИзСтруктуры() // Функция преобразует массив соответствий в иерархию соответствий в соответствии с указанным порядком полей // копирования данных не происходят, в результирующее соответствие помещаются исходные элементы массива // // Параметры: -// МассивСоответствий - Массив(Соответствие) - Данные для преобразования -// <имя поля> - Произвольный - Значение элемента соответствия -// ПоляИерархии - Строка - Поля для построения иерархии списка объектов, разделенные "," +// МассивСоответствий - Массив(Соответствие) - Данные для преобразования +// <имя поля> - Произвольный - Значение элемента соответствия +// ПоляИерархии - Строка - Поля для построения иерархии списка объектов, разделенные "," // // Возвращаемое значение: -// Соответствие - иерархия соответствий по значениям полей упорядочивания -// <значение поля упорядочивания> - Соответствие, - подчиненные данные по значениям -// Массив(Соответствие) следующего поля упорядочивания -// или элементы исходного массива -// на последнем уровне иерархии +// Соответствие - иерархия соответствий по значениям полей упорядочивания +// <значение поля упорядочивания> - Соответствие, - подчиненные данные по значениям +// Массив(Соответствие) следующего поля упорядочивания +// или элементы исходного массива +// на последнем уровне иерархии // Функция ИерархическоеПредставлениеМассиваСоответствий(МассивСоответствий, ПоляИерархии) Экспорт @@ -124,11 +152,11 @@ // Функция возвращает массив элементов (соответствий), отвечающих заданному отбору // // Параметры: -// МассивСоответствий - Массив(Соответствие) - Обрабатываемый массив -// Отбор - Соответствие - Структура отбора вида <поле>:<значение> +// МассивСоответствий - Массив(Соответствие) - Обрабатываемый массив +// Отбор - Соответствие - Структура отбора вида <поле>:<значение> // // Возвращаемое значение: -// Массив(Соответствие) - массив соответствий, соответствующих отбору +// Массив(Соответствие) - массив соответствий, соответствующих отбору // Функция ПолучитьЭлементыИзМассиваСоответствий(МассивСоответствий, Отбор) Экспорт @@ -164,13 +192,13 @@ // Функция признак необходимости обновления данных // // Параметры: -// ОбъектДанных - Произвольный - данные для обновления -// МоментАктуальности - Число - момент актуальности данных (мсек) -// ПериодОбновления - Число - периодичность обновления (мсек) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ОбъектДанных - Произвольный - данные для обновления +// МоментАктуальности - Число - момент актуальности данных (мсек) +// ПериодОбновления - Число - периодичность обновления (мсек) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) // // Возвращаемое значение: -// Булево - Истина - требуется обновитьданные +// Булево - Истина - требуется обновитьданные // Функция ТребуетсяОбновление(ОбъектДанных, МоментАктуальности, ПериодОбновления, ОбновитьПринудительно = Ложь) Экспорт @@ -183,7 +211,7 @@ // Диагностическая процедура для вывода списка полей объекта // // Параметры: -// ОбъектДанных - Произвольный - объект, поля которого требуется вывести +// ОбъектДанных - Произвольный - объект, поля которого требуется вывести // Процедура ВывестиПоляОбъекта(Знач ОбъектДанных) Экспорт @@ -205,4 +233,4 @@ КонецПроцедуры // ВывестиПоляОбъекта() -Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); +Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\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.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\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.os" new file mode 100644 index 0000000..25df847 --- /dev/null +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\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.os" @@ -0,0 +1,483 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +Перем ТипыОбъектов; +Перем СвойстваОбъектов; +Перем КомандыОбъектов; + +Перем Лог; + +#Область ПрограммныйИнтерфейс + +// Функция возвращает описания свойств для указанного имени типа объектов +// +// Параметры: +// ТипОбъектов - Строка - имя типа объектов +// +// Возвращаемое значение: +// Массив(Структура) - описания свойств для типа объектов +// *Имя - Строка - имя свойства объекта +// *ИмяРАК - Строка - имя свойства, как оно возвращается утилитой RAC +// *ПоУмолчанию - Произвольный - значение свойства объекта по умолчанию +// *Чтение - Булево - Истина - значение свойства может быть прочитано; +// *Добавление - Булево - Истина - значение свойства может быть установлено при добавлении; +// *Изменение - Булево - Истина - значение свойства может быть установлено при изменении; +// *ПараметрКоманды - Строка - строка параметра команды, как она будет использована +// при вызове команды (по умолчанию: "--<ИмяРАК>") +// +Функция СвойстваОбъекта(Знач ТипОбъектов) Экспорт + + Свойства = СвойстваОбъектов.Получить(ВРег(ТипОбъектов)); + + Если Свойства = Неопределено Тогда + ВызватьИсключение СтрШаблон("Не найдено описание свойств для объектов ""%1""", ТипОбъектов); + КонецЕсли; + + Возврат Свойства; + +КонецФункции // СвойстваОбъекта() + +// Функция возвращает описания команд для указанного имени типа объектов +// +// Параметры: +// ТипОбъектов - Строка - имя типа объектов +// +// Возвращаемое значение: +// Структура - описания команд для типа объектов +// *<Имя команды> - Строка - Имя команды RAC +// +Функция КомандыОбъекта(Знач ТипОбъектов) Экспорт + + Команды = КомандыОбъектов.Получить(ВРег(ТипОбъектов)); + + Если Команды = Неопределено Тогда + ВызватьИсключение СтрШаблон("Не найдено описание команд для объектов ""%1""", ТипОбъектов); + КонецЕсли; + + Возврат Команды; + +КонецФункции // КомандыОбъекта() + +// Функция возвращает описание типа объектов для указанного имени типа объектов +// +// Параметры: +// ТипОбъектов - Строка - имя типа объектов +// +// Возвращаемое значение: +// Структура - описание типа объектов +// *Имя - Строка - имя типа объектов +// *РежимАдминистрирования - Строка - режим утилиты RAC (agent, cluster, infobase и т.п.) +// *Владелец - Струткура - описание типа объекта, владельца +// (например: для типа "Кластер.Администратор" +// будет содержать описание типа "Кластер") +// +Функция ТипОбъекта(Знач ТипОбъектов) Экспорт + + ИмяТипа = ТипыОбъектов.Получить(ВРег(ТипОбъектов)); + + Если ИмяТипа = Неопределено Тогда + ВызватьИсключение СтрШаблон("Не найден тип объектов ""%1""", ТипОбъектов); + КонецЕсли; + + Возврат ИмяТипа; + +КонецФункции // ТипОбъекта() + +#КонецОбласти // ПрограммныйИнтерфейс + +#Область ПроцедурыЗаполненияОписаний + +// Функция создает структуру описания свойства +// +// Возвращаемое значение: +// Структура - структура описания свойства типа объектов +// +Функция ПолучитьСтруктуруОписанияСвойства() + + ОписаниеСвойства = Новый Структура(); + ОписаниеСвойства.Вставить("Имя" , ""); + ОписаниеСвойства.Вставить("ИмяРАК" , ""); + ОписаниеСвойства.Вставить("ПараметрКоманды", ""); + ОписаниеСвойства.Вставить("ПоУмолчанию" , ""); + ОписаниеСвойства.Вставить("Чтение" , Ложь); + ОписаниеСвойства.Вставить("Добавление" , Ложь); + ОписаниеСвойства.Вставить("Изменение" , Ложь); + ОписаниеСвойства.Вставить("ПараметрКоманды", ""); + + Возврат ОписаниеСвойства; + +КонецФункции // ПолучитьСтруктуруОписанияСвойств() + +// Функция заполняет и возвращает описание свойства типа объектов +// +// Параметры: +// Имя - Строка - имя свойства объекта +// ИмяРАК - Строка - имя свойства, как оно возвращается утилитой RAC +// ПоУмолчанию - Произвольный - значение свойства объекта по умолчанию +// Использование - Строка, Структура - строка содержащая флаги использования, разделенные "," +// (Чтение, Добавление, Изменение) +// если указана структура, то в значении можно переопределить +// имя параметра утилиты RAC +// Возвращаемое значение: +// Структура - описание свойства типа объектов +// *Имя - Строка - имя свойства объекта +// *ИмяРАК - Строка - имя свойства, как оно возвращается утилитой RAC +// *ПоУмолчанию - Произвольный - значение свойства объекта по умолчанию +// *Чтение - Булево - Истина - значение свойства может быть прочитано; +// *Добавление - Булево - Истина - значение свойства может быть установлено при добавлении; +// *Изменение - Булево - Истина - значение свойства может быть установлено при изменении; +// *ПараметрКоманды - Строка - строка параметра команды, как она будет использована +// при вызове команды (по умолчанию: "--<ИмяРАК>") +// +Функция ПолучитьОписаниеСвойства(Знач Имя + , Знач ИмяРАК + , Знач ПоУмолчанию = "" + , Знач Использование = "Чтение") + + Если ТипЗнч(Использование) = Тип("Строка") Тогда + Использование = Новый Структура(Использование); + Для Каждого ТекЭлемент Из Использование Цикл + Использование[ТекЭлемент.Ключ] = Истина; + КонецЦикла; + КонецЕсли; + + Если НЕ ТипЗнч(Использование) = Тип("Структура") Тогда + Использование = Новый Структура(); + КонецЕсли; + + // Если значение начинается со спец. символа "$", то вычисляем как код + // используется для получения значений перечислений + Если ВРег(Лев(ПоУмолчанию, 14)) = ВРег("$Перечисления.") Тогда + ПоУмолчанию = Перечисления.Значение(Сред(ПоУмолчанию, 15)); + КонецЕсли; + + ОписаниеСвойства = ПолучитьСтруктуруОписанияСвойства(); + ОписаниеСвойства.Имя = Имя; + ОписаниеСвойства.ИмяРАК = ИмяРАК; + ОписаниеСвойства.ПоУмолчанию = ПоУмолчанию; + ОписаниеСвойства.Чтение = Использование.Свойство("Чтение"); + ОписаниеСвойства.Добавление = Использование.Свойство("Добавление"); + ОписаниеСвойства.Изменение = Использование.Свойство("Изменение"); + + Если Использование.Свойство("ПараметрКоманды") Тогда + ОписаниеСвойства.ПараметрКоманды = Использование.ПараметрКоманды; + Иначе + Если ОписаниеСвойства.Добавление ИЛИ ОписаниеСвойства.Изменение Тогда + ОписаниеСвойства.ПараметрКоманды = "--" + ОписаниеСвойства.ИмяРАК; + КонецЕсли; + КонецЕсли; + + Возврат ОписаниеСвойства; + +КонецФункции // ПолучитьОписаниеСвойства() + +// Процедура добавляет описание свойства в массив описаний свойств +// +// Параметры: +// ОписаниеСвойствОбъекта - Массив - массив описаний свойств для добавления нового описания +// Имя - Строка - имя свойства объекта +// СтруктураСвойства - Структура - структура с описанием свойства типа объектов +// *ИмяРАК - Строка - имя свойства, как оно возвращается утилитой RAC +// *ПоУмолчанию - Произвольный - значение свойства объекта по умолчанию +// *Использование - Строка, Структура - строка содержащая флаги использования, разделенные "," +// (Чтение, Добавление, Изменение) +// если указана структура, то в значении можно переопределить +// имя параметра утилиты RAC +// +Процедура ДобавитьОписаниеСвойстваОбъекта(ОписаниеСвойствОбъекта, Знач Имя, Знач СтруктураСвойства) + + Если НЕ ТипЗнч(ОписаниеСвойствОбъекта) = Тип("Массив") Тогда + ОписаниеСвойствОбъекта = Новый Массив(); + КонецЕсли; + + Если НЕ СтруктураСвойства.Свойство("ПоУмолчанию") Тогда + СтруктураСвойства.Вставить("ПоУмолчанию", ""); + КонецЕсли; + + Если НЕ СтруктураСвойства.Свойство("Использование") Тогда + СтруктураСвойства.Вставить("Использование", "Чтение"); + КонецЕсли; + + ОписаниеСвойства = ПолучитьОписаниеСвойства(Имя, + СтруктураСвойства.ИмяРАК, + СтруктураСвойства.ПоУмолчанию, + СтруктураСвойства.Использование); + + ОписаниеСвойствОбъекта.Добавить(ОписаниеСвойства); + +КонецПроцедуры // ДобавитьОписаниеСвойстваОбъекта() + +// Процедура добавляет описания свойств указанного типа объектов в соответствие описаний свойств +// для каждого типа объектов будут добавлены записи с ключами: +// - <ИмяТипа> +// - <Имя> из описания типа +// - <РежимАдминистрирования> из описания типа +// если указаны имена родетелей, то для каждого имени родителя и типа объектов будут добавлены записи с ключами: +// - <имя родителя>.<ИмяТипа> +// - <имя родителя>.<Имя> +// - <имя родителя>.<РежимАдминистрирования> +// +// Параметры: +// ОписаниеТипаОбъектов - КлючИЗначение - Ключ - имя типа объектов, как оно было загружено из макета; +// Значение - описание типа объектов, как оно было загружено из макета +// *Имя - Строка - имя типа объектов +// *РежимАдминистрирования - Строка - имя режима утилиты RAC (agent, cluster, infobase и т.п.) +// *МинВерсия - Строка - версия 1С, с которой доступен указанный режим RAC +// *Свойства - Структура - структура описаний свойств типа объектов +// *Команды - Структура - структура описаний команд типа объектов +// ИмяТипа - Строка - имя типа, для которого получаем свойства +// ИменаРодителя - Массив(Строка) - имена родительского типа +// +Процедура ДобавитьСвойстваТипаОбъектов(Знач ОписаниеТипаОбъектов + , Знач ИмяТипа + , Знач ИменаРодителя = Неопределено) + + // Соберем все возможные комбинации имен типов объектов + ИменаТипа = Новый Массив(); + ИменаТипа.Добавить(ИмяТипа); + ИменаТипа.Добавить(ОписаниеТипаОбъектов.Имя); + ИменаТипа.Добавить(ОписаниеТипаОбъектов.РежимАдминистрирования); + ИменаТипа = ПолучитьВозможныеИменаТипа(ИменаТипа, ИменаРодителя); + + ОписаниеСвойств = Новый Массив(); + + Если НЕ ОписаниеТипаОбъектов.Свойство("Свойства") Тогда + ОписаниеТипаОбъектов.Вставить("Свойства", Новый Структура()); + КонецЕсли; + + Для Каждого ТекСвойство Из ОписаниеТипаОбъектов.Свойства Цикл + Если ТекСвойство.Значение.Свойство("РежимАдминистрирования") Тогда + ДобавитьСвойстваТипаОбъектов(ТекСвойство.Значение, ТекСвойство.Ключ, ИменаТипа); + Иначе + ДобавитьОписаниеСвойстваОбъекта(ОписаниеСвойств, + ТекСвойство.Ключ, + ТекСвойство.Значение); + КонецЕсли; + КонецЦикла; + + Для Каждого ТекИмя Из ИменаТипа Цикл + Если НЕ СвойстваОбъектов.Получить(ВРег(ТекИмя)) = Неопределено Тогда + Продолжить; + КонецЕсли; + СвойстваОбъектов.Вставить(ВРег(ТекИмя), ОписаниеСвойств); + Лог.Отладка("Добавлено описание свойств типа объектов: %1", ТекИмя); + КонецЦикла; + +КонецПроцедуры // ДобавитьСвойстваТипаОбъектов() + +// Функция создает структуру описания команды +// +// Возвращаемое значение: +// Структура - структура описания команды типа объектов +// +Функция ПолучитьСтруктуруОписанияКоманды() + + ОписанияКоманды = Новый Структура(); + ОписанияКоманды.Вставить("Имя" , ""); + ОписанияКоманды.Вставить("ИмяРАК" , ""); + ОписанияКоманды.Вставить("АвторизацияАгента", Ложь); + ОписанияКоманды.Вставить("Кластер" , Ложь); + ОписанияКоманды.Вставить("ОбщиеПараметры" , Новый Массив()); + ОписанияКоманды.Вставить("ПараметрыКоманды" , Новый Массив()); + ОписанияКоманды.Вставить("ЗначенияПолей" , Ложь); + + Возврат ОписанияКоманды; + +КонецФункции // ПолучитьСтруктуруОписанияКоманды() + +// Процедура добавляет описания команд указанного типа объектов в соответствие описаний команд +// для каждого типа объектов будут добавлены записи с ключами: +// - <ИмяТипа> +// - <Имя> из описания типа +// - <РежимАдминистрирования> из описания типа +// если указаны имена родителей, то для каждого имени родителя и типа объектов будут добавлены записи с ключами: +// - <имя родителя>.<ИмяТипа> +// - <имя родителя>.<Имя> +// - <имя родителя>.<РежимАдминистрирования> +// +// Параметры: +// ОписаниеТипаОбъектов - КлючИЗначение - Ключ - имя типа объектов, как оно было загружено из макета; +// Значение - описание типа объектов, как оно было загружено из макета +// *Имя - Строка - имя типа объектов +// *РежимАдминистрирования - Строка - имя режима утилиты RAC (agent, cluster, infobase и т.п.) +// *МинВерсия - Строка - версия 1С, с которой доступен указанный режим RAC +// *Свойства - Структура - структура описаний свойств типа объектов +// *Команды - Структура - структура описаний команд типа объектов +// ИмяТипа - Строка - имя типа, для которого получаем команды +// ИменаРодителя - Массив(Строка) - имена родительского типа +// +Процедура ДобавитьКомандыТипаОбъектов(Знач ОписаниеТипаОбъектов + , Знач ИмяТипа + , Знач ИменаРодителя = Неопределено) + + // Соберем все возможные комбинации имен типов объектов + ИменаТипа = Новый Массив(); + ИменаТипа.Добавить(ИмяТипа); + ИменаТипа.Добавить(ОписаниеТипаОбъектов.Имя); + ИменаТипа.Добавить(ОписаниеТипаОбъектов.РежимАдминистрирования); + ИменаТипа = ПолучитьВозможныеИменаТипа(ИменаТипа, ИменаРодителя); + + Если НЕ ОписаниеТипаОбъектов.Свойство("Свойства") Тогда + ОписаниеТипаОбъектов.Вставить("Свойства", Новый Структура()); + КонецЕсли; + + Для Каждого ТекСвойство Из ОписаниеТипаОбъектов.Свойства Цикл + Если ТекСвойство.Значение.Свойство("РежимАдминистрирования") Тогда + ДобавитьКомандыТипаОбъектов(ТекСвойство.Значение, ТекСвойство.Ключ, ИменаТипа); + КонецЕсли; + КонецЦикла; + + ОписаниеКоманд = Новый Структура(); + + Если НЕ ОписаниеТипаОбъектов.Свойство("Команды") Тогда + ОписаниеТипаОбъектов.Вставить("Команды", Новый Структура()); + КонецЕсли; + + Для Каждого ТекКоманда Из ОписаниеТипаОбъектов.Команды Цикл + ОписаниеКоманды = ПолучитьСтруктуруОписанияКоманды(); + ЗаполнитьЗначенияСвойств(ОписаниеКоманды, ТекКоманда.Значение); + ОписаниеКоманд.Вставить(ТекКоманда.Ключ, ОписаниеКоманды); + КонецЦикла; + + Для Каждого ТекИмя Из ИменаТипа Цикл + Если НЕ КомандыОбъектов.Получить(ВРег(ТекИмя)) = Неопределено Тогда + Продолжить; + КонецЕсли; + КомандыОбъектов.Вставить(ВРег(ТекИмя), ОписаниеКоманд); + Лог.Отладка("Добавлено описание команд типа объектов: %1", ТекИмя); + КонецЦикла; + +КонецПроцедуры // ДобавитьКомандыТипаОбъектов() + +// Процедура добавляет описания указанного типа объектов в соответствие описаний типов объектов +// для каждого типа объектов будут добавлены записи с ключами: +// - <ИмяТипа> +// - <Имя> из описания типа +// - <РежимАдминистрирования> из описания типа +// если указаны имена родителей, то для каждого имени родителя и типа объектов будут добавлены записи с ключами: +// - <имя родителя>.<ИмяТипа> +// - <имя родителя>.<Имя> +// - <имя родителя>.<РежимАдминистрирования> +// +// Параметры: +// ОписаниеТипаОбъектов - КлючИЗначение - Ключ - имя типа объектов, как оно было загружено из макета; +// Значение - описание типа объектов, как оно было загружено из макета +// *Имя - Строка - имя типа объектов +// *РежимАдминистрирования - Строка - имя режима утилиты RAC (agent, cluster, infobase и т.п.) +// *МинВерсия - Строка - версия 1С, с которой доступен указанный режим RAC +// *Свойства - Структура - структура описаний свойств типа объектов +// *Команды - Структура - структура описаний команд типа объектов +// ИмяТипа - Строка - имя типа, для которого получаем описание +// ИменаРодителя - Массив(Строка) - имена родительского типа +// +Процедура ДобавитьОписаниеТипаОбъектов(Знач ОписаниеТипаОбъектов + , Знач ИмяТипа + , Знач ИменаРодителя = Неопределено) + + // Соберем все возможные комбинации имен типов объектов + ИменаТипа = Новый Массив(); + ИменаТипа.Добавить(ОписаниеТипаОбъектов.Имя); + ИменаТипа.Добавить(ОписаниеТипаОбъектов.РежимАдминистрирования); + ИменаТипа.Добавить(ИмяТипа); + ИменаТипа = ПолучитьВозможныеИменаТипа(ИменаТипа, ИменаРодителя); + + Если НЕ ОписаниеТипаОбъектов.Свойство("Свойства") Тогда + ОписаниеТипаОбъектов.Вставить("Свойства", Новый Структура()); + КонецЕсли; + + ОписаниеТипа = Новый Структура(); + ОписаниеТипа.Вставить("Имя" , ИменаТипа[0]); + ОписаниеТипа.Вставить("РежимАдминистрирования", ОписаниеТипаОбъектов.РежимАдминистрирования); + Если ТипЗнч(ИменаРодителя) = Тип("Массив") И ИменаРодителя.Количество() > 0 Тогда + ОписаниеТипа.Вставить("Владелец" , ТипОбъекта(ИменаРодителя[0])); + КонецЕсли; + + Для Каждого ТекИмя Из ИменаТипа Цикл + Если НЕ ТипыОбъектов.Получить(ВРег(ТекИмя)) = Неопределено Тогда + Продолжить; + КонецЕсли; + + ТипыОбъектов.Вставить(ВРег(ТекИмя), ОписаниеТипа); + Лог.Отладка("Добавлено имя типа объектов %1: %2", ИменаТипа[0], ТекИмя); + КонецЦикла; + + Для Каждого ТекСвойство Из ОписаниеТипаОбъектов.Свойства Цикл + Если ТекСвойство.Значение.Свойство("РежимАдминистрирования") Тогда + ДобавитьОписаниеТипаОбъектов(ТекСвойство.Значение, ТекСвойство.Ключ, ИменаТипа); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры // ДобавитьОписаниеТипаОбъектов() + +#КонецОбласти // ПроцедурыЗаполненияОписаний + +#Область Служебные + +// Функция возвращает массив всех возможныех имена типа с учетом иерархии типов и альтернативных имен +// для каждого имени типа объектов и каждого имени родительского типа будут добавлены имена вида: +// - <имя родителя>.<ИмяТипа> +// если имена родительских типов не указаны, то будет возвращен массив имен типов без изменений +// +// Параметры: +// ИменаТипа - Строка - имена типа +// ИменаРодителя - Массив(Строка) - имена родительского типа +// +Функция ПолучитьВозможныеИменаТипа(ИменаТипа, ИменаРодителя = Неопределено) + + Если НЕ (ТипЗнч(ИменаРодителя) = Тип("Массив") И ИменаРодителя.Количество() > 0) Тогда + Возврат ИменаТипа; + КонецЕсли; + + ИменаСРодителями = Новый Массив(); + Для Каждого ТекИмяРодителя Из ИменаРодителя Цикл + Для Каждого ТекИмя Из ИменаТипа Цикл + ИменаСРодителями.Добавить(СтрШаблон("%1.%2", ТекИмяРодителя, ТекИмя)); + КонецЦикла; + КонецЦикла; + + Возврат ИменаСРодителями; + +КонецФункции // ПолучитьВозможныеИменаТипа + +// Процедура заполняет описания типов объектов из макета JSON ("ТипыОбъектовКластера") +// выполняется при инициализации модуля +// +Процедура Инициализация() + + Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); + + ДанныеМакета = Служебный.ПрочитатьДанныеИзМакетаJSON("ТипыОбъектовКластера"); + + ТипыОбъектов = Новый Соответствие(); + СвойстваОбъектов = Новый Соответствие(); + КомандыОбъектов = Новый Соответствие(); + + Для Каждого ТекТип Из ДанныеМакета Цикл + + Если НЕ ТекТип.Значение.Свойство("Свойства") Тогда + ТекТип.Значение.Вставить("Свойства", Новый Структура()); + КонецЕсли; + + Если НЕ ТекТип.Значение.Свойство("Команды") Тогда + ТекТип.Значение.Вставить("Команды", Новый Структура()); + КонецЕсли; + + ДобавитьОписаниеТипаОбъектов(ТекТип.Значение, ТекТип.Ключ); + + ДобавитьСвойстваТипаОбъектов(ТекТип.Значение, ТекТип.Ключ); + + ДобавитьКомандыТипаОбъектов(ТекТип.Значение, ТекТип.Ключ); + + КонецЦикла; + +КонецПроцедуры // Инициализация() + +#КонецОбласти // Служебные + +Инициализация(); \ No newline at end of file diff --git a/tasks/coverage.os b/tasks/coverage.os index 1172b88..9e66f9f 100644 --- a/tasks/coverage.os +++ b/tasks/coverage.os @@ -1,73 +1,82 @@ -#Использовать 1commands -#Использовать asserts -#Использовать fs -#Использовать json - -СистемнаяИнформация = Новый СистемнаяИнформация; -ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; - -ФС.ОбеспечитьПустойКаталог("coverage"); -ПутьКСтат = "coverage/stat.json"; - -Команда = Новый Команда; -Команда.УстановитьКоманду("oscript"); -Если НЕ ЭтоWindows Тогда - Команда.ДобавитьПараметр("-encoding=utf-8"); -КонецЕсли; -Команда.ДобавитьПараметр(СтрШаблон("-codestat=%1", ПутьКСтат)); -Команда.ДобавитьПараметр("tasks/test.os"); -Команда.ПоказыватьВыводНемедленно(Истина); - -КодВозврата = Команда.Исполнить(); - -Файл_Стат = Новый Файл(ПутьКСтат); -Ожидаем.Что(Файл_Стат.Существует(), СтрШаблон("Файл <%1> с результатами покрытия не существует!", Файл_Стат.ПолноеИмя)).ЭтоИстина(); - -ЧтениеТекста = Новый ЧтениеТекста(ПутьКСтат, КодировкаТекста.UTF8); - -СтрокаJSON = ЧтениеТекста.Прочитать(); -ЧтениеТекста.Закрыть(); - -Парсер = Новый ПарсерJSON(); -ДанныеПокрытия = Парсер.ПрочитатьJSON(СтрокаJSON); - -ЗаписьXML = Новый ЗаписьXML; -ЗаписьXML.ОткрытьФайл("coverage/genericCoverage.xml"); -ЗаписьXML.ЗаписатьОбъявлениеXML(); -ЗаписьXML.ЗаписатьНачалоЭлемента("coverage"); -ЗаписьXML.ЗаписатьАтрибут("version", "1"); - -Для Каждого Файл Из ДанныеПокрытия Цикл - - ДанныеФайла = Файл.Значение; - - ЗаписьXML.ЗаписатьНачалоЭлемента("file"); - ЗаписьXML.ЗаписатьАтрибут("path", ДанныеФайла.Получить("#path")); - - Для Каждого КлючИЗначение Из ДанныеФайла Цикл - - Если КлючИЗначение.Ключ = "#path" Тогда - Продолжить; - КонецЕсли; - - ДанныеПроцедуры = КлючИЗначение.Значение; - Для Каждого ДанныеСтроки Из ДанныеПроцедуры Цикл - - ЗаписьXML.ЗаписатьНачалоЭлемента("lineToCover"); - - ЗаписьXML.ЗаписатьАтрибут("lineNumber", ДанныеСтроки.Ключ); - Покрыто = Число(ДанныеСтроки.Значение.Получить("count")) > 0; - ЗаписьXML.ЗаписатьАтрибут("covered", Формат(Покрыто, "БИ=true; БЛ=false")); - - ЗаписьXML.ЗаписатьКонецЭлемента(); // lineToCover - КонецЦикла; - КонецЦикла; - - ЗаписьXML.ЗаписатьКонецЭлемента(); // file - -КонецЦикла; - -ЗаписьXML.ЗаписатьКонецЭлемента(); // coverage -ЗаписьXML.Закрыть(); - +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +#Использовать 1commands +#Использовать asserts +#Использовать fs +#Использовать json + +СистемнаяИнформация = Новый СистемнаяИнформация; +ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; + +ФС.ОбеспечитьПустойКаталог("coverage"); +ПутьКСтат = "coverage/stat.json"; + +Команда = Новый Команда; +Команда.УстановитьКоманду("oscript"); +Если НЕ ЭтоWindows Тогда + Команда.ДобавитьПараметр("-encoding=utf-8"); +КонецЕсли; +Команда.ДобавитьПараметр(СтрШаблон("-codestat=%1", ПутьКСтат)); +Команда.ДобавитьПараметр("tasks/test.os"); +Команда.ПоказыватьВыводНемедленно(Истина); + +КодВозврата = Команда.Исполнить(); + +Файл_Стат = Новый Файл(ПутьКСтат); +Ожидаем.Что(Файл_Стат.Существует(), СтрШаблон("Файл <%1> с результатами покрытия не существует!", Файл_Стат.ПолноеИмя)).ЭтоИстина(); + +ЧтениеТекста = Новый ЧтениеТекста(ПутьКСтат, КодировкаТекста.UTF8); + +СтрокаJSON = ЧтениеТекста.Прочитать(); +ЧтениеТекста.Закрыть(); + +Парсер = Новый ПарсерJSON(); +ДанныеПокрытия = Парсер.ПрочитатьJSON(СтрокаJSON); + +ЗаписьXML = Новый ЗаписьXML; +ЗаписьXML.ОткрытьФайл("coverage/genericCoverage.xml"); +ЗаписьXML.ЗаписатьОбъявлениеXML(); +ЗаписьXML.ЗаписатьНачалоЭлемента("coverage"); +ЗаписьXML.ЗаписатьАтрибут("version", "1"); + +Для Каждого Файл Из ДанныеПокрытия Цикл + + ДанныеФайла = Файл.Значение; + + ЗаписьXML.ЗаписатьНачалоЭлемента("file"); + ЗаписьXML.ЗаписатьАтрибут("path", ДанныеФайла.Получить("#path")); + + Для Каждого КлючИЗначение Из ДанныеФайла Цикл + + Если КлючИЗначение.Ключ = "#path" Тогда + Продолжить; + КонецЕсли; + + ДанныеПроцедуры = КлючИЗначение.Значение; + Для Каждого ДанныеСтроки Из ДанныеПроцедуры Цикл + + ЗаписьXML.ЗаписатьНачалоЭлемента("lineToCover"); + + ЗаписьXML.ЗаписатьАтрибут("lineNumber", ДанныеСтроки.Ключ); + Покрыто = Число(ДанныеСтроки.Значение.Получить("count")) > 0; + ЗаписьXML.ЗаписатьАтрибут("covered", Формат(Покрыто, "БИ=true; БЛ=false")); + + ЗаписьXML.ЗаписатьКонецЭлемента(); // lineToCover + КонецЦикла; + КонецЦикла; + + ЗаписьXML.ЗаписатьКонецЭлемента(); // file + +КонецЦикла; + +ЗаписьXML.ЗаписатьКонецЭлемента(); // coverage +ЗаписьXML.Закрыть(); + ЗавершитьРаботу(КодВозврата); \ No newline at end of file diff --git a/tasks/test.os b/tasks/test.os index 9eba8a7..4e62e93 100644 --- a/tasks/test.os +++ b/tasks/test.os @@ -1,3 +1,12 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + #Использовать 1testrunner Процедура ПровестиТестирование() diff --git "a/tests/fixtures/\320\234\320\260\320\272\320\265\321\202_\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\237\320\276\321\202\321\200\320\265\320\261\320\273\320\265\320\275\320\270\321\217\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.txt" "b/tests/fixtures/\320\234\320\260\320\272\320\265\321\202_\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.txt" similarity index 100% rename from "tests/fixtures/\320\234\320\260\320\272\320\265\321\202_\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\237\320\276\321\202\321\200\320\265\320\261\320\273\320\265\320\275\320\270\321\217\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.txt" rename to "tests/fixtures/\320\234\320\260\320\272\320\265\321\202_\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.txt" diff --git "a/tests/fixtures/\320\234\320\260\320\272\320\265\321\202_\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\237\320\276\321\202\321\200\320\265\320\261\320\273\320\265\320\275\320\270\321\217\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217.txt" "b/tests/fixtures/\320\234\320\260\320\272\320\265\321\202_\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217.txt" similarity index 100% rename from "tests/fixtures/\320\234\320\260\320\272\320\265\321\202_\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\237\320\276\321\202\321\200\320\265\320\261\320\273\320\265\320\275\320\270\321\217\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217.txt" rename to "tests/fixtures/\320\234\320\260\320\272\320\265\321\202_\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217.txt" 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 ddbc00e..90becb0 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" @@ -1,3 +1,12 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + Перем ПараметрыКластера; Перем ПараметрыТестирования; Перем ВозвращаемыеЗначения; @@ -6,9 +15,9 @@ // Процедура устанавливает вывод функции ВыполнитьКоманду мок-исполнителя команд // // Параметры: -// ИсполнительКоманд - МокИсполнительКоманд - мок-объект исполнитель команд -// ПутьКДанным - Строка - Путь к параметрам в структуре параметров кластера -// +// ИсполнительКоманд - МокИсполнительКоманд - мок-объект исполнитель команд +// ПутьКДанным - Строка - Путь к параметрам в структуре параметров кластера +// Процедура УстановитьВыводИсполнителяКоманд(ИсполнительКоманд, ПутьКДанным) Экспорт Если ТипЗнч(ИсполнительКоманд) = Тип("ИсполнительКоманд") Тогда @@ -161,7 +170,7 @@ ПараметрыКоманды = Новый Соответствие(); ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); - ПараметрыОбъекта = Новый КомандыОбъекта("cluster", ПараметрыКоманды); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Кластеры, ПараметрыКоманды); ВыводКоманды = ВозвращаемыеЗначения["Кластеры"]; @@ -181,13 +190,13 @@ ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); ПараметрыКоманды.Вставить("ИдентификаторКластера" , ТекКластер["cluster"]); - ПараметрыОбъекта = Новый КомандыОбъекта("cluster", ПараметрыКоманды); - + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Кластеры, ПараметрыКоманды); + ВыводКоманды = ТекКластер["ТекстОбъекта"]; Результат.Добавить(Новый Структура("ПараметрыКоманды, ВыводКоманды", - ПараметрыОбъекта.ПараметрыКоманды("Описание"), - ВыводКоманды)); + ПараметрыОбъекта.ПараметрыКоманды("Описание"), + ВыводКоманды)); КонецЦикла; @@ -235,7 +244,7 @@ ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); - ПараметрыОбъекта = Новый КомандыОбъекта("manager", ПараметрыКоманды); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Менеджеры, ПараметрыКоманды); ВыводКоманды = ВозвращаемыеЗначения["Менеджеры"]; @@ -250,7 +259,7 @@ ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); - ПараметрыОбъекта = Новый КомандыОбъекта("server", ПараметрыКоманды); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Серверы, ПараметрыКоманды); ВыводКоманды = ВозвращаемыеЗначения["Серверы"]; @@ -271,14 +280,14 @@ ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); ПараметрыКоманды.Вставить("ИдентификаторСервера" , ТекСервер["server"]); - - ПараметрыОбъекта = Новый КомандыОбъекта("server", ПараметрыКоманды); + + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Серверы, ПараметрыКоманды); ВыводКоманды = ТекСервер["ТекстОбъекта"]; Результат.Добавить(Новый Структура("ПараметрыКоманды, ВыводКоманды", - ПараметрыОбъекта.ПараметрыКоманды("Описание"), - ВыводКоманды)); + ПараметрыОбъекта.ПараметрыКоманды("Описание"), + ВыводКоманды)); КонецЦикла; @@ -293,12 +302,12 @@ ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); - ПараметрыОбъекта = Новый КомандыОбъекта("server", ПараметрыКоманды); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Серверы, ПараметрыКоманды); ВыводКоманды = ""; ВыводКоманды = ВозвращаемыеЗначения["Серверы"] + - ВозвращаемыеЗначения["Серверы.Добавление"]; + ВозвращаемыеЗначения["Серверы.Добавление"]; Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); @@ -332,7 +341,7 @@ Серверы[0].Получить("safe-working-processes-memory-limit")); ПараметрыКоманды.Вставить("БезопасныйРасходПамятиЗаОдинВызов" , Серверы[0].Получить("safe-call-memory-limit")); - ПараметрыОбъекта = Новый КомандыОбъекта("server", ПараметрыКоманды); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Серверы, ПараметрыКоманды); ВремТекст = Новый ТекстовыйДокумент(); ВремТекст.УстановитьТекст(ВозвращаемыеЗначения["Серверы.Добавление"]); @@ -349,7 +358,7 @@ ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); - ПараметрыОбъекта = Новый КомандыОбъекта("process", ПараметрыКоманды); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.РабочиеПроцессы, ПараметрыКоманды); ВыводКоманды = ВозвращаемыеЗначения["РабочиеПроцессы"]; @@ -370,14 +379,14 @@ ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); ПараметрыКоманды.Вставить("ИдентификаторПроцесса" , ТекПроцесс["process"]); - - ПараметрыОбъекта = Новый КомандыОбъекта("process", ПараметрыКоманды); + + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.РабочиеПроцессы, ПараметрыКоманды); ВыводКоманды = ТекПроцесс["ТекстОбъекта"]; Результат.Добавить(Новый Структура("ПараметрыКоманды, ВыводКоманды", - ПараметрыОбъекта.ПараметрыКоманды("Описание"), - ВыводКоманды)); + ПараметрыОбъекта.ПараметрыКоманды("Описание"), + ВыводКоманды)); КонецЦикла; @@ -385,45 +394,49 @@ КонецФункции // Вывод_РабочиеПроцессыПараметры() -Функция Вывод_РабочиеПроцессыЛицензииСписок() +Функция Вывод_РабочиеПроцессыСписокЛицензии() - Процессы = РазобратьВыводКоманды(ВозвращаемыеЗначения["РабочиеПроцессы"]); - - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); + + ПараметрыОбъекта = Новый КомандыОбъекта("process.license", ПараметрыКоманды); - ПараметрыЗапуска.Добавить("process"); - ПараметрыЗапуска.Добавить("info"); + ВыводКоманды = ВозвращаемыеЗначения["РабочиеПроцессы.Лицензии"]; - ПараметрыЗапуска.Добавить("--licenses"); + Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); - ПараметрыЗапуска.Добавить(СтрШаблон("--process=%1", Процессы[0]["process"])); +КонецФункции // Вывод_РабочиеПроцессыСписокЛицензии() - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); +Функция Вывод_РабочиеПроцессыПараметрыЛицензии() + + Результат = Новый Массив(); - ВыводКоманды = ВозвращаемыеЗначения["РабочиеПроцессы.Лицензии"]; + ПроцессыЛицензии = РазобратьВыводКоманды(ВозвращаемыеЗначения["РабочиеПроцессы.Лицензии"]); - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); -КонецФункции // Вывод_РабочиеПроцессыЛицензииСписок() + Для Каждого ТекПроцесс Из ПроцессыЛицензии Цикл -Функция Вывод_СервисыСписок() + ПараметрыКоманды.Вставить("ИдентификаторПроцесса" , ТекПроцесс["process"]); - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("service"); - ПараметрыЗапуска.Добавить("list"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); + ПараметрыОбъекта = Новый КомандыОбъекта("process.license", ПараметрыКоманды); - ВыводКоманды = ВозвращаемыеЗначения["Сервисы"]; + ВыводКоманды = ТекПроцесс["ТекстОбъекта"]; + + Результат.Добавить(Новый Структура("ПараметрыКоманды, ВыводКоманды", + ПараметрыОбъекта.ПараметрыКоманды("Описание"), + ВыводКоманды)); + + КонецЦикла; - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + Возврат Результат; -КонецФункции // Вывод_СервисыСписок() +КонецФункции // Вывод_РабочиеПроцессыПараметрыЛицензии() Функция СокращенныйТекстОписанияИБ(ТекстОписания) @@ -456,7 +469,7 @@ ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); - ПараметрыОбъекта = Новый КомандыОбъекта("infobase", ПараметрыКоманды); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИБ, ПараметрыКоманды); ВыводКоманды = ""; @@ -465,7 +478,7 @@ Для Каждого ТекИб Из ИБ Цикл ВыводКоманды = ВыводКоманды + СокращенныйТекстОписанияИБ(ТекИБ["ТекстОбъекта"]); - + КонецЦикла; Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); @@ -486,13 +499,13 @@ ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); ПараметрыКоманды.Вставить("ИдентификаторИБ" , ТекИБ["infobase"]); - ПараметрыОбъекта = Новый КомандыОбъекта("infobase", ПараметрыКоманды); - + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИБ, ПараметрыКоманды); + ВыводКоманды = СокращенныйТекстОписанияИБ(ТекИБ["ТекстОбъекта"]); Результат.Добавить(Новый Структура("ПараметрыКоманды, ВыводКоманды", - ПараметрыОбъекта.ПараметрыКоманды("Описание"), - ВыводКоманды)); + ПараметрыОбъекта.ПараметрыКоманды("Описание"), + ВыводКоманды)); КонецЦикла; @@ -515,13 +528,13 @@ ПараметрыКоманды.Вставить("ИдентификаторИБ" , ТекИБ["infobase"]); ПараметрыКоманды.Вставить("СтрокаАвторизацииИБ" , ИБ_СтрокаАвторизации()); - ПараметрыОбъекта = Новый КомандыОбъекта("infobase", ПараметрыКоманды); - + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИБ, ПараметрыКоманды); + ВыводКоманды = ТекИБ["ТекстОбъекта"]; Результат.Добавить(Новый Структура("ПараметрыКоманды, ВыводКоманды", - ПараметрыОбъекта.ПараметрыКоманды("ПолноеОписание"), - ВыводКоманды)); + ПараметрыОбъекта.ПараметрыКоманды("ПолноеОписание"), + ВыводКоманды)); КонецЦикла; @@ -544,13 +557,13 @@ ПараметрыКоманды.Вставить("ИдентификаторИБ" , ТекИБ["infobase"]); ПараметрыКоманды.Вставить("СтрокаАвторизацииИБ" , ""); - ПараметрыОбъекта = Новый КомандыОбъекта("infobase", ПараметрыКоманды); - + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИБ, ПараметрыКоманды); + ВыводКоманды = СтрШаблон("Недостаточно прав пользователя для доступа к базе %1", ТекИБ["name"]); Результат.Добавить(Новый Структура("ПараметрыКоманды, ВыводКоманды", - ПараметрыОбъекта.ПараметрыКоманды("ПолноеОписание"), - ВыводКоманды)); + ПараметрыОбъекта.ПараметрыКоманды("ПолноеОписание"), + ВыводКоманды)); КонецЦикла; @@ -565,17 +578,17 @@ ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); - ПараметрыОбъекта = Новый КомандыОбъекта("infobase", ПараметрыКоманды); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИБ, ПараметрыКоманды); ВыводКоманды = ""; ИБ = РазобратьВыводКоманды(ВозвращаемыеЗначения["ИнформационныеБазы"] + - ВозвращаемыеЗначения["ИнформационныеБазы.Добавление"]); + ВозвращаемыеЗначения["ИнформационныеБазы.Добавление"]); Для Каждого ТекИб Из ИБ Цикл ВыводКоманды = ВыводКоманды + СокращенныйТекстОписанияИБ(ТекИБ["ТекстОбъекта"]); - + КонецЦикла; Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); @@ -605,7 +618,7 @@ ПараметрыКоманды.Вставить("БлокировкаРегламентныхЗаданийВключена", Перечисления.СостоянияВыключателя.Выключено); ПараметрыКоманды.Вставить("ВыдачаЛицензийСервером" , Перечисления.ПраваДоступа.Разрешено); - ПараметрыОбъекта = Новый КомандыОбъекта("infobase", ПараметрыКоманды); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИБ, ПараметрыКоманды); ВремТекст = Новый ТекстовыйДокумент(); ВремТекст.УстановитьТекст(ВозвращаемыеЗначения["ИнформационныеБазы.Добавление"]); @@ -617,114 +630,192 @@ Функция Вывод_СеансыСписок() - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); + + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Сеансы, ПараметрыКоманды); - ПараметрыЗапуска.Добавить("session"); - ПараметрыЗапуска.Добавить("list"); + ВыводКоманды = ""; + + Сеансы = РазобратьВыводКоманды(ВозвращаемыеЗначения["Сеансы"]); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); + Для Каждого ТекСеанс Из Сеансы Цикл - ВыводКоманды = ВозвращаемыеЗначения["Сеансы"]; + ВыводКоманды = ВыводКоманды + ТекСеанс["ТекстОбъекта"]; + + КонецЦикла; - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); КонецФункции // Вывод_СеансыСписок() Функция Вывод_СеансыПараметры() - Сеансы = РазобратьВыводКоманды(ВозвращаемыеЗначения["Сеансы"]); + Результат = Новый Массив(); - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); - ПараметрыЗапуска.Добавить("session"); - ПараметрыЗапуска.Добавить("info"); + Сеансы = РазобратьВыводКоманды(ВозвращаемыеЗначения["Сеансы"]); - ПараметрыЗапуска.Добавить(СтрШаблон("--session=%1", Сеансы[0]["session"])); + Для Каждого ТекСеанс Из Сеансы Цикл - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); + ПараметрыКоманды.Вставить("ИдентификаторСеанса" , ТекСеанс["session"]); + + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Сеансы, ПараметрыКоманды); + + ВыводКоманды = ТекСеанс["ТекстОбъекта"]; - ВыводКоманды = Сеансы[0]["ТекстОбъекта"]; + Результат.Добавить(Новый Структура("ПараметрыКоманды, ВыводКоманды", + ПараметрыОбъекта.ПараметрыКоманды("Описание"), + ВыводКоманды)); - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + КонецЦикла; + + Возврат Результат; КонецФункции // Вывод_СеансыПараметры() -Функция Вывод_СеансыЛицензииСписок() +Функция Вывод_СеансыСписокЛицензии() - Сеансы = РазобратьВыводКоманды(ВозвращаемыеЗначения["Сеансы"]); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); + + ПараметрыОбъекта = Новый КомандыОбъекта("session.license", ПараметрыКоманды); - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); + ВыводКоманды = ВозвращаемыеЗначения["Сеансы.Лицензии"]; - ПараметрыЗапуска.Добавить("session"); - ПараметрыЗапуска.Добавить("info"); + Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); - ПараметрыЗапуска.Добавить("--licenses"); +КонецФункции // Вывод_СеансыСписокЛицензии() - ПараметрыЗапуска.Добавить(СтрШаблон("--session=%1", Сеансы[0]["session"])); +Функция Вывод_СеансыПараметрыЛицензии() + + Результат = Новый Массив(); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); + СеансыЛицензии = РазобратьВыводКоманды(ВозвращаемыеЗначения["Сеансы.Лицензии"]); - ВыводКоманды = ВозвращаемыеЗначения["Сеансы.Лицензии"]; + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + Для Каждого ТекСеанс Из СеансыЛицензии Цикл -КонецФункции // Вывод_СеансыЛицензииСписок() + ПараметрыКоманды.Вставить("ИдентификаторСеанса" , ТекСеанс["session"]); + + ПараметрыОбъекта = Новый КомандыОбъекта("session.license", ПараметрыКоманды); + + ВыводКоманды = ТекСеанс["ТекстОбъекта"]; + + Результат.Добавить(Новый Структура("ПараметрыКоманды, ВыводКоманды", + ПараметрыОбъекта.ПараметрыКоманды("Описание"), + ВыводКоманды)); + + КонецЦикла; + + Возврат Результат; + +КонецФункции // Вывод_СеансыПараметрыЛицензии() Функция Вывод_СоединенияСписок() - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); + + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Соединения, ПараметрыКоманды); - ПараметрыЗапуска.Добавить("connection"); - ПараметрыЗапуска.Добавить("list"); + ВыводКоманды = ""; + + Соединения = РазобратьВыводКоманды(ВозвращаемыеЗначения["Соединения"]); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); + Для Каждого ТекСоединение Из Соединения Цикл - ВыводКоманды = ВозвращаемыеЗначения["Соединения"]; + ВыводКоманды = ВыводКоманды + ТекСоединение["ТекстОбъекта"]; + + КонецЦикла; - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); КонецФункции // Вывод_СоединенияСписок() Функция Вывод_БлокировкиСписок() - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); + + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Блокировки, ПараметрыКоманды); - ПараметрыЗапуска.Добавить("lock"); - ПараметрыЗапуска.Добавить("list"); + ВыводКоманды = ""; - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); + Блокировки = РазобратьВыводКоманды(ВозвращаемыеЗначения["Блокировки"]); - ВыводКоманды = ВозвращаемыеЗначения["Блокировки"]; + Для Каждого ТекБлокировка Из Блокировки Цикл - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + ВыводКоманды = ВыводКоманды + ТекБлокировка["ТекстОбъекта"]; + + КонецЦикла; -КонецФункции // Вывод_СоединенияСписок() + Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); + +КонецФункции // Вывод_БлокировкиСписок() + +Функция Вывод_СервисыСписок() + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); + + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Сервисы, ПараметрыКоманды); + + ВыводКоманды = ""; + + Сервисы = РазобратьВыводКоманды(ВозвращаемыеЗначения["Сервисы"]); + + Для Каждого ТекСервис Из Сервисы Цикл + + ВыводКоманды = ВыводКоманды + ТекСервис["ТекстОбъекта"]; + + КонецЦикла; + + Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); + +КонецФункции // Вывод_СервисыСписок() Функция Вывод_НазначенияФункциональностиСписок() - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); + + ПараметрыКоманды.Вставить("ИдентификаторСервера" , Сервер_Ид()); - ПараметрыЗапуска.Добавить("rule"); - ПараметрыЗапуска.Добавить("list"); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.НазначенияФункциональности, + ПараметрыКоманды); - ПараметрыЗапуска.Добавить(СтрШаблон("--server=%1", Сервер_Ид())); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); + ВыводКоманды = ""; + + Требования = РазобратьВыводКоманды(ВозвращаемыеЗначения["НазначенияФункциональности"]); - ВыводКоманды = ВозвращаемыеЗначения["НазначенияФункциональности"]; + Для Каждого ТекТребование Из Требования Цикл - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + ВыводКоманды = ВыводКоманды + ТекТребование["ТекстОбъекта"]; + + КонецЦикла; + + Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); КонецФункции // Вывод_НазначенияФункциональностиСписок() @@ -732,224 +823,278 @@ Назначения = РазобратьВыводКоманды(ВозвращаемыеЗначения["НазначенияФункциональности"]); - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("rule"); - ПараметрыЗапуска.Добавить("info"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--server=%1", Сервер_Ид())); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); - ПараметрыЗапуска.Добавить(СтрШаблон("--rule=%1", Назначения[0]["rule"])); + ПараметрыКоманды.Вставить("ИдентификаторСервера" , Сервер_Ид()); + ПараметрыКоманды.Вставить("ИдентификаторТребования" , Назначения[0]["rule"]); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.НазначенияФункциональности, + ПараметрыКоманды); + + ВыводКоманды = ""; ВыводКоманды = Назначения[0]["ТекстОбъекта"]; - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Описание"), ВыводКоманды); КонецФункции // Вывод_НазначенияФункциональностиПараметры() Функция Вывод_ПрофилиБезопасностиСписок() - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("profile"); - ПараметрыЗапуска.Добавить("list"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); - - ВыводКоманды = ВозвращаемыеЗначения["ПрофилиБезопасности"]; + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ПрофилиБезопасности, + ПараметрыКоманды); -КонецФункции // Вывод_ПрофилиБезопасностиСписок() + ВыводКоманды = ""; -Функция Вывод_ПрофилиБезопасностиПараметры() - Профили = РазобратьВыводКоманды(ВозвращаемыеЗначения["ПрофилиБезопасности"]); - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); - - ПараметрыЗапуска.Добавить("profile"); - ПараметрыЗапуска.Добавить("info"); - - ПараметрыЗапуска.Добавить(СтрШаблон("--name=%1", ПрофильБезопасности_Имя())); + Для Каждого ТекПрофиль Из Профили Цикл - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); - - ВыводКоманды = Профили[0]["ТекстОбъекта"]; + ВыводКоманды = ВыводКоманды + ТекПрофиль["ТекстОбъекта"]; + + КонецЦикла; - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); КонецФункции // Вывод_ПрофилиБезопасностиСписок() Функция Вывод_ПрофилиБезопасностиКаталогиСписок() - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); + ПараметрыКоманды.Вставить("ИмяПрофиля" , ПрофильБезопасности_Имя()); + ПараметрыКоманды.Вставить("ВидОбъектовПрофиля", + Перечисления.ВидыОбъектовПрофиляБезопасности.Каталог); + + ПараметрыОбъекта = Новый КомандыОбъекта("profile.directory", + ПараметрыКоманды); + + ВыводКоманды = ""; - ПараметрыЗапуска.Добавить("profile"); - ПараметрыЗапуска.Добавить("acl"); - ПараметрыЗапуска.Добавить(Перечисления.ВидыОбъектовПрофиляБезопасности.Каталог); - ПараметрыЗапуска.Добавить("list"); + ОбъектыПрофиля = РазобратьВыводКоманды(ВозвращаемыеЗначения["ПрофилиБезопасности.Каталоги"]); - ПараметрыЗапуска.Добавить(СтрШаблон("--name=%1", ПрофильБезопасности_Имя())); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); + Для Каждого ТекОбъект Из ОбъектыПрофиля Цикл - ВыводКоманды = ВозвращаемыеЗначения["ПрофилиБезопасности.Каталоги"]; - - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + ВыводКоманды = ВыводКоманды + ТекОбъект["ТекстОбъекта"]; + + КонецЦикла; + + Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); КонецФункции // Вывод_ПрофилиБезопасностиКаталогиСписок() Функция Вывод_ПрофилиБезопасностиCOMКлассыСписок() - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); + ПараметрыКоманды.Вставить("ИмяПрофиля" , ПрофильБезопасности_Имя()); + ПараметрыКоманды.Вставить("ВидОбъектовПрофиля", + Перечисления.ВидыОбъектовПрофиляБезопасности.COMКласс); + + ПараметрыОбъекта = Новый КомандыОбъекта("profile.com", + ПараметрыКоманды); - ПараметрыЗапуска.Добавить("profile"); - ПараметрыЗапуска.Добавить("acl"); - ПараметрыЗапуска.Добавить(Перечисления.ВидыОбъектовПрофиляБезопасности.COMКласс); - ПараметрыЗапуска.Добавить("list"); + ВыводКоманды = ""; - ПараметрыЗапуска.Добавить(СтрШаблон("--name=%1", ПрофильБезопасности_Имя())); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); + ОбъектыПрофиля = РазобратьВыводКоманды(ВозвращаемыеЗначения["ПрофилиБезопасности.COMКлассы"]); - ВыводКоманды = ВозвращаемыеЗначения["ПрофилиБезопасности.COMКлассы"]; - - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + Для Каждого ТекОбъект Из ОбъектыПрофиля Цикл + + ВыводКоманды = ВыводКоманды + ТекОбъект["ТекстОбъекта"]; + + КонецЦикла; + + Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); КонецФункции // Вывод_ПрофилиБезопасностиCOMКлассыСписок() Функция Вывод_ПрофилиБезопасностиКомпонентыСписок() - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); + ПараметрыКоманды.Вставить("ИмяПрофиля" , ПрофильБезопасности_Имя()); + ПараметрыКоманды.Вставить("ВидОбъектовПрофиля", + Перечисления.ВидыОбъектовПрофиляБезопасности.Компонент); + + ПараметрыОбъекта = Новый КомандыОбъекта("profile.addin", + ПараметрыКоманды); + + ВыводКоманды = ""; - ПараметрыЗапуска.Добавить("profile"); - ПараметрыЗапуска.Добавить("acl"); - ПараметрыЗапуска.Добавить(Перечисления.ВидыОбъектовПрофиляБезопасности.Компонент); - ПараметрыЗапуска.Добавить("list"); + ОбъектыПрофиля = РазобратьВыводКоманды(ВозвращаемыеЗначения["ПрофилиБезопасности.Компоненты"]); - ПараметрыЗапуска.Добавить(СтрШаблон("--name=%1", ПрофильБезопасности_Имя())); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); + Для Каждого ТекОбъект Из ОбъектыПрофиля Цикл - ВыводКоманды = ВозвращаемыеЗначения["ПрофилиБезопасности.Компоненты"]; - - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + ВыводКоманды = ВыводКоманды + ТекОбъект["ТекстОбъекта"]; + + КонецЦикла; + + Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); КонецФункции // Вывод_ПрофилиБезопасностиКаталогиСписок() Функция Вывод_ПрофилиБезопасностиМодулиСписок() - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); + ПараметрыКоманды.Вставить("ИмяПрофиля" , ПрофильБезопасности_Имя()); + ПараметрыКоманды.Вставить("ВидОбъектовПрофиля", + Перечисления.ВидыОбъектовПрофиляБезопасности.Модуль); + + ПараметрыОбъекта = Новый КомандыОбъекта("profile.module", + ПараметрыКоманды); - ПараметрыЗапуска.Добавить("profile"); - ПараметрыЗапуска.Добавить("acl"); - ПараметрыЗапуска.Добавить(Перечисления.ВидыОбъектовПрофиляБезопасности.Модуль); - ПараметрыЗапуска.Добавить("list"); + ВыводКоманды = ""; - ПараметрыЗапуска.Добавить(СтрШаблон("--name=%1", ПрофильБезопасности_Имя())); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); + ОбъектыПрофиля = РазобратьВыводКоманды(ВозвращаемыеЗначения["ПрофилиБезопасности.Модули"]); - ВыводКоманды = ВозвращаемыеЗначения["ПрофилиБезопасности.Модули"]; - - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + Для Каждого ТекОбъект Из ОбъектыПрофиля Цикл + + ВыводКоманды = ВыводКоманды + ТекОбъект["ТекстОбъекта"]; + + КонецЦикла; + + Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); КонецФункции // Вывод_ПрофилиБезопасностиМодулиСписок() Функция Вывод_ПрофилиБезопасностиПриложенияСписок() - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); + ПараметрыКоманды.Вставить("ИмяПрофиля" , ПрофильБезопасности_Имя()); + ПараметрыКоманды.Вставить("ВидОбъектовПрофиля", + Перечисления.ВидыОбъектовПрофиляБезопасности.Приложение); + + ПараметрыОбъекта = Новый КомандыОбъекта("profile.app", + ПараметрыКоманды); + + ВыводКоманды = ""; - ПараметрыЗапуска.Добавить("profile"); - ПараметрыЗапуска.Добавить("acl"); - ПараметрыЗапуска.Добавить(Перечисления.ВидыОбъектовПрофиляБезопасности.Приложение); - ПараметрыЗапуска.Добавить("list"); + ОбъектыПрофиля = РазобратьВыводКоманды(ВозвращаемыеЗначения["ПрофилиБезопасности.Приложения"]); - ПараметрыЗапуска.Добавить(СтрШаблон("--name=%1", ПрофильБезопасности_Имя())); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); + Для Каждого ТекОбъект Из ОбъектыПрофиля Цикл - ВыводКоманды = ВозвращаемыеЗначения["ПрофилиБезопасности.Приложения"]; - - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + ВыводКоманды = ВыводКоманды + ТекОбъект["ТекстОбъекта"]; + + КонецЦикла; + + Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); КонецФункции // Вывод_ПрофилиБезопасностиПриложенияСписок() Функция Вывод_ПрофилиБезопасностиИнтернетРесурсыСписок() - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); + ПараметрыКоманды.Вставить("ИмяПрофиля" , ПрофильБезопасности_Имя()); + ПараметрыКоманды.Вставить("ВидОбъектовПрофиля", + Перечисления.ВидыОбъектовПрофиляБезопасности.ИнтернетРесурс); + + ПараметрыОбъекта = Новый КомандыОбъекта("profile.inet", + ПараметрыКоманды); - ПараметрыЗапуска.Добавить("profile"); - ПараметрыЗапуска.Добавить("acl"); - ПараметрыЗапуска.Добавить(Перечисления.ВидыОбъектовПрофиляБезопасности.ИнтернетРесурс); - ПараметрыЗапуска.Добавить("list"); + ВыводКоманды = ""; - ПараметрыЗапуска.Добавить(СтрШаблон("--name=%1", ПрофильБезопасности_Имя())); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); + ОбъектыПрофиля = РазобратьВыводКоманды(ВозвращаемыеЗначения["ПрофилиБезопасности.ИнтернетРесурсы"]); - ВыводКоманды = ВозвращаемыеЗначения["ПрофилиБезопасности.ИнтернетРесурсы"]; - - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + Для Каждого ТекОбъект Из ОбъектыПрофиля Цикл + + ВыводКоманды = ВыводКоманды + ТекОбъект["ТекстОбъекта"]; + + КонецЦикла; + + Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); КонецФункции // Вывод_ПрофилиБезопасностиИнтернетРесурсыСписок() -Функция Вывод_СчетчикиПотребленияРесурсовСписок() +Функция Вывод_СчетчикиРесурсовСписок() ПараметрыКоманды = Новый Соответствие(); ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); - ПараметрыОбъекта = Новый КомандыОбъекта("counter", ПараметрыКоманды); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.СчетчикиРесурсов, ПараметрыКоманды); - ВыводКоманды = ВозвращаемыеЗначения["СчетчикиПотребленияРесурсов"]; + ВыводКоманды = ВозвращаемыеЗначения["СчетчикиРесурсов"]; Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Список"), ВыводКоманды); -КонецФункции // Вывод_СчетчикиПотребленияРесурсовСписок() +КонецФункции // Вывод_СчетчикиРесурсовСписок() +Функция Вывод_СчетчикиРесурсовПараметры() + + Результат = Новый Массив(); -Функция Вывод_СчетчикиПотребленияРесурсовЗначения() + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); - Счетчики = РазобратьВыводКоманды(ВозвращаемыеЗначения["СчетчикиПотребленияРесурсов"]); + Счетчики = РазобратьВыводКоманды(ВозвращаемыеЗначения["СчетчикиРесурсов"]); + + Для Каждого ТекСчетчик Из Счетчики Цикл + + ПараметрыКоманды.Вставить("ИмяСчетчика", ТекСчетчик["name"]); + + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.СчетчикиРесурсов, + ПараметрыКоманды); + + ВыводКоманды = ТекСчетчик["ТекстОбъекта"]; + + Результат.Добавить(Новый Структура("ПараметрыКоманды, ВыводКоманды", + ПараметрыОбъекта.ПараметрыКоманды("Описание"), + ВыводКоманды)); + + КонецЦикла; - ПараметрыЗапуска = Новый Массив(); - ПараметрыЗапуска.Добавить(Агент_СтрокаПодключения()); + Возврат Результат; + +КонецФункции // Вывод_СчетчикиРесурсовПараметрыЗначения() - ПараметрыЗапуска.Добавить("counter"); +Функция Вывод_СчетчикиРесурсовПараметрыЗначения() - ПараметрыЗапуска.Добавить(СтрШаблон("--counter=%1", Счетчики[0]["name"])); + Счетчики = РазобратьВыводКоманды(ВозвращаемыеЗначения["СчетчикиРесурсов"]); - ПараметрыЗапуска.Добавить(СтрШаблон("--cluster=%1", Кластер_Ид())); - ПараметрыЗапуска.Добавить(Кластер_СтрокаАвторизации()); + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Агент_СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); + + ПараметрыКоманды.Вставить("ИмяСчетчика", Счетчики[0]["name"]); - ПараметрыЗапуска.Добавить("values"); + ПараметрыОбъекта = Новый КомандыОбъекта("counter", ПараметрыКоманды); - ВыводКоманды = ВозвращаемыеЗначения["СчетчикиПотребленияРесурсов.Значения"]; + ВыводКоманды = ВозвращаемыеЗначения["СчетчикиРесурсов.Значения"]; - Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыЗапуска, ВыводКоманды); + Возврат Новый Структура("ПараметрыКоманды, ВыводКоманды", ПараметрыОбъекта.ПараметрыКоманды("Значения"), ВыводКоманды); -КонецФункции // Вывод_СчетчикиПотребленияРесурсовЗначения() +КонецФункции // Вывод_СчетчикиРесурсовПараметрыЗначения() Процедура Инициализация() - Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); + Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); КаталогФикстур = ТекущийСценарий().Каталог; @@ -958,67 +1103,71 @@ ПараметрыКластера = Новый Структура(); ПараметрыКластера.Вставить("Администраторы", - Новый Структура("Список, СписокПослеДобавления, Параметры, Добавить, Изменить, Удалить")); + Новый Структура("Список, СписокПослеДобавления, Параметры, Добавить, Изменить, Удалить")); ПараметрыКластера.Администраторы.Список = Вывод_АдминистраторыСписок(); ПараметрыКластера.Администраторы.СписокПослеДобавления = Вывод_АдминистраторыСписокПослеДобавления(); ПараметрыКластера.Вставить("Кластеры", - Новый Структура("Список, Параметры, Администраторы, Добавить, Изменить, Удалить")); - ПараметрыКластера.Кластеры.Список = Вывод_КластерыСписок(); - ПараметрыКластера.Кластеры.Параметры = Вывод_КластерыПараметры(); - ПараметрыКластера.Кластеры.Администраторы = Новый Структура("Список, + Новый Структура("Список, Параметры, Администраторы, Добавить, Изменить, Удалить")); + ПараметрыКластера.Кластеры.Список = Вывод_КластерыСписок(); + ПараметрыКластера.Кластеры.Параметры = Вывод_КластерыПараметры(); + ПараметрыКластера.Кластеры.Администраторы = Новый Структура("Список, |СписокПослеДобавления, - |Параметры, - |Добавить, - |Изменить, - |Удалить"); + |Параметры, + |Добавить, + |Изменить, + |Удалить"); ПараметрыКластера.Кластеры.Администраторы.Список = Вывод_КластерыАдминистраторыСписок(); ПараметрыКластера.Кластеры.Администраторы.СписокПослеДобавления = Вывод_КластерыАдминистраторыСписокПослеДобавления(); ПараметрыКластера.Вставить("Менеджеры", Новый Структура("Список, Параметры")); - ПараметрыКластера.Менеджеры.Список = Вывод_МенеджерыСписок(); + ПараметрыКластера.Менеджеры.Список = Вывод_МенеджерыСписок(); ПараметрыКластера.Вставить("Серверы", - Новый Структура("Список, СписокПослеДобавления, Параметры, Добавить, Изменить, Удалить")); - ПараметрыКластера.Серверы.Список = Вывод_СерверыСписок(); - ПараметрыКластера.Серверы.СписокПослеДобавления = Вывод_СерверыСписокПослеДобавления(); + Новый Структура("Список, СписокПослеДобавления, Параметры, Добавить, Изменить, Удалить")); + ПараметрыКластера.Серверы.Список = Вывод_СерверыСписок(); + ПараметрыКластера.Серверы.СписокПослеДобавления = Вывод_СерверыСписокПослеДобавления(); ПараметрыКластера.Серверы.Добавить = Вывод_СерверыДобавить(); - ПараметрыКластера.Серверы.Параметры = Вывод_СерверыПараметры(); + ПараметрыКластера.Серверы.Параметры = Вывод_СерверыПараметры(); ПараметрыКластера.Вставить("РабочиеПроцессы", - Новый Структура("Список, Параметры, Лицензии")); - ПараметрыКластера.РабочиеПроцессы.Список = Вывод_РабочиеПроцессыСписок(); - ПараметрыКластера.РабочиеПроцессы.Параметры = Вывод_РабочиеПроцессыПараметры(); - ПараметрыКластера.РабочиеПроцессы.Лицензии = Новый Структура("Список", Вывод_РабочиеПроцессыЛицензииСписок()); + Новый Структура("Список, Параметры, Лицензии")); + ПараметрыКластера.РабочиеПроцессы.Список = Вывод_РабочиеПроцессыСписок(); + ПараметрыКластера.РабочиеПроцессы.Параметры = Вывод_РабочиеПроцессыПараметры(); + ПараметрыКластера.РабочиеПроцессы.Лицензии = Новый Структура("Список, Описание"); + ПараметрыКластера.РабочиеПроцессы.Лицензии.Список = Вывод_РабочиеПроцессыСписокЛицензии(); + ПараметрыКластера.РабочиеПроцессы.Лицензии.Описание = Вывод_РабочиеПроцессыПараметрыЛицензии(); ПараметрыКластера.Вставить("Сервисы", - Новый Структура("Список, Параметры")); - ПараметрыКластера.Сервисы.Список = Вывод_СервисыСписок(); + Новый Структура("Список, Параметры")); + ПараметрыКластера.Сервисы.Список = Вывод_СервисыСписок(); ПараметрыКластера.Вставить("Сеансы", - Новый Структура("Список, Параметры, Лицензии")); - ПараметрыКластера.Сеансы.Список = Вывод_СеансыСписок(); - ПараметрыКластера.Сеансы.Параметры = Вывод_СеансыПараметры(); - ПараметрыКластера.Сеансы.Лицензии = Новый Структура("Список", Вывод_СеансыЛицензииСписок()); + Новый Структура("Список, Параметры, Лицензии")); + ПараметрыКластера.Сеансы.Список = Вывод_СеансыСписок(); + ПараметрыКластера.Сеансы.Параметры = Вывод_СеансыПараметры(); + ПараметрыКластера.Сеансы.Лицензии = Новый Структура("Список, Описание"); + ПараметрыКластера.Сеансы.Лицензии.Список = Вывод_СеансыСписокЛицензии(); + ПараметрыКластера.Сеансы.Лицензии.Описание = Вывод_СеансыПараметрыЛицензии(); ПараметрыКластера.Вставить("Соединения", - Новый Структура("Список, Параметры")); - ПараметрыКластера.Соединения.Список = Вывод_СоединенияСписок(); + Новый Структура("Список, Параметры")); + ПараметрыКластера.Соединения.Список = Вывод_СоединенияСписок(); ПараметрыКластера.Вставить("Блокировки", - Новый Структура("Список, Параметры")); - ПараметрыКластера.Блокировки.Список = Вывод_БлокировкиСписок(); + Новый Структура("Список, Параметры")); + ПараметрыКластера.Блокировки.Список = Вывод_БлокировкиСписок(); ПараметрыКластера.Вставить("ИБ", - Новый Структура("Список, - |СписокПослеДобавления, - |СокращенныеПараметры, - |ПолныеПараметры, - |НедостаточноПрав, - |Добавить, - |Изменить, - |Удалить")); + Новый Структура("Список, + |СписокПослеДобавления, + |СокращенныеПараметры, + |ПолныеПараметры, + |НедостаточноПрав, + |Добавить, + |Изменить, + |Удалить")); ПараметрыКластера.ИБ.Список = Вывод_ИБСписок(); ПараметрыКластера.ИБ.СписокПослеДобавления = Вывод_ИБСписокПослеДобавления(); ПараметрыКластера.ИБ.Добавить = Вывод_ИБДобавить(); @@ -1027,43 +1176,43 @@ ПараметрыКластера.ИБ.НедостаточноПрав = Вывод_ИБНедостаточноПрав(); ПараметрыКластера.Вставить("НазначенияФункциональности", - Новый Структура("Список, Параметры, Добавить, Изменить, Удалить")); - ПараметрыКластера.НазначенияФункциональности.Список = Вывод_НазначенияФункциональностиСписок(); - ПараметрыКластера.НазначенияФункциональности.Параметры = Вывод_НазначенияФункциональностиПараметры(); + Новый Структура("Список, Параметры, Добавить, Изменить, Удалить")); + ПараметрыКластера.НазначенияФункциональности.Список = Вывод_НазначенияФункциональностиСписок(); + ПараметрыКластера.НазначенияФункциональности.Параметры = Вывод_НазначенияФункциональностиПараметры(); СтруктураПрофилей = Новый Структура("Список, - |Параметры, - |Добавить, - |Изменить, - |Удалить, - |Каталоги, - |COMКлассы, - |Компоненты, - |Модули, - |Приложения, - |ИнтернетРесурсы"); - - СтруктураПрофилей.Список = Вывод_ПрофилиБезопасностиСписок(); - СтруктураПрофилей.Параметры = Вывод_ПрофилиБезопасностиПараметры(); - СтруктураПрофилей.Каталоги = Новый Структура("Список, Параметры", - Вывод_ПрофилиБезопасностиКаталогиСписок()); - СтруктураПрофилей.COMКлассы = Новый Структура("Список, Параметры", - Вывод_ПрофилиБезопасностиCOMКлассыСписок()); - СтруктураПрофилей.Компоненты = Новый Структура("Список, Параметры", - Вывод_ПрофилиБезопасностиКомпонентыСписок()); - СтруктураПрофилей.Модули = Новый Структура("Список, Параметры", - Вывод_ПрофилиБезопасностиМодулиСписок()); - СтруктураПрофилей.Приложения = Новый Структура("Список, Параметры", - Вывод_ПрофилиБезопасностиПриложенияСписок()); - СтруктураПрофилей.ИнтернетРесурсы = Новый Структура("Список, Параметры", - Вывод_ПрофилиБезопасностиИнтернетРесурсыСписок()); + |Добавить, + |Изменить, + |Удалить, + |Каталоги, + |COMКлассы, + |Компоненты, + |Модули, + |Приложения, + |ИнтернетРесурсы"); + + СтруктураПрофилей.Список = Вывод_ПрофилиБезопасностиСписок(); + СтруктураПрофилей.Каталоги = Новый Структура("Список, Параметры", + Вывод_ПрофилиБезопасностиКаталогиСписок()); + СтруктураПрофилей.COMКлассы = Новый Структура("Список, Параметры", + Вывод_ПрофилиБезопасностиCOMКлассыСписок()); + СтруктураПрофилей.Компоненты = Новый Структура("Список, Параметры", + Вывод_ПрофилиБезопасностиКомпонентыСписок()); + СтруктураПрофилей.Модули = Новый Структура("Список, Параметры", + Вывод_ПрофилиБезопасностиМодулиСписок()); + СтруктураПрофилей.Приложения = Новый Структура("Список, Параметры", + Вывод_ПрофилиБезопасностиПриложенияСписок()); + СтруктураПрофилей.ИнтернетРесурсы = Новый Структура("Список, Параметры", + Вывод_ПрофилиБезопасностиИнтернетРесурсыСписок()); ПараметрыКластера.Вставить("ПрофилиБезопасности", СтруктураПрофилей); - ПараметрыКластера.Вставить("СчетчикиПотребленияРесурсов", - Новый Структура("Список, Значения")); - ПараметрыКластера.СчетчикиПотребленияРесурсов.Список = Вывод_СчетчикиПотребленияРесурсовСписок(); - ПараметрыКластера.СчетчикиПотребленияРесурсов.Значения = Вывод_СчетчикиПотребленияРесурсовЗначения(); + ПараметрыКластера.Вставить("СчетчикиРесурсов", + Новый Структура("Список, Параметры, Значения")); + ПараметрыКластера.СчетчикиРесурсов.Список = Вывод_СчетчикиРесурсовСписок(); + ПараметрыКластера.СчетчикиРесурсов.Параметры = Вывод_СчетчикиРесурсовПараметры(); + ПараметрыКластера.СчетчикиРесурсов.Значения = Новый Структура("Список", + Вывод_СчетчикиРесурсовПараметрыЗначения()); КонецПроцедуры // Инициализация() @@ -1089,10 +1238,10 @@ // Возвращает текущие параметры тестового окружения // // Параметры: -// Обновить - Булево - Истина - обновить параметры тестирования принудительно +// Обновить - Булево - Истина - обновить параметры тестирования принудительно // // Возвращаемое значение: -// Структура - параметры тестового окружения +// Структура - параметры тестового окружения // Функция Параметры(Обновить = Ложь) Экспорт @@ -1122,7 +1271,7 @@ Если МакетПараметров.Существует() Тогда ПараметрыПоУмолчанию = ПрочитатьПараметрыТестированияИзФайла(ПутьКФайлуПараметров); - + Для Каждого ТекПараметр Из ПараметрыПоУмолчанию Цикл Параметры.Вставить(ТекПараметр.Ключ, ТекПараметр.Значение); КонецЦикла; @@ -1154,7 +1303,9 @@ Если МассивПараметр.Количество() = 0 Тогда Продолжить; - ИначеЕсли МассивПараметр.Количество() = 1 Тогда + КонецЕсли; + + Если МассивПараметр.Количество() = 1 Тогда МассивПараметр.Добавить(""); КонецЕсли; @@ -1175,10 +1326,10 @@ // пары <ключ, значение> структуры получаются для каждой строки с учетом разделителя ":" // // Параметры: -// ВыводКоманды - Строка - текст для разбора +// ВыводКоманды - Строка - текст для разбора // // Возвращаемое значение: -// Массив (Соответствие) - результат разбора +// Массив (Соответствие) - результат разбора // Функция РазобратьВыводКоманды(Знач ВыводКоманды) @@ -1193,7 +1344,7 @@ Для й = 1 По Текст.КоличествоСтрок() Цикл ТекстСтроки = Текст.ПолучитьСтроку(й); - + ПозРазделителя = СтрНайти(ТекстСтроки, ":"); Если НЕ ЗначениеЗаполнено(ТекстСтроки) Тогда @@ -1208,7 +1359,7 @@ ИначеЕсли ПозРазделителя = 0 Тогда Продолжить; КонецЕсли; - + Описание.Вставить(СокрЛП(Лев(ТекстСтроки, ПозРазделителя - 1)), СокрЛП(Сред(ТекстСтроки, ПозРазделителя + 1))); ТекстОбъекта = ТекстОбъекта + ТекстСтроки + Символы.ПС; diff --git a/tests/irac-test.os b/tests/irac-test.os index 722a37a..4caa3ba 100644 --- a/tests/irac-test.os +++ b/tests/irac-test.os @@ -1,4 +1,13 @@ -#Использовать "../src" +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +#Использовать "../src" #Использовать "./fixtures" #Использовать asserts #Использовать fs @@ -15,7 +24,7 @@ // Процедура ПередЗапускомТеста() Экспорт - Лог = Логирование.ПолучитьЛог("ktb.lib.irac"); + Лог = Логирование.ПолучитьЛог("oscript.lib.irac"); Лог.УстановитьУровень(УровниЛога.Отладка); АдресСервера = ПараметрыТестирования.Параметры().Агент_Адрес; @@ -23,7 +32,7 @@ Если АгентКластера = Неопределено Тогда АгентКластера = Новый АдминистрированиеКластера(АдресСервера, ПортСервера, ""); - КонецЕсли; + КонецЕсли; Если ИсполнительКоманд = Неопределено Тогда ИспользоватьМок = Истина; @@ -34,7 +43,7 @@ ИсполнительКоманд = Мок.Получить(Новый ИсполнительКоманд("")); Иначе ИсполнительКоманд = Новый ИсполнительКоманд("8.3"); - КонецЕсли; + КонецЕсли; КонецЕсли; АгентКластера.УстановитьИсполнительКоманд(ИсполнительКоманд); @@ -44,11 +53,11 @@ // Функция возвращает список тестов для выполнения // // Параметры: -// Тестирование - Тестер - Объект Тестер (1testrunner) -// +// Тестирование - Тестер - Объект Тестер (1testrunner) +// // Возвращаемое значение: -// Массив - Массив имен процедур-тестов -// +// Массив - Массив имен процедур-тестов +// Функция ПолучитьСписокТестов(Тестирование) Экспорт ЮнитТест = Тестирование; @@ -76,8 +85,6 @@ СписокТестов.Добавить("ТестДолжен_ПолучитьПараметрыРабочегоПроцесса"); СписокТестов.Добавить("ТестДолжен_ПолучитьСписокЛицензийПроцесса"); - СписокТестов.Добавить("ТестДолжен_ПолучитьСписокСервисов"); - СписокТестов.Добавить("ТестДолжен_ПолучитьСписокБазНаСервере"); СписокТестов.Добавить("ТестДолжен_ПолучитьСокращенныеПараметрыБазыНаСервере"); СписокТестов.Добавить("ТестДолжен_ПолучитьПолныеПараметрыБазыНаСервере"); @@ -92,8 +99,9 @@ СписокТестов.Добавить("ТестДолжен_ПолучитьСписокБлокировокКластера"); - СписокТестов.Добавить("ТестДолжен_ПолучитьСписокНазначенийФункциональностиСервера"); + СписокТестов.Добавить("ТестДолжен_ПолучитьСписокСервисовКластера"); + СписокТестов.Добавить("ТестДолжен_ПолучитьСписокНазначенийФункциональностиСервера"); СписокТестов.Добавить("ТестДолжен_ПолучитьПараметрыНазначенияФункциональностиСервера"); СписокТестов.Добавить("ТестДолжен_ПолучитьСписокПрофилейБезопасностиКластера"); @@ -106,9 +114,9 @@ СписокТестов.Добавить("ТестДолжен_ПолучитьСписокПриложенийПрофиля"); СписокТестов.Добавить("ТестДолжен_ПолучитьСписокИнтернетРесурсовПрофиля"); - СписокТестов.Добавить("ТестДолжен_ПолучитьСписокСчетчиковПотребленияРесурсов"); - СписокТестов.Добавить("ТестДолжен_ПолучитьПараметрыСчетчиковПотребленияРесурсов"); - СписокТестов.Добавить("ТестДолжен_ПолучитьЗначенияСчетчикаПотребленияРесурсов"); + СписокТестов.Добавить("ТестДолжен_ПолучитьСписокСчетчиковРесурсов"); + СписокТестов.Добавить("ТестДолжен_ПолучитьПараметрыСчетчиковРесурсов"); + СписокТестов.Добавить("ТестДолжен_ПолучитьЗначенияСчетчикаРесурсов"); Возврат СписокТестов; @@ -118,7 +126,6 @@ // Процедура ПослеЗапускаТеста() Экспорт - КонецПроцедуры // ПослеЗапускаТеста() // Процедура - тест @@ -136,7 +143,7 @@ // Процедура - тест // Процедура ТестДолжен_ПолучитьСписокАдминистраторовАгента() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Администраторы.Список"); АгентКластера.УстановитьАдминистратора(ПараметрыТестирования.Параметры().Агент_Администратор, @@ -151,7 +158,7 @@ // Процедура - тест // Процедура ТестДолжен_ДобавитьАдминистратораАгента() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Администраторы.Список"); АгентКластера.УстановитьАдминистратора(ПараметрыТестирования.Параметры().Агент_Администратор, @@ -169,15 +176,15 @@ НовоеКоличество = Администраторы.Количество(); Утверждения.ПроверитьБольше(НовоеКоличество, - ТекущееКоличество, - "Не удалось проверить добавление администратора агента"); + ТекущееКоличество, + "Не удалось проверить добавление администратора агента"); КонецПроцедуры // ТестДолжен_ДобавитьАдминистратораАгента() // Процедура - тест // Процедура ТестДолжен_УдалитьАдминистратораАгента() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Администраторы.СписокПослеДобавления"); @@ -193,15 +200,15 @@ Администраторы.Удалить("НовыйАдминистратор"); Утверждения.ПроверитьБольше(ТекущееКоличество, - Администраторы.Количество(), - "Не удалось проверить удаление администратора агента"); + Администраторы.Количество(), + "Не удалось проверить удаление администратора агента"); КонецПроцедуры // ТестДолжен_УдалитьАдминистратораАгента() // Процедура - тест // Процедура ТестДолжен_ПолучитьСписокКластеров() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -213,7 +220,7 @@ // Процедура - тест // Процедура ТестДолжен_ПолучитьПараметрыКластера() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Параметры"); @@ -234,15 +241,15 @@ Утверждения.ПроверитьРавенство(Сервер, "Sport1", "Ошибка проверки сервера кластера"); Утверждения.ПроверитьРавенство(Порт, "1541", "Ошибка проверки порта кластера"); Утверждения.ПроверитьРавенство(РежимРаспределенияНагрузки - , Перечисления.РежимыРаспределенияНагрузки.ПоПроизводительности - , "Ошибка проверки режима распределения нагрузки кластера"); + , Перечисления.РежимыРаспределенияНагрузки.ПоПроизводительности + , "Ошибка проверки режима распределения нагрузки кластера"); КонецПроцедуры // ТестДолжен_ПолучитьПараметрыКластера() // Процедура - тест // Процедура ТестДолжен_ПолучитьСписокАдминистраторовКластера() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), @@ -264,7 +271,7 @@ // Процедура - тест // Процедура ТестДолжен_ДобавитьАдминистратораКластера() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), @@ -289,15 +296,15 @@ НовоеКоличество = Администраторы.Количество(); Утверждения.ПроверитьБольше(НовоеКоличество, - ТекущееКоличество, - "Не удалось проверить добавление администратора кластера"); + ТекущееКоличество, + "Не удалось проверить добавление администратора кластера"); КонецПроцедуры // ТестДолжен_ДобавитьАдминистратораКластера() // Процедура - тест // Процедура ТестДолжен_УдалитьАдминистратораКластера() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), @@ -320,15 +327,15 @@ Администраторы.Удалить("НовыйАдминистратор"); Утверждения.ПроверитьБольше(ТекущееКоличество, - Администраторы.Количество(), - "Не удалось проверить удаление администратора кластера"); + Администраторы.Количество(), + "Не удалось проверить удаление администратора кластера"); КонецПроцедуры // ТестДолжен_УдалитьАдминистратораКластера() // Процедура - тест // Процедура ТестДолжен_ПолучитьСписокМенеджеров() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -401,7 +408,7 @@ // Процедура - тест // Процедура ТестДолжен_ДобавитьСерверКластера() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), @@ -436,15 +443,15 @@ НовоеКоличество = Серверы.Количество(); Утверждения.ПроверитьБольше(НовоеКоличество, - ТекущееКоличество, - "Не удалось проверить добавление сервера в кластер"); + ТекущееКоличество, + "Не удалось проверить добавление сервера в кластер"); КонецПроцедуры // ТестДолжен_ДобавитьСерверКластера() // Процедура - тест // Процедура ТестДолжен_УдалитьСерверКластера() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), @@ -467,8 +474,8 @@ Серверы.Удалить("Sport2:1540"); Утверждения.ПроверитьБольше(ТекущееКоличество, - Серверы.Количество(), - "Не удалось проверить удаление сервера из кластера"); + Серверы.Количество(), + "Не удалось проверить удаление сервера из кластера"); КонецПроцедуры // ТестДолжен_УдалитьСерверКластера() @@ -507,14 +514,16 @@ ПараметрыТестирования.Параметры().Кластер_Пароль); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "РабочиеПроцессы.Список"); + "РабочиеПроцессы.Список"); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "РабочиеПроцессы.Параметры"); + "РабочиеПроцессы.Параметры"); Процессы = Кластер.РабочиеПроцессы(); Процесс = Процессы.Получить("Sport1:5428"); + Процесс.ОбновитьДанные(Истина); + АдресСервера = Процесс.Получить("АдресСервера"); ИдПроцессаОС = Процесс.Получить("ИдПроцессаОС"); КоличествоСоединений = Процесс.Получить("КоличествоСоединений"); @@ -539,46 +548,28 @@ ПараметрыТестирования.Параметры().Кластер_Пароль); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "РабочиеПроцессы.Список"); + "РабочиеПроцессы.Список"); + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), + "РабочиеПроцессы.Параметры"); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "РабочиеПроцессы.Параметры"); + "РабочиеПроцессы.Лицензии.Описание"); Процессы = Кластер.РабочиеПроцессы(); Процесс = Процессы.Получить("Sport1:5428"); - ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "РабочиеПроцессы.Лицензии.Список"); - + Процесс.ОбновитьДанные(Истина); + Лицензии = Процесс.Лицензии(); Утверждения.ПроверитьБольше(Лицензии.Количество(), 0, "Не удалось получить список лицензий рабочего процесса"); КонецПроцедуры // ТестДолжен_ПолучитьСписокЛицензийПроцесса() -// Процедура - тест -// -Процедура ТестДолжен_ПолучитьСписокСервисов() Экспорт - - Кластеры = АгентКластера.Кластеры(); - - Кластер = Кластеры.Получить(ПараметрыТестирования.Параметры().Кластер_АдресПорт); - - Кластер.УстановитьАдминистратора(ПараметрыТестирования.Параметры().Кластер_Администратор, - ПараметрыТестирования.Параметры().Кластер_Пароль); - - ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Сервисы.Список"); - - Сервисы = Кластер.Сервисы(); - - Утверждения.ПроверитьБольше(Сервисы.Количество(), 0, "Не удалось получить список сервисов"); - -КонецПроцедуры // ТестДолжен_ПолучитьСписокСервисов() - // Процедура - тест // Процедура ТестДолжен_ПолучитьСписокБазНаСервере() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -599,7 +590,7 @@ // Процедура - тест // Процедура ТестДолжен_ПолучитьСокращенныеПараметрыБазыНаСервере() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -660,8 +651,8 @@ Имя = База.Получить("Имя", Истина); Описание = База.Получить("Описание"); ПолноеОписание = База.Получить("ПолноеОписание"); - ТипСУБД = База.Получить("ТипСУБД"); - ИмяБазыСУБД = База.Получить("ИмяБазыСУБД"); + ТипСУБД = База.Получить("ТипСУБД"); + ИмяБазыСУБД = База.Получить("ИмяБазыСУБД"); Утверждения.ПроверитьРавенство(Имя, ИБ_Имя, "Ошибка проверки имени базы"); Утверждения.ПроверитьРавенство(Описание, "", "Ошибка проверки описания базы"); @@ -674,7 +665,7 @@ // Процедура - тест // Процедура ТестДолжен_ДобавитьИнформационнуюБазу() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -688,13 +679,13 @@ ПараметрыИБ = Новый Структура(); - ПараметрыИБ.Вставить("ТипСУБД" , Перечисления.ТипыСУБД.MSSQLServer); - ПараметрыИБ.Вставить("АдресСервераСУБД" , "localhost"); - ПараметрыИБ.Вставить("ИмяБазыСУБД" , ИБ_Имя); - ПараметрыИБ.Вставить("ИмяПользователяБазыСУБД" , "_1CSrvUsr1"); - ПараметрыИБ.Вставить("ПарольПользователяБазыСУБД" , "q2w3e4r5"); + ПараметрыИБ.Вставить("ТипСУБД" , Перечисления.ТипыСУБД.MSSQLServer); + ПараметрыИБ.Вставить("АдресСервераСУБД" , "localhost"); + ПараметрыИБ.Вставить("ИмяБазыСУБД" , ИБ_Имя); + ПараметрыИБ.Вставить("ИмяПользователяБазыСУБД" , "_1CSrvUsr1"); + ПараметрыИБ.Вставить("ПарольПользователяБазыСУБД" , "q2w3e4r5"); ПараметрыИБ.Вставить("БлокировкаРегламентныхЗаданийВключена", Перечисления.СостоянияВыключателя.Выключено); - ПараметрыИБ.Вставить("ВыдачаЛицензийСервером" , Перечисления.ПраваДоступа.Разрешено); + ПараметрыИБ.Вставить("ВыдачаЛицензийСервером" , Перечисления.ПраваДоступа.Разрешено); ИБ = Кластер.ИнформационныеБазы(); ИБ.ОбновитьДанные(Истина); @@ -722,7 +713,7 @@ // Процедура - тест // Процедура ТестДолжен_ПолучитьСписокСеансовКластера() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -743,7 +734,7 @@ // Процедура - тест // Процедура ТестДолжен_ПолучитьИерархическийСписокСеансовКластера() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -766,7 +757,7 @@ // Процедура - тест // Процедура ТестДолжен_ПолучитьПараметрыСеансаКластера() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -812,8 +803,10 @@ Сеансы = Кластер.Сеансы().Список(); Для Каждого Сеанс Из Сеансы Цикл - ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Сеансы.Лицензии.Список"); - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Сеансы.Лицензии.Описание"); + + Сеанс.ОбновитьДанные(Истина); + Лицензии = Сеанс.Лицензии(); Прервать; КонецЦикла; @@ -825,7 +818,7 @@ // Процедура - тест // Процедура ТестДолжен_ПолучитьСписокСоединенийКластера() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -836,7 +829,7 @@ ПараметрыТестирования.Параметры().Кластер_Пароль); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "Соединения.Список"); + "Соединения.Список"); Соединения = Кластер.Соединения(); @@ -858,7 +851,7 @@ ПараметрыТестирования.Параметры().Кластер_Пароль); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "Блокировки.Список"); + "Блокировки.Список"); Блокировки = Кластер.Блокировки(); @@ -866,12 +859,34 @@ КонецПроцедуры // ТестДолжен_ПолучитьСписокБлокировокКластера() +// Процедура - тест +// +Процедура ТестДолжен_ПолучитьСписокСервисовКластера() Экспорт + + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); + + Кластеры = АгентКластера.Кластеры(); + + Кластер = Кластеры.Получить(ПараметрыТестирования.Параметры().Кластер_АдресПорт); + + Кластер.УстановитьАдминистратора(ПараметрыТестирования.Параметры().Кластер_Администратор, + ПараметрыТестирования.Параметры().Кластер_Пароль); + + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), + "Сервисы.Список"); + + Сервисы = Кластер.Сервисы(); + + Утверждения.ПроверитьБольше(Сервисы.Количество(), 0, "Не удалось получить список сервисов"); + +КонецПроцедуры // ТестДолжен_ПолучитьСписокСервисовКластера() + // Процедура - тест // Процедура ТестДолжен_ПолучитьСписокНазначенийФункциональностиСервера() Экспорт ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "Кластеры.Список"); + "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -881,33 +896,33 @@ ПараметрыТестирования.Параметры().Кластер_Пароль); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "Серверы.Список"); + "Серверы.Список"); Серверы = Кластер.Серверы().Список(); Для Каждого Сервер Из Серверы Цикл ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "Серверы.Параметры"); + "Серверы.Параметры"); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "НазначенияФункциональности.Список"); + "НазначенияФункциональности.Список"); НазначенияФункциональности = Сервер.НазначенияФункциональности(); Прервать; КонецЦикла; Утверждения.ПроверитьБольше(НазначенияФункциональности.Количество(), - 0, - "Не удалось получить список назначений функциональности"); + 0, + "Не удалось получить список назначений функциональности"); КонецПроцедуры // ТестДолжен_ПолучитьСписокНазначенийФункциональностиСервера() // Процедура - тест // Процедура ТестДолжен_ПолучитьПараметрыНазначенияФункциональностиСервера() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "Кластеры.Список"); + "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -917,16 +932,16 @@ ПараметрыТестирования.Параметры().Кластер_Пароль); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "Серверы.Список"); + "Серверы.Список"); Серверы = Кластер.Серверы().Список(); Для Каждого Сервер Из Серверы Цикл ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "Серверы.Параметры"); + "Серверы.Параметры"); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "НазначенияФункциональности.Параметры"); + "НазначенияФункциональности.Параметры"); НазначенияФункциональности = Сервер.НазначенияФункциональности().Список(); Прервать; @@ -940,20 +955,20 @@ Утверждения.ПроверитьРавенство(ИмяИБ, "DEV_User1_TRADE_Cust1", "Ошибка проверки имени ИБ назначения функциональности"); Утверждения.ПроверитьРавенство(ТипОбъекта - , """" + Перечисления.ОбъектыНазначенияФункциональности.КлиентскиеСоединения + """" - , "Ошибка проверки типа объекта назначения функциональности"); + , """" + Перечисления.ОбъектыНазначенияФункциональности.КлиентскиеСоединения + """" + , "Ошибка проверки типа объекта назначения функциональности"); Утверждения.ПроверитьРавенство(ТипНазначения - , Перечисления.ТипыНазначенияФункциональности.Назначать - , "Ошибка проверки типа назначения функциональности"); + , Перечисления.ТипыНазначенияФункциональности.Назначать + , "Ошибка проверки типа назначения функциональности"); КонецПроцедуры // ТестДолжен_ПолучитьПараметрыНазначенияФункциональностиСервера() // Процедура - тест // Процедура ТестДолжен_ПолучитьСписокПрофилейБезопасностиКластера() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "Кластеры.Список"); + "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -963,7 +978,7 @@ ПараметрыТестирования.Параметры().Кластер_Пароль); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "ПрофилиБезопасности.Список"); + "ПрофилиБезопасности.Список"); Профили = Кластер.ПрофилиБезопасности(); @@ -974,9 +989,9 @@ // Процедура - тест // Процедура ТестДолжен_ПолучитьПараметрыПрофиляБезопасностиКластера() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "Кластеры.Список"); + "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -986,7 +1001,7 @@ ПараметрыТестирования.Параметры().Кластер_Пароль); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "ПрофилиБезопасности.Параметры"); + "ПрофилиБезопасности.Список"); Профили = Кластер.ПрофилиБезопасности(); @@ -998,20 +1013,20 @@ Утверждения.ПроверитьРавенство(Имя, "ОсновнойПрофиль", "Ошибка проверки имени профиля безопасности"); Утверждения.ПроверитьРавенство(Каталоги - , Перечисления.РежимыДоступа.Список - , "Ошибка проверки режима доступа к каталогам"); + , Перечисления.РежимыДоступа.Список + , "Ошибка проверки режима доступа к каталогам"); Утверждения.ПроверитьРавенство(Конфигуратор - , Перечисления.ДаНет.Нет - , "Ошибка проверки разрешения доступа к конфигуратору"); + , Перечисления.ДаНет.Нет + , "Ошибка проверки разрешения доступа к конфигуратору"); КонецПроцедуры // ТестДолжен_ПолучитьПараметрыПрофиляБезопасностиКластера() // Процедура - тест // Процедура ТестДолжен_ПолучитьСписокКаталоговПрофиля() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "Кластеры.Список"); + "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -1021,30 +1036,30 @@ ПараметрыТестирования.Параметры().Кластер_Пароль); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "ПрофилиБезопасности.Список"); + "ПрофилиБезопасности.Список"); Профили = Кластер.ПрофилиБезопасности().Список(, Истина); Для Каждого Профиль Из Профили Цикл ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "ПрофилиБезопасности.Каталоги.Список"); + "ПрофилиБезопасности.Каталоги.Список"); Каталоги = Профиль.Каталоги(); Прервать; КонецЦикла; Утверждения.ПроверитьБольше(Каталоги.Количество(), - 0, - "Не удалось получить список каталогов профилей безопасности"); + 0, + "Не удалось получить список каталогов профилей безопасности"); КонецПроцедуры // ТестДолжен_ПолучитьСписокКаталоговПрофиля() // Процедура - тест // Процедура ТестДолжен_ПолучитьСписокCOMКлассовПрофиля() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "Кластеры.Список"); + "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -1054,30 +1069,30 @@ ПараметрыТестирования.Параметры().Кластер_Пароль); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "ПрофилиБезопасности.Список"); + "ПрофилиБезопасности.Список"); Профили = Кластер.ПрофилиБезопасности().Список(, Истина); Для Каждого Профиль Из Профили Цикл ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "ПрофилиБезопасности.COMКлассы.Список"); + "ПрофилиБезопасности.COMКлассы.Список"); COMКлассы = Профиль.COMКлассы(); Прервать; КонецЦикла; Утверждения.ПроверитьБольше(COMКлассы.Количество(), - 0, - "Не удалось получить список COM-классов профилей безопасности"); + 0, + "Не удалось получить список COM-классов профилей безопасности"); КонецПроцедуры // ТестДолжен_ПолучитьСписокCOMКлассовПрофиля() // Процедура - тест // Процедура ТестДолжен_ПолучитьСписокКомпонентПрофиля() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "Кластеры.Список"); + "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -1087,30 +1102,30 @@ ПараметрыТестирования.Параметры().Кластер_Пароль); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "ПрофилиБезопасности.Список"); + "ПрофилиБезопасности.Список"); Профили = Кластер.ПрофилиБезопасности().Список(, Истина); Для Каждого Профиль Из Профили Цикл ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "ПрофилиБезопасности.Компоненты.Список"); + "ПрофилиБезопасности.Компоненты.Список"); ВнешниеКомпоненты = Профиль.ВнешниеКомпоненты().Список(); Прервать; КонецЦикла; Утверждения.ПроверитьБольше(ВнешниеКомпоненты.Количество(), - 0, - "Не удалось получить список внешних компонент профилей безопасности"); + 0, + "Не удалось получить список внешних компонент профилей безопасности"); КонецПроцедуры // ТестДолжен_ПолучитьСписокКомпонентПрофиля() // Процедура - тест // Процедура ТестДолжен_ПолучитьСписокМодулейПрофиля() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "Кластеры.Список"); + "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -1120,30 +1135,30 @@ ПараметрыТестирования.Параметры().Кластер_Пароль); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "ПрофилиБезопасности.Список"); + "ПрофилиБезопасности.Список"); Профили = Кластер.ПрофилиБезопасности().Список(, Истина); Для Каждого Профиль Из Профили Цикл ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "ПрофилиБезопасности.Модули.Список"); + "ПрофилиБезопасности.Модули.Список"); ВнешниеМодули = Профиль.ВнешниеМодули(); Прервать; КонецЦикла; Утверждения.ПроверитьБольше(ВнешниеМодули.Количество(), - 0, - "Не удалось получить список внешних модулей профилей безопасности"); + 0, + "Не удалось получить список внешних модулей профилей безопасности"); КонецПроцедуры // ТестДолжен_ПолучитьСписокМодулейПрофиля() // Процедура - тест // Процедура ТестДолжен_ПолучитьСписокПриложенийПрофиля() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "Кластеры.Список"); + "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -1153,30 +1168,30 @@ ПараметрыТестирования.Параметры().Кластер_Пароль); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "ПрофилиБезопасности.Список"); + "ПрофилиБезопасности.Список"); Профили = Кластер.ПрофилиБезопасности().Список(, Истина); Для Каждого Профиль Из Профили Цикл ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "ПрофилиБезопасности.Приложения.Список"); + "ПрофилиБезопасности.Приложения.Список"); Приложения = Профиль.Приложения(); Прервать; КонецЦикла; Утверждения.ПроверитьБольше(Приложения.Количество(), - 0, - "Не удалось получить список приложений профилей безопасности"); + 0, + "Не удалось получить список приложений профилей безопасности"); КонецПроцедуры // ТестДолжен_ПолучитьСписокПриложенийПрофиля() // Процедура - тест // Процедура ТестДолжен_ПолучитьСписокИнтернетРесурсовПрофиля() Экспорт - + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "Кластеры.Список"); + "Кластеры.Список"); Кластеры = АгентКластера.Кластеры(); @@ -1186,45 +1201,48 @@ ПараметрыТестирования.Параметры().Кластер_Пароль); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "ПрофилиБезопасности.Список"); + "ПрофилиБезопасности.Список"); Профили = Кластер.ПрофилиБезопасности().Список(, Истина); Для Каждого Профиль Из Профили Цикл ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "ПрофилиБезопасности.ИнтернетРесурсы.Список"); + "ПрофилиБезопасности.ИнтернетРесурсы.Список"); ИнтернетРесурсы = Профиль.ИнтернетРесурсы(); Прервать; КонецЦикла; Утверждения.ПроверитьБольше(ИнтернетРесурсы.Количество(), - 0, - "Не удалось получить список интернет ресурсов профилей безопасности"); + 0, + "Не удалось получить список интернет ресурсов профилей безопасности"); КонецПроцедуры // ТестДолжен_ПолучитьСписокИнтернетРесурсовПрофиля() -Процедура ТестДолжен_ПолучитьСписокСчетчиковПотребленияРесурсов() Экспорт +Процедура ТестДолжен_ПолучитьСписокСчетчиковРесурсов() Экспорт ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); - Кластеры = АгентКластера.Кластеры(); + Кластеры = АгентКластера.Кластеры(); Кластер = Кластеры.Получить(ПараметрыТестирования.Параметры().Кластер_АдресПорт); Кластер.УстановитьАдминистратора(ПараметрыТестирования.Параметры().Кластер_Администратор, - ПараметрыТестирования.Параметры().Кластер_Пароль); + ПараметрыТестирования.Параметры().Кластер_Пароль); - ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "СчетчикиПотребленияРесурсов.Список"); + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), + "СчетчикиРесурсов.Список"); - СчетчикиПотребленияРесурсов = Кластер.СчетчикиПотребленияРесурсов().Список(); + СчетчикиРесурсов = Кластер.СчетчикиРесурсов().Список(); - Утверждения.ПроверитьБольше(СчетчикиПотребленияРесурсов.Количество(), 0, "Не удалось получить список счетчиков потребления ресурсов"); + Утверждения.ПроверитьБольше(СчетчикиРесурсов.Количество(), + 0, + "Не удалось получить список счетчиков потребления ресурсов"); -КонецПроцедуры // ТестДолжен_ПолучитьСписокСчетчиковПотребленияРесурсов() +КонецПроцедуры // ТестДолжен_ПолучитьСписокСчетчиковРесурсов() // Процедура - тест // -Процедура ТестДолжен_ПолучитьПараметрыСчетчиковПотребленияРесурсов() Экспорт +Процедура ТестДолжен_ПолучитьПараметрыСчетчиковРесурсов() Экспорт ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); @@ -1233,28 +1251,34 @@ Кластер = Кластеры.Получить(ПараметрыТестирования.Параметры().Кластер_АдресПорт); Кластер.УстановитьАдминистратора(ПараметрыТестирования.Параметры().Кластер_Администратор, - ПараметрыТестирования.Параметры().Кластер_Пароль); + ПараметрыТестирования.Параметры().Кластер_Пароль); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "СчетчикиПотребленияРесурсов.Список"); + "СчетчикиРесурсов.Список"); + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), + "СчетчикиРесурсов.Параметры"); - СчетчикиПотребленияРесурсов = Кластер.СчетчикиПотребленияРесурсов(); + СчетчикиРесурсов = Кластер.СчетчикиРесурсов(); - Счетчик = СчетчикиПотребленияРесурсов.Получить("CounterAll"); + Счетчик = СчетчикиРесурсов.Получить("CounterAll"); ИмяСчетчика = Счетчик.Получить("Имя"); ДлительностьСбора = Счетчик.Получить("ДлительностьСбора"); ПотреблениеПамяти = Счетчик.Получить("ПотреблениеПамяти"); Утверждения.ПроверитьРавенство(ИмяСчетчика, "CounterAll", "Ошибка проверки имени счетчика потребления ресурсов"); - Утверждения.ПроверитьРавенство(ДлительностьСбора, "3600000", "Ошибка проверки длительности сбора счетчика потребления ресурсов"); - Утверждения.ПроверитьРавенство(ПотреблениеПамяти, "analyze", "Ошибка проверки анализа потребления памяти счетчика потребления ресурсов"); + Утверждения.ПроверитьРавенство(ДлительностьСбора, + "3600000", + "Ошибка проверки длительности сбора счетчика потребления ресурсов"); + Утверждения.ПроверитьРавенство(ПотреблениеПамяти, + "analyze", + "Ошибка проверки анализа потребления памяти счетчика потребления ресурсов"); -КонецПроцедуры // ТестДолжен_ПолучитьПараметрыСчетчиковПотребленияРесурсов() +КонецПроцедуры // ТестДолжен_ПолучитьПараметрыСчетчиковРесурсов() // Процедура - тест // -Процедура ТестДолжен_ПолучитьЗначенияСчетчикаПотребленияРесурсов() Экспорт +Процедура ТестДолжен_ПолучитьЗначенияСчетчикаРесурсов() Экспорт ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Кластеры.Список"); @@ -1263,20 +1287,26 @@ Кластер = Кластеры.Получить(ПараметрыТестирования.Параметры().Кластер_АдресПорт); Кластер.УстановитьАдминистратора(ПараметрыТестирования.Параметры().Кластер_Администратор, - ПараметрыТестирования.Параметры().Кластер_Пароль); + ПараметрыТестирования.Параметры().Кластер_Пароль); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "СчетчикиПотребленияРесурсов.Список"); + "СчетчикиРесурсов.Список"); + ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), + "СчетчикиРесурсов.Параметры"); - СчетчикиПотребленияРесурсов = Кластер.СчетчикиПотребленияРесурсов(); + СчетчикиРесурсов = Кластер.СчетчикиРесурсов(); - Счетчик = СчетчикиПотребленияРесурсов.Получить("CounterAll"); + Счетчик = СчетчикиРесурсов.Получить("CounterAll"); ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), - "СчетчикиПотребленияРесурсов.Значения"); + "СчетчикиРесурсов.Значения.Список"); + Счетчик.ОбновитьДанные(Истина); + ЗначенияСчетчика = Счетчик.Значения(); - Утверждения.ПроверитьБольше(ЗначенияСчетчика.Количество(), 0, "Не удалось получить значения счетчика потребления ресурсов"); + Утверждения.ПроверитьБольше(ЗначенияСчетчика.Количество(), + 0, + "Не удалось получить значения счетчика потребления ресурсов"); -КонецПроцедуры // ТестДолжен_ПолучитьЗначенияСчетчикаПотребленияРесурсов() \ No newline at end of file +КонецПроцедуры // ТестДолжен_ПолучитьЗначенияСчетчикаРесурсов() \ No newline at end of file