Alon Bar-Lev has uploaded a new change for review. Change subject: packaging: services: systemd: convert deamons into notify type ......................................................................
packaging: services: systemd: convert deamons into notify type notify supports validation pre-start. Change-Id: I598a9d57c6dae6eb9d26c8ccca7ce22cdb1170a3 Signed-off-by: Alon Bar-Lev <alo...@redhat.com> --- M packaging/pythonlib/ovirt_engine/service.py M packaging/services/ovirt-engine-notifier/ovirt-engine-notifier.systemd.in M packaging/services/ovirt-engine/ovirt-engine.systemd.in M packaging/services/ovirt-websocket-proxy/ovirt-websocket-proxy.systemd.in 4 files changed, 36 insertions(+), 6 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/32/22632/1 diff --git a/packaging/pythonlib/ovirt_engine/service.py b/packaging/pythonlib/ovirt_engine/service.py index a82e04c..699256f 100644 --- a/packaging/pythonlib/ovirt_engine/service.py +++ b/packaging/pythonlib/ovirt_engine/service.py @@ -16,10 +16,12 @@ import logging import logging.handlers +import contextlib import optparse import os import shutil import signal +import socket import subprocess import sys import time @@ -362,6 +364,25 @@ raise + def _sd_notify_ready(self): + """ + NOTICE: systemd-notify is not working! + SEE: rhbz#820448 + """ + with contextlib.closing( + socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM) + ) as s: + e = os.getenv('NOTIFY_SOCKET') + if e.startswith('@'): + # abstract namespace socket + e = '\0%s' % e[1:] + s.connect(e) + s.sendall('READY=1') + + def _daemonReady(self): + if self._options.systemd == 'notify': + self._sd_notify_ready() + def _daemon(self): self.logger.debug('daemon entry pid=%s', os.getpid()) @@ -370,6 +391,8 @@ os.umask(0o022) self.daemonSetup() + + self._daemonReady() stdout, stderr = (sys.stdout, sys.stderr) if self._options.redirectOutput: @@ -440,6 +463,13 @@ help=_('Go into the background'), ) parser.add_option( + '--systemd', + dest='systemd', + default='simple', + choices=['simple', 'notify'], + help=_('Systemd type simple|notify'), + ) + parser.add_option( '--redirect-output', dest='redirectOutput', action='store_true', diff --git a/packaging/services/ovirt-engine-notifier/ovirt-engine-notifier.systemd.in b/packaging/services/ovirt-engine-notifier/ovirt-engine-notifier.systemd.in index 9d53b2f..9ba5ebb 100644 --- a/packaging/services/ovirt-engine-notifier/ovirt-engine-notifier.systemd.in +++ b/packaging/services/ovirt-engine-notifier/ovirt-engine-notifier.systemd.in @@ -3,10 +3,10 @@ After=network.service postgresql.service [Service] -Type=simple +Type=notify User=@ENGINE_USER@ Group=@ENGINE_GROUP@ -ExecStart=@ENGINE_USR@/services/ovirt-engine-notifier/ovirt-engine-notifier.py --redirect-output $EXTRA_ARGS start +ExecStart=@ENGINE_USR@/services/ovirt-engine-notifier/ovirt-engine-notifier.py --redirect-output --systemd=notify $EXTRA_ARGS start EnvironmentFile=-/etc/sysconfig/ovirt-engine-notifier [Install] diff --git a/packaging/services/ovirt-engine/ovirt-engine.systemd.in b/packaging/services/ovirt-engine/ovirt-engine.systemd.in index 978bc91..92e2b21 100644 --- a/packaging/services/ovirt-engine/ovirt-engine.systemd.in +++ b/packaging/services/ovirt-engine/ovirt-engine.systemd.in @@ -3,11 +3,11 @@ After=network.service postgresql.service [Service] -Type=simple +Type=notify User=@ENGINE_USER@ Group=@ENGINE_GROUP@ LimitNOFILE=65535 -ExecStart=@ENGINE_USR@/services/ovirt-engine/ovirt-engine.py --redirect-output $EXTRA_ARGS start +ExecStart=@ENGINE_USR@/services/ovirt-engine/ovirt-engine.py --redirect-output --systemd=notify $EXTRA_ARGS start EnvironmentFile=-/etc/sysconfig/ovirt-engine [Install] diff --git a/packaging/services/ovirt-websocket-proxy/ovirt-websocket-proxy.systemd.in b/packaging/services/ovirt-websocket-proxy/ovirt-websocket-proxy.systemd.in index 55093f7..7af0108 100644 --- a/packaging/services/ovirt-websocket-proxy/ovirt-websocket-proxy.systemd.in +++ b/packaging/services/ovirt-websocket-proxy/ovirt-websocket-proxy.systemd.in @@ -2,12 +2,12 @@ Description=oVirt Engine websockets proxy [Service] -Type=simple +Type=notify User=@ENGINE_USER@ Group=@ENGINE_GROUP@ LimitNOFILE=65535 LimitNPROC=2048 -ExecStart=@ENGINE_USR@/services/ovirt-websocket-proxy/ovirt-websocket-proxy.py $EXTRA_ARGS start +ExecStart=@ENGINE_USR@/services/ovirt-websocket-proxy/ovirt-websocket-proxy.py --systemd-notify $EXTRA_ARGS start EnvironmentFile=-/etc/sysconfig/ovirt-websocket-proxy [Install] -- To view, visit http://gerrit.ovirt.org/22632 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I598a9d57c6dae6eb9d26c8ccca7ce22cdb1170a3 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Alon Bar-Lev <alo...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches