Hello community,

here is the log from the commit of package resource-agents for openSUSE:Factory 
checked in at 2020-02-28 15:19:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/resource-agents (Old)
 and      /work/SRC/openSUSE:Factory/.resource-agents.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "resource-agents"

Fri Feb 28 15:19:16 2020 rev:101 rq:779467 version:4.4.0+git57.70549516

Changes:
--------
--- /work/SRC/openSUSE:Factory/resource-agents/resource-agents.changes  
2019-10-07 13:40:11.356481521 +0200
+++ 
/work/SRC/openSUSE:Factory/.resource-agents.new.26092/resource-agents.changes   
    2020-02-28 15:19:19.689647212 +0100
@@ -1,0 +2,45 @@
+Wed Feb 26 11:25:24 UTC 2020 - [email protected]
+
+- Update to version 4.4.0+git57.70549516:
+  * [lvmlockd] support lvm2-2.03 removing lvmetad
+  * oralsnr: allow using the tns_admin directory for different listeners
+  * Change 'alredy' to 'already'
+  * LVM-activate: add OCF_CHECK_LEVEL to control monitor action
+  * redis: validate_all: fixes file status tests
+  * rabbitmq-cluster: ensure we delete nodename if stop action fails
+  * IPsrcaddr: remove hardcoded device when using destination parameter
+  * Remove standby.signal when promote with restart
+  * IPsrcaddr: fixes to avoid failing during probe
+  * LVM-activate: verify vg or lv validity
+  * [podman] Simplify the code for checking if an image exists
+  * Filesystem: add trigger_udev_rules_if_need() for -U, -L, or /dev/xxx device
+  * Filesystem: respect udevd need time to create UUID symlinks
+  * ldirectord: Support sched-flags
+  * IPaddr2: ipt_CLUSTERIP "iptables" extension not "nft" backend compatible
+  * IPsrcaddr: fixes to replace local rule if using local table, and set src 
back to primary for device on stop
+  * iSCSI logical unit fix (#1435)
+  * Clear out the $DIR_EXECUTABLE variable so we catch the situation when we 
lose the directory with binaries after first sapinstance_init invokation. The 
second sapinstance_init invocation will not detect it as it will have already 
preset the $DIR_EXECUTABLE from previous run. This may allow us running actions 
after second sapinstance_init invocation that would be not run if we knew that 
we miss the needed binaries.
+  * High: pgsql: Support for PostgreSQL 12
+  * IPaddr2: add noprefixroute parameter
+  * Filesystem: refresh UUID in the start phase
+  * azure-lb Set socat to default on SUSE distributions.
+  * exportfs: allow multiple exports of same directory
+  * Low: MailTo: fix variable expansion
+  * iSCSILogicalUnit.in fixes (#1427)
+  * Low: exportfs: Fix spelling error
+  * Low: mysql-common: fix startup check
+  * aliyun-vpc-move-ip: add binary detection
+  * Supports both 'go' and 'python' versions of Aliyun CLI
+  * build: update ChangeLog for 4.4.0
+  * Low: NodeUtilization: Fix checking for Xen commands
+  * build: update ChangeLog for 4.4.0-rc1
+  * Route: only validate for start and validate-all actions
+  * apache: testing to-execute-file for mere presence is not enough
+  * LVM-activate: add partial-activation support
+  * Add missed requirement
+  * Use the function get_release_id to detect the OS. The parameter 
LOAD_STATUS_MODULE must be quoted.
+  * gcp-pd-move: add parameter stackdriver_logging (#1412)
+  * aws-vpc-route53: Improvements and fixes (#1409)
+  * LVM-activate: move pvscan --cache to validate
+
+-------------------------------------------------------------------

Old:
----
  resource-agents-4.3.0+git178.b102c209.tar.xz

New:
----
  resource-agents-4.4.0+git57.70549516.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ resource-agents.spec ++++++
--- /var/tmp/diff_new_pack.vBjJAQ/_old  2020-02-28 15:19:20.817649508 +0100
+++ /var/tmp/diff_new_pack.vBjJAQ/_new  2020-02-28 15:19:20.817649508 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package resource-agents
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,12 +17,12 @@
 
 
 Name:           resource-agents
-Version:        4.3.0+git178.b102c209
+Version:        4.4.0+git57.70549516
 Release:        0
 Summary:        HA Reusable Cluster Resource Scripts
 License:        GPL-2.0-only AND LGPL-2.1-or-later AND GPL-3.0-or-later
 Group:          Productivity/Clustering/HA
-Url:            http://linux-ha.org/
+URL:            http://linux-ha.org/
 Source:         resource-agents-%{version}.tar.xz
 Source1:        resource-agents.conf
 Source2:        monitoring-plugins-metadata.tar.bz2

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.vBjJAQ/_old  2020-02-28 15:19:20.857649590 +0100
+++ /var/tmp/diff_new_pack.vBjJAQ/_new  2020-02-28 15:19:20.857649590 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
 <param name="url">git://github.com/ClusterLabs/resource-agents.git</param>
-<param name="changesrevision">b102c209d524449fe202d6ed7094bb5d86cad613</param>
+<param name="changesrevision">0a299ee9a00ec9e2dccdcf6a4132e55a9207daa5</param>
 </service>
 </servicedata>
\ No newline at end of file

++++++ resource-agents-4.3.0+git178.b102c209.tar.xz -> 
resource-agents-4.4.0+git57.70549516.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/resource-agents-4.3.0+git178.b102c209/ChangeLog 
new/resource-agents-4.4.0+git57.70549516/ChangeLog
--- old/resource-agents-4.3.0+git178.b102c209/ChangeLog 2019-09-30 
14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/ChangeLog  2020-02-24 
12:23:11.000000000 +0100
@@ -1,3 +1,43 @@
+* Wed Oct 23 2019 resource-agents contributors
+- stable release 4.4.0
+- NodeUtilization: fix Xen detection and improve logging
+
+* Wed Oct 16 2019 resource-agents contributors
+- release candidate 4.4.0 rc1
+- All RA: Use _default variables for all parameters
+- Build: improvements and fixes to make "make rpm" work on all archs in CI
+- CTDB: add support for v4.9+
+- Delay: protect grep regex argument from shell globbing
+- Filesystem: don't call readlink on path if it doesnt exist
+- Filesystem: fix to avoid killing all root user processeswhen bind mounting a 
directory on /
+- Filesystem: improve "/" check for bind mounts
+- IPaddr2: fix to work properly with unsanitized IPv6 addresses
+- IPsrcaddr: add destination and table parameters
+- LVM-activate: add partial-activation support
+- LVM-activate: fix monitor might hang due to lvm_validate, which was added by 
accident
+- LVM-activate: move pvscan --cache to validate
+- Route: dont fence node when parameters arent set
+- apache: check if SUSE binaries are executable
+- apache: fix to also detect mod_status.so when it is a symlink
+- apache: improve PidFile pattern to support multiple instances
+- apache: load status module on SUSE distros
+- aws-vpc-route53: improved API error handling and fix to avoid race-condition 
during probe
+- aws-vpc-route53: replace ec2metada with curl to fetch the IP address 
directly from EC2 metadata
+- azure-lb: add support for using socat instead of nc
+- docker: improve the check for the docker daemon being up
+- exportfs: doc clarification for clientspec format
+- gcp-pd-move: add stackdriver_logging parameter
+- iSCSILogicalUnit: only create acls if it doesnt exist
+- mysql/mariadb/galera: use runuser/su to avoid using SELinux DAC_OVERRIDE
+- mysql: add support for SSL replication
+- nfsserver: performance improvements for systemd enabled systems
+- ora-common: fix to fail when sid parameter is invalid
+- podman: generate drop-in dependencies for podman containers
+- podman: only use exec to manage container's lifecycle
+- rabbitmq-cluster: also restore users/perms/policies when starting in single 
node mode
+- redis: fix master_is_active() erroneously reporting there is master when 
there is not (fixes issue #1399)
+- redis: use optimal password passing method and warning filtering workaround
+
 * Fri Jun 21 2019 resource-agents contributors
 - stable release 4.3.0
 - Filesystem: remove removed notify-action from metadata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/resource-agents-4.3.0+git178.b102c209/configure.ac 
new/resource-agents-4.4.0+git57.70549516/configure.ac
--- old/resource-agents-4.3.0+git178.b102c209/configure.ac      2019-09-30 
14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/configure.ac       2020-02-24 
12:23:11.000000000 +0100
@@ -21,7 +21,7 @@
 
 AC_INIT([resource-agents], 
        m4_esyscmd([make/git-version-gen .tarball-version]),
-       [[email protected]])
+       [[email protected]])
 
 AC_USE_SYSTEM_EXTENSIONS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/Filesystem 
new/resource-agents-4.4.0+git57.70549516/heartbeat/Filesystem
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/Filesystem      
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/Filesystem       
2020-02-24 12:23:11.000000000 +0100
@@ -431,6 +431,47 @@
 
 
 #
+# In the case a fresh filesystem is just created from another
+# node on the shared storage, and is not visible yet. Then try
+# partprobe to refresh /dev/disk/by-{label,uuid}/* up to date.
+#
+# DEVICE can be /dev/xxx, -U, -L 
+#
+trigger_udev_rules_if_needed()
+{
+       local refresh_flag="no"
+       local tmp
+       local timeout
+
+       if [ $blockdevice = "yes" ]; then
+               tmp="$DEVICE"
+               if [ "$DEVICE" != "/dev/null" -a ! -b "$DEVICE" ] ; then
+                       refresh_flag="yes"
+               fi
+       else
+               tmp="`echo $DEVICE|awk '{$1=""; print substr($0,2)}'`"
+               case "$DEVICE" in 
+               -U*|--uuid*) 
+                       tmp="/dev/disk/by-uuid/$tmp" 
+                       ;;
+               -L*|--label*)
+                       tmp="/dev/disk/by-label/$tmp" 
+                       ;;
+               esac
+               [ ! -b "$tmp" ] && refresh_flag="yes"
+       fi
+
+       [ "$refresh_flag" = "no" ] && return
+
+       have_binary partprobe && partprobe >/dev/null 2>&1
+       timeout=${OCF_RESKEY_CRM_meta_timeout:="60000"}
+       timeout=$((timeout/1000))
+       have_binary udevadm && udevadm settle -t $timeout --exit-if-exists=$tmp
+
+       return $?
+}
+
+#
 # START: Start up the filesystem
 #
 Filesystem_start()
@@ -453,6 +494,8 @@
        # NOTE: Some filesystem types don't need this step...  Please modify
        #       accordingly
 
+       trigger_udev_rules_if_needed
+
        if [ $blockdevice = "yes" ]; then
                if [ "$DEVICE" != "/dev/null" -a ! -b "$DEVICE" ] ; then
                        ocf_exit_reason "Couldn't find device [$DEVICE]. 
Expected /dev/??? to exist"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/IPaddr2 
new/resource-agents-4.4.0+git57.70549516/heartbeat/IPaddr2
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/IPaddr2 2019-09-30 
14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/IPaddr2  2020-02-24 
12:23:11.000000000 +0100
@@ -88,6 +88,7 @@
 OCF_RESKEY_send_arp_opts_default=""
 OCF_RESKEY_flush_routes_default="false"
 OCF_RESKEY_run_arping_default=false
+OCF_RESKEY_noprefixroute_default="false"
 OCF_RESKEY_preferred_lft_default="forever"
 OCF_RESKEY_network_namespace_default=""
 
@@ -109,6 +110,7 @@
 : ${OCF_RESKEY_send_arp_opts=${OCF_RESKEY_send_arp_opts_default}}
 : ${OCF_RESKEY_flush_routes=${OCF_RESKEY_flush_routes_default}}
 : ${OCF_RESKEY_run_arping=${OCF_RESKEY_run_arping_default}}
+: ${OCF_RESKEY_noprefixroute=${OCF_RESKEY_noprefixroute_default}}
 : ${OCF_RESKEY_preferred_lft=${OCF_RESKEY_preferred_lft_default}}
 : ${OCF_RESKEY_network_namespace=${OCF_RESKEY_network_namespace_default}}
 
@@ -121,6 +123,8 @@
 SENDARPPIDDIR=$HA_RSCTMP
 CIP_lockfile=$HA_RSCTMP/IPaddr2-CIP-${OCF_RESKEY_ip}
 
+IPADDR2_CIP_IPTABLES=$IPTABLES
+
 #######################################################################
 
 meta_data() {
@@ -136,11 +140,21 @@
 In addition, it can implement Cluster Alias IP functionality
 if invoked as a clone resource.
 
-If used as a clone, you should explicitly set clone-node-max &gt;= 2,
+If used as a clone, "shared address with a trivial, stateless
+(autonomous) load-balancing/mutual exclusion on ingress" mode gets
+applied (as opposed to "assume resource uniqueness" mode otherwise).
+For that, Linux firewall (kernel and userspace) is assumed, and since
+recent distributions are ambivalent in plain "iptables" command to
+particular back-end resolution, "iptables-legacy" (when present) gets
+prioritized so as to avoid incompatibilities (note that respective
+ipt_CLUSTERIP firewall extension in use here is, at the same time,
+marked deprecated, yet said "legacy" layer can make it workable,
+literally, to this day) with "netfilter" one (as in "iptables-nft").
+In that case, you should explicitly set clone-node-max &gt;= 2,
 and/or clone-max &lt; number of nodes. In case of node failure,
 clone instances need to be re-allocated on surviving nodes.
-This would not be possible if there is already an instance on those nodes,
-and clone-node-max=1 (which is the default).
+This would not be possible if there is already an instance
+on those nodes, and clone-node-max=1 (which is the default).
 </longdesc>
 
 <shortdesc lang="en">Manages virtual IPv4 and IPv6 addresses (Linux specific 
version)</shortdesc>
@@ -377,6 +391,14 @@
 <content type="string" default="${OCF_RESKEY_run_arping_default}"/>
 </parameter>
 
+<parameter name="noprefixroute">
+<longdesc lang="en">
+Use noprefixroute flag (see 'man ip-address').
+</longdesc>
+<shortdesc lang="en">Use noprefixroute flag</shortdesc>
+<content type="string" default="${OCF_RESKEY_noprefixroute_default}"/>
+</parameter>
+
 <parameter name="preferred_lft">
 <longdesc lang="en">
 For IPv6, set the preferred lifetime of the IP address.
@@ -397,8 +419,8 @@
 <shortdesc lang="en">Network namespace to use</shortdesc>
 <content type="string" default="${OCF_RESKEY_network_namespace_default}"/>
 </parameter>
-
 </parameters>
+
 <actions>
 <action name="start"   timeout="20s" />
 <action name="stop"    timeout="20s" />
@@ -640,6 +662,11 @@
                msg="Adding $FAMILY address $ipaddr/$netmask with broadcast 
address $broadcast to device $iface"
        fi
 
+       if ocf_is_true "${OCF_RESKEY_noprefixroute}"; then
+               cmd="$cmd noprefixroute"
+               msg="${msg} (with noprefixroute)"
+       fi
+
        if [ ! -z "$label" ]; then
                cmd="$cmd label $label"
                msg="${msg} (with label $label)"
@@ -980,7 +1007,7 @@
        
        if [ -n "$IP_CIP" ] && ([ $ip_status = "no" ] || [ $ip_status = 
"partial2" ]); then
                $MODPROBE ip_conntrack
-               $IPTABLES -I INPUT -d $OCF_RESKEY_ip -i $NIC -j CLUSTERIP \
+               $IPADDR2_CIP_IPTABLES -I INPUT -d $OCF_RESKEY_ip -i $NIC -j 
CLUSTERIP \
                                --new \
                                --clustermac $IF_MAC \
                                --total-nodes $IP_INC_GLOBAL \
@@ -1074,7 +1101,7 @@
                        i=1
                        while [ $i -le $IP_INC_GLOBAL ]; do
                                ocf_log info $i
-                               $IPTABLES -D INPUT -d $OCF_RESKEY_ip -i $NIC -j 
CLUSTERIP \
+                               $IPADDR2_CIP_IPTABLES -D INPUT -d 
$OCF_RESKEY_ip -i $NIC -j CLUSTERIP \
                                        --new \
                                        --clustermac $IF_MAC \
                                        --total-nodes $IP_INC_GLOBAL \
@@ -1171,8 +1198,11 @@
     set_send_arp_program
 
     if [ -n "$IP_CIP" ]; then
-       check_binary $IPTABLES
-       check_binary $MODPROBE
+        if have_binary "$IPTABLES_LEGACY"; then
+            IPADDR2_CIP_IPTABLES="$IPTABLES_LEGACY"
+        fi
+        check_binary "$IPADDR2_CIP_IPTABLES"
+        check_binary $MODPROBE
     fi
 
 # $BASEIP, $NETMASK, $NIC , $IP_INC_GLOBAL, and $BRDCAST have been checked 
within ip_init,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/IPsrcaddr 
new/resource-agents-4.4.0+git57.70549516/heartbeat/IPsrcaddr
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/IPsrcaddr       
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/IPsrcaddr        
2020-02-24 12:23:11.000000000 +0100
@@ -75,6 +75,14 @@
   CMDSHOW="$IP2UTIL route show   $TABLE to exact $OCF_RESKEY_destination"
 CMDCHANGE="$IP2UTIL route change to "
 
+if [ "$OCF_RESKEY_destination" != "0.0.0.0/0" ]; then
+       CMDSHOW="$CMDSHOW src $OCF_RESKEY_ipaddress"
+fi
+
+if [ "$OCF_RESKEY_table" = "local" ]; then
+       TABLE="$TABLE local"
+fi
+
 SYSTYPE="`uname -s`"
 
 usage() {
@@ -179,7 +187,7 @@
 
 srca_read() {
        # Capture matching route - doublequotes prevent word splitting...
-       ROUTE="`$CMDSHOW`" || errorexit "command '$CMDSHOW' failed"
+       ROUTE="`$CMDSHOW 2> /dev/null`" || errorexit "command '$CMDSHOW' failed"
 
        # ... so we can make sure there is only 1 matching route
        [ 1 -eq `echo "$ROUTE" | wc -l` ] || \
@@ -195,6 +203,11 @@
        # and what remains after stripping out the source ip address clause
        ROUTE_WO_SRC=`echo $ROUTE | sed "s/$MATCHROUTE/\1\5/"`
 
+       # using "src <ip>" only returns output if there's a match
+       if [ "$OCF_RESKEY_destination" != "0.0.0.0/0" ]; then
+               [ -z "$ROUTE" ] && return 1 || return 0
+       fi
+
        [ -z "$SRCIP" ] && return 1
        [ $SRCIP = $1 ] && return 0
        return 2
@@ -247,8 +260,14 @@
          
        [ $rc = 2 ] && errorexit "The address you specified to stop does not 
match the preferred source address"
 
-       $IP2UTIL route replace $TABLE $NETWORK dev $INTERFACE || \
-               errorexit "command 'ip route replace $TABLE $NETWORK dev 
$INTERFACE' failed"
+       OPTS=""
+       if [ "$OCF_RESKEY_destination" != "0.0.0.0/0" ] ;then
+               PRIMARY_IP="$($IP2UTIL -4 -o addr show dev $INTERFACE primary | 
awk '{split($4,a,"/");print a[1]}')"
+               OPTS="proto kernel scope host src $PRIMARY_IP"
+       fi
+
+       $IP2UTIL route replace $TABLE $NETWORK dev $INTERFACE $OPTS || \
+               errorexit "command 'ip route replace $TABLE $NETWORK dev 
$INTERFACE $OPTS' failed"
 
        if [ "$OCF_RESKEY_destination" = "0.0.0.0/0" ] ;then
                $CMDCHANGE $ROUTE_WO_SRC || \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/LVM-activate 
new/resource-agents-4.4.0+git57.70549516/heartbeat/LVM-activate
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/LVM-activate    
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/LVM-activate     
2020-02-24 12:23:11.000000000 +0100
@@ -49,12 +49,14 @@
 OCF_RESKEY_vg_access_mode_default=""
 OCF_RESKEY_activation_mode_default="exclusive"
 OCF_RESKEY_tag_default="pacemaker"
+OCF_RESKEY_partial_activation_default="false"
 
 : ${OCF_RESKEY_vgname=${OCF_RESKEY_vgname_default}}
 : ${OCF_RESKEY_lvname=${OCF_RESKEY_lvname_default}}
 : ${OCF_RESKEY_vg_access_mode=${OCF_RESKEY_vg_access_mode_default}}
 : ${OCF_RESKEY_activation_mode=${OCF_RESKEY_activation_mode_default}}
 : ${OCF_RESKEY_tag=${OCF_RESKEY_tag_default}}
+: ${OCF_RESKEY_partial_activation=${OCF_RESKEY_partial_activation_default}}
 
 # If LV is given, only activate this named LV; otherwise, activate all
 # LVs in the named VG.
@@ -112,6 +114,18 @@
 if using the cluster to manage at least one of them.  If you manage some 
manually,
 the stop action of the lvmlockd agent may fail and the node may get fenced,
 because some DLM lockspaces might be in use and cannot be closed automatically.
+
+Option: OCF_CHECK_LEVEL
+
+The standard monitor operation of depth 0 checks if the VG or LV is valid.
+If you want deeper tests, set OCF_CHECK_LEVEL to 10:
+
+  10: read first 1 byte of the underlying device (raw read)
+
+If there are many underlying devs in VG, it will only read one of the devs.
+This is not perfect solution for detecting underlying devices livable.
+e.g. iscsi SAN IO timeout will return EIO, and it makes monitor failed.
+
 </longdesc>
 <shortdesc lang="en">This agent activates/deactivates logical 
volumes.</shortdesc>
 
@@ -164,6 +178,16 @@
 <content type="string" default="${OCF_RESKEY_tag_default}" />
 </parameter>
 
+<parameter name="partial_activation" unique="0" required="0">
+<longdesc lang="en">
+If set, the volume group will be activated partially even with some
+physical volumes missing. It helps to set to true when using mirrored
+logical volumes.
+</longdesc>
+<shortdesc lang="en">Activate VG partially when missing PVs</shortdesc>
+<content type="string" default="${OCF_RESKEY_partial_activation_default}" />
+</parameter>
+
 </parameters>
 
 <actions>
@@ -489,6 +513,11 @@
        check_binary lvm
        check_binary dmsetup
 
+       # This is necessary when using system ID to update lvm hints,
+       # or in older versions of lvm, this is necessary to update the
+       # lvmetad cache.
+       pvscan --cache
+
        if ! vgs --foreign ${VG} >/dev/null 2>&1 ; then
                # stop action exits successfully if the VG cannot be accessed...
                if [ $__OCF_ACTION = "stop" ]; then
@@ -505,6 +534,25 @@
                exit $OCF_ERR_CONFIGURED
        fi
 
+       # Inconsistency might be due to missing physical volumes, which doesn't
+       # automatically mean we should fail.  If partial_activation=true then
+       # we should let start try to handle it, or if no PVs are listed as
+       # "unknown device" then another node may have marked a device missing
+       # where we have access to all of them and can start without issue.
+       case $(vgs -o attr --noheadings $VG | tr -d ' ') in
+       ???p??*)
+               if ! ocf_is_true "$OCF_RESKEY_partial_activation" ; then
+                       # We are missing devices and cannot activate partially
+                       ocf_exit_reason "Volume group [$VG] has devices 
missing.  Consider partial_activation=true to attempt to activate partially"
+                       exit $OCF_ERR_GENERIC
+               else
+                       # We are missing devices but are allowed to activate 
partially.
+                       # Assume that caused the vgck failure and carry on
+                       ocf_log warn "Volume group inconsistency detected with 
missing device(s) and partial_activation enabled.  Proceeding with requested 
action."
+               fi
+               ;;
+       esac
+
        # Get the access mode from VG metadata and check if it matches the input
        # value. Skip to check "tagging" mode because there's no reliable way to
        # automatically check if "tagging" mode is being used.
@@ -564,6 +612,10 @@
 do_activate() {
        local activate_opt=$1
 
+       if ocf_is_true "$OCF_RESKEY_partial_activation" ; then
+               activate_opt="${activate_opt} --partial"
+       fi
+
        # Only activate the specific LV if it's given
        if [ -n "$LV" ]; then
                ocf_run lvchange $activate_opt ${VG}/${LV}
@@ -627,7 +679,6 @@
 systemid_activate() {
        local cur_systemid
 
-       pvscan --cache
        cur_systemid=$(vgs --foreign --noheadings -o systemid ${VG} | tr -d 
'[:blank:]')
 
        # Put our system ID on the VG
@@ -740,6 +791,7 @@
 # This is AllBad but there isn't a better way that I'm aware of yet.
 lvm_status() {
        local dm_count
+       local dm_name
 
        if [ -n "${LV}" ]; then
                # dmsetup ls? It cannot accept device name. It's
@@ -753,7 +805,25 @@
                return $OCF_NOT_RUNNING
        fi
 
-       return $OCF_SUCCESS
+       if [ $OCF_CHECK_LEVEL -gt 0 ]; then
+               case "$OCF_CHECK_LEVEL" in
+                       10)
+                               # if there are many lv in vg dir, pick the 
first name
+                               dm_name="/dev/${VG}/$(ls -1 /dev/${VG} | head 
-n 1)"
+
+                               # read 1 byte to check the dev is alive
+                               dd if=${dm_name} of=/dev/null bs=1 count=1 
>/dev/null 2>&1
+                               if [ $? -ne 0 ]; then
+                                       return $OCF_NOT_RUNNING
+                               fi
+                               return $OCF_SUCCESS
+                               ;;
+                       *)
+                               ocf_exit_reason "unsupported monitor level 
$OCF_CHECK_LEVEL"
+                               rc=$OCF_ERR_CONFIGURED
+                               ;;
+               esac
+       fi
 }
 
 lvm_start() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/MailTo 
new/resource-agents-4.4.0+git57.70549516/heartbeat/MailTo
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/MailTo  2019-09-30 
14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/MailTo   2020-02-24 
12:23:11.000000000 +0100
@@ -67,7 +67,7 @@
 The email address of sysadmin.
 </longdesc>
 <shortdesc lang="en">Email address</shortdesc>
-<content type="string" default="$[OCF_RESKEY_email_default]" />
+<content type="string" default="${OCF_RESKEY_email_default}" />
 </parameter>
 
 <parameter name="subject" unique="0">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/NodeUtilization 
new/resource-agents-4.4.0+git57.70549516/heartbeat/NodeUtilization
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/NodeUtilization 
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/NodeUtilization  
2020-02-24 12:23:11.000000000 +0100
@@ -135,10 +135,10 @@
 
     xentool=$(which xl 2> /dev/null || which xm 2> /dev/null)
 
-    if [ -x $xentool ]; then
-        $xentool info | awk '/total_memory/{printf("%d\n",$3);exit(0)}'
+    if [ -x "$xentool" ]; then
+        "$xentool" info | awk '/total_memory/{printf("%d\n",$3);exit(0)}'
     else
-        ocf_log warn "Can only set hv_memory for Xen hypervisor"
+        ocf_log debug "Can only set hv_memory for Xen hypervisor"
         echo "0"
     fi
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/Route 
new/resource-agents-4.4.0+git57.70549516/heartbeat/Route
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/Route   2019-09-30 
14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/Route    2020-02-24 
12:23:11.000000000 +0100
@@ -187,6 +187,8 @@
 }
 
 route_start() {
+    route_validate || exit $?
+
     route_status
     status=$?
     if [ $status -eq $OCF_SUCCESS ]; then
@@ -313,8 +315,6 @@
     check_binary $binary
 done
 
-route_validate || exit $?
-
 case $OCF_RESKEY_family in
     ip4) addr_family="-4" ;;
     ip6) addr_family="-6" ;;
