diff --git a/README.rst b/README.rst index 6706b4c..07e887c 100644 --- a/README.rst +++ b/README.rst @@ -46,6 +46,7 @@ Configure pillar data under salt:ssh_roster to feed the template. Install salt api Requisite: Configure salt-master with rest_cherrypy or rest_tornado. +Requires: pip.extensions as it installs the latest version from pip. ``salt.standalone`` ------------------- diff --git a/salt/api.sls b/salt/api.sls index 812f243..820c349 100644 --- a/salt/api.sls +++ b/salt/api.sls @@ -1,16 +1,48 @@ +#!jinja|yaml + {% from "salt/map.jinja" import salt_settings with context %} include: - salt.master + - pip.extensions + +{%- set cfg_salt = pillar.get('salt', {}) %} +{%- set cfg_master = cfg_salt.get('master', {}) %} salt-api: -{% if salt_settings.install_packages %} pkg.installed: - - name: {{ salt_settings.salt_api }} -{% endif %} + - name: {{ salt_settings['salt-api'] }} service.running: - - name: {{ salt_settings.api_service }} + - name: {{ salt_settings.get('api_service', 'salt-api') }} - require: - - service: {{ salt_settings.master_service }} + - service: {{ salt_settings.get('api_service', 'salt-api') }} +{%- if 'rest_cherrypy' in cfg_master %} + - pip: salt-api-cherrypy +{% elif 'rest_tornado' in cfg_master %} + - pip: salt-api-tornado +{% endif %} - watch: - pkg: salt-master + - file: salt-master + +{%- if 'rest_cherrypy' in cfg_master %} +salt-api-cherrypy: + pkg.purged: + - name: {{ salt_settings['python-cherrypy'] }} + pip.installed: + - name: cherrypy + - require: + - pkg: salt-api-cherrypy + - pkg: pip_extensions +{% endif %} + +{%- if 'rest_tornado' in cfg_master %} +salt-api-tornado: + pkg.purged: + - name: {{ salt_settings['python-tornado'] }} + pip.installed: + - name: tornado + - require: + - pkg: salt-api-tornado + - pkg: pip_extensions +{% endif %} diff --git a/salt/defaults.yaml b/salt/defaults.yaml index de663e1..2c61f12 100644 --- a/salt/defaults.yaml +++ b/salt/defaults.yaml @@ -18,6 +18,9 @@ salt: salt_api: salt-api salt_ssh: salt-ssh + python-cherrypy: python-cherrypy + python-tornado: python-tornado + master: gitfs_provider: gitpython