Skip to content

обход ошибки невозможности получения лицензии #57

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Mar 24, 2017
16 changes: 15 additions & 1 deletion readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,4 +196,18 @@

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

gitsync export store -maxversion 5 -limit 2
gitsync export store -maxversion 5 -limit 2

# Решение проблемы вызванной ошибкой "Не обнаружено свободной лицензии!"

В случае возникновения ошибки "Не обнаружено свободной лицензии!" рекомендуется воспользоваться параметром ```-amount-look-for-license```. Данный параметр может быть использован со следующими командами ```export``` и ```sync```.
При возникновении данной ошибки повторное получение лицензии происходит через 10 сек.
По умолчанию данный параметр равен 1.

Выполнить 5 попыток получения лицензии:

gitsync export -amount-look-for-license 5

Выполнять получение лицензии без ограничения:

gitsync export -amount-look-for-license 0
2 changes: 2 additions & 0 deletions src/core/Классы/КомандаExport.os
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-tempdir", "<Путь к каталогу временных файлов>");
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-process-fatform-modules", "Переименовывать модули обычных форм в Module.bsl");

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

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

КонецПроцедуры // ЗарегистрироватьКоманду
Expand Down
3 changes: 2 additions & 1 deletion src/core/Классы/КомандаSync.os
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-format", "<hierarchical|plain>");
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-tempdir", "<Путь к каталогу временных файлов>");
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-push-every-n-commits", "<число> количество коммитов до промежуточной отправки на удаленный сервер");
Парсер.ДобавитьПараметрФлагКоманды (ОписаниеКоманды, "-process-fatform-modules", "Переименовывать модули обычных форм в Module.bsl");
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-amount-look-for-license", "<число> количество повторов получения лицензии (попытка подключения каждые 10 сек), 0 - без ограничений");
Парсер.ДобавитьПараметрФлагКоманды (ОписаниеКоманды, "-process-fatform-modules", "Переименовывать модули обычных форм в Module.bsl");

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

Expand Down
65 changes: 45 additions & 20 deletions src/core/Классы/МенеджерСинхронизации.os
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
Перем мАвторизацияВХранилищеСредствами1С;
Перем ЭтоWindows;
Перем УдалятьВременныеФайлы;
Перем КоличествоЦикловОжиданияЛицензииПоУмолчанию;

///////////////////////////////////////////////////////////////////////////////////////////////
// ПРОГРАММНЫЙ ИНТЕРФЕЙС
Expand Down Expand Up @@ -68,28 +69,42 @@

ЛогКонфигуратора = Логирование.ПолучитьЛог("oscript.lib.v8runner");
ЛогКонфигуратора.УстановитьУровень(Лог.Уровень());

Попытка

Конфигуратор.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации, Ложь);

Исключение

// проверим текст ошибки, если текст содержит информацию о необходимости конвертировать
// тогда выполним конвертацию и повторно попытаемся загрузить файл
ТекстОшибки = Конфигуратор.ВыводКоманды();
Если Найти(Врег(ТекстОшибки), Врег("Структура конфигурации несовместима с текущей версией программы")) Тогда

Конфигуратор.СконвертироватьФайлКонфигурации(ФайлКонфигурации);
КоличествоЦикловОжиданияЛицензии = ПолучитьКоличествоЦикловОжиданияЛицензииПоУмолчанию();
Пока КоличествоЦикловОжиданияЛицензии >= 0 Цикл
Попытка

Конфигуратор.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации, Ложь);
Прервать;

Иначе
Исключение

// проверим текст ошибки, если текст содержит информацию о необходимости конвертировать
// тогда выполним конвертацию и повторно попытаемся загрузить файл
ТекстОшибки = ВРег(Конфигуратор.ВыводКоманды());
Если Найти(ТекстОшибки, Врег("Структура конфигурации несовместима с текущей версией программы")) Тогда

Конфигуратор.СконвертироватьФайлКонфигурации(ФайлКонфигурации);
Конфигуратор.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации, Ложь);
Прервать;

ИначеЕсли Найти(ТекстОшибки, Врег("Не обнаружено свободной лицензии!")) Тогда
Лог.Ошибка(ТекстОшибки);
Лог.Информация("Повторное подключение через 10сек. Осталось попыток: " + КоличествоЦикловОжиданияЛицензии);
Приостановить(10000);

ВызватьИсключение ТекстОшибки;
Иначе

ВызватьИсключение ТекстОшибки;

КонецЕсли;

КонецПопытки;

Если ПолучитьКоличествоЦикловОжиданияЛицензииПоУмолчанию() <> 0 Тогда
КоличествоЦикловОжиданияЛицензии = КоличествоЦикловОжиданияЛицензии - 1;
КонецЕсли;

КонецПопытки;
КонецЦикла;

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

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

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

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

Процедура УстановитьКоличествоЦикловОжиданияЛицензииПоУмолчанию(КоличествоЦиклов) Экспорт
КоличествоЦикловОжиданияЛицензииПоУмолчанию = КоличествоЦиклов;
КонецПроцедуры

Функция ПолучитьКоличествоЦикловОжиданияЛицензииПоУмолчанию() Экспорт
Возврат КоличествоЦикловОжиданияЛицензииПоУмолчанию;
КонецФункции


//////////////////////////////////////////////////////////////////////////////////////////////
СистемнаяИнформация = Новый СистемнаяИнформация;
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;

Лог = Логирование.ПолучитьЛог("oscript.app.gitsync");
ДоменПочтыДляGitПоУмолчанию = "localhost";
УдалятьВременныеФайлы=Ложь;
УдалятьВременныеФайлы = Ложь;
КоличествоЦикловОжиданияЛицензииПоУмолчанию = 1;
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@
Лог = ДополнительныеПараметры.Лог;
Распаковщик = ПолучитьРаспаковщик(ДополнительныеПараметры);
Распаковщик.ДоменПочтыДляGitПоУмолчанию = ПараметрыЗапуска["-email"];

КоличествоЦикловОжиданияЛицензии = ПараметрыЗапуска["-amount-look-for-license"];
Если КоличествоЦикловОжиданияЛицензии = Неопределено Тогда
КоличествоЦикловОжиданияЛицензии = 1;
КонецЕсли;
Распаковщик.УстановитьКоличествоЦикловОжиданияЛицензииПоУмолчанию(Число(КоличествоЦикловОжиданияЛицензии));

Возврат Распаковщик;

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