@@ -334,7 +334,7 @@
 reload)                ocf_log info "Reloading..."
                route_start
                ;;
-validate-all)  ;;
+validate-all)  route_validate;;
 *)             route_usage
                exit $OCF_ERR_UNIMPLEMENTED
                ;;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/SAPInstance 
new/resource-agents-4.4.0+git57.70549516/heartbeat/SAPInstance
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/SAPInstance     
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/SAPInstance      
2020-02-24 12:23:11.000000000 +0100
@@ -356,6 +356,8 @@
   InstanceNr=`echo "$InstanceName" | sed 's/.*\([0-9][0-9]\)$/\1/'`
   SAPVIRHOST=`echo "$myInstanceName" | cut -d_ -f3`
 
+  # make sure that we don't care the content of variable from previous run of 
sapinstance_init
+  DIR_EXECUTABLE=""
   # optional OCF parameters, we try to guess which directories are correct
   if  [ -z "$OCF_RESKEY_DIR_EXECUTABLE" ]
   then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/aliyun-vpc-move-ip 
new/resource-agents-4.4.0+git57.70549516/heartbeat/aliyun-vpc-move-ip
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/aliyun-vpc-move-ip      
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/aliyun-vpc-move-ip       
2020-02-24 12:23:11.000000000 +0100
@@ -16,18 +16,39 @@
 OCF_RESKEY_routing_table_default=""
 OCF_RESKEY_interface_default="eth0"
 OCF_RESKEY_profile_default="default"
