| {%- from "linux/map.jinja" import system with context %} |
| {%- if system.enabled %} |
| |
| {%- set pkgs_groups = { |
| 'latest': [], |
| 'purged': [], |
| 'removed': [], |
| 'installed': [], |
| } %} |
| {%- for name, package in system.package.iteritems() %} |
| |
| {%- if package.repo is defined or package.hold is defined or package.verify is defined %} |
| linux_extra_package_{{ name }}: |
| {%- if package.version is defined %} |
| {%- if package.version == 'latest' %} |
| pkg.latest: |
| {%- elif package.version == 'purged' %} |
| pkg.purged: |
| {%- elif package.version == 'removed' %} |
| pkg.removed: |
| {%- else %} |
| pkg.installed: |
| - version: {{ package.version }} |
| {%- endif %} |
| {%- else %} |
| pkg.installed: |
| {%- endif %} |
| - name: {{ name }} |
| {%- if package.repo is defined %} |
| - fromrepo: {{ package.repo }} |
| {%- endif %} |
| {%- if package.hold is defined %} |
| - hold: {{ package.hold }} |
| {%- endif %} |
| {%- if package.verify is defined %} |
| - skip_verify: {{ "False" if package.verify else "True" }} |
| {%- endif %} |
| {%- else %} |
| {%- if package.version is not defined %} |
| {%- do pkgs_groups['installed'].append(name) %} |
| {%- elif package.version in ('latest', 'purged', 'removed') %} |
| {%- do pkgs_groups[package.version].append(name) %} |
| {%- else %} |
| {%- do pkgs_groups['installed'].append({name: package.version}) %} |
| {%- endif %} |
| {%- endif %} |
| |
| {%- endfor %} |
| |
| {%- for pkgs_group, pkgs in pkgs_groups.iteritems() %} |
| {%- if pkgs %} |
| linux_extra_packages_{{ pkgs_group }}: |
| pkg.{{ pkgs_group }}: |
| - pkgs: {{ pkgs }} |
| {%- endif %} |
| {%- endfor %} |
| |
| {%- endif %} |