You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-emulation/ganeti/files/ganeti-kvm-poweroff.initd

59 lines
1.5 KiB

#!/sbin/openrc-run
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
depend() {
after ganeti
after bootmisc
}
CONTROL_PATH="/var/run/ganeti/kvm-hypervisor/ctrl"
GANETI_KVM_TIMEOUT=${GANETI_KVM_TIMEOUT:-60}
start() {
return 0
}
# Taken from doc/examples/ganeti-kvm-poweroff.initd.in in ganeti package
stop() {
ebegin "Stopping Ganeti KVM VMs"
# shutdown VMs and remove sockets of those not running
for vm_monitor in $(find $CONTROL_PATH -type s -name '*.monitor') ; do
if ! echo system_powerdown | \
socat -U UNIX:$vm_monitor STDIO > /dev/null 2>&1; then
# remove disconnected socket
rm -f $vm_monitor
fi
done
einfo " Waiting for VMs to poweroff"
waiting=true
remaining=$GANETI_KVM_TIMEOUT
while $waiting && [ $remaining -ne 0 ]; do
if [ -z "$(find $CONTROL_PATH -type s -name '*.monitor')" ] ; then
break
fi
echo -n "."
for vm_monitor in $(find $CONTROL_PATH -type s -name '*.monitor') ; do
if ! echo | socat -U UNIX:$vm_monitor STDIO > /dev/null 2>&1; then
rm -rf $vm_monitor
fi
done
sleep 5
let remaining-=5 1
done
if [ -n "$(find $CONTROL_PATH -type s -name '*.monitor')" ] ; then
eerror " Some ganeti VMs did not shutdown"
fi
echo
eend $?
}
restart() {
eerror "restart not supported"
}