+OCF_RESKEY_endpoint_default="vpc.aliyuncs.com"
+OCF_RESKEY_aliyuncli_default="detect"
+
 
 : ${OCF_RESKEY_address=${OCF_RESKEY_address_default}}
 : ${OCF_RESKEY_routing_table=${OCF_RESKEY_routing_table_default}}
 : ${OCF_RESKEY_interface=${OCF_RESKEY_interface_default}}
 : ${OCF_RESKEY_profile=${OCF_RESKEY_profile_default}}
+: ${OCF_RESKEY_endpoint=${OCF_RESKEY_endpoint_default}}
+: ${OCF_RESKEY_aliyuncli=${OCF_RESKEY_aliyuncli_default}}
 
 #######################################################################
 
-# aliyuncli doesnt work without HOME parameter
+# aliyun cli doesnt work without HOME parameter
 export HOME="/root"
 
 USAGE="usage: $0 {start|stop|status|meta-data}";
+
+if [ "${OCF_RESKEY_aliyuncli}" = "detect" ]; then
+       OCF_RESKEY_aliyuncli="$(which aliyuncli 2> /dev/null || which aliyun 2> 
/dev/null)"
+fi
+
+if [[ "${OCF_RESKEY_aliyuncli##*/}" == 'aliyuncli' ]]; then
+       OUTPUT="text"
+       EXECUTING='{ print $3 }'
+       IFS_=" "
+       ENDPOINT=""
+elif [[ "${OCF_RESKEY_aliyuncli##*/}" == 'aliyun' ]]; then
+       OUTPUT="table cols=InstanceId,DestinationCidrBlock 
rows=RouteTables.RouteTable[].RouteEntrys.RouteEntry[]"
+       EXECUTING='{ gsub (" ", "", $0); print $1 }'
+       IFS_="|"
+       ENDPOINT="--endpoint $OCF_RESKEY_endpoint"
+fi
 ###############################################################################
 
 
