Fix logic of defining polling_namespaces

Previous logic did excluded possibility for ceilometer-polling agent
to poll multiple namespaces at the same time. This resulted
in a wrong config for AIO metal scenario.

Change-Id: I2ad3f748d18bf571dc7b82422fbcd8269cbe168e
Closes-Bug: #2018619
This commit is contained in:
Dmitriy Rabotyagov 2023-05-05 20:23:47 +02:00 committed by Dmitriy Rabotyagov
parent a184e4d224
commit bfca55e20d
3 changed files with 16 additions and 5 deletions

View File

@ -0,0 +1,5 @@
---
fixes:
- |
Fixes incorrect definition of ceilometer ``polling_namespaces``, when
host is part of both central and compute groups (ie metal/aio scenario)

View File

@ -30,11 +30,7 @@ meter_dispatchers = database
event_dispatchers = database
{% endif %}
{% if 'ceilometer_agent_central' in group_names %}
polling_namespaces = central
{% elif 'ceilometer_agent_compute' in group_names %}
polling_namespaces = compute
{% endif %}
polling_namespaces = {{ _ceilometer_polling_namespaces | join(',') }}
[oslo_messaging_rabbit]
ssl = {{ ceilometer_oslomsg_rpc_use_ssl }}

View File

@ -22,6 +22,16 @@ ceilometer_osprofiler_event_definitions_user_content: "{{ lookup('file', ceilome
ceilometer_polling_user_content: "{{ lookup('file', ceilometer_polling_default_file_path, errors='ignore') }}"
ceilometer_pipeline_user_content: "{{ lookup('file', ceilometer_pipeline_default_file_path, errors='ignore') }}"
_ceilometer_polling_namespaces: |
{% set _polling_namespaces = [] %}
{% if 'ceilometer_agent_central' in group_names %}
{% set _ = _polling_namespaces.append('central') %}
{% endif %}
{% if 'ceilometer_agent_compute' in group_names %}
{% set _ = _polling_namespaces.append('compute') %}
{% endif %}
{{ _polling_namespaces }}
_ceilometer_is_first_play_host: "{{ (ceilometer_services['ceilometer-agent-notification']['group'] | intersect(group_names) | length > 0) and (inventory_hostname == groups[ceilometer_services['ceilometer-agent-notification']['group'] | intersect(group_names) | first] | intersect(ansible_play_hosts) | first) }}"
_ceilometer_rootwrap_conf_overrides: