web-dev-qa-db-ja.com

ソルトスタックは第2レベルの柱データを反復処理します

何かが足りない場合や、これがピラーデータのレイアウトの間違った方法である可能性があります。

第2レベルのピラーデータを繰り返し処理します。

柱の例:

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 %}`

最初のレベルのピラーデータを事実上無視して、各バージョンと表示名を返したいのですが。明らかに上記のジンジャは機能しませんが、これを行う方法はありますか?

4
Joseph Gardner

2レベルの反復が必要です。 .iteritems()は、キーとそのキーの値(アイテム)を返します。最初の反復では、オプションの名前とバージョンにアクセスできます。 2回目の繰り返しで、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 %}
8
Vye