Hello community, here is the log from the commit of package lvm2 for openSUSE:Factory checked in at 2013-08-30 11:55:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/lvm2 (Old) and /work/SRC/openSUSE:Factory/.lvm2.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lvm2" Changes: -------- --- /work/SRC/openSUSE:Factory/lvm2/lvm2.changes 2013-07-24 15:09:10.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.lvm2.new/lvm2.changes 2013-08-30 11:55:02.000000000 +0200 @@ -1,0 +2,12 @@ +Wed Aug 28 11:15:54 UTC 2013 - meiss...@suse.com + +- replace BuildRequires: systemd by pkgconfig(udev) again + to avoid cycles. + +------------------------------------------------------------------- +Tue Aug 20 07:59:06 UTC 2013 - dmzh...@suse.com + +- add systemd support to lvm2 package + split device-mapper to another package. + +------------------------------------------------------------------- Old: ---- 64-lvm2.rules boot.device-mapper boot.lvm collect_lvm device-mapper-dmsetup-deps-export.patch device-mapper-dmsetup-export.patch mkinitrd-devmapper-boot.sh mkinitrd-devmapper-setup.sh sleep-try-open-count.diff udev-rules_update.diff udev_sync-cookie_set-1-on-each-dm_task_set_cookie-ca.patch New: ---- LVM2.2.02.98.tgz.asc cmirrord.ocf ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ lvm2.spec ++++++ --- /var/tmp/diff_new_pack.FYHDuD/_old 2013-08-30 11:55:03.000000000 +0200 +++ /var/tmp/diff_new_pack.FYHDuD/_new 2013-08-30 11:55:03.000000000 +0200 @@ -16,36 +16,39 @@ # -Url: http://sources.redhat.com/cluster/clvm/ +Url: http://www.sourceware.org/lvm2/ Name: lvm2 +BuildRequires: device-mapper-devel BuildRequires: libcorosync-devel BuildRequires: libdlm-devel -BuildRequires: libopenais-devel BuildRequires: libselinux-devel +BuildRequires: libudev-devel BuildRequires: readline-devel BuildRequires: pkgconfig(udev) Requires: device-mapper >= 1.02.25 Provides: lvm PreReq: %fillup_prereq %insserv_prereq /sbin/mkinitrd Version: 2.02.98 -Release: 0 +Release: 0.<RELEASE11> Summary: Logical Volume Manager Tools License: GPL-2.0 and LGPL-2.1 Group: System/Base Source: ftp://sources.redhat.com/pub/%{name}/LVM2.%{version}.tgz +Source42: ftp://sources.redhat.com/pub/%{name}/LVM2.%{version}.tgz.asc Source1: lvm.conf -Source2: boot.lvm +#Source2: boot.lvm Source3: sysconfig.lvm Source4: mkinitrd-lvm2-setup.sh Source5: mkinitrd-lvm2-boot.sh -Source6: 64-lvm2.rules -Source7: collect_lvm +#Source6: 64-lvm2.rules +#Source7: collect_lvm Source8: clvmd.ocf -Source11: boot.device-mapper -Source12: mkinitrd-devmapper-setup.sh -Source13: mkinitrd-devmapper-boot.sh +Source10: cmirrord.ocf +#Source12: mkinitrd-devmapper-setup.sh +#Source13: mkinitrd-devmapper-boot.sh Source14: baselibs.conf +#Source15: lvm2-activation.service Patch: improve_probing.diff Patch2: no-inc-audit.diff @@ -57,12 +60,7 @@ Patch19: dont_ignore_tmp_device_file.diff Patch20: support-drbd-filter.diff Patch22: handle_extended_devt.diff -Patch61: device-mapper-dmsetup-export.patch -Patch65: device-mapper-dmsetup-deps-export.patch Patch66: device-mapper-type_punning.diff -Patch70: sleep-try-open-count.diff -Patch81: udev-rules_update.diff -Patch82: udev_sync-cookie_set-1-on-each-dm_task_set_cookie-ca.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build # Not a real replacement but we drop evms @@ -76,6 +74,8 @@ Obsoletes: evms-ha <= 2.5.5 %define _udevdir %(pkg-config --variable=udevdir udev) +%{systemd_requires} + %description Programs and man pages for configuring and using the LVM2 Logical Volume Manager. @@ -93,88 +93,99 @@ %patch19 -p1 %patch20 -p1 %patch22 -p1 -%patch61 -p1 -%patch65 -p1 %patch66 -p1 -%patch70 -p1 -%patch81 -p1 -%patch82 -p1 %build -export MODPROBE_CMD=/sbin/modprobe +# set path so that thin_check can be found +CFLAGS="$RPM_OPT_FLAGS" MODPROBE_CMD=/sbin/modprobe \ +PATH=$PATH:/sbin:/usr/sbin \ %configure --prefix=/ \ --bindir=/bin --libdir=/%_lib --with-usrlibdir=%_libdir \ --sbindir=/sbin --enable-dmeventd \ - --with-udevdir=%{_udevdir}/rules.d \ - --with-dmeventd_path=/sbin/dmeventd \ - --with-device-uid=0 --with-device-gid=6 --with-device-mode=0640 \ --enable-udev_sync --enable-udev_rules \ - --enable-cmdlib --enable-dmeventd \ + --enable-cmdlib --enable-applib --enable-dmeventd \ --enable-realtime --enable-pkgconfig \ --enable-selinux \ - --with-clvmd=corosync --datarootdir=/usr/share --with-default-locking-dir=/run/lock/lvm + --with-clvmd=corosync --with-cluster=internal --with-cluster=internal \ + --datarootdir=/usr/share --with-default-locking-dir=/run/lock/lvm \ + --enable-cmirrord \ + --with-thin=internal \ + --enable-lvmetad export SUSE_ASNEEDED=0 make -j1 # symlinks are generated in parallel! %{?_smp_mflags} %install -make install DESTDIR=$RPM_BUILD_ROOT +make install_lvm2 DESTDIR=$RPM_BUILD_ROOT +make install_system_dirs DESTDIR=$RPM_BUILD_ROOT +make install_systemd_units DESTDIR=$RPM_BUILD_ROOT +make install_systemd_generators DESTDIR=$RPM_BUILD_ROOT +make -C liblvm install DESTDIR=$RPM_BUILD_ROOT install -d -m 755 $RPM_BUILD_ROOT/etc/lvm install -d -m 755 $RPM_BUILD_ROOT/etc/lvm/backup install -d -m 755 $RPM_BUILD_ROOT/etc/lvm/archive install -d -m 755 $RPM_BUILD_ROOT/etc/lvm/metadata install -m 644 %{SOURCE1} $RPM_BUILD_ROOT/etc/lvm mkdir -p $RPM_BUILD_ROOT/etc/init.d -install -m 755 %{SOURCE2} $RPM_BUILD_ROOT/etc/init.d -install -m 744 %{SOURCE11} $RPM_BUILD_ROOT/etc/init.d +#install -m 755 %{SOURCE2} $RPM_BUILD_ROOT/etc/init.d install -d $RPM_BUILD_ROOT/lib/mkinitrd/scripts install -m 755 %{SOURCE4} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/setup-lvm2.sh install -m 755 %{SOURCE5} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/boot-lvm2.sh -install -m 755 %{SOURCE12} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/setup-dm.sh -install -m 755 %{SOURCE13} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/boot-dm.sh mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates install -m 644 %{SOURCE3} $RPM_BUILD_ROOT/var/adm/fillup-templates install -m755 -D %{S:8} $RPM_BUILD_ROOT/usr/lib/ocf/resource.d/lvm2/clvmd -rm -f $RPM_BUILD_ROOT/%_libdir/liblvm2cmd.so -ln -sf liblvm2cmd.so.2.02 $RPM_BUILD_ROOT/%_lib/liblvm2cmd.so +install -m755 -D %{S:10} $RPM_BUILD_ROOT/usr/lib/ocf/resource.d/lvm2/cmirrord + rm -f $RPM_BUILD_ROOT/%_libdir/libdevmapper-event-lvm2.so ln -sf libdevmapper-event-lvm2.so.2.02 $RPM_BUILD_ROOT/%_lib/libdevmapper-event-lvm2.so pushd $RPM_BUILD_ROOT/%_lib +rm -f $RPM_BUILD_ROOT/%_libdir/liblvm2app.so +rm -f $RPM_BUILD_ROOT/%_libdir/liblvm2cmd.so +ln -sf liblvm2cmd.so.2.02 liblvm2cmd.so +ln -sf liblvm2app.so.2.2 liblvm2app.so ln -sf device-mapper/libdevmapper-event-lvm2mirror.so libdevmapper-event-lvm2mirror.so.2.02 ln -sf device-mapper/libdevmapper-event-lvm2snapshot.so libdevmapper-event-lvm2snapshot.so.2.02 ln -sf device-mapper/libdevmapper-event-lvm2raid.so libdevmapper-event-lvm2raid.so.2.02 +ln -sf device-mapper/libdevmapper-event-lvm2thin.so libdevmapper-event-lvm2thin.so.2.02 popd install -d $RPM_BUILD_ROOT/usr/sbin +pushd daemons/clvmd +make install DESTDIR=$RPM_BUILD_ROOT +popd +pushd daemons/cmirrord +make install DESTDIR=$RPM_BUILD_ROOT +popd +pushd man +make install DESTDIR=$RPM_BUILD_ROOT +popd mv $RPM_BUILD_ROOT/sbin/clvmd $RPM_BUILD_ROOT/usr/sbin/clvmd +mv $RPM_BUILD_ROOT/sbin/cmirrord $RPM_BUILD_ROOT/usr/sbin/cmirrord mkdir -p $RPM_BUILD_ROOT/usr/share -rm $RPM_BUILD_ROOT/usr/include/lvm2cmd.h +rm $RPM_BUILD_ROOT/etc/lvm/cache/.cache + +#remove lvm-devel parts +rm -f $RPM_BUILD_ROOT/usr/include/lvm2cmd.h +rm -f $RPM_BUILD_ROOT/usr/include/lvm2app.h +rm -f $RPM_BUILD_ROOT%{_libdir}/pkgconfig/lvm2app.pc +#remove device-mapper man page +rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/dm* +#remove device-mapper systemd events +rm -f $RPM_BUILD_ROOT/%{_unitdir}/dm-event.socket +rm -f $RPM_BUILD_ROOT/%{_unitdir}/dm-event.service + # install and collect_lvm -install -m755 -D %{S:7} $RPM_BUILD_ROOT%{_udevdir}/collect_lvm +#install -m755 -D %{S:7} $RPM_BUILD_ROOT%{_udevdir}/collect_lvm %post -%{fillup_and_insserv -n lvm boot.lvm} -[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup -if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then - echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of /var/lib/no_initrd_recreation_by_suspend" -elif [ -x /sbin/mkinitrd ]; then - /sbin/mkinitrd -fi - +%service_add_post blk-availability.service lvm2-monitor.service lvm2-lvmetad.socket +[ -x /sbin/mkinitrd ] && /sbin/mkinitrd /sbin/ldconfig %preun -%{stop_on_removal boot.lvm} +#%{stop_on_removal boot.lvm} +%service_del_preun blk-availability.service lvm2-monitor.service lvm2-lvmetad.service lvm2-lvmetad.socket %postun -%{insserv_cleanup} -[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup -if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then - echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of /var/lib/no_initrd_recreation_by_suspend" -elif [ -x /sbin/mkinitrd ]; then - /sbin/mkinitrd -fi - +[ -x /sbin/mkinitrd ] && /sbin/mkinitrd /sbin/ldconfig %files @@ -185,13 +196,19 @@ %dir /etc/lvm/archive %dir /etc/lvm/metadata %config /etc/lvm/lvm.conf -%config /etc/init.d/boot.lvm +#%config /etc/init.d/boot.lvm %dir /lib/mkinitrd %dir /lib/mkinitrd/scripts %{_udevdir}/rules.d/11-dm-lvm.rules -%{_udevdir}/collect_lvm +%{_udevdir}/rules.d/69-dm-lvm-metad.rules +%{_unitdir}/blk-availability.service +%{_unitdir}/lvm2-monitor.service +%{_unitdir}/lvm2-lvmetad.socket +%{_unitdir}/lvm2-lvmetad.service +#%{_udevdir}/collect_lvm /lib/mkinitrd/scripts/setup-lvm2.sh /lib/mkinitrd/scripts/boot-lvm2.sh +/usr/lib/systemd/system-generators/lvm2-activation-generator /var/adm/fillup-templates/sysconfig.lvm /sbin/blkdeactivate /sbin/fsadm @@ -241,18 +258,24 @@ /sbin/vgscan /sbin/vgsplit /sbin/lvmconf +/sbin/lvmetad %dir /%_lib/device-mapper /%_lib/device-mapper/libdevmapper-event-lvm2mirror.so /%_lib/device-mapper/libdevmapper-event-lvm2snapshot.so /%_lib/device-mapper/libdevmapper-event-lvm2raid.so +/%_lib/device-mapper/libdevmapper-event-lvm2thin.so /%_lib/libdevmapper-event-lvm2mirror.so /%_lib/libdevmapper-event-lvm2snapshot.so /%_lib/libdevmapper-event-lvm2raid.so +/%_lib/libdevmapper-event-lvm2thin.so /%_lib/liblvm2cmd.so +/%_lib/liblvm2cmd.so.2.02 +/%_lib/liblvm2app.so +/%_lib/liblvm2app.so.2.2 /%_lib/libdevmapper-event-lvm2mirror.so.2.02 /%_lib/libdevmapper-event-lvm2snapshot.so.2.02 /%_lib/libdevmapper-event-lvm2raid.so.2.02 -/%_lib/liblvm2cmd.so.2.02 +/%_lib/libdevmapper-event-lvm2thin.so.2.02 /%_lib/libdevmapper-event-lvm2.so /%_lib/libdevmapper-event-lvm2.so.2.02 %{_mandir}/man5/lvm.conf.5.gz @@ -304,80 +327,18 @@ %{_mandir}/man8/lvmconf.8.gz %{_mandir}/man8/lvmsadc.8.gz %{_mandir}/man8/lvmsar.8.gz - -%package -n device-mapper -# bug437293 -%ifarch ppc64 -Obsoletes: device-mapper-64bit -%endif -# -Version: 1.02.77 -Release: 0 -Url: ftp://sources.redhat.com/pub/lvm2/ -Summary: Device Mapper Tools -Group: System/Base - -%description -n device-mapper -Programs, libraries, and man pages for configuring and using the device -mapper. - -%post -n device-mapper -%{run_ldconfig} -[ -x /sbin/mkinitrd_setup ] && mkinitrd_setup -%{insserv_cleanup} - -%postun -n device-mapper -%{run_ldconfig} -[ -x /sbin/mkinitrd_setup ] && mkinitrd_setup -%{insserv_cleanup} - -%files -n device-mapper -%defattr(-,root,root) -%doc COPYING COPYING.LIB README VERSION_DM WHATS_NEW_DM -%config /etc/init.d/boot.device-mapper -/%_lib/libdevmapper.so.1.02 -/%_lib/libdevmapper-event.so.1.02 -%{_udevdir}/rules.d/10-dm.rules -#%{_udevdir}/rules.d/12-dm-permissions.rules -%{_udevdir}/rules.d/13-dm-disk.rules -%{_udevdir}/rules.d/95-dm-notify.rules -/sbin/dmsetup -/sbin/dmeventd -%{_mandir}/man8/dmsetup.8.gz -%{_mandir}/man8/dmeventd.8.gz -%dir /lib/mkinitrd -%dir /lib/mkinitrd/scripts -/lib/mkinitrd/scripts/setup-dm.sh -/lib/mkinitrd/scripts/boot-dm.sh - -%package -n device-mapper-devel -Version: 1.02.77 -Release: 0 -Summary: Development package for the device mapper -Group: System/Base -Requires: device-mapper = 1.02.77 - -%description -n device-mapper-devel -Files needed for software development using the device mapper - -%files -n device-mapper-devel -%defattr(-,root,root) -/%_libdir/libdevmapper.so -/%_libdir/libdevmapper-event.so -/%_libdir/pkgconfig/*.pc -/usr/include/libdevmapper.h -/usr/include/libdevmapper-event.h +%{_mandir}/man8/lvmetad.8.gz %package clvm Url: http://sources.redhat.com/cluster/clvm/ Version: 2.02.98 Release: 0 +Requires: corosync Requires: device-mapper >= 1.02.25 Requires: lvm2 = %{version} -Requires: openais -Provides: clvm +Requires: lvm2-cmirrord Summary: Clustered LVM2 -Group: System/Base +Group: Productivity/Clustering/HA %description clvm A daemon for using LVM2 Logival Volumes in a clustered environment. @@ -393,4 +354,26 @@ /usr/lib/ocf/resource.d/lvm2/clvmd %{_mandir}/man8/clvmd.8.gz +%package cmirrord +Url: http://www.sourceware.org/lvm2/ +Version: 2.02.98 +Release: 0 +Requires: corosync +Requires: device-mapper >= 1.02.25 +Requires: lvm2 = %{version} +Requires: lvm2-clvm +Summary: Clustered RAID 1 support using device-mapper and corosync +Group: Productivity/Clustering/HA + +%description cmirrord +A daemon for using LVM2 Logival Volumes in a clustered environment. + + + +%files cmirrord +%defattr(-,root,root) +/usr/sbin/cmirrord +/usr/lib/ocf/resource.d/lvm2/cmirrord +%{_mandir}/man8/cmirrord.8.gz + %changelog ++++++ clvmd.ocf ++++++ --- /var/tmp/diff_new_pack.FYHDuD/_old 2013-08-30 11:55:03.000000000 +0200 +++ /var/tmp/diff_new_pack.FYHDuD/_new 2013-08-30 11:55:03.000000000 +0200 @@ -27,23 +27,43 @@ . ${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs # Parameter defaults -: ${OCF_RESKEY_CRM_meta_gloablly_unique:="false"} +: ${OCF_RESKEY_CRM_meta_globally_unique:="false"} : ${OCF_RESKEY_daemon_timeout:="80"} -: ${OCF_RESKEY_daemon_options:="-d0"} +: ${OCF_RESKEY_daemon_options:="-d2"} # Common variables DAEMON="/usr/sbin/clvmd" +CMIRRORD="/usr/sbin/cmirrord" -status_daemon() +status_daemons() { PID=`pidofproc "$DAEMON"` + NPID=`pidofproc "$CMIRRORD"` + if [ -n "$PID" -a -n "$NPID" ]; then + return $OCF_SUCCESS + fi + return $OCF_NOT_RUNNING +} + +status_clvmd() +{ + PID=`pidofproc "$DAEMON"` + if [ -n "$PID" ]; then + return $OCF_SUCCESS + fi + return $OCF_NOT_RUNNING +} + +status_cmirrord() +{ + PID=`pidofproc "$CMIRRORD"` if [ -n "$PID" ]; then return $OCF_SUCCESS fi return $OCF_NOT_RUNNING } -bringup_daemon() +bringup_clvmd() { if [ ! -e "$DAEMON" ]; then ocf_log err "Required binary not found: $DAEMON" @@ -66,16 +86,47 @@ ocf_log err "`basename $DAEMON` did not come up" return $OCF_ERR_GENERIC fi - status_daemon; rc=$? + status_clvmd; rc=$? + sleep 1 + done + + return $rc +} + +bringup_cmirrord() +{ + if [ ! -e "$CMIRRORD" ]; then + ocf_log err "Required binary not found: $DAEMON" + return $OCF_ERR_INSTALLED + fi + + start_daemon "$CMIRRORD" "$OCF_RESKEY_daemon_options"; rc=$? + if [ $rc != 0 ]; then + ocf_log err "Could not start $CMIRRORD" + return $OCF_ERR_GENERIC + fi + + sleep 1 + COUNT=0 + rc=$OCF_NOT_RUNNING + + while [ $rc = $OCF_NOT_RUNNING ]; do + COUNT=`expr $COUNT + 1` + if [ $COUNT -gt $OCF_RESKEY_daemon_timeout ]; then + ocf_log err "`basename $DAEMON` did not come up" + return $OCF_ERR_GENERIC + fi + status_cmirrord; rc=$? sleep 1 done return $rc } -kill_daemon() + +kill_clvmd() { - status_daemon; rc=$? + status_clvmd; rc=$? if [ $rc != $OCF_SUCCESS ]; then return rc fi @@ -84,7 +135,7 @@ killproc -INT "$DAEMON" sleep 1 - status_daemon; rc=$? + status_daemons; rc=$? COUNT=0 while [ $rc = $OCF_SUCCESS ]; do @@ -92,7 +143,7 @@ if [ $COUNT -gt $OCF_RESKEY_daemon_timeout ]; then ocf_log err "`basename $DAEMON` shutdown emergency" killproc -9 "$DAEMON" - status_daemon; rc=$? + status_clvmd; rc=$? if [ $rc = $OCF_NOT_RUNNING ]; then return $OCF_SUCCESS else @@ -101,40 +152,101 @@ fi killproc -INT "$DAEMON" sleep 1 - status_daemon; rc=$? + status_clvmd; rc=$? done return $OCF_SUCCESS } -clvmd_start() { - - clvmd_monitor; rc=$? - if [ $rc != $OCF_NOT_RUNNING ]; then - return $rc +kill_cmirrord() +{ + status_cmirrord; rc=$? + if [ $rc != $OCF_SUCCESS ]; then + return rc fi - ocf_log info "Starting $OCF_RESOURCE_INSTANCE" + ocf_log info "Stopping `basename "$CMIRRORD"`" + killproc -INT "$CMIRRORD" - bringup_daemon - return $? + sleep 1 + status_cmirrord; rc=$? + + COUNT=0 + while [ $rc = $OCF_SUCCESS ]; do + COUNT=`expr $COUNT + 1` + if [ $COUNT -gt $OCF_RESKEY_daemon_timeout ]; then + ocf_log err "`basename $CMIRRORD` shutdown emergency" + killproc -9 "$CMIRRORD" + status_cmirrord; rc=$? + if [ $rc = $OCF_NOT_RUNNING ]; then + return $OCF_SUCCESS + else + return $OCF_ERR_GENERIC + fi + fi + killproc -INT "$CMIRRORD" + sleep 1 + status_cmirrord; rc=$? + done + + return $OCF_SUCCESS } -clvmd_stop() { - clvmd_monitor; rc=$? - case $rc in - $OCF_NOT_RUNNING) return $OCF_SUCCESS;; - esac +clvmd_start() +{ + clvmd_validate + ocf_log info "Starting $OCF_RESOURCE_INSTANCE" + + status_clvmd; rc=$? + if [ $rc == $OCF_NOT_RUNNING ]; then + bringup_clvmd; rc=$? + if [ $rc != $OCF_SUCCESS ]; then + return $OCF_ERR_GENERIC + fi + fi + + status_cmirrord; rc=$? + if [ $rc == $OCF_NOT_RUNNING ]; then + bringup_cmirrord; rc=$? + if [ $rc != $OCF_SUCCESS ]; then + kill_clvmd + return $OCF_ERR_GENERIC + fi + fi + + return $OCF_SUCCESS +} + +clvmd_stop() { + clvmd_validate ocf_log info "Stopping $OCF_RESOURCE_INSTANCE" - kill_daemon + status_clvmd; rc=$? + if [ $rc != $OCF_NOT_RUNNING ]; then + kill_clvmd; krc=$? + if [ $krc != $OCF_SUCCESS ]; then + ocf_log err "Failed to stop clvmd" + return $OCF_ERR_GENERIC + fi + fi + + status_cmirrord; rc=$? + if [ $rc != $OCF_NOT_RUNNING ]; then + kill_cmirrord; krc=$? + if [ $krc != $OCF_SUCCESS ]; then + ocf_log err "Failed to stop cmirrord" + return $OCF_ERR_GENERIC + fi + fi + + return $OCF_SUCCESS } clvmd_monitor() { clvmd_validate - status_daemon + status_daemons return $? } @@ -145,10 +257,10 @@ } clvmd_validate() { - : TODO: check for gloablly_unique=true and return OCF_ERR_CONFIGURED - case ${OCF_RESKEY_CRM_meta_gloablly_unique} in + : TODO: check for globally_unique=true and return OCF_ERR_CONFIGURED + case ${OCF_RESKEY_CRM_meta_globally_unique} in yes|Yes|true|True|1) - ocf_log err "$OCF_RESOURCE_INSTANCE must be configured with the gloablly_unique=false meta attribute" + ocf_log err "$OCF_RESOURCE_INSTANCE must be configured with the globally_unique=false meta attribute" exit $OCF_ERR_CONFIGURED ;; esac @@ -163,8 +275,8 @@ <resource-agent name="clvmd"> <version>1.0</version> <longdesc lang="en"> -This is a clvmd Resource Agent. -It starts clvmd as anonymous clones. +This is a Resource Agent for both clvmd and cmirrord. +It starts clvmd and cmirrord as anonymous clones. </longdesc> <shortdesc lang="en">clvmd resource agent</shortdesc> <parameters> @@ -182,7 +294,7 @@ Options to clvmd. Refer to clvmd.8 for detailed descriptions. </longdesc> <shortdesc lang="en">Daemon Options</shortdesc> - <content type="string" default="-d0"/> + <content type="string" default="-d2"/> </parameter> ++++++ cmirrord.ocf ++++++ #!/bin/bash # Copyright (c) 2008 Xinwei Hu # All Rights Reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of version 2 of the GNU General Public License as # published by the Free Software Foundation. # # This program is distributed in the hope that it would be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # Further, this software is distributed without any warranty that it is # free of the rightful claim of any third person regarding infringement # or the like. Any license provided herein, whether implied or # otherwise, applies only to this software file. Patent licenses, if # any, provided herein do not apply to combinations of this program with # other software, or any other product whatsoever. # # You should have received a copy of the GNU General Public License # along with this program; if not, write the Free Software Foundation, # Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. # ####################################################################### # OCF initialization . ${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs # Parameter defaults : ${OCF_RESKEY_CRM_meta_globally_unique:="false"} : ${OCF_RESKEY_daemon_timeout:="80"} : ${OCF_RESKEY_daemon_options:="-d0"} # Common variables DAEMON="/usr/sbin/cmirrord" status_daemon() { PID=`pidofproc "$DAEMON"` if [ -n "$PID" ]; then return $OCF_SUCCESS fi return $OCF_NOT_RUNNING } bringup_daemon() { if [ ! -e "$DAEMON" ]; then ocf_log err "Required binary not found: $DAEMON" return $OCF_ERR_INSTALLED fi start_daemon "$DAEMON" "$OCF_RESKEY_daemon_options"; rc=$? if [ $rc != 0 ]; then ocf_log err "Could not start $DAEMON" return $OCF_ERR_GENERIC fi sleep 1 COUNT=0 rc=$OCF_NOT_RUNNING while [ $rc = $OCF_NOT_RUNNING ]; do COUNT=`expr $COUNT + 1` if [ $COUNT -gt $OCF_RESKEY_daemon_timeout ]; then ocf_log err "`basename $DAEMON` did not come up" return $OCF_ERR_GENERIC fi status_daemon; rc=$? sleep 1 done return $rc } kill_daemon() { status_daemon; rc=$? if [ $rc != $OCF_SUCCESS ]; then return rc fi ocf_log info "Stopping `basename "$DAEMON"`" killproc -INT "$DAEMON" sleep 1 status_daemon; rc=$? COUNT=0 while [ $rc = $OCF_SUCCESS ]; do COUNT=`expr $COUNT + 1` if [ $COUNT -gt $OCF_RESKEY_daemon_timeout ]; then ocf_log err "`basename $DAEMON` shutdown emergency" killproc -9 "$DAEMON" status_daemon; rc=$? if [ $rc = $OCF_NOT_RUNNING ]; then return $OCF_SUCCESS else return $OCF_ERR_GENERIC fi fi killproc -INT "$DAEMON" sleep 1 status_daemon; rc=$? done return $OCF_SUCCESS } cmirrord_start() { cmirrord_monitor; rc=$? if [ $rc != $OCF_NOT_RUNNING ]; then return $rc fi ocf_log info "Starting $OCF_RESOURCE_INSTANCE" bringup_daemon return $? } cmirrord_stop() { cmirrord_monitor; rc=$? case $rc in $OCF_NOT_RUNNING) return $OCF_SUCCESS;; esac ocf_log info "Stopping $OCF_RESOURCE_INSTANCE" kill_daemon } cmirrord_monitor() { cmirrord_validate status_daemon return $? } cmirrord_usage() { echo "usage: $0 {start|stop|monitor|validate-all|meta-data}" echo " Expects to have a fully populated OCF RA-compliant environment set." echo " In particualr, a value for OCF_ROOT" } cmirrord_validate() { : TODO: check for globally_unique=true and return OCF_ERR_CONFIGURED case ${OCF_RESKEY_CRM_meta_globally_unique} in yes|Yes|true|True|1) ocf_log err "$OCF_RESOURCE_INSTANCE must be configured with the globally_unique=false meta attribute" exit $OCF_ERR_CONFIGURED ;; esac return $OCF_SUCCESS } meta_data() { cat <<END <?xml version="1.0"?> <!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd"> <resource-agent name="cmirrord"> <version>1.0</version> <longdesc lang="en"> This is a cmirrord Resource Agent. It starts cmirrord as anonymous clones. </longdesc> <shortdesc lang="en">cmirrord resource agent</shortdesc> <parameters> <parameter name="daemon_timeout" unique="0"> <longdesc lang="en"> Number of seconds to allow the control daemon to come up and down </longdesc> <shortdesc lang="en">Daemon Timeout</shortdesc> <content type="string" default="80"/> </parameter> <parameter name="daemon_options" unique="0"> <longdesc lang="en"> Options to cmirrord. Cmirrord actually doesn't accept any options for now. </longdesc> <shortdesc lang="en">Daemon Options</shortdesc> <content type="string" default=""/> </parameter> </parameters> <actions> <action name="start" timeout="90" /> <action name="stop" timeout="100" /> <action name="monitor" timeout="20" depth="0"/> <action name="meta-data" timeout="5" /> <action name="validate-all" timeout="30" /> </actions> </resource-agent> END } case $__OCF_ACTION in meta-data) meta_data exit $OCF_SUCCESS ;; start) cmirrord_start ;; stop) cmirrord_stop ;; monitor) cmirrord_monitor ;; validate-all) cmirrord_validate ;; usage|help) cmirrord_usage exit $OCF_SUCCESS ;; *) cmirrord_usage exit $OCF_ERR_UNIMPLEMENTED ;; esac exit $? ++++++ lvm.conf ++++++ ++++ 768 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/lvm2/lvm.conf ++++ and /work/SRC/openSUSE:Factory/.lvm2.new/lvm.conf -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org