@@ -37,27 +58,37 @@
 #
 ###############################################################################
 
+request_create_route_entry() {
+       cmd="${OCF_RESKEY_aliyuncli} vpc CreateRouteEntry --RouteTableId 
$OCF_RESKEY_routing_table --DestinationCidrBlock ${OCF_RESKEY_address}/32 
--NextHopId $ECS_INSTANCE_ID --NextHopType Instance ${ENDPOINT}"
+       ocf_log debug "executing command: $cmd"
+       $cmd
+}
 
+request_delete_route_entry() {
+       cmd="${OCF_RESKEY_aliyuncli} vpc DeleteRouteEntry --RouteTableId 
$OCF_RESKEY_routing_table --DestinationCidrBlock ${OCF_RESKEY_address}/32 
--NextHopId $ROUTE_TO_INSTANCE ${ENDPOINT}"
+       ocf_log debug "executing command: $cmd"
+       $cmd
+}
+
+request_describe_route_tables() {
+       cmd="${OCF_RESKEY_aliyuncli} vpc DescribeRouteTables --RouteTableId 
$OCF_RESKEY_routing_table --output ${OUTPUT} ${ENDPOINT}"
+       ocf_log debug "executing command: $cmd"
+       ROUTE_TO_INSTANCE=$($cmd |grep $OCF_RESKEY_address | awk -F "${IFS_}" 
"${EXECUTING}")
+}
 
 ip_get_and_configure() {
        ocf_log debug "function: ip_get_and_configure"
 
-       ROUTE_TO_INSTANCE="$($cmd |grep $OCF_RESKEY_address | awk '{ print $3 
}')"
-
+       request_describe_route_tables
        if [ "$ECS_INSTANCE_ID" != "$ROUTE_TO_INSTANCE" ]; then
                if [ -n "$ROUTE_TO_INSTANCE" ]; then
                        ip_drop
                fi
-
-               cmd="aliyuncli vpc CreateRouteEntry --RouteTableId 
$OCF_RESKEY_routing_table --DestinationCidrBlock ${OCF_RESKEY_address}/32 
--NextHopId $ECS_INSTANCE_ID --NextHopType Instance --output text"
-               ocf_log debug "executing command: $cmd"
-               $cmd
+               request_create_route_entry
                rc=$?
                while [ $rc -ne 0 ]; do
                        sleep 1
-                       cmd="aliyuncli vpc CreateRouteEntry --RouteTableId 
$OCF_RESKEY_routing_table --DestinationCidrBlock ${OCF_RESKEY_address}/32 
--NextHopId $ECS_INSTANCE_ID --NextHopType Instance --output text"
-                       ocf_log debug "executing command: $cmd"
-                       $cmd
+                       request_create_route_entry
                        rc=$?
                done
                wait_for_started
@@ -87,10 +118,7 @@
                ocf_log err "command failed, rc $rc"
                return $OCF_ERR_GENERIC
        fi
-
-       cmd="aliyuncli vpc DeleteRouteEntry --RouteTableId 
$OCF_RESKEY_routing_table --DestinationCidrBlock ${OCF_RESKEY_address}/32 
--NextHopId $ROUTE_TO_INSTANCE --output text"
-       ocf_log debug "executing command: $cmd"
-       $cmd
+       request_delete_route_entry
        if [ $? -ne 0 ]; then
                ocf_log err "command failed, rc: $rc"
                return $OCF_ERR_GENERIC
@@ -103,26 +131,18 @@
 }
 
 wait_for_started() {
-       cmd="aliyuncli vpc DescribeRouteTables --RouteTableId 
$OCF_RESKEY_routing_table --output text"
-       ocf_log debug "executing command: $cmd"
-       ROUTE_TO_INSTANCE="$($cmd | grep $OCF_RESKEY_address | awk '{ print $3 
}')"
-
+       request_describe_route_tables
        while [ "$ECS_INSTANCE_ID" != "$ROUTE_TO_INSTANCE" ]; do
                sleep 3
-               cmd="aliyuncli vpc DescribeRouteTables --RouteTableId 
$OCF_RESKEY_routing_table --output text"
-               ocf_log debug "executing command: $cmd"
-               ROUTE_TO_INSTANCE="$($cmd | grep $OCF_RESKEY_address | awk '{ 
print $3 }')"
+               request_describe_route_tables
        done
 }
 
 wait_for_deleted() {
-       ROUTE_TO_INSTANCE="$($cmd |grep $OCF_RESKEY_address | awk '{ print $3 
}')"
-
+       request_describe_route_tables
         while [ ! -z "$ROUTE_TO_INSTANCE" ]; do
                sleep 1
-               cmd="aliyuncli vpc DescribeRouteTables --RouteTableId 
$OCF_RESKEY_routing_table --output text"
-               ocf_log debug "executing command: $cmd"
-               ROUTE_TO_INSTANCE="$($cmd |grep $OCF_RESKEY_address | awk '{ 
print $3 }')"
+               request_describe_route_tables
         done
 }
 
@@ -137,7 +157,16 @@
 by changing an entry in an specific routing table
 </longdesc>
 <shortdesc lang="en">Move IP within a VPC of the Aliyun ECS</shortdesc>
+
 <parameters>
