From da6e2f82d4003ef52300dafb2101f8cee1c8e772 Mon Sep 17 00:00:00 2001 From: clime Date: Feb 25 2017 17:01:32 +0000 Subject: [backend] make systemd services out of ActionDispatcher and BuildDispatcher --- diff --git a/backend/backend/daemons/backend.py b/backend/backend/daemons/backend.py index f35875f..54ae6a8 100644 --- a/backend/backend/daemons/backend.py +++ b/backend/backend/daemons/backend.py @@ -26,7 +26,7 @@ from .action_dispatcher import ActionDispatcher class CoprBackend(object): """ - Core process - starts/stops dispatchers for actions and builds + COPR backend head process. :param config_file: path to the backend configuration file :param ext_opts: additional options for backend @@ -66,12 +66,6 @@ class CoprBackend(object): self.log.exception(err) raise CoprBackendError(err) - build_dispatcher = BuildDispatcher(self.opts) - action_dispatcher = ActionDispatcher(self.opts) - - build_dispatcher.start() - action_dispatcher.start() - def run_backend(opts): """ diff --git a/backend/copr-backend.spec b/backend/copr-backend.spec index 54e393e..2cb3a89 100644 --- a/backend/copr-backend.spec +++ b/backend/copr-backend.spec @@ -203,19 +203,13 @@ useradd -r -g copr -G lighttpd -s /bin/bash -c "COPR user" copr %post %systemd_post copr-backend.service -%systemd_post copr-backend-vmm.service -%systemd_post copr-backend-log.service %systemd_post logstash.service %preun %systemd_preun copr-backend.service -%systemd_preun copr-backend-vmm.service -%systemd_preun copr-backend-log.service %postun %systemd_postun_with_restart copr-backend.service -%systemd_postun_with_restart copr-backend-vmm.service -%systemd_postun_with_restart copr-backend-log.service %files %license LICENSE diff --git a/backend/run/copr_run_action_dispatcher.py b/backend/run/copr_run_action_dispatcher.py new file mode 100755 index 0000000..252facf --- /dev/null +++ b/backend/run/copr_run_action_dispatcher.py @@ -0,0 +1,12 @@ +#!/usr/bin/python2 +# coding: utf-8 + +from backend.daemons.action_dispatcher import ActionDispatcher +from backend.helpers import get_backend_opts + +def main(): + action_dispatcher = ActionDispatcher(get_backend_opts()) + action_dispatcher.run() + +if __name__ == "__main__": + main() diff --git a/backend/run/copr_run_build_dispatcher.py b/backend/run/copr_run_build_dispatcher.py new file mode 100755 index 0000000..0aab09e --- /dev/null +++ b/backend/run/copr_run_build_dispatcher.py @@ -0,0 +1,12 @@ +#!/usr/bin/python2 +# coding: utf-8 + +from backend.daemons.build_dispatcher import BuildDispatcher +from backend.helpers import get_backend_opts + +def main(): + build_dispatcher = BuildDispatcher(get_backend_opts()) + build_dispatcher.run() + +if __name__ == "__main__": + main() diff --git a/backend/units/copr-backend-action.service b/backend/units/copr-backend-action.service new file mode 100644 index 0000000..49f659d --- /dev/null +++ b/backend/units/copr-backend-action.service @@ -0,0 +1,15 @@ +[Unit] +Description=Copr Backend service, Action Dispatcher component +After=syslog.target network.target auditd.service +Before=copr-backend.service +PartOf=copr-backend.service + +[Service] +Type=simple +Environment="PYTHONPATH=/usr/share/copr/" +User=copr +Group=copr +ExecStart=/usr/bin/copr_run_action_dispatcher.py + +[Install] +WantedBy=multi-user.target diff --git a/backend/units/copr-backend-build.service b/backend/units/copr-backend-build.service new file mode 100644 index 0000000..9586784 --- /dev/null +++ b/backend/units/copr-backend-build.service @@ -0,0 +1,15 @@ +[Unit] +Description=Copr Backend service, Build Dispatcher component +After=syslog.target network.target auditd.service +Before=copr-backend.service +PartOf=copr-backend.service + +[Service] +Type=simple +Environment="PYTHONPATH=/usr/share/copr/" +User=copr +Group=copr +ExecStart=/usr/bin/copr_run_build_dispatcher.py + +[Install] +WantedBy=multi-user.target diff --git a/backend/units/copr-backend-log.service b/backend/units/copr-backend-log.service index bba2ab1..e62a229 100644 --- a/backend/units/copr-backend-log.service +++ b/backend/units/copr-backend-log.service @@ -2,6 +2,7 @@ Description=Copr Backend service, Log Handler component After=syslog.target network.target auditd.service Before=copr-backend.service copr-backend-vmm.service +PartOf=copr-backend.service [Service] Type=simple diff --git a/backend/units/copr-backend-vmm.service b/backend/units/copr-backend-vmm.service index 33b4aed..e5877a2 100644 --- a/backend/units/copr-backend-vmm.service +++ b/backend/units/copr-backend-vmm.service @@ -2,6 +2,7 @@ Description=Copr Backend service, Virtual Machine Management component After=syslog.target network.target auditd.service Before=copr-backend.service +PartOf=copr-backend.service [Service] Type=simple diff --git a/backend/units/copr-backend.service b/backend/units/copr-backend.service index 0f4753e..123a913 100644 --- a/backend/units/copr-backend.service +++ b/backend/units/copr-backend.service @@ -1,10 +1,11 @@ [Unit] -Description=Copr Backend service, Workers controller +Description=Copr Backend service After=syslog.target network.target auditd.service -Requires=copr-backend-vmm.service copr-backend-log.service +Requires=copr-backend-vmm.service copr-backend-log.service copr-backend-build.service copr-backend-action.service [Service] -Type=simple +Type=oneshot +RemainAfterExit=True PIDFile=/var/run/copr-backend/copr-be.pid Environment="PYTHONPATH=/usr/share/copr/" User=copr