From 17fc5d6465086f98f2ede920ac2923c46b66b415 Mon Sep 17 00:00:00 2001 From: Dmitriy Rabotyagov Date: Thu, 13 Jul 2023 17:01:03 +0200 Subject: [PATCH] Fix linters and metadata With update of ansible-lint to version >=6.0.0 a lot of new linters were added, that enabled by default. In order to comply with linter rules we're applying changes to the role. With that we also update metdata to reflect current state. Depends-On: https://review.opendev.org/c/openstack/ansible-role-systemd_service/+/888223 Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/888517 Change-Id: I32efef68c8ade24fb164f2cfcecd8e7147bf5f0e --- defaults/main.yml | 19 ++- meta/main.yml | 12 +- tasks/ceilometer_db_setup.yml | 2 +- tasks/ceilometer_install.yml | 8 +- tasks/ceilometer_post_install.yml | 2 +- tasks/ceilometer_pre_install.yml | 4 +- tasks/main.yml | 26 ++-- vars/distro_install.yml | 2 +- vars/main.yml | 191 ++++++++++++++++-------------- vars/source_install.yml | 2 +- 10 files changed, 149 insertions(+), 119 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index 3dc04381..22675dda 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -20,7 +20,11 @@ debug: False # for the service setup. The host must already have # clouds.yaml properly configured. ceilometer_service_setup_host: "{{ openstack_service_setup_host | default('localhost') }}" -ceilometer_service_setup_host_python_interpreter: "{{ openstack_service_setup_host_python_interpreter | default((ceilometer_service_setup_host == 'localhost') | ternary(ansible_playbook_python, ansible_facts['python']['executable'])) }}" +ceilometer_service_setup_host_python_interpreter: >- + {{ + openstack_service_setup_host_python_interpreter | default( + (ceilometer_service_setup_host == 'localhost') | ternary(ansible_playbook_python, ansible_facts['python']['executable'])) + }} # Set the package install state for distribution packages # Options are 'present' and 'latest' @@ -35,7 +39,8 @@ ceilometer_git_repo: https://opendev.org/openstack/ceilometer ceilometer_git_install_branch: master ## The packages to build from source -ceilometer_upper_constraints_url: "{{ requirements_git_url | default('https://releases.openstack.org/constraints/upper/' ~ requirements_git_install_branch | default('master')) }}" +ceilometer_upper_constraints_url: >- + {{ requirements_git_url | default('https://releases.openstack.org/constraints/upper/' ~ requirements_git_install_branch | default('master')) }} ceilometer_git_constraints: - "--constraint {{ ceilometer_upper_constraints_url }}" @@ -67,7 +72,8 @@ ceilometer_oslomsg_rpc_ssl_ca_file: "{{ oslomsg_rpc_ssl_ca_file | default('') }} # Notify ceilometer_oslomsg_notify_host_group: "{{ oslomsg_notify_host_group | default('rabbitmq_all') }}" -ceilometer_oslomsg_notify_setup_host: "{{ (ceilometer_oslomsg_notify_host_group in groups) | ternary(groups[ceilometer_oslomsg_notify_host_group][0], 'localhost') }}" +ceilometer_oslomsg_notify_setup_host: >- + {{ (ceilometer_oslomsg_notify_host_group in groups) | ternary(groups[ceilometer_oslomsg_notify_host_group][0], 'localhost') }} ceilometer_oslomsg_notify_transport: "{{ oslomsg_notify_transport | default('rabbit') }}" ceilometer_oslomsg_notify_port: "{{ oslomsg_notify_port | default('5672') }}" ceilometer_oslomsg_notify_use_ssl: "{{ oslomsg_notify_use_ssl | default(False) }}" @@ -201,7 +207,7 @@ trove_oslomsg_notify_ssl_ca_file: "{{ oslomsg_rpc_ssl_ca_file | default('') }}" # TODO(ansmith): Change structure when more backends will be supported ceilometer_oslomsg_amqp1_enabled: "{{ ceilometer_oslomsg_rpc_transport == 'amqp' }}" -#Ceilometer services info +# Ceilometer services info ceilometer_role_name: admin ## Service Type and Data @@ -217,7 +223,8 @@ ceilometer_service_in_ldap: "{{ service_ldap_backend_enabled | default(False) }} ## Ceilometer config # Cap the maximum number of threads / workers when a user value is unspecified ceilometer_notification_workers_max: 16 -ceilometer_notification_workers: "{{ [[ansible_facts['processor_vcpus']|default(2) // 2, 1] | max, ceilometer_notification_workers_max] | min }}" +ceilometer_notification_workers: >- + {{ [[ansible_facts['processor_vcpus'] | default(2) // 2, 1] | max, ceilometer_notification_workers_max] | min }} # Enable/Disable Ceilometer per service cinder_ceilometer_enabled: "{{ (groups['cinder_all'] is defined) and (groups['cinder_all'] | length > 0) }}" @@ -294,7 +301,7 @@ ceilometer_required_secrets: - ceilometer_oslomsg_notify_password - ceilometer_service_password -#: Tunable file-based overrides +## Tunable file-based overrides # The contents of these files, if they exist, are read from the # specified path on the deployment host, interpreted by the # template engine and copied to the target host. If they do diff --git a/meta/main.yml b/meta/main.yml index e8a6af28..132a0ae4 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -18,19 +18,21 @@ galaxy_info: description: Installation and setup of ceilometer company: Rackspace license: Apache2 - min_ansible_version: 2.2 + role_name: os_ceilometer + namespace: openstack + min_ansible_version: "2.10" platforms: - name: Debian versions: - - buster + - bullseye - name: Ubuntu versions: - - bionic - focal + - jammy - name: EL versions: - - 8 - categories: + - "9" + galaxy_tags: - cloud - python - ceilometer diff --git a/tasks/ceilometer_db_setup.yml b/tasks/ceilometer_db_setup.yml index 96aa71cb..db805b1b 100644 --- a/tasks/ceilometer_db_setup.yml +++ b/tasks/ceilometer_db_setup.yml @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -- name: check for gnocchi resource file +- name: Check for gnocchi resource file stat: path: "{{ ceilometer_lib_dir }}/ceilometer/publisher/data/gnocchi_resources.yaml" register: gnocchi_resource_file diff --git a/tasks/ceilometer_install.yml b/tasks/ceilometer_install.yml index 3376057b..935bf4ce 100644 --- a/tasks/ceilometer_install.yml +++ b/tasks/ceilometer_install.yml @@ -19,6 +19,7 @@ section: "ceilometer" option: "install_method" value: "{{ ceilometer_install_method }}" + mode: "0644" - name: Refresh local facts to ensure the ceilometer section is present setup: @@ -57,7 +58,12 @@ venv_install_destination_path: "{{ ceilometer_bin | dirname }}" venv_install_distro_package_list: "{{ ceilometer_distro_packages }}" venv_pip_install_args: "{{ ceilometer_pip_install_args }}" - venv_pip_packages: "{{ (ceilometer_oslomsg_amqp1_enabled | bool) | ternary(ceilometer_pip_packages + ceilometer_optional_oslomsg_amqp1_pip_packages + ceilometer_extra_pip_packages | default([]), ceilometer_pip_packages + ceilometer_extra_pip_packages | default([])) }}" + venv_pip_packages: >- + {{ + (ceilometer_oslomsg_amqp1_enabled | bool) | ternary( + ceilometer_pip_packages + ceilometer_optional_oslomsg_amqp1_pip_packages + ceilometer_extra_pip_packages | default([]), + ceilometer_pip_packages + ceilometer_extra_pip_packages | default([])) + }} venv_packages_to_symlink: "{{ ceilometer_packages_to_symlink }}" venv_facts_when_changed: - section: "ceilometer" diff --git a/tasks/ceilometer_post_install.yml b/tasks/ceilometer_post_install.yml index eda34976..f293c096 100644 --- a/tasks/ceilometer_post_install.yml +++ b/tasks/ceilometer_post_install.yml @@ -25,7 +25,7 @@ - name: Copy ceilometer configuration files openstack.config_template.config_template: content: "{{ item.content | default(omit) }}" - src: "{{ item.src | default(omit) }}" + src: "{{ item.src | default(omit) }}" dest: "{{ item.dest }}" owner: "{{ item.owner | default(ceilometer_system_user_name) }}" group: "{{ item.group | default(ceilometer_system_group_name) }}" diff --git a/tasks/ceilometer_pre_install.yml b/tasks/ceilometer_pre_install.yml index 6142f2c7..efbeef15 100644 --- a/tasks/ceilometer_pre_install.yml +++ b/tasks/ceilometer_pre_install.yml @@ -68,8 +68,8 @@ src: "{{ item.src | default(omit) }}" dest: "{{ item.dest | default(omit) }}" state: "{{ item.state | default('directory') }}" - owner: "{{ item.owner|default(ceilometer_system_user_name) }}" - group: "{{ item.group|default(ceilometer_system_group_name) }}" + owner: "{{ item.owner | default(ceilometer_system_user_name) }}" + group: "{{ item.group | default(ceilometer_system_group_name) }}" mode: "{{ item.mode | default(omit) }}" force: "{{ item.force | default(omit) }}" when: diff --git a/tasks/main.yml b/tasks/main.yml index 7446a78b..a6f0a922 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -51,15 +51,18 @@ tags: - always -- import_tasks: ceilometer_pre_install.yml +- name: Importing ceilometer_pre_install tasks + import_tasks: ceilometer_pre_install.yml tags: - ceilometer-install -- import_tasks: ceilometer_install.yml +- name: Importing ceilometer_install tasks + import_tasks: ceilometer_install.yml tags: - ceilometer-install -- import_tasks: ceilometer_post_install.yml +- name: Importing ceilometer_post_install tasks + import_tasks: ceilometer_post_install.yml tags: - ceilometer-config @@ -72,10 +75,10 @@ systemd_tempd_prefix: openstack systemd_slice_name: ceilometer systemd_lock_path: /var/lock/ceilometer - systemd_CPUAccounting: true - systemd_BlockIOAccounting: true - systemd_MemoryAccounting: true - systemd_TasksAccounting: true + systemd_service_cpu_accounting: true + systemd_service_block_io_accounting: true + systemd_service_memory_accounting: true + systemd_service_tasks_accounting: true systemd_services: |- {% set services = [] %} {% for service in ceilometer_services.values() %} @@ -95,7 +98,8 @@ - ceilometer-config - systemd-service -- include_role: +- name: Including osa.service_setup role + include_role: name: openstack.osa.service_setup apply: tags: @@ -117,7 +121,8 @@ tags: - always -- include_role: +- name: Including osa.mq_setup role + include_role: name: openstack.osa.mq_setup apply: tags: @@ -139,7 +144,8 @@ tags: - always -- import_tasks: ceilometer_db_setup.yml +- name: Importing ceilometer_db_setup tasks + import_tasks: ceilometer_db_setup.yml when: - _ceilometer_is_first_play_host tags: diff --git a/vars/distro_install.yml b/vars/distro_install.yml index af1359be..af225c7d 100644 --- a/vars/distro_install.yml +++ b/vars/distro_install.yml @@ -14,7 +14,7 @@ # limitations under the License. ceilometer_package_list: |- - {% set packages = (ceilometer_distro_packages + ceilometer_service_distro_packages) %} + {% set packages = ceilometer_distro_packages + ceilometer_service_distro_packages %} {% if ceilometer_oslomsg_amqp1_enabled | bool %} {% set _ = packages.extend(ceilometer_oslomsg_amqp1_distro_packages) %} {% endif %} diff --git a/vars/main.yml b/vars/main.yml index cd3f1efe..aed62b2c 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -32,7 +32,12 @@ _ceilometer_polling_namespaces: | {% 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_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: DEFAULT: @@ -41,96 +46,96 @@ _ceilometer_rootwrap_conf_overrides: _ceilometer_pipeline_yaml_overrides: sources: - - name: meter_source - interval: "{{ ceilometer_meter_sample_interval }}" - meters: - - "*" - sinks: - - meter_sink - - name: cpu_source - interval: "{{ ceilometer_cpu_source_sample_interval }}" - meters: - - "cpu" - sinks: - - cpu_sink - - cpu_delta_sink - - name: disk_source - interval: "{{ ceilometer_disk_source_sample_interval }}" - meters: - - "disk.read.bytes" - - "disk.read.requests" - - "disk.write.bytes" - - "disk.write.requests" - - "disk.device.read.bytes" - - "disk.device.read.requests" - - "disk.device.write.bytes" - - "disk.device.write.requests" - sinks: - - disk_sink - - name: network_source - interval: "{{ ceilometer_network_source_sample_interval }}" - meters: - - "network.incoming.bytes" - - "network.incoming.packets" - - "network.outgoing.bytes" - - "network.outgoing.packets" - sinks: - - network_sink + - name: meter_source + interval: "{{ ceilometer_meter_sample_interval }}" + meters: + - "*" + sinks: + - meter_sink + - name: cpu_source + interval: "{{ ceilometer_cpu_source_sample_interval }}" + meters: + - "cpu" + sinks: + - cpu_sink + - cpu_delta_sink + - name: disk_source + interval: "{{ ceilometer_disk_source_sample_interval }}" + meters: + - "disk.read.bytes" + - "disk.read.requests" + - "disk.write.bytes" + - "disk.write.requests" + - "disk.device.read.bytes" + - "disk.device.read.requests" + - "disk.device.write.bytes" + - "disk.device.write.requests" + sinks: + - disk_sink + - name: network_source + interval: "{{ ceilometer_network_source_sample_interval }}" + meters: + - "network.incoming.bytes" + - "network.incoming.packets" + - "network.outgoing.bytes" + - "network.outgoing.packets" + sinks: + - network_sink sinks: - - name: meter_sink - transformers: - publishers: - - gnocchi:// - - name: cpu_sink - transformers: - - name: "rate_of_change" - parameters: - target: - name: "cpu_util" - unit: "%" - type: "gauge" - scale: "100.0 / (10**9 * (resource_metadata.cpu_number or 1))" - publishers: - - gnocchi:// - - name: cpu_delta_sink - transformers: - - name: "delta" - parameters: - target: - name: "cpu.delta" - growth_only: True - publishers: - - gnocchi:// - - name: disk_sink - transformers: - - name: "rate_of_change" - parameters: - source: - map_from: - name: "(disk\\.device|disk)\\.(read|write)\\.(bytes|requests)" - unit: "(B|request)" - target: - map_to: - name: "\\1.\\2.\\3.rate" - unit: "\\1/s" - type: "gauge" - publishers: - - gnocchi:// - - name: network_sink - transformers: - - name: "rate_of_change" - parameters: - source: - map_from: - name: "network\\.(incoming|outgoing)\\.(bytes|packets)" - unit: "(B|packet)" - target: - map_to: - name: "network.\\1.\\2.rate" - unit: "\\1/s" - type: "gauge" - publishers: - - gnocchi:// + - name: meter_sink + transformers: + publishers: + - gnocchi:// + - name: cpu_sink + transformers: + - name: "rate_of_change" + parameters: + target: + name: "cpu_util" + unit: "%" + type: "gauge" + scale: "100.0 / (10**9 * (resource_metadata.cpu_number or 1))" + publishers: + - gnocchi:// + - name: cpu_delta_sink + transformers: + - name: "delta" + parameters: + target: + name: "cpu.delta" + growth_only: True + publishers: + - gnocchi:// + - name: disk_sink + transformers: + - name: "rate_of_change" + parameters: + source: + map_from: + name: "(disk\\.device|disk)\\.(read|write)\\.(bytes|requests)" + unit: "(B|request)" + target: + map_to: + name: "\\1.\\2.\\3.rate" + unit: "\\1/s" + type: "gauge" + publishers: + - gnocchi:// + - name: network_sink + transformers: + - name: "rate_of_change" + parameters: + source: + map_from: + name: "network\\.(incoming|outgoing)\\.(bytes|packets)" + unit: "(B|packet)" + target: + map_to: + name: "network.\\1.\\2.rate" + unit: "\\1/s" + type: "gauge" + publishers: + - gnocchi:// ceilometer_core_files: - tmp_f: "/tmp/rootwrap.conf" @@ -142,7 +147,11 @@ ceilometer_core_files: mode: "0640" - tmp_f: "{{ (ceilometer_pipeline_user_content | length > 0) | ternary(false, '/tmp/pipeline.yaml') }}" source_f: "{{ ceilometer_lib_dir }}/ceilometer/pipeline/data/pipeline.yaml" - config_overrides: "{{ (ceilometer_pipeline_user_content | length > 0) | ternary(_ceilometer_pipeline_yaml_overrides | combine(ceilometer_pipeline_yaml_overrides, recursive=True), ceilometer_pipeline_yaml_overrides) }}" + config_overrides: >- + {{ + (ceilometer_pipeline_user_content | length > 0) | ternary( + _ceilometer_pipeline_yaml_overrides | combine(ceilometer_pipeline_yaml_overrides, recursive=True), ceilometer_pipeline_yaml_overrides) + }} config_type: "yaml" list_extend: false content: "{{ ceilometer_pipeline_user_content }}" diff --git a/vars/source_install.yml b/vars/source_install.yml index a1766e0a..1e658720 100644 --- a/vars/source_install.yml +++ b/vars/source_install.yml @@ -14,7 +14,7 @@ # limitations under the License. ceilometer_package_list: |- - {% set packages = (ceilometer_distro_packages) %} + {% set packages = ceilometer_distro_packages %} {% if ceilometer_oslomsg_amqp1_enabled | bool %} {% set _ = packages.extend(ceilometer_oslomsg_amqp1_distro_packages) %} {% endif %}