何かが足りない場合や、これがピラーデータのレイアウトの間違った方法である可能性があります。
第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 %}`
最初のレベルのピラーデータを事実上無視して、各バージョンと表示名を返したいのですが。明らかに上記のジンジャは機能しませんが、これを行う方法はありますか?
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 %}