Skip to content

Commit f4aeb1d

Browse files
authored
Merge pull request #57 from Tushkan/patch-1
обход ошибки невозможности получения лицензии
2 parents 7d5279e + e42f752 commit f4aeb1d

File tree

5 files changed

+71
-22
lines changed

5 files changed

+71
-22
lines changed

readme.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,4 +196,18 @@
196196

197197
Выгрузить 2 версии от последней выгруженной, но не более 5-ой версии. Удобно когда выгрузка идет небольшими партиями, при заранее известном максимальном номере версии.
198198

199-
gitsync export store -maxversion 5 -limit 2
199+
gitsync export store -maxversion 5 -limit 2
200+
201+
# Решение проблемы вызванной ошибкой "Не обнаружено свободной лицензии!"
202+
203+
В случае возникновения ошибки "Не обнаружено свободной лицензии!" рекомендуется воспользоваться параметром ```-amount-look-for-license```. Данный параметр может быть использован со следующими командами ```export``` и ```sync```.
204+
При возникновении данной ошибки повторное получение лицензии происходит через 10 сек.
205+
По умолчанию данный параметр равен 1.
206+
207+
Выполнить 5 попыток получения лицензии:
208+
209+
gitsync export -amount-look-for-license 5
210+
211+
Выполнять получение лицензии без ограничения:
212+
213+
gitsync export -amount-look-for-license 0

src/core/Классы/КомандаExport.os

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-tempdir", "<Путь к каталогу временных файлов>");
2929
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-process-fatform-modules", "Переименовывать модули обычных форм в Module.bsl");
3030

31+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-amount-look-for-license", "<число> количество повторов получения лицензии (попытка подключения каждые 10 сек), 0 - без ограничений");
32+
3133
Парсер.ДобавитьКоманду(ОписаниеКоманды);
3234

3335
КонецПроцедуры // ЗарегистрироватьКоманду

src/core/Классы/КомандаSync.os

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-format", "<hierarchical|plain>");
2929
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-tempdir", "<Путь к каталогу временных файлов>");
3030
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-push-every-n-commits", "<число> количество коммитов до промежуточной отправки на удаленный сервер");
31-
Парсер.ДобавитьПараметрФлагКоманды (ОписаниеКоманды, "-process-fatform-modules", "Переименовывать модули обычных форм в Module.bsl");
31+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-amount-look-for-license", "<число> количество повторов получения лицензии (попытка подключения каждые 10 сек), 0 - без ограничений");
32+
Парсер.ДобавитьПараметрФлагКоманды (ОписаниеКоманды, "-process-fatform-modules", "Переименовывать модули обычных форм в Module.bsl");
3233

3334
Парсер.ДобавитьКоманду(ОписаниеКоманды);
3435

src/core/Классы/МенеджерСинхронизации.os

100755100644
Lines changed: 45 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
Перем мАвторизацияВХранилищеСредствами1С;
2020
Перем ЭтоWindows;
2121
Перем УдалятьВременныеФайлы;
22+
Перем КоличествоЦикловОжиданияЛицензииПоУмолчанию;
2223

2324
///////////////////////////////////////////////////////////////////////////////////////////////
2425
// ПРОГРАММНЫЙ ИНТЕРФЕЙС
@@ -68,28 +69,42 @@
6869

6970
ЛогКонфигуратора = Логирование.ПолучитьЛог("oscript.lib.v8runner");
7071
ЛогКонфигуратора.УстановитьУровень(Лог.Уровень());
71-
72-
Попытка
73-
74-
Конфигуратор.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации, Ложь);
75-
76-
Исключение
77-
78-
// проверим текст ошибки, если текст содержит информацию о необходимости конвертировать
79-
// тогда выполним конвертацию и повторно попытаемся загрузить файл
80-
ТекстОшибки = Конфигуратор.ВыводКоманды();
81-
Если Найти(Врег(ТекстОшибки), Врег("Структура конфигурации несовместима с текущей версией программы")) Тогда
82-
83-
Конфигуратор.СконвертироватьФайлКонфигурации(ФайлКонфигурации);
72+
КоличествоЦикловОжиданияЛицензии = ПолучитьКоличествоЦикловОжиданияЛицензииПоУмолчанию();
73+
Пока КоличествоЦикловОжиданияЛицензии >= 0 Цикл
74+
Попытка
75+
8476
Конфигуратор.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации, Ложь);
77+
Прервать;
8578

