| #!/bin/bash |
| |
| sbindir=@sbindir@ |
| |
| lvm_vgchange=${sbindir}/vgchange |
| lvm_vgscan=${sbindir}/vgscan |
| lvm_vgs=${sbindir}/vgs |
| lvm_lvm=${sbindir}/lvm |
| |
| clustered_vgs() { |
| ${lvm_vgs} --noheadings -o vg_name -S 'vg_clustered=1' 2>/dev/null |
| } |
| |
| 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 |