+<parameter name="aliyuncli" required="0">
+<longdesc lang="en">
+Path to command line tools for Aliyun
+</longdesc>
+<shortdesc lang="en">Path to Aliyun CLI tools</shortdesc>
+<content type="string" default="${OCF_RESKEY_aliyuncli_default}" />
+</parameter>
+
 <parameter name="address" required="1">
 <longdesc lang="en">
 VPC private IP address
@@ -145,6 +174,7 @@
 <shortdesc lang="en">vpc ip</shortdesc>
 <content type="string" default="${OCF_RESKEY_address_default}" />
 </parameter>
+
 <parameter name="routing_table" required="1">
 <longdesc lang="en">
 Name of the routing table, where the route for the IP address should be 
changed, i.e. vtb-...
@@ -152,6 +182,7 @@
 <shortdesc lang="en">routing table name</shortdesc>
 <content type="string" default="${OCF_RESKEY_routing_table_default}" />
 </parameter>
+
 <parameter name="interface" required="1">
 <longdesc lang="en">
 Name of the network interface, i.e. eth0
@@ -159,16 +190,25 @@
 <shortdesc lang="en">network interface name</shortdesc>
 <content type="string" default="${OCF_RESKEY_interface_default}" />
 </parameter>
-<parameter name="profile" required="0">
+
+<parameter name="endpoint" required="0">
 <longdesc lang="en">
-Valid Aliyun CLI profile name (see 'aliyuncli configure').
+An endpoint is the service entry of an Alibaba Cloud service, i.e. 
vpc.cn-beijing.aliyuncs.com
+</longdesc>
+<shortdesc lang="en">service endpoint</shortdesc>
+<content type="string" default="${OCF_RESKEY_endpoint_default}" />
+</parameter>
 
-See 
https://www.alibabacloud.com/help/doc-detail/43039.htm?spm=a2c63.p38356.b99.16.38a914abRZtOU3
 for more information about aliyuncli.
+<parameter name="profile" required="0">
+<longdesc lang="en">
+Valid Aliyun CLI profile name (see 'aliyun cli configure').
+See https://www.alibabacloud.com/help/zh/product/29991.htm for more 
information about aliyun cli.
 </longdesc>
 <shortdesc lang="en">profile name</shortdesc>
 <content type="string" default="${OCF_RESKEY_profile_default}" />
 </parameter>
 </parameters>
+
 <actions>
 <action name="start" timeout="180s" />
 <action name="stop" timeout="180s" />
@@ -183,6 +223,11 @@
 ecs_ip_validate() {
        ocf_log debug "function: validate"
 
+       if [ -z "${OCF_RESKEY_aliyuncli}" ]; then
+               ocf_exit_reason "unable to detect aliyuncli binary"
+               exit $OCF_ERR_INSTALLED
+       fi
+
        # IP address
        if [ -z "$OCF_RESKEY_address" ]; then
                ocf_log err "IP address parameter not set $OCF_RESKEY_ADDRESS!"
@@ -263,10 +308,7 @@
 
 ecs_ip_monitor() {
        ocf_log debug "function: ecsip_monitor: check routing table"
-       cmd="aliyuncli vpc DescribeRouteTables --RouteTableId 
$OCF_RESKEY_routing_table --output text"
-       ocf_log debug "executing command: $cmd"
-
-       ROUTE_TO_INSTANCE="$($cmd |grep $OCF_RESKEY_address | awk '{ print $3 
}')"
+       request_describe_route_tables
 
        if [ "$ECS_INSTANCE_ID" != "$ROUTE_TO_INSTANCE" ]; then
                ocf_log debug "not routed to this instance ($ECS_INSTANCE_ID) 
but to instance $ROUTE_TO_INSTANCE"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/apache 
new/resource-agents-4.4.0+git57.70549516/heartbeat/apache
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/apache  2019-09-30 
14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/apache   2020-02-24 
12:23:11.000000000 +0100
@@ -167,13 +167,16 @@
 
 # May be useful to add other distros in future
 validate_default_config() {
-       if [ -e /etc/SuSE-release ]; then
-               validate_default_suse_config
-       elif [ -e /etc/debian_version ]; then
-               validate_default_debian_config
-       else
-               return 0
-       fi
+       case "$( get_release_id )" in
+                *SUSE)
+                        validate_default_suse_config
+                        ;;
+                Debian)
+                        validate_default_debian_config
+                        ;;
+                *)
+                        return 0
+        esac
 }
 
 # When using the default /etc/apache2/httpd.conf on SUSE, the file
@@ -190,10 +193,10 @@
        then
                [ -x "/usr/sbin/a2enmod" ] && ocf_run -q /usr/sbin/a2enmod 
status
                # init script style, for crusty old SUSE
-               if [ -e "/etc/init.d/apache2" ]; then
+               if [ -x "/etc/init.d/apache2" ]; then
                        ocf_run -q /etc/init.d/apache2 configtest || return 1
                # systemd style, for shiny new SUSE
-               elif [ -e "/usr/sbin/start_apache2" ]; then
+               elif [ -x "/usr/sbin/start_apache2" ]; then
                        ocf_run -q /usr/sbin/start_apache2 -t || return 1
                fi
        fi
@@ -206,8 +209,6 @@
                apache_mod_status="/usr/lib64/apache2-prefork/mod_status.so"
                if [ -e $apache_mod_status ]; then
                        LOAD_STATUS_MODULE="LoadModule status_module 
$apache_mod_status"
-                       # append to apache options the module so we can load it 
for suse only systems. 
-                       HTTPDOPTS="$HTTPDOPTS -C $LOAD_STATUS_MODULE"
                fi
        fi
        return 0
@@ -242,9 +243,17 @@
        validate_default_config || return $OCF_ERR_CONFIGURED
 
        if [ -z $PIDFILE_DIRECTIVE ]; then
-               ocf_run $HTTPD $HTTPDOPTS $OPTIONS -f $CONFIGFILE
+               if [ -z "$LOAD_STATUS_MODULE" ]; then
+                       ocf_run $HTTPD $HTTPDOPTS $OPTIONS -f $CONFIGFILE
+               else
+                       ocf_run $HTTPD -C "$LOAD_STATUS_MODULE" $HTTPDOPTS 
$OPTIONS -f $CONFIGFILE
+               fi
        else
-               ocf_run $HTTPD $HTTPDOPTS $OPTIONS -f $CONFIGFILE -c "PidFile 
$PidFile"
+               if [ -z "$LOAD_STATUS_MODULE" ]; then
+                       ocf_run $HTTPD $HTTPDOPTS $OPTIONS -f $CONFIGFILE -c 
"PidFile $PidFile"
+               else
+                       ocf_run $HTTPD $HTTPDOPTS -C "$LOAD_STATUS_MODULE" 
$OPTIONS -f $CONFIGFILE -c "PidFile $PidFile"
+               fi
        fi
 
        tries=0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/aws-vpc-route53.in 
new/resource-agents-4.4.0+git57.70549516/heartbeat/aws-vpc-route53.in
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/aws-vpc-route53.in      
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/aws-vpc-route53.in       
2020-02-24 12:23:11.000000000 +0100
@@ -213,12 +213,31 @@
        if [ "$__OCF_ACTION" = "start" ] || ocf_is_probe ; then
                #
                cmd="aws $AWS_PROFILE_OPT route53 list-resource-record-sets 
--hosted-zone-id $OCF_RESKEY_hostedzoneid --query 
ResourceRecordSets[?Name=='$OCF_RESKEY_fullname']"
-               ocf_log debug "Route53 Agent Starting or probing - executing 
monitoring API call: $cmd"
-               ARECORD="$($cmd | grep RESOURCERECORDS | awk '{ print $2 }')"
+               ocf_log info "Route53 Agent Starting or probing - executing 
monitoring API call: $cmd"
+               CLIRES="$($cmd 2>&1)"
+               rc=$?
+               ocf_log debug "awscli returned code: $rc"
+               if [ $rc -ne 0 ]; then
+                       CLIRES=$(echo $CLIRES | grep -v '^$')
+                       ocf_log warn "Route53 API returned an error: $CLIRES"
+                       ocf_log warn "Skipping cluster action due to API call 
error"
+                       return $OCF_ERR_GENERIC
+               fi
+               ARECORD=$(echo $CLIRES | grep RESOURCERECORDS | awk '{ print $5 
}')
+               #
+               if ocf_is_probe; then
+                       #
+                       # Prevent R53 record change during probe
+                       #
+                       if [[ $ARECORD =~ $IPREGEX ]] && [ "$ARECORD" != 
"$IPADDRESS" ]; then
+                               ocf_log debug "Route53 DNS record $ARECORD 
found at probing, disregarding"
+                               return $OCF_NOT_RUNNING
+                       fi
+               fi
        else
                #
                cmd="dig +retries=3 +time=5 +short $OCF_RESKEY_fullname 
2>/dev/null"
-               ocf_log debug "executing monitoring command : $cmd"
+               ocf_log info "executing monitoring command : $cmd"
                ARECORD="$($cmd)"
                rc=$?
                ocf_log debug "dig return code: $rc"
@@ -231,18 +250,19 @@
                        rc=$?
                        ocf_log debug "awscli return code: $rc"
                        if [ $rc -ne 0 ]; then
