У меня есть требование создать демон массового создания сервисов, которому можно передать таблицу данных, а затем отключить и создать набор предварительно настроенных сервисов.Тем не менее, тип сервисов потенциально много и разнообразен, и потенциально последующие шаги потребуют вывода предыдущих шагов.
Кажется, что мне нужно реализовать на каком-то доменно-специфическом языке, который позволяет мне определить шаблон рецепта.,Затем его можно пропустить через механизм шаблонов с подстановками, сделанными из таблицы данных, прежде чем, наконец, его запустить.
Имеет смысл повторно использовать существующую языковую инфраструктуру, чтобы более сложные рецепты могли использовать управление потоком.и определить ограниченный набор базовых операций.Однако я бы хотел, чтобы простые рецепты не требовали изменения языка, поскольку конечные пользователи вряд ли будут иметь опыт работы с программным обеспечением.
Я хотел бы представить простой шаблонный рецепт, похожий на:
# Create a service from NodeA to NodeC via NodeB
# Parameters are:
# node a id, node a port, node b id, node c id, node c port, comment
node_a = node_a_type($1)
conn_a = node_a.create_connection($2, $7)
node_b = node_b_type($3)
conn_b = node_b.create_connection(conn_a.output_port, $7)
node_c = node_c_type($4)
conn_c = node_c.terminate_connection(conn_b.output_port, $5, $7)
Я предлагаю Python в качестве базового языка, так как я знаком с ним.Однако вики-сайт Python предлагает множество различных вариантов (http://wiki.python.org/moin/Templating), при этом большинство нацеленных шаблонных решений HTML / XML. Мы будем благодарны за все плюсы и минусы различных систем.