Skip to content

Commit

Permalink
feat: Для коллекции рабочих процессов добавлена возможность получения…
Browse files Browse the repository at this point in the history
… информации по лицензиям.
  • Loading branch information
arkuznetsov committed Sep 26, 2019
1 parent 2c5fe70 commit 0e0af37
Show file tree
Hide file tree
Showing 2 changed files with 103 additions and 6 deletions.
75 changes: 75 additions & 0 deletions src/Классы/РабочиеПроцессы.os
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,12 @@

Перем Кластер_Агент;
Перем Кластер_Владелец;

Перем ПараметрыОбъекта;
Перем ПараметрыЛицензий;

Перем Элементы;
Перем Лицензии;

Перем Лог;

Expand All @@ -29,7 +33,10 @@

ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.РабочиеПроцессы);

ПараметрыЛицензий = Новый КомандыОбъекта("process.license");

Элементы = Новый ОбъектыКластера(ЭтотОбъект);
Лицензии = Новый ОбъектыКластера(ЭтотОбъект);

КонецПроцедуры

Expand Down Expand Up @@ -75,6 +82,43 @@

КонецПроцедуры // ОбновитьДанные()

// Процедура получает данные по лицензиям рабочих процессов от сервиса администрирования кластера 1С
// и сохраняет в локальных переменных
//
// Параметры:
// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC)
// - Ложь - данные будут получены если истекло время актуальности
// или данные не были получены ранее
//
Процедура ОбновитьДанныеЛицензий(ОбновитьПринудительно = Ложь) Экспорт

Если НЕ Лицензии.ТребуетсяОбновление(ОбновитьПринудительно) Тогда
Возврат;
КонецЕсли;

ПараметрыКоманды = Новый Соответствие();
ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения());
ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации());
ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид());

ПараметрыЛицензий.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды);

КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыЛицензий.ПараметрыКоманды("Список"));

Если НЕ КодВозврата = 0 Тогда
ВызватьИсключение СтрШаблон("Ошибка получения лицензий рабочих процессов, КодВозврата = %1: %2",
КодВозврата,
Кластер_Агент.ВыводКоманды(Ложь));
КонецЕсли;

МассивРезультатов = Кластер_Агент.ВыводКоманды();

Лицензии.Заполнить(МассивРезультатов);

Лицензии.УстановитьАктуальность();

КонецПроцедуры // ОбновитьДанныеЛицензий()

// Функция возвращает коллекцию параметров объекта
//
// Параметры:
Expand Down Expand Up @@ -171,3 +215,34 @@
Возврат РабочиеПроцессы[0];

КонецФункции // Получить()

// Функция возвращает коллекцию параметров лицензий
//
// Параметры:
// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано
// в качестве ключа возвращаемого соответствия
//
// Возвращаемое значение:
// Соответствие - коллекция параметров лицензий, для получения/изменения значений
//
Функция ПараметрыЛицензий(ИмяПоляКлюча = "Имя") Экспорт

Возврат ПараметрыЛицензий.ОписаниеСвойств(ИмяПоляКлюча);

КонецФункции // ПараметрыОбъекта()

// Функция возвращает список лицензий рабочих процессов 1С
//
// Параметры:
// ОбновитьПринудительно - Булево - Истина - обновить данные лицензий (вызов RAC)
//
// Возвращаемое значение:
// ОбъектыКластера - список лицензий рабочих процессов 1С
//
Функция Лицензии(ОбновитьПринудительно = Ложь) Экспорт

ОбновитьДанныеЛицензий(ОбновитьПринудительно);

Возврат Лицензии;

КонецФункции // Лицензии()
34 changes: 28 additions & 6 deletions src/Классы/РабочийПроцесс.os
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@

ПериодОбновления = 60000;

Процесс_Соединения = Новый Соединения(Кластер_Агент, Кластер_Владелец, ЭтотОбъект);
Процесс_Соединения = Новый Соединения(Кластер_Агент, Кластер_Владелец, ЭтотОбъект);
Процесс_Лицензии = Новый ОбъектыКластера(ЭтотОбъект);

КонецПроцедуры // ПриСозданииОбъекта()
Expand All @@ -77,7 +77,7 @@
Возврат;
КонецЕсли;

ПараметрыКоманды = Новый Соответствие();
ПараметрыКоманды = Новый Соответствие();
ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения());
ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации());
ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид());
Expand Down Expand Up @@ -122,7 +122,16 @@
// Процедура получает данные лицензий, выданных рабочим процессом
// и сохраняет в локальных переменных
//
Процедура ОбновитьДанныеЛицензий()
// Параметры:
// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC)
// - Ложь - данные будут получены если истекло время актуальности
// или данные не были получены ранее
//
Процедура ОбновитьДанныеЛицензий(ОбновитьПринудительно = Ложь)

Если НЕ Процесс_Лицензии.ТребуетсяОбновление(ОбновитьПринудительно) Тогда
Возврат;
КонецЕсли;

ПараметрыКоманды = Новый Соответствие();
ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения());
Expand Down Expand Up @@ -255,6 +264,21 @@

КонецФункции // Соединения()

// Функция возвращает коллекцию параметров лицензий
//
// Параметры:
// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано
// в качестве ключа возвращаемого соответствия
//
// Возвращаемое значение:
// Соответствие - коллекция параметров лицензий, для получения/изменения значений
//
Функция ПараметрыЛицензий(ИмяПоляКлюча = "Имя") Экспорт

Возврат ПараметрыЛицензий.ОписаниеСвойств(ИмяПоляКлюча);

КонецФункции // ПараметрыОбъекта()

// Функция возвращает список лицензий, выданных рабочим процессом 1С
//
// Параметры:
Expand All @@ -265,9 +289,7 @@
//
Функция Лицензии(ОбновитьПринудительно = Ложь) Экспорт

Если Процесс_Лицензии.ТребуетсяОбновление(ОбновитьПринудительно) Тогда
ОбновитьДанныеЛицензий();
КонецЕсли;
ОбновитьДанныеЛицензий(ОбновитьПринудительно);

Возврат Процесс_Лицензии;

Expand Down

0 comments on commit 0e0af37

Please sign in to comment.