diff --git a/handlers/main.yml b/handlers/main.yml index d66d2f0..dd07b9b 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -13,6 +13,18 @@ # See the License for the specific language governing permissions and # limitations under the License. +- name: Restart changed sockets + include_tasks: handlers/socket_restart.yml + listen: systemd socket changed + when: + - 'socket_results is changed' + loop: "{{ systemd_socket.results }}" + loop_control: + loop_var: socket_results + tags: + - systemd-service + + - name: Restart changed services include_tasks: handlers/systemd_restart.yml listen: systemd service changed diff --git a/handlers/socket_restart.yml b/handlers/socket_restart.yml new file mode 100644 index 0000000..b9c20fb --- /dev/null +++ b/handlers/socket_restart.yml @@ -0,0 +1,27 @@ +--- +# Copyright 2023, Cleura AB. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +- name: "Restart socket" + systemd: + name: "{{ socket.socket_name | replace(' ', '_') }}.socket" + state: restarted + when: + - "'socket_name' in socket" + - socket.restart_changed | default(systemd_service_restart_changed) | bool + - "'state' not in socket" + - socket.enabled | default(systemd_service_enabled) | bool + loop: "{{ socket_results.item }}" + loop_control: + loop_var: socket diff --git a/tasks/main.yml b/tasks/main.yml index 21a6a99..9bef157 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -131,6 +131,7 @@ group: "root" loop: "{{ systemd_services | subelements('sockets', skip_missing=True) }}" notify: + - systemd socket changed - systemd service changed register: systemd_socket tags: