heka server role, backward compat
diff --git a/heka/init.sls b/heka/init.sls
index 0668bb0..7b9a4e5 100644
--- a/heka/init.sls
+++ b/heka/init.sls
@@ -1,5 +1,8 @@
{%- if pillar.heka is defined %}
include:
+{%- if pillar.heka.server is defined %}
+- heka.server
+{%- endif %}
{%- if pillar.heka.log_collector is defined %}
- heka.log_collector
{%- endif %}
diff --git a/heka/server.sls b/heka/server.sls
new file mode 100644
index 0000000..c2de1a0
--- /dev/null
+++ b/heka/server.sls
@@ -0,0 +1,201 @@
+{%- from "heka/map.jinja" import server with context %}
+{%- if server.enabled %}
+
+heka_packages:
+ pkg.latest:
+ - names: {{ server.pkgs }}
+
+purge-heka-conf-dir:
+ file.directory:
+ - name: /etc/heka/conf.d/
+ - clean: True
+ - makedirs: True
+ - require:
+ - pkg: heka_packages
+
+heka_ssl:
+ file.directory:
+ - name: /etc/heka/ssl
+ - user: root
+ - group: heka
+ - mode: 750
+ - require:
+ - pkg: heka_packages
+ - user: heka_user
+
+/etc/heka/conf.d/00-hekad.toml:
+ file.managed:
+ - source: salt://heka/files/00-hekad.toml
+ - template: jinja
+ - mode: 640
+ - group: heka
+ - require:
+ - pkg: heka_packages
+ - file: purge-heka-conf-dir
+ - user: heka_user
+
+{%- if grains.os_family == 'RedHat' %}
+/etc/systemd/system/heka.service:
+ file.managed:
+ - source: salt://heka/files/heka.service
+ - require:
+ - file: /etc/heka/conf.d/00-hekad.toml
+
+/var/cache/hekad:
+ file.directory:
+ - user: heka
+ - require:
+ - user: heka_user
+{%- endif %}
+
+heka_acl_log:
+ cmd.run:
+ - name: "setfacl -R -m g:adm:rx /var/log; setfacl -R -d -m g:adm:rx /var/log"
+ - unless: "getfacl /var/log/|grep default:group:adm"
+
+heka_service:
+ service.running:
+ - enable: true
+ - name: heka
+ - watch:
+ - file: /etc/heka/conf.d/00-hekad.toml
+ - require:
+ - user: heka_user
+
+heka_user:
+ user.present:
+ - name: heka
+ - system: true
+ - shell: /bin/nologin
+ - groups: {{ server.groups }}
+ - require:
+ - pkg: heka_packages
+
+{%- for name,values in server.input.iteritems() %}
+
+/etc/heka/conf.d/15-input-{{ name }}-{{ values['engine'] }}.toml:
+ file.managed:
+ - source: salt://heka/files/input/{{ values['engine'] }}.toml
+ - template: jinja
+ - mode: 640
+ - group: heka
+ - require:
+ - file: /etc/heka/conf.d/00-hekad.toml
+ - watch_in:
+ - service: heka_service
+ - defaults:
+ name: {{ name }}
+ values: {{ values }}
+
+{%- endfor %}
+
+{%- for name,values in server.output.iteritems() %}
+{%- if values.enabled %}
+/etc/heka/conf.d/60-output-{{ name }}-{{ values['engine'] }}.toml:
+ file.managed:
+ - source: salt://heka/files/output/{{ values['engine'] }}.toml
+ - template: jinja
+ - mode: 640
+ - group: heka
+ - require:
+ - file: /etc/heka/conf.d/00-hekad.toml
+ - watch_in:
+ - service: heka_service
+ - defaults:
+ name: {{ name }}
+ values: {{ values }}
+
+{%- endif %}
+{%- endfor %}
+
+
+{%- for name,values in server.filter.iteritems() %}
+
+/etc/heka/conf.d/20-filter-{{ name }}-{{ values['engine'] }}.toml:
+ file.managed:
+ - source: salt://heka/files/filter/{{ values['engine'] }}.toml
+ - template: jinja
+ - mode: 640
+ - group: heka
+ - require:
+ - file: /etc/heka/conf.d/00-hekad.toml
+ - watch_in:
+ - service: heka_service
+ - defaults:
+ name: {{ name }}
+ values: {{ values }}
+
+{%- endfor %}
+
+{%- for name,values in server.splitter.iteritems() %}
+
+/etc/heka/conf.d/30-splitter-{{ name }}-{{ values['engine'] }}.toml:
+ file.managed:
+ - source: salt://heka/files/splitter/{{ values['engine'] }}.toml
+ - template: jinja
+ - mode: 640
+ - group: heka
+ - require:
+ - file: /etc/heka/conf.d/00-hekad.toml
+ - watch_in:
+ - service: heka_service
+ - defaults:
+ name: {{ name }}
+ values: {{ values }}
+
+{%- endfor %}
+
+{%- for name,values in server.encoder.iteritems() %}
+
+/etc/heka/conf.d/40-encoder-{{ name }}-{{ values['engine'] }}.toml:
+ file.managed:
+ - source: salt://heka/files/encoder/{{ values['engine'] }}.toml
+ - template: jinja
+ - mode: 640
+ - group: heka
+ - require:
+ - file: /etc/heka/conf.d/00-hekad.toml
+ - watch_in:
+ - service: heka_service
+ - defaults:
+ name: {{ name }}
+ values: {{ values }}
+
+{%- endfor %}
+
+{%- for name,values in server.decoder.iteritems() %}
+
+/etc/heka/conf.d/10-decoder-{{ name }}-{{ values['engine'] }}.toml:
+ file.managed:
+ - source: salt://heka/files/decoder/{{ values['engine'] }}.toml
+ - template: jinja
+ - mode: 640
+ - group: heka
+ - require:
+ - file: /etc/heka/conf.d/00-hekad.toml
+ - watch_in:
+ - service: heka_service
+ - defaults:
+ name: {{ name }}
+ values: {{ values }}
+
+{%- endfor %}
+
+{%- for service_name, service in pillar.items() %}
+{%- if service.get('_support', {}).get('heka', {}).get('enabled', False) %}
+
+/etc/heka/conf.d/99-{{ service_name }}.toml:
+ file.managed:
+ - source: salt://{{ service_name }}/files/heka.toml
+ - template: jinja
+ - mode: 640
+ - group: heka
+ - require:
+ - file: /etc/heka/conf.d/00-hekad.toml
+ - watch_in:
+ - service: heka_service
+
+{%- endif %}
+{%- endfor %}
+
+{%- endif %}
\ No newline at end of file