blob: f2bb9d04b88f184d5c173864ec728811dd582176 [file] [log] [blame]
{%- from "ceilometer/map.jinja" import server with context %}
{%- if server.enabled %}
ceilometer_server_packages:
pkg.installed:
- names: {{ server.pkgs }}
/etc/ceilometer/ceilometer.conf:
file.managed:
- source: salt://ceilometer/files/{{ server.version }}/ceilometer-server.conf.{{ grains.os_family }}
- template: jinja
- require:
- pkg: ceilometer_server_packages
{%- for service_name in server.services %}
{{ service_name }}_default:
file.managed:
- name: /etc/default/{{ service_name }}
- source: salt://ceilometer/files/default
- template: jinja
- require:
- pkg: ceilometer_server_packages
- defaults:
service_name: {{ service_name }}
values: {{ server }}
- watch_in:
- service: ceilometer_server_services
{%- endfor %}
{%- if server.logging.log_appender %}
{%- if server.logging.log_handlers.get('fluentd', {}).get('enabled', False) %}
ceilometer_server_fluentd_logger_package:
pkg.installed:
- name: python-fluent-logger
{%- endif %}
ceilometer_general_logging_conf:
file.managed:
- name: /etc/ceilometer/logging.conf
- source: salt://ceilometer/files/logging.conf
- template: jinja
- user: ceilometer
- group: ceilometer
- require:
- pkg: ceilometer_server_packages
{%- if server.logging.log_handlers.get('fluentd', {}).get('enabled', False) %}
- pkg: ceilometer_server_fluentd_logger_package
{%- endif %}
- defaults:
service_name: ceilometer
values: {{ server }}
- watch_in:
- service: ceilometer_server_services
{%- if server.version not in ['liberty', 'juno', 'kilo', 'mitaka'] %}
- service: ceilometer_apache_restart
{%- endif %}
/var/log/ceilometer/ceilometer.log:
file.managed:
- user: ceilometer
- group: ceilometer
- watch_in:
- service: ceilometer_server_services
{%- if server.version not in ['liberty', 'juno', 'kilo', 'mitaka'] %}
- service: ceilometer_apache_restart
{%- endif %}
{%- for service_name in server.get('services', []) %}
{{ service_name }}_logging_conf:
file.managed:
- name: /etc/ceilometer_server/logging/logging-{{ service_name }}.conf
- source: salt://ceilometer/files/logging.conf
- template: jinja
- require:
- pkg: ceilometer_server_packages
{%- if server.logging.log_handlers.get('fluentd', {}).get('enabled', False) %}
- pkg: ceilometer_server_fluentd_logger_package
{%- endif %}
- makedirs: True
- defaults:
service_name: {{ service_name }}
values: {{ server }}
- watch_in:
- service: ceilometer_server_services
{%- endfor %}
{%- endif %}
{%- for name, rule in server.get('policy', {}).iteritems() %}
{%- if rule != None %}
rule_{{ name }}_present:
keystone_policy.rule_present:
- path: /etc/ceilometer/policy.json
- name: {{ name }}
- rule: {{ rule }}
- require:
- pkg: ceilometer_server_packages
{%- else %}
rule_{{ name }}_absent:
keystone_policy.rule_absent:
- path: /etc/ceilometer/policy.json
- name: {{ name }}
- require:
- pkg: ceilometer_server_packages
{%- endif %}
{%- endfor %}
{%- for publisher_name, publisher in server.get('publisher', {}).iteritems() %}
{%- if publisher_name != "default" %}
ceilometer_publisher_{{ publisher_name }}_pkg:
pkg.latest:
- name: ceilometer-publisher-{{ publisher_name }}
{%- endif %}
{%- endfor %}
/etc/ceilometer/pipeline.yaml:
file.managed:
- source: salt://ceilometer/files/{{ server.version }}/pipeline.yaml
- template: jinja
- require:
- pkg: ceilometer_server_packages
{%- if server.version != "kilo" %}
/etc/ceilometer/event_pipeline.yaml:
file.managed:
- source: salt://ceilometer/files/{{ server.version }}/event_pipeline.yaml
- template: jinja
- require:
- pkg: ceilometer_server_packages
- watch_in:
- service: ceilometer_server_services
/etc/ceilometer/event_definitions.yaml:
file.managed:
- source: salt://ceilometer/files/{{ server.version }}/event_definitions.yaml
- template: jinja
- require:
- pkg: ceilometer_server_packages
- watch_in:
- service: ceilometer_server_services
/etc/ceilometer/gabbi_pipeline.yaml:
file.managed:
- source: salt://ceilometer/files/{{ server.version }}/gabbi_pipeline.yaml
- template: jinja
- require:
- pkg: ceilometer_server_packages
- watch_in:
- service: ceilometer_server_services
{%- endif %}
# for Newton and newer
{%- if server.version not in ['liberty', 'juno', 'kilo', 'mitaka'] %}
ceilometer_api_apache_config:
file.managed:
{%- if server.version == 'newton' %}
- name: /etc/apache2/sites-available/ceilometer.conf
{%- else %}
- name: /etc/apache2/sites-available/ceilometer-api.conf
{%- endif %}
- source: salt://ceilometer/files/{{ server.version }}/ceilometer.apache2.conf.Debian
- template: jinja
- require:
- pkg: ceilometer_server_packages
ceilometer_api_config:
file.symlink:
{%- if server.version == 'newton' %}
- name: /etc/apache2/sites-enabled/ceilometer.conf
- target: /etc/apache2/sites-available/ceilometer.conf
{%- else %}
- name: /etc/apache2/sites-enabled/ceilometer-api.conf
- target: /etc/apache2/sites-available/ceilometer-api.conf
{%- endif %}
ceilometer_apache_restart:
service.running:
- enable: true
- name: apache2
- watch:
- file: /etc/ceilometer/ceilometer.conf
- file: ceilometer_api_apache_config
- file: /etc/ceilometer/event_definitions.yaml
- file: /etc/ceilometer/event_pipeline.yaml
- file: /etc/ceilometer/gabbi_pipeline.yaml
- file: /etc/ceilometer/pipeline.yaml
{%- endif %}
ceilometer_server_services:
service.running:
- names: {{ server.services }}
- enable: true
- watch:
- file: /etc/ceilometer/ceilometer.conf
{%- endif %}