#!/sbin/runscript
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-fs/lvm2/files/lvm-monitoring.initd-2.02.67-r2,v 1.4 2013/04/09 11:00:26 ssuominen Exp $

# This script is based on upstream file
# LVM2.2.02.67/scripts/lvm2_monitoring_init_red_hat.in

depend() {
	# As of .67-r1, we call ALL lvm start/stop scripts with --sysinit, that
	# means dmeventd is NOT notified, as it cannot be safely running
	need lvm dmeventd
}

VGCHANGE=/sbin/vgchange
VGS=/sbin/vgs

start() {
	ret=0
	# TODO do we want to separate out already active groups only?
	VGSLIST=`$VGS --noheadings -o name 2> /dev/null`
	for vg in $VGSLIST
	do
	    ebegin "Starting LVM monitoring for VG $vg:"
		$VGCHANGE --monitor y --poll y $vg
		ret2=$?
		eend $ret2
		[ $ret2 -ne 0 ] && ret=$ret2
	done
	return $ret
}

stop() {
	ret=0
	# TODO do we want to separate out already active groups only?
	VGSLIST=`$VGS --noheadings -o name 2> /dev/null`
	for vg in $VGSLIST
	do
	    ebegin "Stopping LVM monitoring for VG $vg:"
		$VGCHANGE --monitor n $vg
		ret2=$?
		eend $ret2
		[ $ret2 -ne 0 ] && ret=$ret2
	done
	return $ret
}