-                               ocf_log info "Route53 API returned an error: 
$CLIRES"
-                               ocf_log info "Monitor skipping cluster action 
due to API call error"
+                               CLIRES=$(echo $CLIRES | grep -v '^$')
+                               ocf_log warn "Route53 API returned an error: 
$CLIRES"
+                               ocf_log warn "Monitor skipping cluster action 
due to API call error"
                                return $OCF_SUCCESS
                        fi
                        ARECORD=$(echo $CLIRES | grep RESOURCERECORDS | awk '{ 
print $5 }')
                fi
                #
        fi
-       ocf_log debug "Route53 DNS record pointing $OCF_RESKEY_fullname to IP 
address $ARECORD"
+       ocf_log info "Route53 DNS record pointing $OCF_RESKEY_fullname to IP 
address $ARECORD"
        #
        if [ "$ARECORD" == "$IPADDRESS" ]; then
-               ocf_log debug "Route53 DNS record $ARECORD found"
+               ocf_log info "Route53 DNS record $ARECORD found"
                return $OCF_SUCCESS
        elif [[ $ARECORD =~ $IPREGEX ]] && [ "$ARECORD" != "$IPADDRESS" ]; then
                ocf_log info "Route53 DNS record points to a different host, 
setting DNS record on Route53 to this host"
@@ -296,13 +316,22 @@
        EOF
        cmd="aws --profile $OCF_RESKEY_profile route53 
change-resource-record-sets --hosted-zone-id $OCF_RESKEY_hostedzoneid 
--change-batch file://$ROUTE53RECORD "
        ocf_log debug "Executing command: $cmd"
-       CHANGEID=$($cmd | grep CHANGEINFO | awk -F'\t' '{ print $3 }' )
+       CLIRES="$($cmd 2>&1)"
+       rc=$?
+       ocf_log debug "awscli returned code: $rc"
+       if [ $rc -ne 0 ]; then
+               CLIRES=$(echo $CLIRES | grep -v '^$')
+               ocf_log warn "Route53 API returned an error: $CLIRES"
+               ocf_log warn "Skipping cluster action due to API call error"
+               return $OCF_ERR_GENERIC
+       fi
+       CHANGEID=$(echo $CLIRES | awk '{ print $12 }')
        ocf_log debug "Change id: $CHANGEID"
        rmtempfile $ROUTE53RECORD
        CHANGEID=$(echo $CHANGEID | cut -d'/' -f 3 | cut -d'"' -f 1 )
        ocf_log debug "Change id: $CHANGEID"
        STATUS="PENDING"
-       MYSECONDS=8
+       MYSECONDS=20
        while [ "$STATUS" = 'PENDING' ]; do
                sleep $MYSECONDS
                STATUS="$(aws --profile $OCF_RESKEY_profile route53 get-change 
--id $CHANGEID | grep CHANGEINFO | awk -F'\t' '{ print $4 }' |cut -d'"' -f 2 )"
@@ -327,7 +356,11 @@
        #
        ocf_log info "Starting Route53 DNS update...."
        IPADDRESS="$(curl -s 
http://169.254.169.254/latest/meta-data/local-ipv4)"
-       _update_record "UPSERT" "$IPADDRESS"
+       r53_monitor
+       if [ $? != $OCF_SUCCESS ]; then
+               ocf_log info "Could not start agent - check configurations"
+               return $OCF_ERR_GENERIC
+       fi
        return $OCF_SUCCESS
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/azure-lb 
new/resource-agents-4.4.0+git57.70549516/heartbeat/azure-lb
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/azure-lb        
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/azure-lb 2020-02-24 
12:23:11.000000000 +0100
@@ -18,6 +18,11 @@
 
 # Defaults
 OCF_RESKEY_nc_default="/usr/bin/nc"
+case "$( get_release_id )" in
+       *SUSE)
+               OCF_RESKEY_nc_default="/usr/bin/socat"
+       ;;
+esac
 OCF_RESKEY_port_default="61000"
 
 : ${OCF_RESKEY_nc=${OCF_RESKEY_nc_default}}
@@ -54,8 +59,7 @@
 <parameter name="nc">
 <longdesc lang="en">
 The full path of the used binary. This can be nc or socat path.
-The default is /usr/bin/nc.
-If you need /usr/bin/socat this parameter should be set.
+The default is /usr/bin/nc and /usr/bin/socat for SUSE distributions.
 </longdesc>
 <shortdesc lang="en">Full path of the used binary (nc or socat are 
allowed)</shortdesc>
 <content type="string" default="${OCF_RESKEY_nc_default}"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/exportfs 
new/resource-agents-4.4.0+git57.70549516/heartbeat/exportfs
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/exportfs        
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/exportfs 2020-02-24 
12:23:11.000000000 +0100
@@ -52,7 +52,7 @@
 the use case to export the directory(-ies) for multiple subnets, please
 do config a dedicated primitive for each subnet CIDR ip address, 
 and do not attempt to use multiple CIDR ip addresses in a space
-seperated list, like in /etc/exports.
+separated list, like in /etc/exports.
 </longdesc>
 <shortdesc lang="en">
 Client ACL.
@@ -82,7 +82,7 @@
 <content type="string" />
 </parameter>
 
-<parameter name="fsid" unique="1" required="1">
+<parameter name="fsid" unique="0" required="1">
 <longdesc lang="en">
 The fsid option to pass to exportfs. This can be a unique positive
 integer, a UUID (assuredly sans comma characters), or the special string
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/gcp-pd-move.in 
new/resource-agents-4.4.0+git57.70549516/heartbeat/gcp-pd-move.in
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/gcp-pd-move.in  
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/gcp-pd-move.in   
2020-02-24 12:23:11.000000000 +0100
@@ -102,6 +102,11 @@
 <shortdesc lang="en">Optional device name</shortdesc>
 <content type="boolean" default="" />
 </parameter>
+<parameter name="stackdriver_logging" unique="1" required="0">
+<longdesc lang="en">Use stackdriver_logging output to global resource (yes, 
true, enabled)</longdesc>
+<shortdesc lang="en">Use stackdriver_logging</shortdesc>
+<content type="string" default="no" />
+</parameter>
 </parameters>
 <actions>
 <action name="start" timeout="300s" />
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/iSCSILogicalUnit.in 
new/resource-agents-4.4.0+git57.70549516/heartbeat/iSCSILogicalUnit.in
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/iSCSILogicalUnit.in     
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/iSCSILogicalUnit.in      
2020-02-24 12:23:11.000000000 +0100
@@ -64,6 +64,10 @@
 # set 0 as a default value for lio iblock device number
 OCF_RESKEY_lio_iblock_default=0
 OCF_RESKEY_lio_iblock=${OCF_RESKEY_lio_iblock:-$OCF_RESKEY_lio_iblock_default}
+# Set LIO-T backend default as 'block'
+OCF_RESKEY_liot_bstype_default="block"
+OCF_RESKEY_liot_bstype="${OCF_RESKEY_liot_bstype}"
+: ${OCF_RESKEY_liot_bstype=${OCF_RESKEY_liot_bstype_default}}
 
 ## tgt specifics
 # tgt has "backing store type" and "backing store open flags",
@@ -71,6 +75,9 @@
 #
 # suggestions how to make this generic accross all supported implementations?
 # how should they be named, how should they be mapped to implementation 
specifics?
+# # Conversation: Due to the phase out of most implementations other than lio-t
+# # I have decided to use specific implementation of tgt_bstype like key for
+# # lio-t.
 #
 # OCF_RESKEY_tgt_bstype
 # OCF_RESKEY_tgt_bsoflags
@@ -143,7 +150,11 @@
 <parameter name="scsi_sn" required="0" unique="1">
 <longdesc lang="en">
 The SCSI serial number to be configured for this Logical Unit.
-The default is a hash of the resource name, truncated to 8 bytes.
+The default is a hash of the resource name, truncated to 8 bytes,
+meaning 26 hex characters.
+If you are using XenServer with multipath as iSCSI client, you 
+MUST make sure this value is set, or else XenServer multipath will
+not be able to access the LUN
 </longdesc>
 <shortdesc lang="en">SCSI serial number</shortdesc>
 <content type="string" default="${OCF_RESKEY_scsi_sn_default}"/>
@@ -268,6 +279,18 @@
 <content type="integer" default="${OCF_RESKEY_lio_iblock_default}"/>
 </parameter>
 
+<parameter name="liot_bstype" required="0" unique="0">
+<longdesc lang="en">
+LIO-T specific backing store type. If you want to use aio,
+set this to 'block'. If you want to use async IO, set this to 'fileio'.
+Async I/O works also with block devices, however - you need to understand
+the consequences. See targetcli(8). If using file backend, you need to create 
this file in
+advance.
+</longdesc>
+<shortdesc lang="en">LIO-T backing store type</shortdesc>
+<content type="string" default="${OCF_RESKEY_liot_bstype_default}"/>
+</parameter>
+
 </parameters>
 
 <actions>
@@ -407,15 +430,26 @@
                
iblock_attrib_path="/sys/kernel/config/target/core/iblock_${OCF_RESKEY_lio_iblock}/${OCF_RESOURCE_INSTANCE}/attrib"
                # For lio, we first have to create a target device, then
                # add it to the Target Portal Group as an LU.
