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

bind_packages:
  pkg.installed:
  - pkgs: {{ server.pkgs }}

named_directory:
  file.directory:
  - name: {{ server.named_dir }}
  - user: root
  - group: {{ server.group }}
  - mode: 775
  - makedirs: True
  - require:
    - pkg: bind_packages

bind_config:
  file.managed:
  - name: {{ server.config }}
  - source: 'salt://bind/files/named.conf.{{ grains.os_family }}'
  - template: jinja
  - user: root
  - group: {{ server.group }}
  - mode: 640
  - require:
    - pkg: bind_packages
  - watch_in:
    - service: bind_service

{%- if grains['os_family'] == 'Debian' %}

bind_config_local:
  file.managed:
  - name: {{ server.config_local }}
  - source: 'salt://bind/files/named.conf.local'
  - template: jinja
  - user: root
  - group: {{ server.group }}
  - mode: 644
  - require:
    - pkg: bind_packages
  - watch_in:
    - service: bind_service

bind_config_options:
  file.managed:
  - name: {{ server.config_options }}
  - source: 'salt://bind/files/named.conf.options'
  - template: jinja
  - user: root
  - group: {{ server.group }}
  - mode: 644
  - require:
    - pkg: bind_packages
  - watch_in:
    - service: bind_service

{%- endif %}

bind_service:
  service.running:
  - name: {{ server.service }}
  - enable: true
  - require:
    - pkg: bind_packages

{%- if grains.get('init', None) == 'systemd' %}

bind_service_reload:
  file.managed:
  - name: /etc/systemd/system/bind9.service.d/reload.conf
  - source: 'salt://bind/files/reload.conf'
  - user: root
  - group: root
  - mode: 644
  - makedirs: True
  module.run:
  - name: service.systemctl_reload
  - onchanges:
    - file: bind_service_reload

{%- endif %}

{%- endif %}
