Botoolkit
Семейство инструментов предназначенное для сокращения рутинных действий
разработчиков проектов web_bb и организации работы со сторонними сервисами.
Набор содержит следующие инструменты:
- boconf
- bodatabaser
- barsdock
- bogit
- boguide
- boip
- bojenkins
- bojira
- bopostgres
- boregistry
- botelegram
- botoolkit
- bowebbb
Данные инструменты нацелены на объединение существующих решений с создание новых
в едином проекте в качестве консольных утилит для повышения удобства работы с
проектом и сокращения издержек выполнение рутинных задач. Более подробно с
инструментом можно ознакомиться в Confluence.
Версионирование
В проекте используется Семантическое версионирование. Со спецификацией можно ознакомиться по ссылке
https://semver.org/lang/ru/# История изменений
Все изменения проекта должны быть отражены в этом файле.
Формат основан на Keep a Changelog
и проект следует Семантическому версионированию.
[x.y.z] - гггг-мм-дд
Здесь должно быть расширенное описание того, что было сделано, какие есть планы у команды по дальнейшему развитию.
Желательно будущие цели привязывать к конкретным задачам. Т.е. на каждую цель нужно поставить отдельную задачу и
отразить ее номер здесь.
Добавлено
Изменено
Исправлено
Изменено
[1.2.5] - 2024-09-11
- Изменен адрес репозитория web_bb_salary
Удалено
[1.2.4] - 2024-07-09
Изменено
- Добавлена обработка ошибки при парсинге стенда
[1.2.3] - 2024-07-04
Изменено
[1.2.2] - 2024-05-31
Добавлено
- Добавлен плагин web_bb.db_session
[1.2.1] - 2024-05-30
Добавлено
- В databaser, если не получилось сделать pull образа - пробуем его взять из локального хранилища
[1.2.0] - 2024-02-14
Доработка команды по анализу и зачистке веток в репозитории. Добавлена возможность указания нескольких проектов, обход
поддиректорий с проектами.
Добавлено
-
EDUDEVOPS-41
MINOR Добавлена возможность указания нескольких проектов в команде bogit check closed issues remote branches.
-
EDUDEVOPS-41
MINOR Добавлена возможность обхода поддиректорий с проектами в команде bogit check closed issues remote branches.
1.1.27
- Изменен адрес репозитория web_bb_vehicle
1.1.26
- Добавлен max_parallel_workers_per_gather = 0 в образ postgres
1.1.25
- Добавлен плагин salary.lk
1.1.24
- Добавлен плагин integration_gis_gmp
1.1.23
- Добавлен плагин accounting_inventory_reports
1.1.22
- Удален лишний параметр для логирования
1.1.21
- Добавлен плагин accounting_mchs.other_legal_basis
1.1.20
- Добавлены параметры в секцию databaser для сохранения логов сборки среза в файловой системе
1.1.19
- В генерацию файла базовых образов добавлена логика, когда нижестоящие ветки используют образы вышестоящих
- Таблица waterfall_warningcollector добавлена в исключения
1.1.18
- Добавлена синхронная версия создания базовых образов
1.1.17
- Плагин civil_service добавлен как базовый для salary.
1.1.16
- Добавление указания тега ветки web_bb_app_branch при запуске пустой БД приложения web_bb.
1.1.15
- Добавлен плагин web_execution
1.1.14
- Добавлен плагин import_pp_web
1.1.13
- Изменена проверка на запущенный job databaser'а
1.1.12
- Добавлен плагин period_closing_ext
1.1.11
- Переименована ссылка на guides
1.1.10
1.1.9
- Переименован плагин mchs.
1.1.8
- Добавление плагина integration_transcrypt проекта web_bb_accounting.
1.1.7
- Добавлен проброс содержимого pip.conf при сборке образов приложения web_bb.
1.1.6
- Добавление плагина salary.mchs
1.1.5
- BODEVOPS-246 Добавление databaser_folder_name в конфиг.
1.1.4
- BODEVOPS-246 Восстановлена парсинг Job-ов Jenkins;
- BODEVOPS-246 Вынос view name в параметры.
1.1.3
- Изменение названия view в Jenkins на БО.
1.1.2
- BODEVOPS-244 Добавление возможности исключения комбинаций проектов из генератора схемы сборки базовых образов БД.
1.1.1
- EDUDEVOPS-6 Убрана отсылка сообщения в телеграм, если нет задач с ошибочно собранными срезами БД.
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
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