SaltStack: используйте чистый Python для файлов состояния

Поскольку я люблю объектно-ориентированное программирование на Python, я бы предпочел классы и наследование языкам шаблонов для файлов состояния.

В списке есть три интерфейса, похожие на python:

https://docs.saltstack.com/en/latest/ref/renderers/#full-list-of-renderers

Но все они относятся к предметно-ориентированным языкам: файлы должны начинаться с «#!py», «#!pydsl» или «#!pyobjects».

Я не смог найти способ использовать наследование для определения своих состояний.

Есть ли более объектно-ориентированный способ определения состояний?


person guettli    schedule 07.04.2014    source источник
comment
Что вы имеете в виду под доменными языками?   -  person gitaarik    schedule 07.04.2014
comment
Я обновил вопрос: файлы должны начинаться с #!py, #!pydsl или #!pyobjects.   -  person guettli    schedule 07.04.2014
comment
Вы пытались просто использовать классы и наследование? Конечно, это будет зависеть от DSL, но это, безусловно, не проблема в py, но все остальное тоже должно работать. Вам просто нужно убедиться, что вы предоставляете тот же интерфейс.   -  person Wolph    schedule 07.04.2014
comment
Вы можете просто написать свои собственные модули Python, поместить их в PYTHONPATH и импортировать в соль. Я не вижу в этом реальной необходимости, потому что вы определяете структуры данных, а не пишете программу.   -  person gtmanfred    schedule 18.05.2017
comment
@gtmanfred да, ты прав. Я не занимаюсь программированием. Я определяю структуры. Но иногда мне не хватает гибкости наследования. Я думаю, что структурирование с наследованием может быть крутым. И, может быть, как-то сработает автозаполнение в pyCharm. ... Я как-то просто не люблю yaml. Это просто чувство. Не могу найти аргументов ни за, ни против.   -  person guettli    schedule 19.05.2017
comment
Если настройки pyobjects не работают, нам бы хотелось другой рендерер, который делает то, что вы хотите. docs.saltstack.com/en/latest/topics/development/ docs.saltstack.com/en/latest/ref/renderers   -  person gtmanfred    schedule 22.05.2017


Ответы (1)


Рекласс (ранее соль-рекласс) стремится предложить это.

http://reclass.pantsfullofunix.net/

Он вырос из соли в кроссплатформенный (ансибль, марионетка и т. д.)

person Dan Garthwaite    schedule 08.04.2014
comment
Спасибо за ваш ответ. Поскольку мы будем использовать одну платформу (SaltStack), я думаю, кроссплатформенное решение усложнит задачу. Решение, использующее классы SaltStack, было бы лучше для моего случая. - person guettli; 09.04.2014