2018-03-13 14:36:11 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# vim: ft=sls
|
|
|
|
{% from "packages/map.jinja" import packages with context %}
|
|
|
|
|
2018-03-26 06:59:54 -03:00
|
|
|
# As we are 'extend'ing pkg_req_pkgs and unwanted_pkgs, we need to concatenate
|
|
|
|
# the attributes correctly (see #17)
|
2018-06-29 15:44:03 +03:00
|
|
|
{% set req_packages = packages.pkgs.required.pkgs + packages.snaps.packages %}
|
2018-03-26 06:59:54 -03:00
|
|
|
{% set req_states = packages.pkgs.required.states + packages.snaps.required.states %}
|
|
|
|
{% set unwanted_packages = packages.pkgs.unwanted + packages.snaps.collides %}
|
|
|
|
|
2018-03-13 14:36:11 +00:00
|
|
|
{% set wanted_snaps = packages.snaps.wanted %}
|
2018-04-09 14:18:40 -04:00
|
|
|
{% set classic_snaps = packages.snaps.classic %}
|
2018-03-13 14:36:11 +00:00
|
|
|
{% set unwanted_snaps = packages.snaps.unwanted %}
|
|
|
|
|
2018-06-29 15:44:03 +03:00
|
|
|
{%- if packages.snaps.packages %}
|
|
|
|
{% if wanted_snaps or classic_snaps or unwanted_snaps %}
|
2018-03-13 16:35:00 +00:00
|
|
|
|
|
|
|
### REQ PKGS (without this, SNAPS can fail to install/uninstall)
|
2018-03-13 14:36:11 +00:00
|
|
|
include:
|
|
|
|
- packages.pkgs
|
2019-03-10 22:47:54 -03:00
|
|
|
{% if req_states %}
|
|
|
|
{% for dep in req_states %}
|
|
|
|
- {{ dep }}
|
|
|
|
{% endfor %}
|
|
|
|
{% endif %}
|
2018-03-13 14:36:11 +00:00
|
|
|
|
|
|
|
extend:
|
|
|
|
unwanted_pkgs:
|
2018-03-26 06:59:54 -03:00
|
|
|
pkg.purged:
|
2019-03-05 20:12:25 -03:00
|
|
|
- pkgs: {{ unwanted_packages | json }}
|
2018-03-26 06:59:54 -03:00
|
|
|
|
2018-03-13 14:36:11 +00:00
|
|
|
pkg_req_pkgs:
|
|
|
|
pkg.installed:
|
2019-03-05 20:12:25 -03:00
|
|
|
- pkgs: {{ req_packages | json }}
|
2018-03-13 14:36:11 +00:00
|
|
|
{% if req_states %}
|
|
|
|
- require:
|
|
|
|
{% for dep in req_states %}
|
|
|
|
- sls: {{ dep }}
|
|
|
|
{% endfor %}
|
|
|
|
{% endif %}
|
2019-06-24 12:21:47 +01:00
|
|
|
- retry: {{ packages.retry_options|json }}
|
2018-03-13 14:36:11 +00:00
|
|
|
|
2018-03-26 06:59:54 -03:00
|
|
|
{% if packages.snaps.symlink %}
|
|
|
|
{# classic confinement requires snaps under /snap or symlink from #}
|
|
|
|
{# /snap to /var/lib/snapd/snap #}
|
2018-03-13 16:35:00 +00:00
|
|
|
packages-snap-classic-symlink:
|
|
|
|
file.symlink:
|
|
|
|
- name: /snap
|
|
|
|
- target: /var/lib/snapd/snap
|
|
|
|
- unless: test -d /snap
|
|
|
|
- require:
|
|
|
|
- pkg: pkg_req_pkgs
|
|
|
|
- pkg: unwanted_pkgs
|
2018-03-26 06:59:54 -03:00
|
|
|
{% endif %}
|
2018-03-13 16:35:00 +00:00
|
|
|
|
2018-03-26 06:59:54 -03:00
|
|
|
{% for snap in packages.snaps.service %}
|
2018-03-13 14:36:11 +00:00
|
|
|
packages-{{ snap }}-service:
|
|
|
|
service.running:
|
|
|
|
- name: {{ snap }}
|
|
|
|
- enable: true
|
|
|
|
- require:
|
|
|
|
- pkg: pkg_req_pkgs
|
|
|
|
- pkg: unwanted_pkgs
|
2018-03-26 06:59:54 -03:00
|
|
|
{% endfor %}
|
2018-06-29 15:44:03 +03:00
|
|
|
|
2018-03-13 14:36:11 +00:00
|
|
|
### SNAPS to install
|
2018-03-26 06:59:54 -03:00
|
|
|
{% for snap in wanted_snaps %}
|
2018-03-13 14:36:11 +00:00
|
|
|
packages-snapd-{{ snap }}-wanted:
|
|
|
|
cmd.run:
|
|
|
|
- name: snap install {{ snap }}
|
|
|
|
- unless: snap list {{ snap }}
|
|
|
|
- output_loglevel: quiet
|
|
|
|
- require:
|
|
|
|
- pkg: pkg_req_pkgs
|
|
|
|
- pkg: unwanted_pkgs
|
2019-06-24 12:21:47 +01:00
|
|
|
- retry: {{ packages.retry_options|json }}
|
2018-03-26 06:59:54 -03:00
|
|
|
{% endfor %}
|
2018-03-13 14:36:11 +00:00
|
|
|
|
2018-04-09 14:18:40 -04:00
|
|
|
### SNAPS to install in classic mode
|
|
|
|
{% for snap in classic_snaps %}
|
|
|
|
packages-snapd-{{ snap }}-classic:
|
|
|
|
cmd.run:
|
|
|
|
- name: snap install --classic {{ snap }}
|
|
|
|
- unless: snap list {{ snap }}
|
|
|
|
- output_loglevel: quiet
|
|
|
|
- require:
|
|
|
|
- pkg: pkg_req_pkgs
|
|
|
|
- pkg: unwanted_pkgs
|
2019-06-24 12:21:47 +01:00
|
|
|
- retry: {{ packages.retry_options|json }}
|
2018-04-09 14:18:40 -04:00
|
|
|
{% endfor %}
|
|
|
|
|
2018-03-13 14:36:11 +00:00
|
|
|
### SNAPS to uninstall
|
2018-03-26 06:59:54 -03:00
|
|
|
{% for snap in unwanted_snaps %}
|
2018-03-13 14:36:11 +00:00
|
|
|
packages-snapd-{{ snap }}-unwanted:
|
|
|
|
cmd.run:
|
|
|
|
- name: snap remove {{ snap }}
|
|
|
|
- onlyif: snap list {{ snap }}
|
|
|
|
- output_loglevel: quiet
|
|
|
|
- require:
|
|
|
|
- pkg: pkg_req_pkgs
|
|
|
|
- pkg: unwanted_pkgs
|
2018-03-26 06:59:54 -03:00
|
|
|
{% endfor %}
|
2018-03-13 14:36:11 +00:00
|
|
|
|
2018-03-20 16:42:42 +00:00
|
|
|
{% endif %}
|
2018-03-13 16:35:00 +00:00
|
|
|
{% endif %}
|