[NEW PATCH] BZ#694026 use libvirt's upstart service (via gerrit-bot)
Dan Kenigsberg
danken at redhat.com
Mon Jul 25 08:29:12 UTC 2011
New patch submitted by Dan Kenigsberg (danken at redhat.com)
You can review this change at: http://gerrit.usersys.redhat.com/675
commit 9c897dedb4184e671de58b0f9683c2717ec986c9
Author: Dan Kenigsberg <danken at redhat.com>
Date: Sun Jul 24 10:04:17 2011 +0300
BZ#694026 use libvirt's upstart service
Unlike the default System V init script, the upstart service would try
to restart libvirtd daemon in case the latter crashes.
v8
- use initctl restart properly
- shutdown conflicting services (libvirtd sysv included) before
configuration
v9
- do not fail `initctl restart` if libvirtd is not already running
v10
- make rpm removal quite
Change-Id: I0ea7b64a710b6e2c48fb96da82ebea64fd0482a4
diff --git a/vdsm.spec.in b/vdsm.spec.in
index f805602..f4da4a5 100644
--- a/vdsm.spec.in
+++ b/vdsm.spec.in
@@ -180,6 +180,15 @@ _EOF
if selinuxenabled; then
setsebool virt_use_nfs off
fi
+
+
+ if /sbin/initctl status libvirtd >/dev/null 2>/dev/null ; then
+ /sbin/initctl stop libvirtd >/dev/null 2>/dev/null
+ rm -f /etc/init/libvirtd.conf
+
+ /sbin/chkconfig libvirtd on
+ /sbin/service libvirtd start >/dev/null
+ fi
fi
%postun
diff --git a/vdsm/vdsmd b/vdsm/vdsmd
index fabb11f..0591cb2 100755
--- a/vdsm/vdsmd
+++ b/vdsm/vdsmd
@@ -30,8 +30,8 @@ RESPAWNPIDFILE=@P_VDSM_RUN@/respawn.pid
CORE_DUMP_PATH=/var/log/core/core.%p.%t.dump
DOM_METADATA_BACKUP_DIR=/var/log/vdsm/backup
CORE_PATTERN=/proc/sys/kernel/core_pattern
-NEEDED_SERVICES="iscsid multipathd libvirtd"
-CONFLICTING_SERVICES="libvirt-guests"
+NEEDED_SERVICES="iscsid multipathd"
+CONFLICTING_SERVICES="libvirt-guests libvirtd"
# TODO: Remove cpu cgroup disabling when BZ#623712 is resolved (kernel on
# massively multicore platforms failing to scale with cgroups turned on)
CONFLICTING_SERVICES="cgconfig $CONFLICTING_SERVICES"
@@ -328,7 +328,7 @@ virt_use_nfs=1
_EOF
/usr/sbin/setsebool virt_use_nfs on
- service libvirtd condrestart
+ /sbin/initctl restart libvirtd 2>/dev/null || :
}
RETVAL=0
@@ -347,10 +347,37 @@ reconfigure() {
configure_libvirt $args
}
+start_libvirtd() {
+ local packaged installed target
+ local startout
+
+ packaged=`/bin/rpm -ql libvirt | /bin/grep libvirtd.upstart | \
+ /usr/bin/tail -1`
+ target=/etc/init/libvirtd.conf
+ installed=`/bin/readlink -f "$target"`
+
+ if [[ "$packaged" != "$installed" ]];
+ then
+ /bin/ln -sf "$packaged" "$target" || return 1
+ /sbin/initctl reload-configuration
+ fi
+
+ startout=`/sbin/initctl start libvirtd 2>&1`
+ if [[ "$?" -eq 0 || "$startout" =~ .*already\ running.* ]];
+ then
+ return 0
+ else
+ echo "$startout" >&2
+ return 1
+ fi
+}
+
start() {
local ret_val
python @P_VDSM@/hooks.pyc before_vdsm_start
+ shutdown_conflicting_srv
+
reconfigure noforce
ret_val=$?
if [ $ret_val -ne 0 ]
@@ -359,7 +386,7 @@ start() {
return $ret_val
fi
- start_needed_srv
+ start_needed_srv && start_libvirtd
ret_val=$?
if [ $ret_val -ne 0 ]
then
@@ -367,7 +394,6 @@ start() {
return $ret_val
fi
- shutdown_conflicting_srv
@P_VDSM@/vdsm-restore-net-config
load_needed_modules
mk_data_center
More information about the vdsm-patches
mailing list