From a184e4d22460a4696f16082f3b5063f123714456 Mon Sep 17 00:00:00 2001 From: Dmitriy Rabotyagov Date: Mon, 10 Apr 2023 15:48:42 +0200 Subject: [PATCH] Ensure service is restarted on unit file changes At the moment we don't restart services if systemd unit file is changed. We knowingly prevent systemd_service role handlers to execute by providing `state: started` as otherwise service will be restarted twice. With that now we ensure that role handlers will also listen for systemd unit changes. Change-Id: Ibb1b0159ca8267ce3ab6ffb1752ab10ddb4b8139 --- handlers/main.yml | 2 ++ tasks/main.yml | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/handlers/main.yml b/handlers/main.yml index e7481e1e..8c0f7348 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -30,6 +30,7 @@ listen: - "Restart ceilometer services" - "venv changed" + - "systemd service changed" - name: Start services service: @@ -48,3 +49,4 @@ listen: - "Restart ceilometer services" - "venv changed" + - "systemd service changed" diff --git a/tasks/main.yml b/tasks/main.yml index b34ff754..7446a78b 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -80,7 +80,12 @@ {% set services = [] %} {% for service in ceilometer_services.values() %} {% if service.group | intersect(group_names) %} - {% set _ = service.update({'enabled': 'yes', 'state': 'started'}) %} + {% set _ = service.update( + { + 'enabled': value['enabled'] | default(True), + 'state': value['state'] | default('started') + } + ) %} {% set _ = service.pop('group') %} {% set _ = services.append(service) %} {% endif %}