|
- {%- from "linux/map.jinja" import system with context %}
- {%- if system.enabled %}
-
- linux_packages:
- pkg.installed:
- - pkgs: {{ system.pkgs }}
-
- {%- 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: {{ true if package.verify else false }}
- {%- 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 %}
|