86-
Иначе
79+
Исключение
80+
81+
// проверим текст ошибки, если текст содержит информацию о необходимости конвертировать
82+
// тогда выполним конвертацию и повторно попытаемся загрузить файл
83+
ТекстОшибки = ВРег(Конфигуратор.ВыводКоманды());
84+
Если Найти(ТекстОшибки, Врег("Структура конфигурации несовместима с текущей версией программы")) Тогда
85+
86+
Конфигуратор.СконвертироватьФайлКонфигурации(ФайлКонфигурации);
87+
Конфигуратор.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации, Ложь);
88+
Прервать;
89+
90+
ИначеЕсли Найти(ТекстОшибки, Врег("Не обнаружено свободной лицензии!")) Тогда
91+
Лог.Ошибка(ТекстОшибки);
92+
Лог.Информация("Повторное подключение через 10сек. Осталось попыток: " + КоличествоЦикловОжиданияЛицензии);
93+
Приостановить(10000);
8794

88-
ВызватьИсключение ТекстОшибки;
95+
Иначе
96+
97+
ВызватьИсключение ТекстОшибки;
98+
99+
КонецЕсли;
100+
101+
КонецПопытки;
89102

103+
Если ПолучитьКоличествоЦикловОжиданияЛицензииПоУмолчанию() <> 0 Тогда
104+
КоличествоЦикловОжиданияЛицензии = КоличествоЦикловОжиданияЛицензии - 1;
90105
КонецЕсли;
91-
92-
КонецПопытки;
106+
107+
КонецЦикла;
93108

94109
Если Не (Новый Файл(КаталогПлоскойВыгрузки).Существует()) Тогда
95110
СоздатьКаталог(КаталогПлоскойВыгрузки);
@@ -955,11 +970,11 @@
955970
КонецЕсли;
956971

957972
Попытка
958-
Лог.Информация("Получаем исходники для версии " + СледующаяВерсия);
973+
Лог.Информация("Получаем исходники для версии " + СледующаяВерсия + ", " + ТекущаяДата());
959974

960975
РазложитьМодулиПоНомеруВерсииХранилища1С(КаталогРабочейКопии, ФайлХранилища, СледующаяВерсия, Формат);
961976
Лог.Отладка("Фиксируем в файле VERSION версию " + СледующаяВерсия);
962-
ЗаписатьФайлВерсийГит(КаталогРабочейКопии, СледующаяВерсия);
977+
ЗаписатьФайлВерсийГит(КаталогРабочейКопии, СледующаяВерсия);
963978
ВыполнитьКоммитГит(КаталогРабочейКопии, СтрокаВерсии.Комментарий, СтрокаВерсии.ПредставлениеАвтора, СтрокаВерсии.Дата);
964979
СчетчикКоммитов = СчетчикКоммитов + 1;
965980

@@ -1404,10 +1419,20 @@
14041419
Возврат ?(ДоменПочтыДляGitПоУмолчанию = Неопределено, "localhost", ДоменПочтыДляGitПоУмолчанию);
14051420
КонецФункции
14061421

1422+
Процедура УстановитьКоличествоЦикловОжиданияЛицензииПоУмолчанию(КоличествоЦиклов) Экспорт
1423+
КоличествоЦикловОжиданияЛицензииПоУмолчанию = КоличествоЦиклов;
1424+
КонецПроцедуры
1425+
1426+
Функция ПолучитьКоличествоЦикловОжиданияЛицензииПоУмолчанию() Экспорт
1427+
Возврат КоличествоЦикловОжиданияЛицензииПоУмолчанию;
1428+
КонецФункции
1429+
1430+
14071431
//////////////////////////////////////////////////////////////////////////////////////////////
14081432
СистемнаяИнформация = Новый СистемнаяИнформация;
14091433
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;
14101434

14111435
Лог = Логирование.ПолучитьЛог("oscript.app.gitsync");
14121436
ДоменПочтыДляGitПоУмолчанию = "localhost";
1413-
УдалятьВременныеФайлы=Ложь;
1437+
УдалятьВременныеФайлы = Ложь;
1438+
КоличествоЦикловОжиданияЛицензииПоУмолчанию = 1;

src/core/Модули/РаспаковщикКонфигурации.os

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@
1616
Лог = ДополнительныеПараметры.Лог;
1717
Распаковщик = ПолучитьРаспаковщик(ДополнительныеПараметры);
1818
Распаковщик.ДоменПочтыДляGitПоУмолчанию = ПараметрыЗапуска["-email"];
19+
20+
КоличествоЦикловОжиданияЛицензии = ПараметрыЗапуска["-amount-look-for-license"];
21+
Если КоличествоЦикловОжиданияЛицензии = Неопределено Тогда
22+
КоличествоЦикловОжиданияЛицензии = 1;
23+
КонецЕсли;
24+
Распаковщик.УстановитьКоличествоЦикловОжиданияЛицензииПоУмолчанию(Число(КоличествоЦикловОжиданияЛицензии));
25+
1926
Возврат Распаковщик;
2027

2128
КонецФункции // ПолучитьИНастроитьРаспаковщик

0 commit comments

Comments
 (0)