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

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

12 ответов

15 просмотров

а почему у вас есть сомнения, что 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 , вывод "Привет Земляне" - "Привет Человеки" и прочее. По другому никак. То есть вам надо делать до мержа генерацию - запускать такого плана тесты на заданном конфиге-файле-наборе и после этого уже мержить

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

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

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
2
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
Ребят, а двух-факторку для плагина Users и для бэкенда октября кто-то прикручивал? Поделитесь опытом
Constantine Anikin
4
Карта сайта