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

Reply via email to