-               ocf_run targetcli /backstores/block create 
name=${OCF_RESOURCE_INSTANCE} dev=${OCF_RESKEY_path} || exit $OCF_ERR_GENERIC
+               # Handle differently 'block' and 'fileio'
+               if [ ${OCF_RESKEY_liot_bstype} == "block" ] 
+               then
+                       ocf_run targetcli /backstores/${OCF_RESKEY_liot_bstype} 
create name=${OCF_RESOURCE_INSTANCE} dev=${OCF_RESKEY_path} $(test -n 
"$OCF_RESKEY_scsi_sn" && echo "wwn=${OCF_RESKEY_scsi_sn}") || exit 
$OCF_ERR_GENERIC
+               elif [ ${OCF_RESKEY_liot_bstype} == "fileio" ] 
+               then
+                       ocf_run targetcli /backstores/${OCF_RESKEY_liot_bstype} 
create ${OCF_RESOURCE_INSTANCE} ${OCF_RESKEY_path} $(test -n 
"$OCF_RESKEY_scsi_sn" && echo "wwn=${OCF_RESKEY_scsi_sn}") || exit 
$OCF_ERR_GENERIC
+               fi
                if [ -n "${OCF_RESKEY_scsi_sn}" ]; then
                        echo ${OCF_RESKEY_scsi_sn} > 
/sys/kernel/config/target/core/iblock_${OCF_RESKEY_lio_iblock}/${OCF_RESOURCE_INSTANCE}/wwn/vpd_unit_serial
                fi
-               ocf_run targetcli /iscsi/${OCF_RESKEY_target_iqn}/tpg1/luns 
create /backstores/block/${OCF_RESOURCE_INSTANCE} ${OCF_RESKEY_lun} || exit 
$OCF_ERR_GENERIC
+               ocf_run targetcli /iscsi/${OCF_RESKEY_target_iqn}/tpg1/luns 
create /backstores/${OCF_RESKEY_liot_bstype}/${OCF_RESOURCE_INSTANCE} 
${OCF_RESKEY_lun} || exit $OCF_ERR_GENERIC
 
                if $(ip a | grep -q inet6); then
-                       ocf_run -q targetcli 
/iscsi/${OCF_RESKEY_target_iqn}/tpg1/portals delete 0.0.0.0 3260
-                       ocf_run -q targetcli 
/iscsi/${OCF_RESKEY_target_iqn}/tpg1/portals create ::0
+                       # Solving the 0.0.0.0 conversion to IPv6 when using 
specific portal addresses
+                       if $(ocf_run -q targetcli 
/iscsi/${OCF_RESKEY_target_iqn}/tpg1/portals | grep -q 0.0.0.0)
+                       then
+                               ocf_run -q targetcli 
/iscsi/${OCF_RESKEY_target_iqn}/tpg1/portals delete 0.0.0.0 3260
+                               ocf_run -q targetcli 
/iscsi/${OCF_RESKEY_target_iqn}/tpg1/portals create ::0
+                       fi
                fi
 
                if [ -n "${OCF_RESKEY_allowed_initiators}" ]; then
@@ -506,7 +540,7 @@
                # delete the backstore, then something is seriously
                # wrong and we need to fail the stop operation
                # (potentially causing fencing)
-               ocf_run targetcli /backstores/block delete 
${OCF_RESOURCE_INSTANCE} || exit $OCF_ERR_GENERIC
+               ocf_run targetcli /backstores/${OCF_RESKEY_liot_bstype} delete 
${OCF_RESOURCE_INSTANCE} || exit $OCF_ERR_GENERIC
                ;;
        esac
 
@@ -645,13 +679,13 @@
        iet)
                # IET does not support setting the vendor and product ID
                # (it always uses "IET" and "VIRTUAL-DISK")
-               unsupported_params="vendor_id product_id allowed_initiators 
lio_iblock tgt_bstype tgt_bsoflags tgt_bsopts tgt_device_type emulate_tpu 
emulate_3pc emulate_caw"
+               unsupported_params="vendor_id product_id allowed_initiators 
lio_iblock tgt_bstype tgt_bsoflags tgt_bsopts tgt_device_type emulate_tpu 
emulate_3pc emulate_caw liot_bstype"
                ;;
        tgt)
-               unsupported_params="allowed_initiators lio_iblock emulate_tpu 
emulate_3pc emulate_caw"
+               unsupported_params="allowed_initiators lio_iblock emulate_tpu 
emulate_3pc emulate_caw liot_bstype"
                ;;
        lio)
-               unsupported_params="scsi_id vendor_id product_id tgt_bstype 
tgt_bsoflags tgt_bsopts tgt_device_type emulate_tpu emulate_3pc emulate_caw"
+               unsupported_params="scsi_id vendor_id product_id tgt_bstype 
tgt_bsoflags tgt_bsopts tgt_device_type emulate_tpu emulate_3pc emulate_caw 
liot_bstype"
                ;;
        lio-t)
                unsupported_params="scsi_id vendor_id product_id tgt_bstype 
tgt_bsoflags tgt_bsopts tgt_device_type lio_iblock"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/lvmlockd 
new/resource-agents-4.4.0+git57.70549516/heartbeat/lvmlockd
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/lvmlockd        
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/lvmlockd 2020-02-24 
12:23:11.000000000 +0100
@@ -196,11 +196,11 @@
        out=$(lvmconfig 'global/locking_type')
        lock_type=$(echo "$out" | cut -d'=' -f2)
 
-       if [ "$use_lvmlockd" -ne 1 ] ; then
+       if [ "$use_lvmlockd" != 1 ] ; then
                ocf_log info "setting \"use_lvmlockd=1\" in /etc/lvm/lvm.conf 
..."
                sed -i 's,^[[:blank:]]*use_lvmlockd[[:blank:]]*=.*,\ \ \ \ 
use_lvmlockd = 1,g' /etc/lvm/lvm.conf
        fi
-       if [ "$lock_type" -ne 1 ] ; then
+       if [ "$lock_type" != 1 ] ; then
                ocf_log info "setting \"locking_type=1\" in /etc/lvm/lvm.conf 
..."
                sed -i 's,^[[:blank:]]*locking_type[[:blank:]]*=.*,\ \ \ \ 
locking_type = 1,g' /etc/lvm/lvm.conf
        fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/mysql-common.sh 
new/resource-agents-4.4.0+git57.70549516/heartbeat/mysql-common.sh
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/mysql-common.sh 
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/mysql-common.sh  
2020-02-24 12:23:11.000000000 +0100
@@ -239,8 +239,8 @@
     --datadir=$OCF_RESKEY_datadir \
     --log-error=$OCF_RESKEY_log \
     $OCF_RESKEY_additional_parameters \
-    $mysql_extra_params >/dev/null 2>&1 &
-    pid=$!"
+    $mysql_extra_params >/dev/null 2>&1" &
+    pid=$!
 
     # Spin waiting for the server to come up.
     # Let the CRM/LRM time us out if required.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/ocf-binaries.in 
new/resource-agents-4.4.0+git57.70549516/heartbeat/ocf-binaries.in
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/ocf-binaries.in 
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/ocf-binaries.in  
2020-02-24 12:23:11.000000000 +0100
@@ -26,6 +26,8 @@
 : ${GREP:=grep}
 : ${IFCONFIG:=ifconfig}
 : ${IPTABLES:=iptables}
+## for cases that are known not to be serviceable with iptables-nft impl.
+: ${IPTABLES_LEGACY:=iptables-legacy}
 : ${IP2UTIL:=ip}
 : ${MDADM:=mdadm}
 : ${MODPROBE:=modprobe}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/oralsnr 
new/resource-agents-4.4.0+git57.70549516/heartbeat/oralsnr
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/oralsnr 2019-09-30 
14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/oralsnr  2020-02-24 
12:23:11.000000000 +0100
@@ -116,7 +116,7 @@
 <content type="string" default="${OCF_RESKEY_listener_default}" />
 </parameter>
 
-<parameter name="tns_admin" required="0" unique="1">
+<parameter name="tns_admin" required="0" unique="0">
 <longdesc lang="en">
        Full path to the directory that contains the Oracle
        listener tnsnames.ora configuration file.  The shell
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/pgsql 
new/resource-agents-4.4.0+git57.70549516/heartbeat/pgsql
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/pgsql   2019-09-30 
14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/pgsql    2020-02-24 
12:23:11.000000000 +0100
@@ -700,7 +700,7 @@
     fi
 
     if [ "$output" = "f" ]; then
-        ocf_log info "PostgreSQL is alredy Master. Don't execute promote."
+        ocf_log info "PostgreSQL is already Master. Don't execute promote."
         return $OCF_SUCCESS
     fi
 
@@ -720,7 +720,11 @@
         ocf_log info "Restarting PostgreSQL instead of promote."
         #stop : this function returns $OCF_SUCCESS only.
         pgsql_real_stop slave
-        rm -f $RECOVERY_CONF
+        if "${USE_STANDBY_SIGNAL}"; then
+            rm -f ${OCF_RESKEY_pgdata}/standby.signal
+        else
+            rm -f $RECOVERY_CONF
+        fi
         pgsql_real_start
         rc=$?
         if [ $rc -ne $OCF_RUNNING_MASTER ]; then
