Search code examples
python-3.xsalt-project

salt 3003: Loop over pillar contents


What is the Salt 3003 (Python 3) syntax to do the following

{% for group, args in pillar['groups.developers'].iteritems() %}
{{ group }}:
  group.present:
    - name: {{ group }}
{% if 'gid' in args %}
    - gid: {{ args['gid'] }}
{% endif %}
{% endfor %}

Where developers is:

#./pillar/base/user/developers.sls
groups:
  developers:
    developer-a:
      - fullname: Developer A

Solution

  • Try this one.

    {% for group, args in salt['pillar.get']('groups:developers', {}).items() %}
    {{ group }}:
      group.present:
        - name: {{ group }}
    {% if 'gid' in args %}
        - gid: {{ args['gid'] }}
    {% endif %}
    {% endfor %}
    

    Use items() instead of iteritems().

    More information about pillar