2
0

Reformat formulas.sls Jinja to make it easier to work with

This commit is contained in:
Imran Iqbal 2019-02-14 15:39:01 +00:00
parent 5eee4c61dc
commit f76364c1b7

View File

@ -1,68 +1,70 @@
{% set processed_gitdirs = {} %} {%- set processed_gitdirs = {} %}
{% set processed_gitdir_envs = [] %} {%- set processed_gitdir_envs = [] %}
{% set processed_basedirs = [] %} {%- set processed_basedirs = [] %}
{% from "salt/map.jinja" import formulas_settings with context %} {%- from "salt/map.jinja" import formulas_settings with context %}
{% from "salt/formulas.jinja" import formulas_git_opt with context %} {%- from "salt/formulas.jinja" import formulas_git_opt with context %}
{% from "salt/formulas.jinja" import formulas_opts_for_git_latest with context %} {%- from "salt/formulas.jinja" import formulas_opts_for_git_latest with context %}
# Loop over all formulas listed in pillar data # Loop over all formulas listed in pillar data
{% for env, entries in salt['pillar.get']('salt_formulas:list', {}).items() %} {%- for env, entries in salt['pillar.get']('salt_formulas:list', {}).items() %}
{% for entry in entries %} {%- for entry in entries %}
{% set basedir = formulas_git_opt(env, 'basedir')|load_yaml %} {%- set basedir = formulas_git_opt(env, 'basedir')|load_yaml %}
{% set gitdir = '{0}/{1}'.format(basedir, entry) %} {%- set gitdir = '{0}/{1}'.format(basedir, entry) %}
{% set update = formulas_git_opt(env, 'update')|load_yaml %} {%- set update = formulas_git_opt(env, 'update')|load_yaml %}
{% if formulas_settings.checkout_orig_branch %} {%- if formulas_settings.checkout_orig_branch %}
{% if not salt['file.directory_exists']('{0}/{1}'.format(gitdir, '.git')) %} {%- if not salt['file.directory_exists']('{0}/{1}'.format(gitdir, '.git')) %}
{% set gitdir_branch = '' %} {%- set gitdir_branch = '' %}
{% else %} {%- else %}
{% set gitdir_branch = salt['git.current_branch'](gitdir) %} {%- set gitdir_branch = salt['git.current_branch'](gitdir) %}
{% endif %} {%- endif %}
{% do processed_gitdirs.update({gitdir:gitdir_branch}) %} {%- do processed_gitdirs.update({gitdir:gitdir_branch}) %}
{% endif %} {%- endif %}
# Setup the directory hosting the Git repository # Setup the directory hosting the Git repository
{% if basedir not in processed_basedirs %} {%- if basedir not in processed_basedirs %}
{% do processed_basedirs.append(basedir) %} {%- do processed_basedirs.append(basedir) %}
{{ basedir }}: {{ basedir }}:
file.directory: file.directory:
{%- for key, value in salt['pillar.get']('salt_formulas:basedir_opts', {%- for key, value in salt['pillar.get'](
{'makedirs': True}).items() %} 'salt_formulas:basedir_opts',
{'makedirs': True}
).items() %}
- {{ key }}: {{ value }} - {{ key }}: {{ value }}
{%- endfor %} {%- endfor %}
{% endif %} {%- endif %}
# Setup the formula Git repository # Setup the formula Git repository
{% set gitdir_env = '{0}_{1}'.format(gitdir, env) %} {%- set gitdir_env = '{0}_{1}'.format(gitdir, env) %}
{% if gitdir_env not in processed_gitdir_envs %} {%- if gitdir_env not in processed_gitdir_envs %}
{% do processed_gitdir_envs.append(gitdir_env) %} {%- do processed_gitdir_envs.append(gitdir_env) %}
{% set options = formulas_opts_for_git_latest(env)|load_yaml %} {%- set options = formulas_opts_for_git_latest(env)|load_yaml %}
{% set baseurl = formulas_git_opt(env, 'baseurl')|load_yaml %} {%- set baseurl = formulas_git_opt(env, 'baseurl')|load_yaml %}
{{ gitdir_env }}: {{ gitdir_env }}:
git.latest: git.latest:
- name: {{ baseurl }}/{{ entry }}.git - name: {{ baseurl }}/{{ entry }}.git
- target: {{ gitdir }} - target: {{ gitdir }}
{%- for key, value in options.items() %} {%- for key, value in options.items() %}
- {{ key }}: {{ value }} - {{ key }}: {{ value }}
{%- endfor %} {%- endfor %}
- require: - require:
- file: {{ basedir }} - file: {{ basedir }}
{%- if not update %} {%- if not update %}
- onlyif: rm -fr {{ gitdir }} >/dev/null 2>&1 | true - onlyif: rm -fr {{ gitdir }} >/dev/null 2>&1 | true
{%- endif %} {%- endif %}
{% endif %} {%- endif %}
{% endfor %} {%- endfor %}
{% endfor %} {%- endfor %}
{% if formulas_settings.checkout_orig_branch %} {%- if formulas_settings.checkout_orig_branch %}
# For each directory processed, explicitly checkout the original branch before # For each directory processed, explicitly checkout the original branch before
# the `git.latest` state ran # the `git.latest` state ran
{% for gitdir, original_branch in processed_gitdirs.items() %} {%- for gitdir, original_branch in processed_gitdirs.items() %}
{% if original_branch %} {%- if original_branch %}
{% set gitdir_user = salt['file.get_user'](gitdir) %} {%- set gitdir_user = salt['file.get_user'](gitdir) %}
checkout_original_branch_for_{{ gitdir }}: checkout_original_branch_for_{{ gitdir }}:
module.run: module.run:
- name: git.checkout - name: git.checkout
@ -71,6 +73,6 @@ checkout_original_branch_for_{{ gitdir }}:
- rev: {{ original_branch }} - rev: {{ original_branch }}
- user: {{ gitdir_user }} - user: {{ gitdir_user }}
- unless: test "$(cd {{ gitdir }}; git rev-parse --abbrev-ref HEAD)" = "{{ original_branch }}" - unless: test "$(cd {{ gitdir }}; git rev-parse --abbrev-ref HEAD)" = "{{ original_branch }}"
{% endif %} {%- endif %}
{% endfor %} {%- endfor %}
{% endif %} {%- endif %}