@@ -1612,12 +1616,24 @@
     fi
 
 cat > $RECOVERY_CONF <<END
-standby_mode = 'on'
 primary_conninfo = 'host=${OCF_RESKEY_master_ip} port=${OCF_RESKEY_pgport} 
user=${OCF_RESKEY_repuser} application_name=${NODENAME} 
${OCF_RESKEY_primary_conninfo_opt}'
 restore_command = '${OCF_RESKEY_restore_command}'
 recovery_target_timeline = 'latest'
 END
 
+    if "${USE_STANDBY_SIGNAL}"; then
+        # create a standby.signal to start standby server.
+        runasowner "touch ${OCF_RESKEY_pgdata}/standby.signal"
+        if [ $? -ne 0 ]; then
+            ocf_exit_reason "Can't create ${OCF_RESKEY_pgdata}/standby.signal."
+            return 1
+        fi
+    else
+cat >> $RECOVERY_CONF <<END
+standby_mode = 'on'
+END
+    fi
+
     user_recovery_conf >> $RECOVERY_CONF
     ocf_log debug "Created recovery.conf. host=${OCF_RESKEY_master_ip}, 
user=${OCF_RESKEY_repuser}"
     return 0
@@ -1835,6 +1851,7 @@
     local version
     local check_config_rc
     local rep_mode_string
+    local recovery_conf_string
     local socket_directories
     local rc
 
@@ -1898,6 +1915,22 @@
             ocf_exit_reason "Replication mode needs PostgreSQL 9.1 or higher."
             return $OCF_ERR_INSTALLED
         fi
+        ocf_version_cmp "$version" "12"
+        rc=$?
+        if [ $rc -eq 1 ]||[ $rc -eq 2 ]; then
+            # change the standby method for PosrgreSQL 12 or later.
+            USE_STANDBY_SIGNAL=true
+            # change the path to recovery.conf because it cause PostgreSQL 
start error.
+            RECOVERY_CONF=${OCF_RESKEY_tmpdir}/recovery.conf
+            if [ $check_config_rc -eq 0 ]; then
+                # adding recovery parameters to postgresql.conf.
+                recovery_conf_string="include '$RECOVERY_CONF' # added by 
pgsql RA"
+                if ! grep -q "^[[:space:]]*$recovery_conf_string" 
$OCF_RESKEY_config; then
+                    ocf_log info "adding include directive 
$recovery_conf_string into $OCF_RESKEY_config"
+                    echo "$recovery_conf_string" >> $OCF_RESKEY_config
+                fi
+            fi
+        fi
         if [ ! -n "$OCF_RESKEY_master_ip" ]; then
             ocf_exit_reason "master_ip can't be empty."
             return $OCF_ERR_CONFIGURED
@@ -2107,6 +2140,7 @@
 PGSQL_WAL_RECEIVER_STATUS_ATTR="${RESOURCE_NAME}-receiver-status"
 RECOVERY_CONF=${OCF_RESKEY_pgdata}/recovery.conf
 NODENAME=$(ocf_local_nodename | tr '[A-Z]' '[a-z]')
+USE_STANDBY_SIGNAL=false
 
 case "$1" in
     methods)    pgsql_methods
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/podman 
new/resource-agents-4.4.0+git57.70549516/heartbeat/podman
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/podman  2019-09-30 
14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/podman   2020-02-24 
12:23:11.000000000 +0100
@@ -441,31 +441,7 @@
 
 image_exists()
 {
-       # if no tag was specified, use default "latest"
-       local COLON_FOUND=0
-       local SLASH_FOUND=0
-       local SERVER_NAME=""
-       local IMAGE_NAME="${OCF_RESKEY_image}"
-       local IMAGE_TAG="latest"
-
-       SLASH_FOUND="$(echo "${OCF_RESKEY_image}" | grep -o '/' | grep -c .)"
-
-       if [ ${SLASH_FOUND} -ge 1 ]; then
-               SERVER_NAME="$(echo ${IMAGE_NAME} | cut -d / -f 
1-${SLASH_FOUND})"
-               IMAGE_NAME="$(echo ${IMAGE_NAME} | awk -F'/' '{print $NF}')"
-       fi
-
-       COLON_FOUND="$(echo "${IMAGE_NAME}" | grep -o ':' | grep -c .)"
-       if [ ${COLON_FOUND} -ge 1 ]; then
-               IMAGE_TAG="$(echo ${IMAGE_NAME} | awk -F':' '{print $NF}')"
-               IMAGE_NAME="$(echo ${IMAGE_NAME} | cut -d : -f 
1-${COLON_FOUND})"
-       fi
-
-       # IMAGE_NAME might be following formats:
-       # - image
-       # - repository:port/image
-       # - docker.io/image (some distro will display "docker.io/" as prefix)
-       podman images | awk '{print $1 ":" $2}' | egrep -q -s 
"^(docker.io\/|${SERVER_NAME}\/)?${IMAGE_NAME}:${IMAGE_TAG}\$"
+       podman image exists "${OCF_RESKEY_image}"
        if [ $? -eq 0 ]; then
                # image found
                return 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/rabbitmq-cluster 
new/resource-agents-4.4.0+git57.70549516/heartbeat/rabbitmq-cluster
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/rabbitmq-cluster        
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/rabbitmq-cluster 
2020-02-24 12:23:11.000000000 +0100
@@ -552,6 +552,7 @@
 
        if [ $rc -ne 0 ]; then
                ocf_log err "rabbitmq-server stop command failed: $RMQ_CTL 
stop, $rc"
+               rmq_delete_nodename
                return $rc
        fi
 
@@ -565,6 +566,7 @@
                        break
                elif [ "$rc" -ne $OCF_SUCCESS ]; then
                        ocf_log info "rabbitmq-server stop failed: $rc"
+                       rmq_delete_nodename
                        exit $OCF_ERR_GENERIC
                fi
                sleep 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/heartbeat/redis.in 
new/resource-agents-4.4.0+git57.70549516/heartbeat/redis.in
--- old/resource-agents-4.3.0+git178.b102c209/heartbeat/redis.in        
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/heartbeat/redis.in 2020-02-24 
12:23:11.000000000 +0100
@@ -698,15 +698,15 @@
 }
 
 redis_validate() {
-       if [[ -x "$REDIS_SERVER" ]]; then
+       if [[ ! -x "$REDIS_SERVER" ]]; then
                ocf_log err "validate: $REDIS_SERVER does not exist or is not 
executable"
                return $OCF_ERR_INSTALLED
        fi
-       if [[ -x "$REDIS_CLIENT" ]]; then
+       if [[ ! -x "$REDIS_CLIENT" ]]; then
                ocf_log err "validate: $REDIS_CLIENT does not exist or is not 
executable"
                return $OCF_ERR_INSTALLED
        fi
-       if [[ -f "$REDIS_CONFIG" ]]; then
+       if [[ ! -f "$REDIS_CONFIG" ]]; then
                ocf_log err "validate: $REDIS_CONFIG does not exist"
                return $OCF_ERR_CONFIGURED
        fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/ldirectord/ldirectord.in 
new/resource-agents-4.4.0+git57.70549516/ldirectord/ldirectord.in
--- old/resource-agents-4.3.0+git178.b102c209/ldirectord/ldirectord.in  
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/ldirectord/ldirectord.in   
2020-02-24 12:23:11.000000000 +0100
@@ -1496,6 +1496,9 @@
                                } elsif ($rcmd =~ /^persistent\s*=\s*(.*)/) {
                                        $1 =~ /(\d+)/ or &config_error($line, 
"invalid persistent timeout");
                                        $vsrv{persistent} = $1;
+                               } elsif ($rcmd =~ /^schedflags\s*=\s*(.*)/) {
+                                       $1 =~ /(\S+)/ or &config_error($line, 
"invalid sched-flags");
+                                       $vsrv{schedflags} = $1;
                                } elsif ($rcmd =~ /^netmask\s*=\s*(.*)/) {
                                        my $val = $1;
                                        if ($vsrv{addressfamily} == AF_INET6) {
@@ -2286,6 +2289,9 @@
                        $$v{flags} .= "-p $$v{persistent} ";
                        $$v{flags} .= "-M $$v{netmask} " if defined 
($$v{netmask});
                }
+               if (defined $$v{schedflags}) {
+                       $$v{flags} .= "-b $$v{schedflags} ";
+               }
                my $real = $$v{real};
                for my $r (@$real) {
                        $$r{forw} = get_forward_flag($$r{forward});
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resource-agents-4.3.0+git178.b102c209/resource-agents.spec.in 
new/resource-agents-4.4.0+git57.70549516/resource-agents.spec.in
--- old/resource-agents-4.3.0+git178.b102c209/resource-agents.spec.in   
2019-09-30 14:51:57.000000000 +0200
+++ new/resource-agents-4.4.0+git57.70549516/resource-agents.spec.in    
2020-02-24 12:23:11.000000000 +0100
@@ -98,6 +98,9 @@
 # nfsserver / netfs.sh
 Requires: /usr/sbin/rpc.nfsd /sbin/rpc.statd /usr/sbin/rpc.mountd
 
+# ocf-distro
+Requires: lsb-release
+
 # rgmanager
 %if %{with rgmanager}
 # ip.sh


Reply via email to