mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
71 lines
1.5 KiB
Bash
71 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
sbindir=@sbindir@
|
|
|
|
lvm_vgchange=${sbindir}/vgchange
|
|
lvm_vgscan=${sbindir}/vgscan
|
|
lvm_vgs=${sbindir}/vgs
|
|
lvm_lvm=${sbindir}/lvm
|
|
|
|
parse_clustered_vgs() {
|
|
while read -r name attrs;
|
|
do
|
|
test "${attrs:5:1}" == 'c' && echo -n "$name "
|
|
done
|
|
}
|
|
|
|
# NOTE: replace this with vgs, once display filter per attr is implemented.
|
|
clustered_vgs() {
|
|
${lvm_vgs} -o vg_name,vg_attr --noheadings | parse_clustered_vgs
|
|
}
|
|
|
|
activate() {
|
|
eval local $(${lvm_lvm} dumpconfig devices/obtain_device_list_from_udev 2>/dev/null) 2>/dev/null
|
|
if [ $? -ne 0 ]; then
|
|
echo "Warning: expected single couple of key=value in output of dumpconfig"
|
|
fi
|
|
|
|
if [ -z $obtain_device_list_from_udev -o $obtain_device_list_from_udev -ne 1 ]; then
|
|
echo -n "lvm.conf option obtain_device_list_from_udev!=1: Executing vgscan"
|
|
${lvm_vgscan} > /dev/null 2>&1
|
|
fi
|
|
|
|
echo -n "Activating ${LVM_VGS:-"all VG(s)"}: "
|
|
# Respect activation/auto_activation_volume_list!
|
|
# Call "-aay" which is equal to "-aly" but respects this list.
|
|
${lvm_vgchange} -aay $LVM_VGS || return 1
|
|
|
|
return 0
|
|
}
|
|
|
|
deactivate()
|
|
{
|
|
# NOTE: following section will be replaced by blkdeactivate script
|
|
# with option supporting request to deactivate all clustered volume
|
|
# groups in the system
|
|
[ -z $LVM_VGS ] && LVM_VGS="$(clustered_vgs)"
|
|
if [ -n "$LVM_VGS" ]; then
|
|
echo -n "Deactivating clustered VG(s): "
|
|
${lvm_vgchange} -anl $LVM_VGS || return 1
|
|
fi
|
|
|
|
return 0
|
|
}
|
|
|
|
case "$1" in
|
|
deactivate)
|
|
deactivate
|
|
rtrn=$?
|
|
;;
|
|
activate)
|
|
activate
|
|
rtrn=$?
|
|
;;
|
|
*)
|
|
echo $"Usage: $0 {activate|deactivate}"
|
|
rtrn=3
|
|
;;
|
|
esac
|
|
|
|
exit $rtrn
|