diff --git a/packages/defaults.yaml b/packages/defaults.yaml index 429781c..8bf4520 100644 --- a/packages/defaults.yaml +++ b/packages/defaults.yaml @@ -37,7 +37,7 @@ packages: archives: pkgs: required: ['curl', 'bzip2', 'gzip'] - types: ('tar', 'zip', 'rar',) + types: ['tar', 'zip', 'rar'] wanted: {} #note: dict unwanted: [] required: diff --git a/packages/files/pip.conf b/packages/files/pip.conf new file mode 100644 index 0000000..23e4597 --- /dev/null +++ b/packages/files/pip.conf @@ -0,0 +1,6 @@ +{%- for section, settings in config.items()|sort -%} +[{{ section }}] +{%- for key, value in settings.items()|sort %} +{{ key }} = {{ value }} +{%- endfor %} +{% endfor %} diff --git a/packages/osfamilymap.yaml b/packages/osfamilymap.yaml index 4873717..d767653 100644 --- a/packages/osfamilymap.yaml +++ b/packages/osfamilymap.yaml @@ -1,5 +1,11 @@ # -*- coding: utf-8 -*- # vim: ft=yaml +Suse: + pips: + required: + pkgs: + - python3-pip + Debian: pips: required: diff --git a/packages/pips.sls b/packages/pips.sls index 4c3514d..0eb6cff 100644 --- a/packages/pips.sls +++ b/packages/pips.sls @@ -6,19 +6,37 @@ {% set req_pkgs = packages.pips.required.pkgs %} {% set wanted_pips = packages.pips.wanted %} {% set unwanted_pips = packages.pips.unwanted %} +{% set pip_config = packages.pips.config %} ### REQ PKGS (without these, some of the WANTED PIPS will fail to install) pip_req_pkgs: pkg.installed: - pkgs: {{ req_pkgs }} +{% if pip_config %} +pip_config: + file.managed: + - name: /etc/pip.conf + - source: salt://{{ slspath }}/files/pip.conf + - template: jinja + - makedirs: True + - context: + config: {{ pip_config|json }} +{% endif %} + ### PYTHON PKGS to install using PIP # (requires the python-pip deb/rpm installed, either by the system or listed in # the required packages {% for pn in wanted_pips %} -{{ pn }}: +packages pips install {{ pn }}: + {%- if grains.os_family in ('Suse',) %} ##workaround https://github.com/saltstack-formulas/docker-formula/issues/198 + cmd.run: + - name: /usr/bin/pip install {{ pn }} + {%- else %} pip.installed: + - name: {{ pn }} - reload_modules: true + {%- endif %} - require: - pkg: pip_req_pkgs {% if req_states %} @@ -26,9 +44,18 @@ pip_req_pkgs: - sls: {{ dep }} {% endfor %} {% endif %} + {% if pip_config %} + - file: pip_config + {% endif %} {% endfor %} {% for upn in unwanted_pips %} -{{ upn }}: - pip.removed +packages pips remove {{ upn }}: + {%- if grains.os_family in ('Suse',) %} + cmd.run: + - name: /usr/bin/pip uninstall {{ pn }} + {%- else %} + pip.removed: + - name: {{ upn }} + {%- endif %} {% endfor %} diff --git a/pillar.example b/pillar.example index 70c24ed..c30421b 100644 --- a/pillar.example +++ b/pillar.example @@ -24,6 +24,9 @@ packages: - wget - git pips: + #required: + # pkgs: + # - python2-pip wanted: - dxpy - attrs @@ -31,6 +34,11 @@ packages: - campbel - reverse_geocode - indy-crypto + config: + global: + timeout: 120 + default-timeout: 120 + proxy: http://proxy.example.com:3128 gems: wanted: - progressbar