Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.
Реализовано в версии 8.3.14.1565.
Мы расширили набор команд, выполняемых в режиме агента, добавили новые команды, которые есть только в этом режиме, а также реализовали отображение прогресса выполнения длительных операций для большинства команд этого режима.
Про запуск конфигуратора в режиме агента мы рассказывали в прошлом году. Для администраторов и разработчиков главное преимущество этого режима заключается в том, что выполнение регламентных операций можно автоматизировать с помощью стандартных ssh-клиентов. Однако на тот момент набор этих операций был небольшим, а одна из главных «хотелок», знать процент выполнения команды, осталась у нас в статусе пожелания. Теперь мы устранили оба этих недостатка.
Во-первых, как и обещали, мы расширили состав команд, которые можно выполнять в режиме агента. У нас не было цели реализовать абсолютно все возможности, существующие в пакетном режиме конфигуратора. Мы отбирали из них наиболее приоритетные операции.
В результате мы реализовали девять команд. Ниже, в скобках, указаны существующие сейчас параметры командной строки, используемые для выполнения аналогичных действий в пакетном режиме конфигуратора.
При интерактивном выполнении некоторых административных операций в конфигураторе, платформа может отображать прогресс их выполнения в процентах. Агент конфигуратора, в принципе, поддерживает возможность отправки и приёма сообщений во время выполнения операций. Однако сразу, в прошлом году, реализовать эту возможность нам не удалось, так как потребовалась доработка самого конфигуратора.
Теперь мы эту работу закончили, и в режиме агента вы можете получать и отображать прогресс выполнения длительных операций процентах. В текстовом режиме выводится текстовый статус и число, например, так (строка выводится в одно и то же место):
designer> load-config-from-files --dir=/some_dir Прогресс: 10%
В режиме json-сообщений мы добавили новый тип сообщения progress:
{ “type”: “progress”, “body”: { “message”: Строка “percent”: Число } }
Здесь message это описание текущего этапа, оно совпадает с описанием расширенного статуса конфигуратора, но может быть и пустым. А percent это процент выполнения операции.
Не все команды могут выдавать сообщение о прогрессе своего выполнения. Здесь мы тоже отбирали наиболее приоритетные операции. Это:
Для настройки прогресса выполнения мы добавили два новых параметра: notify-progress и notify-progress-interval. Команды отправляют информацию о прогрессе, если в настройках агента конфигуратора включен параметр notify-progress. Эта информация отправляется не чаще, чем количество секунд, указанное в параметре progress-interval (по умолчанию 1 секунда). Если за указанный интервал времени прогресс не изменился, то сообщение не отправляется. Для одной операции прогресс изменяется от 1 и доходит до 100 только один раз.
Поскольку мы сами используем режим агента конфигуратора в среде разработки EDT, у нас существует потребность в выполнении некоторых операций, недоступных в пакетном режиме. И ряд таких новых команд для управления расширениями конфигурации мы реализовали именно и только в режиме агента:
Также мы расширили состав ошибок, о которых может сообщать агент конфигуратора. Прежде всего, мы добавили несколько новых типов ошибок, которые могут возникать при работе с информационной базой. Это:
Кроме этого мы добавили новый тип ошибки для исключений, которые могут возникнуть в процессе загрузки конфигурации из xml-файлов и выгрузки конфигурации в xml-файлы - ConfigFilesError.
А для ошибок и предупреждений, накопленных в процессе загрузки конфигурации из xml-файлов, мы реализовали новый тип json-сообщения - loading-issue.
Мы надеемся, что новые команды и возможности будут полезны вам при автоматизации регламентных операций с конфигурациями и информационными базами, поскольку все они могут быть выполнены с помощью стандартных ssh-клиентов.