Коллеги а как бы вы подошли к такой задаче. есть

плейбук который генерит сложную систему файлов конфигурации во вложенных директориях исходя из пары параметров. хочу написать этому делу тест, каким образом проще всего проверять консистентность? пока предполагаю заворачивать выхлоп в тар и брать какой-нибудь хеш типа мд5, норм подход? или можно как-то проще (хотя куда уже проще в целом)

12 ответов

16 просмотров

а почему у вас есть сомнения, что ansible вам сделает, что то не так ?

Andrey-Che Автор вопроса
Vladimir Zhurkin
а почему у вас есть сомнения, что ansible вам сдел...

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

Проще всего по громкости криков ПМ-а после факапа

мне кажется это больше к тестированию - юнит, итеграции и прочее. И на основе уже их выхлопов решать правильно или нет. А так - хз. Ну есть файлы и?)

Andrey-Che Автор вопроса
Vladimir P
мне кажется это больше к тестированию - юнит, итег...

дык я про тесты и говорю, да. не просто есть файлы, а есть файлы сгенерированные на основе определенных вводных. и нужно допустим тестировать перед мерджем в мастер что каноничный конфиг из каноничного набора данных генерится один и тот же с одной и той же структурой и наполнением.

Andrey Che
дык я про тесты и говорю, да. не просто есть файлы...

ну это чуток бред. Если исходный шаблон один и тот же и нет правил заполнения зависящих от каких то произвольных величин (тут тоже надо понимать что для каждого это разный набор) то выхлоп будет все одинаков.

Andrey-Che Автор вопроса
Vladimir P
ну это чуток бред. Если исходный шаблон один и тот...

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

Я предполагаю, что у вас просто в проекте бардак. Не надо иметь одну роль с мега супер дупер конфигом. Если у вас есть шаблон и есть переменные, в чем сомнения - что будет не верный конфиг ? Если у вас шаблон хреновый, то вы и получите конфиг хреновый. Если вы собираете неочевидные факты и страдаете башимблом, то будут выстрелы в ногу.

Andrey Che
нет, разный. пользователи запускают плейбук с разн...

ну вот для меня не совсем понятен скрытый смысл и логика. Если входные данные меняются и выходные данные тоже, то как можно настроить тестирование? Тот же md5 будет разный. Читай - произвольный входной набор переменных -> произвольный набор выходных данных. Единственное это если есть схема папок одна и таже - тогда можно просто тестировать что файл или папка ЕСТЬ. А что там есть - уже неясно.

Andrey-Che Автор вопроса
Vladimir Zhurkin
Я предполагаю, что у вас просто в проекте бардак. ...

то что у меня в проекте бардак сомнений нет, но мы сейчас не об этом. для понимания что получается на выходе - это грубо говоря стейт конфигурации нескольких сотен сетевых устройств для одного отдельного датацентра. из этого стейта отдельным скриптом отдельным механизмом варятся и назначаются конфиги непосредственных устройств. этот самый плейбук про который я говорю это один из множества плейбуков который по сути просто отдельная утилита в системе управления сетью. утилита эта запускается ручками и ручками же назначаются параметры для генерации нового набора промежуточных конфигов железок. это хозяйство мерджится в отдельную репу со стейтом и это отдельная песня. проблема в том что в эту плейбуку пишут логику несколько людей и периодически эта логика немного ломает вывод, хотя этого не должно было происходить (i.e. какие-то изменения которые не должны были затронуть вывод, но случайно затронули). немного понятнее задача стала?

Andrey Che
то что у меня в проекте бардак сомнений нет, но мы...

нифига. Для того чтобы чекать логику нужны тесты - поднимать вирт машину или что там у вас и проверять что вывод 1 - в 1 , вывод "Привет Земляне" - "Привет Человеки" и прочее. По другому никак. То есть вам надо делать до мержа генерацию - запускать такого плана тесты на заданном конфиге-файле-наборе и после этого уже мержить

Похожие вопросы

Обсуждают сегодня

Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Привет!) Кто как юзает переменные в строках?) Чисто ради интереса Вот так: echo "У меня {$bananasAmount} бананов"; Или вот так: echo "У меня ${bananasAmount} бананов";
Виталий
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
разработчик ботов скидывает портфолио, боты которые он уже создал. А вот как узнать что это именно он их создал?
Gosudar
4
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта