{%- from "barbican/map.jinja" import server with context %}
{%- if server.enabled %}

include:
  - barbican._ssl

barbican_server_packages:
  pkg.installed:
  - names: {{ server.pkgs }}

/etc/barbican/barbican.conf:
  file.managed:
  - source: salt://barbican/files/{{ server.version }}/barbican.conf.{{ grains.os_family }}
  - template: jinja
  - require:
    - pkg: barbican_server_packages

barbican_syncdb:
  cmd.run:
  - name: barbican-manage db upgrade
  {%- if grains.get('noservices') %}
  - onlyif: /bin/false
  {%- endif %}
  - require:
    - file: /etc/barbican/barbican.conf
    - pkg: barbican_server_packages

/etc/apache2/conf-enabled/barbican-api.conf:
  file.absent:
  - require:
    - pkg: barbican_server_packages


/etc/apache2/sites-available/barbican-api.conf:
  file.managed:
  - source: salt://barbican/files/{{ server.version }}/barbican-api.apache2.conf.Debian
  - template: jinja
  - require:
    - pkg: barbican_server_packages

barbican_api_config:
  file.symlink:
  - name: /etc/apache2/sites-enabled/barbican-api.conf
  - target: /etc/apache2/sites-available/barbican-api.conf

barbican_apache_restart:
  service.running:
  - enable: true
  - name: apache2
  {%- if grains.get('noservices') %}
  - onlyif: /bin/false
  {%- endif %}
  - watch:
    - file: /etc/barbican/barbican.conf
    - file: /etc/apache2/sites-available/barbican-api.conf

barbican_server_services:
  service.running:
  - names: {{ server.services }}
  - enable: true
  {%- if grains.get('noservices') %}
  - onlyif: /bin/false
  {%- endif %}
  - watch:
    - file: /etc/barbican/barbican.conf

{%- if server.get('async_queues_enable', False) %}
barbican_async_workers_enable:
  service.running:
  - names:
    - barbican-worker
  - enable: true
  {%- if grains.get('noservices') %}
  - onlyif: /bin/false
  {%- endif %}
  - watch:
    - file: /etc/barbican/barbican.conf
{%- else %}
barbican_async_workers_disable:
  service.dead:
  - names:
    - barbican-worker
  - enable: false
{%- endif %}

{%- if 'dogtag' in server.get('plugin', {}) %}
barbican_dogtag_packages:
  pkg.installed:
  - names: {{ server.dogtag_pkgs }}
  - watch_in:
    - service: barbican_server_services

{%- if 'dogtag' in server.get('plugin', {}) %}
{%- if server.dogtag_admin_cert.engine != 'noop' %}
{# For some cases dogtag_admin_cert can be undefined. It is done to rise an exception during the state below. #}
{{ server.plugin.dogtag.get('pem_path', '/etc/barbican/kra_admin_cert.pem') }}:
  file.managed:
  - contents: {{ server.dogtag_admin_cert.key | yaml }}
  - mode: 600
  - user: barbican
  - group: barbican
{%- endif %}
{%- endif %}

{%- endif %}
{%- endif %}
