From b1c4386be1c381e1c1cd4c0c8dcc66ca908e3999 Mon Sep 17 00:00:00 2001 From: Johannes Grassler Date: Fri, 26 Oct 2018 11:49:19 +0200 Subject: [PATCH] monasca-agent: switch to systemd supervision As of stable/rocky upstream got rid of supervisor and recommends systemd supervision for the Monasca agent's component services (collector, forwarder, statsd). This commit adds the required systemd services and a systemd target to tie them together. It also removes the supervisor dependency. Change-Id: I26c89d3d49e0aa68bae54c5ff120e27292fa0b03 --- openstack/monasca-agent/monasca-agent.spec.j2 | 32 ++++++++++++++----- .../openstack-monasca-agent-collector.service | 15 +++++++++ .../openstack-monasca-agent-forwarder.service | 15 +++++++++ .../openstack-monasca-agent-statsd.service | 15 +++++++++ .../openstack-monasca-agent.service | 12 ------- .../openstack-monasca-agent.target | 6 ++++ 6 files changed, 75 insertions(+), 20 deletions(-) create mode 100644 openstack/monasca-agent/openstack-monasca-agent-collector.service create mode 100644 openstack/monasca-agent/openstack-monasca-agent-forwarder.service create mode 100644 openstack/monasca-agent/openstack-monasca-agent-statsd.service delete mode 100644 openstack/monasca-agent/openstack-monasca-agent.service create mode 100644 openstack/monasca-agent/openstack-monasca-agent.target diff --git a/openstack/monasca-agent/monasca-agent.spec.j2 b/openstack/monasca-agent/monasca-agent.spec.j2 index 593a361c3..1ba6fcf3e 100644 --- a/openstack/monasca-agent/monasca-agent.spec.j2 +++ b/openstack/monasca-agent/monasca-agent.spec.j2 @@ -30,9 +30,12 @@ Group: Development/Languages/Python URL: https://wiki.openstack.org/wiki/Monasca Source0: {{ source|basename }} Source1: %{name}-sudoers -Source2: %{name}.service +Source2: %{name}.target Source3: %{name}.tmpfiles Source4: %{name}.polkit +Source5: %{name}-collector.service +Source6: %{name}-forwarder.service +Source7: %{name}-statsd.service BuildRequires: fdupes BuildRequires: openstack-macros BuildRequires: {{ py2pkg('PyYAML') }} @@ -59,7 +62,6 @@ BuildRequires: {{ py2pkg('python-memcached') }} BuildRequires: {{ py2pkg('redis') }} BuildRequires: {{ py2pkg('requests') }} BuildRequires: {{ py2pkg('stevedore') }} -BuildRequires: {{ py2pkg('supervisor') }} BuildRequires: {{ py2pkg('testrepository') }} BuildRequires: {{ py2pkg('tornado') }} BuildRequires: sudo @@ -104,7 +106,6 @@ Requires: {{ py2pkg('python-memcached') }} Requires: {{ py2pkg('redis') }} Requires: {{ py2pkg('requests') }} Requires: {{ py2pkg('stevedore') }} -Requires: {{ py2pkg('supervisor') }} # FIXME(jpena): Remove this conditional once python-toml is available in RDO %if 0%{?rdo} Requires: {{ py2pkg('tornado') }} @@ -146,7 +147,10 @@ install -d -m 750 %{buildroot}%{_localstatedir}/log/%{sname} install -D -m 440 %{SOURCE1} %{buildroot}%{_sysconfdir}/sudoers.d/%{name} # systemd unit file -install -D -m 644 %{SOURCE2} %{buildroot}%{_unitdir}/%{name}.service +install -D -m 644 %{SOURCE2} %{buildroot}%{_unitdir}/%{name}.target +install -D -m 644 %{SOURCE5} %{buildroot}%{_unitdir}/%{name}-collector.service +install -D -m 644 %{SOURCE6} %{buildroot}%{_unitdir}/%{name}-forwarder.service +install -D -m 644 %{SOURCE7} %{buildroot}%{_unitdir}/%{name}-statsd.service %if 0%{?suse_version} mkdir -p %{buildroot}%{_sbindir} ln -sr %{buildroot}%{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name} @@ -166,13 +170,22 @@ install -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/polkit-1/rules.d/49-mona %post %tmpfiles_create %{_tmpfilesdir}/openstack-monasca-agent.conf -%systemd_post %{name}.service +%systemd_post %{name}.target +%systemd_post %{name}-collector.service +%systemd_post %{name}-forwarder.service +%systemd_post %{name}-statsd.service %preun -%systemd_preun %{name}.service +%systemd_preun %{name}.target +%systemd_preun %{name}-collector.service +%systemd_preun %{name}-forwarder.service +%systemd_preun %{name}-statsd.service %postun -%systemd_postun %{name}.service +%systemd_postun %{name}.target +%systemd_postun %{name}-collector.service +%systemd_postun %{name}-forwarder.service +%systemd_postun %{name}-statsd.service %check find . -type f -name *.pyc -delete @@ -191,7 +204,10 @@ python setup.py test %dir %{_prefix}/lib/monasca %{_prefix}/lib/monasca/agent %dir %attr(0750, %{username}, %{groupname}) %{_localstatedir}/log/%{sname} -%{_unitdir}/%{name}.service +%{_unitdir}/%{name}.target +%{_unitdir}/%{name}-collector.service +%{_unitdir}/%{name}-forwarder.service +%{_unitdir}/%{name}-statsd.service %if 0%{?suse_version} %{_sbindir}/rc%{name} %endif diff --git a/openstack/monasca-agent/openstack-monasca-agent-collector.service b/openstack/monasca-agent/openstack-monasca-agent-collector.service new file mode 100644 index 000000000..18e16e391 --- /dev/null +++ b/openstack/monasca-agent/openstack-monasca-agent-collector.service @@ -0,0 +1,15 @@ +[Unit] +Description=Monasca Agent - Collector +PartOf=monasca-agent.target +After=monasca-forwarder.service +Wants=monasca-forwarder.service + +[Service] +Type=simple +User=monasca-agent +Group=monasca +Restart=always +ExecStart=/usr/bin/monasca-collector foreground + +[Install] +WantedBy=multi-user.target diff --git a/openstack/monasca-agent/openstack-monasca-agent-forwarder.service b/openstack/monasca-agent/openstack-monasca-agent-forwarder.service new file mode 100644 index 000000000..2207390ac --- /dev/null +++ b/openstack/monasca-agent/openstack-monasca-agent-forwarder.service @@ -0,0 +1,15 @@ +[Unit] +Description=Monasca Agent - Forwarder +PartOf=monasca-agent.target +After=network-online.target +Wants=network-online.target + +[Service] +Type=simple +User=monasca-agent +Group=monasca +Restart=always +ExecStart=/usr/bin/monasca-forwarder + +[Install] +WantedBy=multi-user.target diff --git a/openstack/monasca-agent/openstack-monasca-agent-statsd.service b/openstack/monasca-agent/openstack-monasca-agent-statsd.service new file mode 100644 index 000000000..9f555587f --- /dev/null +++ b/openstack/monasca-agent/openstack-monasca-agent-statsd.service @@ -0,0 +1,15 @@ +[Unit] +Description=Monasca Agent - Statsd +PartOf=monasca-agent.target +After=monasca-forwarder.service +Wants=monasca-forwarder.service + +[Service] +Type=simple +User=monasca-agent +Group=monasca +Restart=always +ExecStart=/usr/bin/monasca-statsd + +[Install] +WantedBy=multi-user.target diff --git a/openstack/monasca-agent/openstack-monasca-agent.service b/openstack/monasca-agent/openstack-monasca-agent.service deleted file mode 100644 index 3a3e9ef50..000000000 --- a/openstack/monasca-agent/openstack-monasca-agent.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=Monasca Agent - -[Service] -Type=simple -User=monasca-agent -Group=monasca -Restart=on-failure -ExecStart=/usr/bin/supervisord -c /etc/monasca/agent/supervisor.conf -n --pidfile /run/openstack-monasca-agent/monasca-agent-supervisord.pid - -[Install] -WantedBy=multi-user.target diff --git a/openstack/monasca-agent/openstack-monasca-agent.target b/openstack/monasca-agent/openstack-monasca-agent.target new file mode 100644 index 000000000..5a8bc2bfa --- /dev/null +++ b/openstack/monasca-agent/openstack-monasca-agent.target @@ -0,0 +1,6 @@ +[Unit] +Description=Monasca Agent +Wants=openstack-monasca-agent-collector.service openstack-monasca-agent-forwarder.service openstack-monasca-agent-statsd.service + +[Install] +WantedBy=multi-user.target