Назад | Перейти на главную страницу

Saltstack перебирает данные столба второго уровня

Возможно, мне что-то не хватает, или это может быть неправильный способ размещения данных столбца.

Я хочу повторить второй уровень данных столбца.

Пример столба:

repo:
     Option1:
        version1:
            display_name: "abcde"
        version2:
            display_name: "fghij"
     Option2:
        version1:
            display_name: "klmn"`

Sls:

{% for version, versioninfo in salt['pillar.get']('repo', {}).iteritems() %}
{{ versioninfo[] }}{{ versioninfo[]['display_name'] }}
{% endfor %}`

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

Вам нужно два уровня итерации. .iteritems() возвращает ключ и значения (элементы) для этого ключа. Ваша первая итерация предоставит вам доступ к названиям и версиям опций. Вторая итерация даст вам display_name.

{% for option, versions in salt['pillar.get']('repo', {}).iteritems() %}
  {% for version, info in versions.iteritems() %}
    {{ version }}:{{ info['display_name'] }} 
  {% endfor %}
{% endfor %}

ИЛИ вы можете сделать это:

{% for option, versions in salt['pillar.get']('repo', {}).iteritems() %}
  {% for version in versions %}
    {{ version }}:{{ versions[version]['display_name'] }} 
  {% endfor %}
{% endfor %}