packages-formula/packages/pkgs.sls
2019-02-08 21:06:55 +01:00

62 lines
1.5 KiB
Text

# -*- coding: utf-8 -*-
# vim: ft=sls
{% from "packages/map.jinja" import packages with context %}
{% set req_states = packages.pkgs.required.states %}
{% set req_packages = packages.pkgs.required.pkgs %}
{% set held_packages = packages.pkgs.held %}
{% set wanted_packages = packages.pkgs.wanted %}
{% set unwanted_packages = packages.pkgs.unwanted %}
### PRE-REQ PKGS (without these, some of the WANTED PKGS will fail to install)
pkg_req_pkgs:
pkg.installed:
- pkgs: {{ req_packages }}
{% if req_states %}
- require:
{% for dep in req_states %}
- sls: {{ dep }}
{% endfor %}
{% endif %}
{% if held_packages != {} %}
held_pkgs:
pkg.installed:
{% if held_packages is mapping %}
- pkgs:
{% for p, v in held_packages.items() %}
- {{ p }}: {{ v }}
{% endfor %}
{% else %}
- pkgs: {{ held_packages }}
{% endif %}
{% if grains['os_family'] not in ['Suse'] %}
- hold: true
- update_holds: true
{% endif %}
- require:
- pkg: pkg_req_pkgs
{% for dep in req_states %}
- sls: {{ dep }}
{% endfor %}
{% endif %}
wanted_pkgs:
pkg.installed:
- pkgs: {{ wanted_packages }}
{% if grains['os_family'] not in ['Suse'] %}
- hold: false
{% endif %}
- require:
- pkg: pkg_req_pkgs
{% if req_states %}
{% for dep in req_states %}
- sls: {{ dep }}
{% endfor %}
{% endif %}
unwanted_pkgs:
pkg.purged:
- pkgs: {{ unwanted_packages }}