Metadata-Version: 2.1
Name: botoolkit
Version: 1.1.0
Summary: BO toolkit
Home-page: 
Download-URL: 
Author: Alexander Danilenko
Author-email: a.danilenko@bars.group
Platform: Any
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Intended Audience :: Developers
Classifier: Environment :: Console
Description-Content-Type: text/markdown

# Botoolkit

Семейство инструментов предназначенное для сокращения рутинных действий 
разработчиков проектов web_bb и организации работы со сторонними сервисами.

Набор содержит следующие инструменты:
* boconf
* bodatabaser
* barsdock
* bogit
* boguide
* boip
* bojenkins
* bojira
* bopostgres
* boregistry
* botelegram
* botoolkit
* bowebbb 

Данные инструменты нацелены на объединение существующих решений с создание новых
в едином проекте в качестве консольных утилит для повышения удобства работы с 
проектом и сокращения издержек выполнение рутинных задач. Более подробно с 
инструментом можно ознакомиться в [Confluence](https://conf.bars.group/display/BONLINE/BO+Toolkit).

## Версионирование

В проекте используется Семантическое версионирование. Со спецификацией можно ознакомиться по ссылке 
https://semver.org/lang/ru/1.1.0

- Добавление команды bojira show databaser build errors issues.

1.0.0

- Добавлена команда bogit show remote branches;
- Отлов ошибки при получении задачи Jira;
- EDUDEVOPS-6 Доработка логирования, обработка ошибок;
- EDUDEVOPS-6 Добавление команды для вывода всех веток удаленного репозитория;
- Добавлено указание типа версионирования;

0.0.104

- Добавлен параметр use_simple_server для ГАР;
- Добавление команды check closed issues remote branches.

0.0.103

- Техническая версия.

0.0.102

- Добавление плагина МЧС.

0.0.101

- Исправление ошибки начального конфигурирования инструмента.

0.0.100

- Замена названия файла с зависимостями с common.txt на stage.txt.

0.0.99

- Исправление ошибки с большим количеством пустых строк и пробелов в генерируемом конфигурационном файле.

0.0.98

- Добавление full_transfer_tables в Databaser.

0.0.97

- Добавление плагина supplier_personalities.

0.0.96

- Добавление плагина salary.staffing_strength_export.

0.0.95

- Доработан вывод лога сборки Docker-образов приложения web_bb;
- Доработка Dockerfile базового образа приложения web_bb.

0.0.94

- Дополнены значения по умолчанию в генерируемом конфигурационном файле;
- Добавление скрипта для удаления партиций и создания одной дефолтной партиции;
- Добавление параметров exclude_branches и base_images_branch в команду для генерации схемы сборки базовых образов БД.

0.0.93

- Изменена инструкция по установке pyenv;
- Добавление секций gar и async_database в генерируемом конфигурационном файле.

0.0.92

- Добавление плагинов accounting_edm_nso, accounting_edm_rt.

0.0.91

- Исправление ошибок после перехода на ConfigUpdater;
- Добавлен отлов ошибки с отсутствующим конфигом при первом конфигурировании;
- Переименование инструмента bo_dock в bo_barsdock для работы с barsdock.

0.0.90

- Внесение изменений в лог работы databaser, в связи с переходом на barsdock;
- Исправление опечатки в сообщении о недоступности тестового стенда при автоматическом запуске среза БД.

0.0.89

- BODEVOPS-219 Восстановление работы команды по генерации конфига для работы databaser.

0.0.88

* Переделана генерация декларативного описания сборки базовых образов БД, чтобы сборка производилась для всех доступных тестовых стендов, а не только для старших.

0.0.87

* Добавлен вывод комментариев для секций генерируемого конфигурационного файла;
* Расширение комментариев опций и секций конфигурационного файла приложения web_bb;
* Добавление комментария о возможности настройки окружения при помощи botoolkit в логе работы Databaser.

0.0.86

* Исправление ошибки с неверной фильтрацией плагинов из-за отсутствия добавления плагинов, от которых зависят плагины проектов, при получении плагинов проектов.

0.0.85

* Исправление ошибки получения значений из конфига.

0.0.84

* Фиксирование pyparsing==2.4.7 из-за возникающей ошибки;
* Добавление явных зависимостей между плагинами и сортировки плагинов.

0.0.83

* Добавление в зависимости ConfigUpdater==3.0.1;
* Отказ от использования ConfigParser в пользу ConfigUpdater; Добавлен вывод описания параметров конфигурационного файла в генерируемый конфигурационный файл;
* Добавление новых параметров конфигов с описанием;
* Исправление ошибки с получение и проставление порта и хоста базы данных;
* Добавление параметров для вывода в генерируемый конфигурационный файл.

0.0.82

* Указание явной зависимости accounting_edm от accounting;

0.0.81

* Добавление плагина accounting_edm.

0.0.80

* Добавлен плагин ЗиК salary.document_flow.document_register.

0.0.79

* Добавление возможности настройки окружения разработчика без поднятия контейнера с базой данных и/или без генерации конфигурационного файла.

0.0.78

* BOBUH-19132 Восстановление сборки базовых образов приложения после добавления xmlsec.

0.0.77

* Добавление плагина salary.ehdo.

0.0.76

* Перекрытия ошибок в связи с невозможностью резолва ip-адреса по домену;
* Поднятие версий зависимостей.

0.0.75

* BODEVOPS-202 Добавление файлов для корректной сборки и установки пакета;
* BODEVOPS-202 Изменение фильтра удаляемых образов при сборке базовых образов;
* BODEVOPS-202 Исправление ошибки после добавление нового docker registry в Nexus.

0.0.74

* BODEVOPS-202 Добавлено указание ветки в качестве тега для образа Postgres для Databaser;
* BODEVOPS-202 Добавлено указание ветки в качестве тега в команде по формированию базовых образов БД.

0.0.73

* BODEVOPS-201 Исправление ошибки с проставление ветки web_bb_app при автоматическом запуске сборки среза БД;
* BODEVOPS-201 Удален неиспользуемый код в сборке базовых образов БД.

0.0.72

* BODEVOPS-201 Восстановление работы команды bojenkins generate databaser interfacebojenkins generate databaser interface;
* BODEVOPS-201 Восстановление сборки базовых образов приложения, с добавлением тегов образов по веткам;
* BODEVOPS-201 Восстановление команды bopostgres generate base db image schema;
* BODEVOPS-201 Восстановление команды bopostgres create base images;
* BODEVOPS-201 Восстановление команды databaser run.

0.0.71

* Добавление плагина Бухгалтерии account_statement.

0.0.70

* BODEVOPS-194 Добавление возможности исключения проекта из создаваемой схемы сборки базовых образов БД.

0.0.69

* Добавлен плагин KV_CHELYAB;
* Дополнена документация.

0.0.68

* Исправление опечатки в импорте;
* Доработка механизма формирования вспомогательного текста команд --help.

0.0.67

* Доработка команды boconf check consistency в части формируемого лога при возникновении ошибки с дублем UUID.

0.0.66

* Добавлена возможность запуска сборки среза с несколькими учреждениями, указанными в описании задачи.

0.0.65

* Поднята версия Postgres до 13.3.

0.0.64

* Добавлена установка wal2json при сборке базовых образов БД;
* Исправлена ошибка, возникающая при переконфигурировании инструментов после обновления с добавленными новыми параметрами;
* Добавление параметров max_connections и max_replication_slots для работы с replisync;
* В документацию добавлена страница с инструкциями по обновлению на новую версию;
* В документацию добавлена страница с версиями.

0.0.63

* Добавление плагина integration_ack.

0.0.62

* Поднята версия isort до 5.8.0;
* Внесены изменения в MANIFEST.in для исключения документации из пакета;
* Перенос документации из Confluence в проект;
* Добавление команды botoolkit work off;
* Исправление ошибки с парсингом stand_url и ent_id из тела задачи в Jira.

0.0.61

* Исправление ошибки удаления собранного образа со срезом БД, при использовании кастомного тега.

0.0.60

* BODEVOPS-64 Переработка сборки базовых образов БД. Добавлена поддержка асинхронных сборок;
* Поднята требуемая версия Python до 3.9.

0.0.59

* Исправление бага с использованием simplejson;
* Поднятие версий Postgres до 1.11, GitPython, docker;
* Добавление параметра with_test_databases для команды bopostgres generate base db image schema.

0.0.58

* Регистрация плагинов udmurtia_ufk и kpp_pp.

0.0.57

* BODEVOPS-153 Доработка команды botoolkit work on после переезда на Nexus;
* BODEVOPS-153 Доработка команды по удалению образов закрытых задач.

0.0.56

* BODEVOPS-153 Добавление в зависимости nexus3-cli;
* BODEVOPS-153 Добавление поддержки использования Nexus в качестве Registry.

0.0.55

* BODEVOPS-83 Добавлена команда bojenkins check databaser для проверки запущенных автоматически сборок.

0.0.54

* Доработка команды boguide python check updates в части работы с Differ.

0.0.53

* Удаление TLS адаптера.

0.0.52

* Добавление нотификации в Telegram о наличии ошибок в конфигурационных файлах.

0.0.51

* Добавление TLS адаптера для понижения SECLEVEL.

0.0.50

* Добавлена настройка для раскатки миграций с изменением типа первичного ключа;
* Отключена верификация SSL при работе с JIRA API.

0.0.49

* Исправлена ошибка получения списка репозиториев в Registry, доработана пагинация.

0.0.48

* Добавлена работа с кастомными полями задач в Jira для работы с Databaser.

0.0.47

* Добавление возможности указания кастомного тега финального образа Postgres со срезом БД.

0.0.46

* Добавлена логика запуска контейнера с базой, если он ранее был создан. Например, когда человек повторно возвращается 
  к работе над задачей.

0.0.45

* Добавлен инструмент bodock;
* Добавлена команда botoolkit work on.

0.0.44

* Добавление нового статуса databaser_can_not_parse_stand_url_and_ent_id задачи 
  Jira, в случае невозможности парсинга stand_url и ent_id.

0.0.43

* Добавлена команда bojenkins run databaser для запуска сборки среза БД по 
  номеру задачи заданному вручную или найденному из указанного фильтра;
* Произведена доработка команды bopostgres generate db images schema в части 
  генерации описания для создания региональных образов Postgres с базами с 
  эталонным наполнением.

0.0.42

* В команду `bopostgres check access` добавлен вывод параметров `max_connections`, 
  `max_parallel_workers_per_gather`
* Исправление ошибки при отправке сообщения в Telegram.

0.0.41

* Добавлен новый инструмент bo_telegram;
* Добавлен новый инструмент bo_guide;
* Добавлена команда `boguide python check updates` для проверки наличия изменение 
  в оригинальном Google Python Styleguide и оповещения в telegram, если изменения 
  обнаружены;
* Повышение версий зависимостей.

0.0.40

* Исправление ошибок с затирающимися значениями параметров конфигов при переконфигурировании;
* Добавлены новые плагины;
* Обновлен лог работы Databaser для работы с bodock;
* Изменен url Jenkins.

0.0.39

* Добавление плагина salary.eisks;
* Поднятие версии Postgres до 11.9;
* Исправление ошибки с разбором данных тестового стенда;
* BODEVOPS-34 Добавлена команда для проверки консистентности конфигурационных файлов тестовых стендов.

0.0.38

* Добавлено добавление расширения pg_trgm в базовых образах БД;
* Исправление ошибки с неверным указанием ветки в генерируемом конфиге для создания базовых образов БД, в случае, с отсутствующим тестовым стендом на ветке default;
* Рефакторинг механизма получения данных Job-ов;
* Добавлен отлов ошибки при обращении к битому конфигу;
* Исправление ошибки с импортами из-за того, что используется библиотека validators. Ошибка появилась после обновления cliff, в котором стали активно использовать stevedore.

0.0.37

* Исправление ошибки генерации имени образа для имен, состоящих из имени региона/приложения и проекта;
* Добавление плагина budget_smart;
* Откат разделения аббревиатуры региона, для корректного формирования базовых образов;
* Сделан рефакторинг в части получения данных тестовых стендов Jenkins; В команду bojenkins stands добавлен вывод адреса Job-а;
* Отредактирован тип данных возвращаемых методом botoolkit.bo_jenkins.parsers.JenkinsJobParser.get_jobs_data_as_tuple;
* В команду по генерации Groovy-скриптов для Databaser Job-а в Jenkins добавлена возможность применения обновленных параметров в конфиг Job-а с дальнейшим его обновлением в Jenkins в автоматическом режиме.

0.0.36

* Добавлен плагин ЗиК salary.digital_payslip;
* Добавление sql_log в параметры конфигурационного файла;
* Добавлена ссылка на статью на conf о параметрах для postgres в комментарий к шаблонам botoolkit;
* Добавление параметров БД в конфиг, т.к. они все могут отсутствовать в связи с использованием значений по умолчанию;
* Исправление ошибки парсинга JSON;
* Добавление нового плагина vehicle.vehicle_novosib_extend;

0.0.35

* Сокращен вывод в лог при удалении образа из репозитория.

0.0.34

* Добавлена команда для отображения списка всех репозиториев образов в Registry;
* Добавлена команда для удаления образов из Registry по указанным именам;
* Плагин nomer_dogovora добавлен в перечисление плагинов;
* Добавлен функционал по удалению базовых образов баз данных из Registry перед пушем свежесобранных для экономии места.

0.0.33

* BODEVOPS-78 Добавлен отлов исключения ContainerError при сборке базовых образов БД с зачисткой артефактов;
* BODEVOPS-78 Установка Dockerize перенесена в базовый образ base_web_bb_app.

0.0.32

* Добавлена команда bopostgres check access.

0.0.31

* Исправление ошибочных импортов класса исключения ConnectionError.

0.0.30

* Добавлен отлов исключений ConnectTimeout при сборе статистики тестовых стендов.

0.0.29

* Добавлен отлов исключения ReadTimeout и добавлены таймауты к get-запросам в парсере Job-ов Jenkins и при получении UUID приложения в WebBBAPI.

0.0.28

* Отлов ошибки с невозможностью получить ответ от сервера при работе парсера Jenkins;
* Перенос метода удаления образов баз данных в метод _remove_artefacts в команде по созданию базовых образов для их удаления при возникновении ошибок.

0.0.27

* Временно убрано указание зависимости salary.accounting_integration от accounting;
* Исправление ошибки с аббревиатурой региона в команде по запуску базы с раскаченными миграциями.

0.0.26

* Исправление вывода лога.

0.0.25

* Добавлена фильтрация плагинов согласно зависимости между ними;
* Убран timeout в 180 секунд при остановке контейнера с Postgres перед коммитом и заменен на использование container.wait();
* Исправлена ошибка с зацикливанием при очистке артефактов работы команды по созданию базовых образов баз данных.

0.0.24

* Командой bojenkins stands теперь выводятся UUID конфигурационного файла и регион;
* Поднята версия isort;
* Добавлена команда bopostgres generate base db image schema для генерации base_db_image_schema.yaml с декларативным описанием параметров сборок базовых образов БД;
* Добавлена генерация параметров сборок региональных базовых образов БД;
* Произведены доработки в части использования ProjectEnum и ProjectPluginEnum;
* Поднята версия Postgres до 11.8;
* Удалено использование projects_map и осуществлен переход на комбинации проектов;
* Добавлено ранжирование проектов в зависимости от времени раскатки миграций;
* Во всем проекте внесены правки согласно изменений. В частности, в bodatabaser run осуществляется выбор регионального базового образа.

0.0.23

* Исправление ошибки в названии базового образа БД base-web-bb-db-accounting-food.

0.0.22

* Добавлен метод удаления образа _remove_image в DockerServiceMixin;
* Добавлен вывод имени образа в метод push класса DockerServiceManager;
* Добавлена зачистка артефактов в виде образов приложения web_bb и Postgres в команде bodatabaser run;
* Добавлено удаление создаваемых базовых образов БД и образы приложения web_bb  с хостовой машины после работы команды bopostgres create base images.

0.0.21

* Добавлен pyopenssl в зависимости для корректной работы со свежей версией OpenSSL;
* Убраны параметры web_bb_accounting, web_bb_salary, web_bb_vehicle, web_bb_food из конфига boconf generator;
* Добавлена возможность указания опций, значения которых не должны проставляться из конфигурационных файлов тестовых стендов;
* Добавлен параметр stream для регулирования вывода логов при пуше образа в Registry.

0.0.20

* Отлов ошибки с отсутствующим параметром в конфиге; 
* Указание POSTGRES_DEFAULT_PORT вместо повсеместного '5432';
* Для bodatabaser run убраны лишние параметры для запуска;
* Убраны лишние параметры команды bodatabaser stop;
* Исправлена ошибка с затиранием значения параметра result_configuration_dir_path в секции databaser_general;
* Исправление ошибки в проставлении хоста базы-донора, если указан не ip-адрес.

0.0.19

* Добавлены миксины для создания команд для работы с сервисами WebBB и Postgres в контейнерах;
* Убран повсеместный проброс parsed_args и теперь используется свойство экземпляра _parsed_args;
* Добавлена команда для поднятия базы с раскаченными миграциями для работы с Databaser в тестовом режиме.

0.0.18

* Увеличение таймаута при работе с Unix сокетами, для исправления ошибки при коммите контейнера.

0.0.17

* Добавление обработчика сигналов SIGHUP и SIGTERM при получении среза БД с помощью Databaser.

0.0.16

* Добавление регистрации обработчика на случай обрыва исполнения сборки среза БД Databaser. 

0.0.15

* Исправление ошибок при конфигурировании bodatabaser.

0.0.14

* Добавлена проверка на указание UUID конфига и вывода названия конфига, если UUID отсутствует;
* Запрещен шаринг порта 5432 при сборке среза Databaser;
* Исправление ошибки вывода лога Databaser;
* Добавлен таймаут при старте контейнера с Postgres для корректной инициализации;
* Добавлена команда для оставновки работы Databaser и сопутствующих сервисов;
* Добавлена поддержка парсинга ссылок на тестовые стенды в описании Job-ов.

0.0.13

* Исправление ошибки с подбором образа БД для сборки среза БД Databaser-ом.

0.0.12

* Восстановление работоспособность команды boregistry remove images;
* Исправление ошибки с неверным подставлением таблиц для исключения при запуске Databaser;
* Исправление ошибки с подставлением значений из конфигов.

0.0.11

* Добавление дополнительных исключаемых таблиц.

0.0.10

* Рефакторинг кодовой базы;
* Добавлены базовые классы для создания Docker сервисов;
* Добавлен сервис для работы с Postgres;
* Добавлена возможность запуска контейнера с Postgres;
* Добавлено bogit;
* Добавлена команда для сборки базового образа приложения;
* Добавлена команда для создания базовых образов баз данных;
* Добавлена команда для запуска Databaser.

0.0.9

* Указание кастомного образа Postgres в автоматическом режиме производится только при наличи настроенного Registry;
* Добавление инструмента boip для проверки доступности серверов с тестовыми приложениями и серверами баз данных; 
* Добавлена команда boip check;
* Добавлен механизм вывода списка инструментов, которые должны быть сконфигурированы перед запуском команды;
* Исправлены описания к командам под новый механизм вывода описания;
* Добавление значений по умолчанию в конфиг botoolkit.conf;
* Рефакторинг механизма создания команд; 
* Доработки в части проставления значений по умолчанию при конфигурировании инструментов;
* Исправление ошибки с заполнением значений параметров конфигурационного файла; 
* Доработка методов заполнения значений параметров конфигурационных файлов;
* Исправление ошибки с указанием kB в настройках Postgres.

0.0.8

* Исправление ошибки маски образа базы при работе команды boregistry remove images

0.0.7

* Заполнение имени образа базы согласно подключенных проектов в конфигурационном файле  databaser

0.0.6

* Добавление дополнительных параметров для конфигурирования Postgres;
* Исправление бага с проставлением дефолтного значения параметра databaser_build_task_id.

0.0.5

* Добавление килобайтов; 
* Исправление опечатки в шаблоне конфигурационного файла bodatabaser.conf.

0.0.4

* Добавление параметров is_truncate_tables, tables_truncate_included в секцию databaser; 
* Исправление ошибки с указанием лишних данных Registry в конфиге; 
* Исправление ошибки с затиранием result_configuration_dir_path при переконфигурировании bodatabaser;
* Изменение настроек по умолчанию bopostgres.

0.0.3

* Исправление бага с проставлением пустого значения databaser_excluded_tables.

0.0.2 

* В команду `boconf` configure добавлено клонирование репозитория с конфигурациями тестовых стендов при первом запуске и обновление, при последующих.
* В команде `bojenkins generate databaser interface` в генераторе Groovy скриптов в качестве пустого значения установлена пустая строка вместо None
* Исправлена ошибка при работе команды `bodastabaser build configure`, в исключаемые таблицы всегда должны быть добавлены таблицы из конфига `bodatabaser`, т.к. они никогда не нужны
* В bodatabaser переименован параметр key_column_ids -> key_column_values;
* В bodatabaser добавлен параметр key_table_hierarchy_column_name;
* Исправлен баг с конфигурированием bodatabaser.

0.0.1

Добавление команд:
* boconf configure
* boconf check plugins
* boconf check options
* boconf generator configure
* boconf generator generate
* bodatabaser configure
* bodatabaser build configure
* bojenkins configure
* bojenkins stands
* bojenkins generate databaser interface
* bojira configure
* bopostgres configure
* boregistry configure
* boregistry remove images
* botoolkit configure
* bowebbb configure
