diff --git a/SOURCES/bz1722004-1-fencing-inetX_only-SSH-fence_zvmip.patch b/SOURCES/bz1722004-1-fencing-inetX_only-SSH-fence_zvmip.patch
new file mode 100644
index 0000000..6ee722d
--- /dev/null
+++ b/SOURCES/bz1722004-1-fencing-inetX_only-SSH-fence_zvmip.patch
@@ -0,0 +1,756 @@
+From cecf3b3edeccbac6293b95073b0c0ad4f02a8652 Mon Sep 17 00:00:00 2001
+From: Oyvind Albrigtsen <oalbrigt@redhat.com>
+Date: Tue, 12 Nov 2019 17:25:57 +0100
+Subject: [PATCH] fencing: only use inetX_only parameters for SSH based agents
+ and fence_zvmip, and fixed syntax issue for Gawk v5+
+
+---
+ agents/zvm/fence_zvmip.py                    |  2 +-
+ lib/fencing.py.py                            |  4 ++--
+ make/agentpycheck.mk                         |  2 +-
+ tests/data/metadata/fence_amt.xml            | 10 ----------
+ tests/data/metadata/fence_amt_ws.xml         | 10 ----------
+ tests/data/metadata/fence_apc_snmp.xml       | 10 ----------
+ tests/data/metadata/fence_cisco_mds.xml      | 10 ----------
+ tests/data/metadata/fence_cisco_ucs.xml      | 10 ----------
+ tests/data/metadata/fence_docker.xml         | 10 ----------
+ tests/data/metadata/fence_drac.xml           | 10 ----------
+ tests/data/metadata/fence_eaton_snmp.xml     | 10 ----------
+ tests/data/metadata/fence_emerson.xml        | 10 ----------
+ tests/data/metadata/fence_eps.xml            | 10 ----------
+ tests/data/metadata/fence_ibmblade.xml       | 10 ----------
+ tests/data/metadata/fence_idrac.xml          | 10 ----------
+ tests/data/metadata/fence_ifmib.xml          | 10 ----------
+ tests/data/metadata/fence_ilo.xml            | 10 ----------
+ tests/data/metadata/fence_ilo2.xml           | 10 ----------
+ tests/data/metadata/fence_ilo3.xml           | 10 ----------
+ tests/data/metadata/fence_ilo4.xml           | 10 ----------
+ tests/data/metadata/fence_imm.xml            | 10 ----------
+ tests/data/metadata/fence_intelmodular.xml   | 10 ----------
+ tests/data/metadata/fence_ipdu.xml           | 10 ----------
+ tests/data/metadata/fence_ipmilan.xml        | 10 ----------
+ tests/data/metadata/fence_netio.xml          | 10 ----------
+ tests/data/metadata/fence_powerman.xml       | 10 ----------
+ tests/data/metadata/fence_pve.xml            | 10 ----------
+ tests/data/metadata/fence_raritan.xml        | 10 ----------
+ tests/data/metadata/fence_redfish.xml        | 10 ----------
+ tests/data/metadata/fence_rhevm.xml          | 10 ----------
+ tests/data/metadata/fence_sanbox2.xml        | 10 ----------
+ tests/data/metadata/fence_tripplite_snmp.xml | 10 ----------
+ tests/data/metadata/fence_vmware_rest.xml    | 10 ----------
+ tests/data/metadata/fence_vmware_soap.xml    | 10 ----------
+ tests/data/metadata/fence_vmware_vcloud.xml  | 10 ----------
+ 36 files changed, 4 insertions(+), 334 deletions(-)
+
+diff --git a/agents/zvm/fence_zvmip.py b/agents/zvm/fence_zvmip.py
+index e6bb01d1..5b272bb9 100644
+--- a/agents/zvm/fence_zvmip.py
++++ b/agents/zvm/fence_zvmip.py
+@@ -146,7 +146,7 @@ def get_list_of_images(options, command, data_as_plug):
+ 	return (return_code, reason_code, images)
+ 
+ def main():
+-	device_opt = ["ipaddr", "login", "passwd", "port", "method", "missing_as_off"]
++	device_opt = ["ipaddr", "login", "passwd", "port", "method", "missing_as_off", "inet4_only", "inet6_only"]
+ 
+ 	atexit.register(atexit_handler)
+ 
+diff --git a/lib/fencing.py.py b/lib/fencing.py.py
+index 2a0b0b91..4b54aa7c 100644
+--- a/lib/fencing.py.py
++++ b/lib/fencing.py.py
+@@ -459,9 +459,9 @@
+ 			"delay", "quiet"],
+ 		"passwd" : ["passwd_script"],
+ 		"sudo" : ["sudo_path"],
+-		"secure" : ["identity_file", "ssh_options", "ssh_path"],
++		"secure" : ["identity_file", "ssh_options", "ssh_path", "inet4_only", "inet6_only"],
+ 		"telnet" : ["telnet_path"],
+-		"ipaddr" : ["ipport", "inet4_only", "inet6_only"],
++		"ipaddr" : ["ipport"],
+ 		"port" : ["separator"],
+ 		"ssl" : ["ssl_secure", "ssl_insecure", "gnutlscli_path"],
+ 		"snmp" : ["snmp_auth_prot", "snmp_sec_level", "snmp_priv_prot", \
+diff --git a/make/agentpycheck.mk b/make/agentpycheck.mk
+index 58122c65..13482bf2 100644
+--- a/make/agentpycheck.mk
++++ b/make/agentpycheck.mk
+@@ -1,5 +1,5 @@
+ DATADIR:=$(abs_top_srcdir)/tests/data/metadata
+-AWK_VAL='BEGIN {store=-1} /name=\".*_path\"/ {store=2} {if (store!=0) {print}; store--}'
++AWK_VAL='BEGIN {store=-1} /name=".*_path"/ {store=2} {if (store!=0) {print}; store--}'
+ 
+ TEST_TARGET=$(filter-out $(TEST_TARGET_SKIP),$(TARGET))
+ 
+diff --git a/tests/data/metadata/fence_amt.xml b/tests/data/metadata/fence_amt.xml
+index c1e24db9..5f0adc98 100644
+--- a/tests/data/metadata/fence_amt.xml
++++ b/tests/data/metadata/fence_amt.xml
+@@ -19,16 +19,6 @@
+ 		</content>
+ 		<shortdesc lang="en">Change the default boot behavior of the machine.</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_amt_ws.xml b/tests/data/metadata/fence_amt_ws.xml
+index 07c22db3..86f36f6c 100644
+--- a/tests/data/metadata/fence_amt_ws.xml
++++ b/tests/data/metadata/fence_amt_ws.xml
+@@ -19,16 +19,6 @@
+ 		</content>
+ 		<shortdesc lang="en">Change the default boot behavior of the machine.</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_apc_snmp.xml b/tests/data/metadata/fence_apc_snmp.xml
+index 26661d6a..7f1c616c 100644
+--- a/tests/data/metadata/fence_apc_snmp.xml
++++ b/tests/data/metadata/fence_apc_snmp.xml
+@@ -14,16 +14,6 @@
+ 		<content type="string" default="private"  />
+ 		<shortdesc lang="en">Set the community string</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_cisco_mds.xml b/tests/data/metadata/fence_cisco_mds.xml
+index 1917595e..15d7798c 100644
+--- a/tests/data/metadata/fence_cisco_mds.xml
++++ b/tests/data/metadata/fence_cisco_mds.xml
+@@ -13,16 +13,6 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Set the community string</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_cisco_ucs.xml b/tests/data/metadata/fence_cisco_ucs.xml
+index 40581da7..848e72f8 100644
+--- a/tests/data/metadata/fence_cisco_ucs.xml
++++ b/tests/data/metadata/fence_cisco_ucs.xml
+@@ -8,16 +8,6 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing action</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_docker.xml b/tests/data/metadata/fence_docker.xml
+index fdd6324c..3285314c 100644
+--- a/tests/data/metadata/fence_docker.xml
++++ b/tests/data/metadata/fence_docker.xml
+@@ -8,16 +8,6 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing action</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_drac.xml b/tests/data/metadata/fence_drac.xml
+index 405d660a..2184ee0c 100644
+--- a/tests/data/metadata/fence_drac.xml
++++ b/tests/data/metadata/fence_drac.xml
+@@ -18,16 +18,6 @@
+ 		<content type="string" default="[&apos;\\[username\\]# &apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_eaton_snmp.xml b/tests/data/metadata/fence_eaton_snmp.xml
+index 33957ed1..3dd92dd2 100644
+--- a/tests/data/metadata/fence_eaton_snmp.xml
++++ b/tests/data/metadata/fence_eaton_snmp.xml
+@@ -13,16 +13,6 @@
+ 		<content type="string" default="private"  />
+ 		<shortdesc lang="en">Set the community string</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_emerson.xml b/tests/data/metadata/fence_emerson.xml
+index 87205c1b..f6886469 100644
+--- a/tests/data/metadata/fence_emerson.xml
++++ b/tests/data/metadata/fence_emerson.xml
+@@ -13,16 +13,6 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Set the community string</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_eps.xml b/tests/data/metadata/fence_eps.xml
+index 68d8fb69..26e75477 100644
+--- a/tests/data/metadata/fence_eps.xml
++++ b/tests/data/metadata/fence_eps.xml
+@@ -15,16 +15,6 @@ Agent basically works by connecting to hidden page and pass appropriate argument
+ 		<content type="string" default="hidden.htm"  />
+ 		<shortdesc lang="en">Name of hidden page</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_ibmblade.xml b/tests/data/metadata/fence_ibmblade.xml
+index eff551f6..5084b3a0 100644
+--- a/tests/data/metadata/fence_ibmblade.xml
++++ b/tests/data/metadata/fence_ibmblade.xml
+@@ -13,16 +13,6 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Set the community string</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_idrac.xml b/tests/data/metadata/fence_idrac.xml
+index f4588b35..55d9ced3 100644
+--- a/tests/data/metadata/fence_idrac.xml
++++ b/tests/data/metadata/fence_idrac.xml
+@@ -32,16 +32,6 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Hexadecimal-encoded Kg key for IPMIv2 authentication</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_ifmib.xml b/tests/data/metadata/fence_ifmib.xml
+index b5f3b1d4..c07a6e1f 100644
+--- a/tests/data/metadata/fence_ifmib.xml
++++ b/tests/data/metadata/fence_ifmib.xml
+@@ -15,16 +15,6 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Set the community string</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_ilo.xml b/tests/data/metadata/fence_ilo.xml
+index eb2e7a72..44b3c43a 100644
+--- a/tests/data/metadata/fence_ilo.xml
++++ b/tests/data/metadata/fence_ilo.xml
+@@ -9,16 +9,6 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing action</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_ilo2.xml b/tests/data/metadata/fence_ilo2.xml
+index b14aa2fb..e9cae6d2 100644
+--- a/tests/data/metadata/fence_ilo2.xml
++++ b/tests/data/metadata/fence_ilo2.xml
+@@ -9,16 +9,6 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing action</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_ilo3.xml b/tests/data/metadata/fence_ilo3.xml
+index deaeaaf0..2a99e0a4 100644
+--- a/tests/data/metadata/fence_ilo3.xml
++++ b/tests/data/metadata/fence_ilo3.xml
+@@ -32,16 +32,6 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Hexadecimal-encoded Kg key for IPMIv2 authentication</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_ilo4.xml b/tests/data/metadata/fence_ilo4.xml
+index bbf0833b..68790266 100644
+--- a/tests/data/metadata/fence_ilo4.xml
++++ b/tests/data/metadata/fence_ilo4.xml
+@@ -32,16 +32,6 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Hexadecimal-encoded Kg key for IPMIv2 authentication</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_imm.xml b/tests/data/metadata/fence_imm.xml
+index 22cb54e7..e22e4723 100644
+--- a/tests/data/metadata/fence_imm.xml
++++ b/tests/data/metadata/fence_imm.xml
+@@ -32,16 +32,6 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Hexadecimal-encoded Kg key for IPMIv2 authentication</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_intelmodular.xml b/tests/data/metadata/fence_intelmodular.xml
+index 4f2e8c49..5e0d3b19 100644
+--- a/tests/data/metadata/fence_intelmodular.xml
++++ b/tests/data/metadata/fence_intelmodular.xml
+@@ -15,16 +15,6 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Set the community string</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_ipdu.xml b/tests/data/metadata/fence_ipdu.xml
+index 0b615852..546e372c 100644
+--- a/tests/data/metadata/fence_ipdu.xml
++++ b/tests/data/metadata/fence_ipdu.xml
+@@ -13,16 +13,6 @@
+ 		<content type="string" default="private"  />
+ 		<shortdesc lang="en">Set the community string</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_ipmilan.xml b/tests/data/metadata/fence_ipmilan.xml
+index b9ce66f8..3e13d288 100644
+--- a/tests/data/metadata/fence_ipmilan.xml
++++ b/tests/data/metadata/fence_ipmilan.xml
+@@ -32,16 +32,6 @@
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Hexadecimal-encoded Kg key for IPMIv2 authentication</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_netio.xml b/tests/data/metadata/fence_netio.xml
+index e6350ed4..79d27af3 100644
+--- a/tests/data/metadata/fence_netio.xml
++++ b/tests/data/metadata/fence_netio.xml
+@@ -8,16 +8,6 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing action</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_powerman.xml b/tests/data/metadata/fence_powerman.xml
+index f0499d86..ce72e002 100644
+--- a/tests/data/metadata/fence_powerman.xml
++++ b/tests/data/metadata/fence_powerman.xml
+@@ -8,16 +8,6 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing action</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_pve.xml b/tests/data/metadata/fence_pve.xml
+index b727a7e8..5d744903 100644
+--- a/tests/data/metadata/fence_pve.xml
++++ b/tests/data/metadata/fence_pve.xml
+@@ -8,16 +8,6 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing action</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_raritan.xml b/tests/data/metadata/fence_raritan.xml
+index c75783fd..565eebc7 100644
+--- a/tests/data/metadata/fence_raritan.xml
++++ b/tests/data/metadata/fence_raritan.xml
+@@ -8,16 +8,6 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing action</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_redfish.xml b/tests/data/metadata/fence_redfish.xml
+index e1c18584..91b483b7 100644
+--- a/tests/data/metadata/fence_redfish.xml
++++ b/tests/data/metadata/fence_redfish.xml
+@@ -8,16 +8,6 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing action</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_rhevm.xml b/tests/data/metadata/fence_rhevm.xml
+index 2b6b02b2..73c9906f 100644
+--- a/tests/data/metadata/fence_rhevm.xml
++++ b/tests/data/metadata/fence_rhevm.xml
+@@ -8,16 +8,6 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing action</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_sanbox2.xml b/tests/data/metadata/fence_sanbox2.xml
+index 9832841e..7e20c8ce 100644
+--- a/tests/data/metadata/fence_sanbox2.xml
++++ b/tests/data/metadata/fence_sanbox2.xml
+@@ -18,16 +18,6 @@
+ 		<content type="string" default="[&apos; #&gt; &apos;]"  />
+ 		<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_tripplite_snmp.xml b/tests/data/metadata/fence_tripplite_snmp.xml
+index 22d3db5d..d3769133 100644
+--- a/tests/data/metadata/fence_tripplite_snmp.xml
++++ b/tests/data/metadata/fence_tripplite_snmp.xml
+@@ -14,16 +14,6 @@
+ 		<content type="string" default="private"  />
+ 		<shortdesc lang="en">Set the community string</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_vmware_rest.xml b/tests/data/metadata/fence_vmware_rest.xml
+index 1e1f790f..5b497a6a 100644
+--- a/tests/data/metadata/fence_vmware_rest.xml
++++ b/tests/data/metadata/fence_vmware_rest.xml
+@@ -8,16 +8,6 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing action</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_vmware_soap.xml b/tests/data/metadata/fence_vmware_soap.xml
+index 46d29116..da6a1002 100644
+--- a/tests/data/metadata/fence_vmware_soap.xml
++++ b/tests/data/metadata/fence_vmware_soap.xml
+@@ -10,16 +10,6 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing action</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
+diff --git a/tests/data/metadata/fence_vmware_vcloud.xml b/tests/data/metadata/fence_vmware_vcloud.xml
+index 69269a2d..505eaf2b 100644
+--- a/tests/data/metadata/fence_vmware_vcloud.xml
++++ b/tests/data/metadata/fence_vmware_vcloud.xml
+@@ -8,16 +8,6 @@
+ 		<content type="string" default="reboot"  />
+ 		<shortdesc lang="en">Fencing action</shortdesc>
+ 	</parameter>
+-	<parameter name="inet4_only" unique="0" required="0">
+-		<getopt mixed="-4, --inet4-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
+-	</parameter>
+-	<parameter name="inet6_only" unique="0" required="0">
+-		<getopt mixed="-6, --inet6-only" />
+-		<content type="boolean"  />
+-		<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
+-	</parameter>
+ 	<parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ 		<getopt mixed="-a, --ip=[ip]" />
+ 		<content type="string"  />
diff --git a/SOURCES/bz1722004-2-fence_redfish-fence_vmware_soap-suppress-warning.patch b/SOURCES/bz1722004-2-fence_redfish-fence_vmware_soap-suppress-warning.patch
new file mode 100644
index 0000000..889c6f9
--- /dev/null
+++ b/SOURCES/bz1722004-2-fence_redfish-fence_vmware_soap-suppress-warning.patch
@@ -0,0 +1,51 @@
+From 559771f2c5a638f7e14ec9c0ef1068c86ee9d40e Mon Sep 17 00:00:00 2001
+From: Oyvind Albrigtsen <oalbrigt@redhat.com>
+Date: Tue, 26 Nov 2019 14:09:14 +0100
+Subject: [PATCH] fence_redfish/fence_vmware_soap: suppress warnings correctly
+ with new python-requests
+
+python-requests doesnt suppress warnings anymore, so it needs to be done in urllib3: https://stackoverflow.com/questions/27981545/suppress-insecurerequestwarning-unverified-https-request-is-being-made-in-pytho/28002687#28002687
+---
+ agents/redfish/fence_redfish.py         | 4 ++--
+ agents/vmware_soap/fence_vmware_soap.py | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/agents/redfish/fence_redfish.py b/agents/redfish/fence_redfish.py
+index 390a4827..c7c6492c 100644
+--- a/agents/redfish/fence_redfish.py
++++ b/agents/redfish/fence_redfish.py
+@@ -12,7 +12,6 @@
+ import atexit
+ sys.path.append("@FENCEAGENTSLIBDIR@")
+ 
+-from requests.packages.urllib3.exceptions import InsecureRequestWarning
+ from fencing import *
+ from fencing import fail_usage, run_delay
+ 
+@@ -143,7 +142,8 @@ def main():
+ 
+     # Disable insecure-certificate-warning message
+     if "--ssl-insecure" in opt:
+-        requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
++        import urllib3
++        urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
+ 
+     # backwards compatibility for <ip>:<port>
+     if options["--ip"].count(":") == 1:
+diff --git a/agents/vmware_soap/fence_vmware_soap.py b/agents/vmware_soap/fence_vmware_soap.py
+index dd1a4ed6..53e8d8f4 100644
+--- a/agents/vmware_soap/fence_vmware_soap.py
++++ b/agents/vmware_soap/fence_vmware_soap.py
+@@ -37,10 +37,10 @@ def soap_login(options):
+ 	if "--ssl" in options or "--ssl-secure" in options or "--ssl-insecure" in options:
+ 		if "--ssl-insecure" in options:
+ 			import ssl
+-			from requests.packages.urllib3.exceptions import InsecureRequestWarning
++			import urllib3
+ 			if hasattr(ssl, '_create_unverified_context'):
+ 				ssl._create_default_https_context = ssl._create_unverified_context
+-			requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
++			urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
+ 			verify = False
+ 		else:
+ 			verify = True
diff --git a/SOURCES/bz1734812-fence_iloX_ssh-monitor-timeout-warning.patch b/SOURCES/bz1734812-fence_iloX_ssh-monitor-timeout-warning.patch
new file mode 100644
index 0000000..ba26ed3
--- /dev/null
+++ b/SOURCES/bz1734812-fence_iloX_ssh-monitor-timeout-warning.patch
@@ -0,0 +1,25 @@
+From 7c1348d53aa8080f2fcfc344a2f4a2372739a62c Mon Sep 17 00:00:00 2001
+From: Oyvind Albrigtsen <oalbrigt@redhat.com>
+Date: Tue, 6 Aug 2019 13:06:13 +0200
+Subject: [PATCH] fence_ilo_ssh*: add timeout warning in metadata/manpage
+
+---
+ agents/ilo_ssh/fence_ilo_ssh.py        | 5 ++++-
+ 5 files changed, 16 insertions(+), 5 deletions(-)
+
+diff --git a/agents/ilo_ssh/fence_ilo_ssh.py b/agents/ilo_ssh/fence_ilo_ssh.py
+index 88f13d17..a27e3418 100644
+--- a/agents/ilo_ssh/fence_ilo_ssh.py
++++ b/agents/ilo_ssh/fence_ilo_ssh.py
+@@ -51,7 +51,10 @@ def main():
+ 	docs = {}
+ 	docs["shortdesc"] = "Fence agent for HP iLO over SSH"
+ 	docs["longdesc"] = "fence_ilo_ssh is a fence agent that connects to iLO device. It logs into \
+-device via ssh and reboot a specified outlet. "
++device via ssh and reboot a specified outlet.\
++\n.P\n\
++WARNING: The monitor-action is prone to timeouts. Use the fence_ilo-equivalent \
++to avoid this issue."
+ 	docs["vendorurl"] = "http://www.hp.com"
+ 	docs["symlink"] = [("fence_ilo3_ssh", "Fence agent for HP iLO3 over SSH"),
+ 		("fence_ilo4_ssh", "Fence agent for HP iLO4 over SSH"),
diff --git a/SOURCES/bz1751702-fence_mpath-fix-watchdog-trigger-multipath-disconnect.patch b/SOURCES/bz1751702-fence_mpath-fix-watchdog-trigger-multipath-disconnect.patch
new file mode 100644
index 0000000..8c804c2
--- /dev/null
+++ b/SOURCES/bz1751702-fence_mpath-fix-watchdog-trigger-multipath-disconnect.patch
@@ -0,0 +1,40 @@
+From 2df8abf25eddc8da71c193ca29f6be51e66b02f0 Mon Sep 17 00:00:00 2001
+From: Hideo Yamauchi <renayama19661014@ybb.ne.jp>
+Date: Thu, 12 Sep 2019 08:44:49 +0900
+Subject: [PATCH] High: mpath: Correction of failure detection behavior from
+ watchdog service.
+
+---
+ agents/mpath/fence_mpath.py | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/agents/mpath/fence_mpath.py b/agents/mpath/fence_mpath.py
+index e4f59836..b17388eb 100644
+--- a/agents/mpath/fence_mpath.py
++++ b/agents/mpath/fence_mpath.py
+@@ -117,12 +117,14 @@ def get_reservation_key(options, dev):
+ 	match = re.search(r"\s+key\s*=\s*0x(\S+)\s+", out["out"], re.IGNORECASE)
+ 	return match.group(1) if match else None
+ 
+-def get_registration_keys(options, dev):
++def get_registration_keys(options, dev, fail=True):
+ 	keys = []
+ 	cmd = options["--mpathpersist-path"] + " -i -k -d " + dev
+ 	out = run_cmd(options, cmd)
+ 	if out["err"]:
+-		fail_usage("Cannot get registration keys")
++		fail_usage("Cannot get registration keys", fail)
++		if not fail:
++			return []
+ 	for line in out["out"].split("\n"):
+ 		match = re.search(r"\s+0x(\S+)\s*", line)
+ 		if match:
+@@ -183,7 +185,7 @@ def mpath_check(hardreboot=False):
+ 		logging.error("No devices found")
+ 		return 0
+ 	for dev, key in list(devs.items()):
+-		if key in get_registration_keys(options, dev):
++		if key in get_registration_keys(options, dev, fail=False):
+ 			logging.debug("key " + key + " registered with device " + dev)
+ 			return 0
+ 		else:
diff --git a/SOURCES/bz1753229-fence_mpath-1-add-plug-parameter-support.patch b/SOURCES/bz1753229-fence_mpath-1-add-plug-parameter-support.patch
new file mode 100644
index 0000000..216f48c
--- /dev/null
+++ b/SOURCES/bz1753229-fence_mpath-1-add-plug-parameter-support.patch
@@ -0,0 +1,197 @@
+From d866e11213ebeab8da280b41371a968ae12410bd Mon Sep 17 00:00:00 2001
+From: Oyvind Albrigtsen <oalbrigt@redhat.com>
+Date: Fri, 13 Sep 2019 12:48:46 +0200
+Subject: [PATCH] fence_mpath: use -n/--plug/port parameter to be able to use
+ pcmk_host_map
+
+---
+ agents/mpath/fence_mpath.py         | 63 +++++++++++++++++------------
+ tests/data/metadata/fence_mpath.xml | 12 +++++-
+ 2 files changed, 49 insertions(+), 26 deletions(-)
+
+diff --git a/agents/mpath/fence_mpath.py b/agents/mpath/fence_mpath.py
+index e4f59836..dfc5657b 100644
+--- a/agents/mpath/fence_mpath.py
++++ b/agents/mpath/fence_mpath.py
+@@ -16,11 +16,11 @@ def get_status(conn, options):
+ 	status = "off"
+ 	for dev in options["devices"]:
+ 		is_block_device(dev)
+-		if options["--key"] in get_registration_keys(options, dev):
++		if options["--plug"] in get_registration_keys(options, dev):
+ 			status = "on"
+ 		else:
+ 			logging.debug("No registration for key "\
+-				+ options["--key"] + " on device " + dev + "\n")
++				+ options["--plug"] + " on device " + dev + "\n")
+ 
+ 	if options["--action"] == "monitor":
+ 		dev_read(options)
+@@ -36,10 +36,10 @@ def set_status(conn, options):
+ 			is_block_device(dev)
+ 
+ 			register_dev(options, dev)
+-			if options["--key"] not in get_registration_keys(options, dev):
++			if options["--plug"] not in get_registration_keys(options, dev):
+ 				count += 1
+ 				logging.debug("Failed to register key "\
+-					+ options["--key"] + "on device " + dev + "\n")
++					+ options["--plug"] + "on device " + dev + "\n")
+ 				continue
+ 			dev_write(options, dev)
+ 
+@@ -48,7 +48,7 @@ def set_status(conn, options):
+ 			and get_reservation_key(options, dev) is None:
+ 				count += 1
+ 				logging.debug("Failed to create reservation (key="\
+-					+ options["--key"] + ", device=" + dev + ")\n")
++					+ options["--plug"] + ", device=" + dev + ")\n")
+ 
+ 	else:
+ 		dev_keys = dev_read(options)
+@@ -56,14 +56,14 @@ def set_status(conn, options):
+ 		for dev in options["devices"]:
+ 			is_block_device(dev)
+ 
+-			if options["--key"] in get_registration_keys(options, dev):
++			if options["--plug"] in get_registration_keys(options, dev):
+ 				preempt_abort(options, dev_keys[dev], dev)
+ 
+ 		for dev in options["devices"]:
+-			if options["--key"] in get_registration_keys(options, dev):
++			if options["--plug"] in get_registration_keys(options, dev):
+ 				count += 1
+ 				logging.debug("Failed to remove key "\
+-					+ options["--key"] + " on device " + dev + "\n")
++					+ options["--plug"] + " on device " + dev + "\n")
+ 				continue
+ 
+ 			if not get_reservation_key(options, dev):
+@@ -97,16 +97,16 @@ def is_block_device(dev):
+ 
+ # cancel registration
+ def preempt_abort(options, host, dev):
+-	cmd = options["--mpathpersist-path"] + " -o --preempt-abort --prout-type=5 --param-rk=" + host +" --param-sark=" + options["--key"] +" -d " + dev
++	cmd = options["--mpathpersist-path"] + " -o --preempt-abort --prout-type=5 --param-rk=" + host +" --param-sark=" + options["--plug"] +" -d " + dev
+ 	return not bool(run_cmd(options, cmd)["err"])
+ 
+ def register_dev(options, dev):
+-	cmd = options["--mpathpersist-path"] + " -o --register --param-sark=" + options["--key"] + " -d " + dev
++	cmd = options["--mpathpersist-path"] + " -o --register --param-sark=" + options["--plug"] + " -d " + dev
+ 	#cmd return code != 0 but registration can be successful
+ 	return not bool(run_cmd(options, cmd)["err"])
+ 
+ def reserve_dev(options, dev):
+-	cmd = options["--mpathpersist-path"] + " -o --reserv --prout-type=5 --param-rk=" + options["--key"] + " -d " + dev
++	cmd = options["--mpathpersist-path"] + " -o --reserv --prout-type=5 --param-rk=" + options["--plug"] + " -d " + dev
+ 	return not bool(run_cmd(options, cmd)["err"])
+ 
+ def get_reservation_key(options, dev):
+@@ -141,7 +141,7 @@ def dev_write(options, dev):
+ 		fail_usage("Failed: Cannot open file \""+ file_path + "\"")
+ 	out = store_fh.read()
+ 	if not re.search(r"^" + dev + r"\s+", out):
+-		store_fh.write(dev + "\t" + options["--key"] + "\n")
++		store_fh.write(dev + "\t" + options["--plug"] + "\n")
+ 	store_fh.close()
+ 
+ def dev_read(options, fail=True):
+@@ -209,12 +209,9 @@ def define_new_opts():
+ 	all_opt["key"] = {
+ 		"getopt" : "k:",
+ 		"longopt" : "key",
+-		"help" : "-k, --key=[key]                Key to use for the current operation",
+-		"required" : "1",
+-		"shortdesc" : "Key to use for the current operation. This key should be \
+-unique to a node and have to be written in /etc/multipath.conf. For the \"on\" action, the key specifies the key use to \
+-register the local node. For the \"off\" action, this key specifies the key to \
+-be removed from the device(s).",
++		"help" : "-k, --key=[key]                Replaced by -n, --plug",
++		"required" : "0",
++		"shortdesc" : "Replaced by -n, --plug",
+ 		"order": 1
+ 	}
+ 	all_opt["mpathpersist_path"] = {
+@@ -240,10 +237,18 @@ def main():
+ 	atexit.register(atexit_handler)
+ 
+ 	device_opt = ["no_login", "no_password", "devices", "key", "sudo", \
+-	        "fabric_fencing", "on_target", "store_path", "mpathpersist_path", "force_on"]
++	        "fabric_fencing", "on_target", "store_path", \
++		"mpathpersist_path", "force_on", "port", "no_port"]
+ 
+ 	define_new_opts()
+ 
++	all_opt["port"]["help"] = "Key to use for the current operation"
++	all_opt["port"]["shortdesc"] = "Key to use for the current operation. \
++This key should be unique to a node and have to be written in \
++/etc/multipath.conf. For the \"on\" action, the key specifies the key use to \
++register the local node. For the \"off\" action, this key specifies the key to \
++be removed from the device(s)."
++
+ 	# fence_mpath_check
+ 	if os.path.basename(sys.argv[0]) == "fence_mpath_check":
+ 		sys.exit(mpath_check())
+@@ -252,6 +257,17 @@ def main():
+ 
+ 	options = check_input(device_opt, process_input(device_opt), other_conditions=True)
+ 
++	# hack to remove list/list-status actions which are not supported
++	options["device_opt"] = [ o for o in options["device_opt"] if o != "separator" ]
++
++	# workaround to avoid regressions
++	if "--key" in options:
++		options["--plug"] = options["--key"]
++		del options["--key"]
++	elif options["--action"] in ["off", "on", "reboot", "status"] \
++	     and "--plug" not in options:
++		fail_usage("Failed: You have to enter plug number or machine identification", stop)
++
+ 	docs = {}
+ 	docs["shortdesc"] = "Fence agent for multipath persistent reservation"
+ 	docs["longdesc"] = "fence_mpath is an I/O fencing agent that uses SCSI-3 \
+@@ -271,16 +287,13 @@ def main():
+ 	run_delay(options)
+ 
+ 	# Input control BEGIN
+-	if not "--key" in options:
+-		fail_usage("Failed: key is required")
+-
+ 	if options["--action"] == "validate-all":
+ 		sys.exit(0)
+ 
+-	options["devices"] = options["--devices"].split(",")
+-
+-	if not options["devices"]:
++	if not ("--devices" in options and options["--devices"]):
+ 		fail_usage("Failed: No devices found")
++
++	options["devices"] = options["--devices"].split(",")
+ 	# Input control END
+ 
+ 	result = fence_action(None, options, set_status, get_status)
+diff --git a/tests/data/metadata/fence_mpath.xml b/tests/data/metadata/fence_mpath.xml
+index bbe9ad2b..fe9378df 100644
+--- a/tests/data/metadata/fence_mpath.xml
++++ b/tests/data/metadata/fence_mpath.xml
+@@ -14,9 +14,19 @@ The fence_mpath agent works by having a unique key for each node that has to be
+ 		<content type="string"  />
+ 		<shortdesc lang="en">List of devices to use for current operation. Devices can be comma-separated list of device-mapper multipath devices (eg. /dev/mapper/3600508b400105df70000e00000ac0000 or /dev/mapper/mpath1). Each device must support SCSI-3 persistent reservations.</shortdesc>
+ 	</parameter>
+-	<parameter name="key" unique="0" required="1">
++	<parameter name="key" unique="0" required="0">
+ 		<getopt mixed="-k, --key=[key]" />
+ 		<content type="string"  />
++		<shortdesc lang="en">Replaced by -n, --plug</shortdesc>
++	</parameter>
++	<parameter name="plug" unique="0" required="1" obsoletes="port">
++		<getopt mixed="Key to use for the current operation" />
++		<content type="string"  />
++		<shortdesc lang="en">Key to use for the current operation. This key should be unique to a node and have to be written in /etc/multipath.conf. For the "on" action, the key specifies the key use to register the local node. For the "off" action, this key specifies the key to be removed from the device(s).</shortdesc>
++	</parameter>
++	<parameter name="port" unique="0" required="1" deprecated="1">
++		<getopt mixed="Key to use for the current operation" />
++		<content type="string"  />
+ 		<shortdesc lang="en">Key to use for the current operation. This key should be unique to a node and have to be written in /etc/multipath.conf. For the "on" action, the key specifies the key use to register the local node. For the "off" action, this key specifies the key to be removed from the device(s).</shortdesc>
+ 	</parameter>
+ 	<parameter name="quiet" unique="0" required="0">
diff --git a/SOURCES/bz1753229-fence_mpath-2-fix-plug-parameter-issues.patch b/SOURCES/bz1753229-fence_mpath-2-fix-plug-parameter-issues.patch
new file mode 100644
index 0000000..d668e27
--- /dev/null
+++ b/SOURCES/bz1753229-fence_mpath-2-fix-plug-parameter-issues.patch
@@ -0,0 +1,73 @@
+From 868c494d17952eecc6736683c6df04aa9d3a3199 Mon Sep 17 00:00:00 2001
+From: Oyvind Albrigtsen <oalbrigt@redhat.com>
+Date: Fri, 20 Sep 2019 12:06:55 +0200
+Subject: [PATCH] fence_mpath: fix fail_usage() issue and a couple of other
+ minor issues w/the newly added plug/port parameter
+
+---
+ agents/mpath/fence_mpath.py         | 12 +++++++-----
+ tests/data/metadata/fence_mpath.xml | 10 +++++-----
+ 2 files changed, 12 insertions(+), 10 deletions(-)
+
+diff --git a/agents/mpath/fence_mpath.py b/agents/mpath/fence_mpath.py
+index 25aeb052..73517851 100644
+--- a/agents/mpath/fence_mpath.py
++++ b/agents/mpath/fence_mpath.py
+@@ -213,7 +213,7 @@ def define_new_opts():
+ 		"longopt" : "key",
+ 		"help" : "-k, --key=[key]                Replaced by -n, --plug",
+ 		"required" : "0",
+-		"shortdesc" : "Replaced by -n, --plug",
++		"shortdesc" : "Replaced by port/-n/--plug",
+ 		"order": 1
+ 	}
+ 	all_opt["mpathpersist_path"] = {
+@@ -244,7 +244,8 @@ def main():
+ 
+ 	define_new_opts()
+ 
+-	all_opt["port"]["help"] = "Key to use for the current operation"
++	all_opt["port"]["required"] = "0"
++	all_opt["port"]["help"] = "-n, --plug=[key]               Key to use for the current operation"
+ 	all_opt["port"]["shortdesc"] = "Key to use for the current operation. \
+ This key should be unique to a node and have to be written in \
+ /etc/multipath.conf. For the \"on\" action, the key specifies the key use to \
+@@ -266,9 +267,10 @@ def main():
+ 	if "--key" in options:
+ 		options["--plug"] = options["--key"]
+ 		del options["--key"]
+-	elif options["--action"] in ["off", "on", "reboot", "status"] \
+-	     and "--plug" not in options:
+-		fail_usage("Failed: You have to enter plug number or machine identification", stop)
++	elif "--help" not in options and options["--action"] in ["off", "on", \
++	     "reboot", "status", "validate-all"] and "--plug" not in options:
++		stop_after_error = False if options["--action"] == "validate-all" else True
++		fail_usage("Failed: You have to enter plug number or machine identification", stop_after_error)
+ 
+ 	docs = {}
+ 	docs["shortdesc"] = "Fence agent for multipath persistent reservation"
+diff --git a/tests/data/metadata/fence_mpath.xml b/tests/data/metadata/fence_mpath.xml
+index fe9378df..f5e60823 100644
+--- a/tests/data/metadata/fence_mpath.xml
++++ b/tests/data/metadata/fence_mpath.xml
+@@ -17,15 +17,15 @@ The fence_mpath agent works by having a unique key for each node that has to be
+ 	<parameter name="key" unique="0" required="0">
+ 		<getopt mixed="-k, --key=[key]" />
+ 		<content type="string"  />
+-		<shortdesc lang="en">Replaced by -n, --plug</shortdesc>
++		<shortdesc lang="en">Replaced by port/-n/--plug</shortdesc>
+ 	</parameter>
+-	<parameter name="plug" unique="0" required="1" obsoletes="port">
+-		<getopt mixed="Key to use for the current operation" />
++	<parameter name="plug" unique="0" required="0" obsoletes="port">
++		<getopt mixed="-n, --plug=[key]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Key to use for the current operation. This key should be unique to a node and have to be written in /etc/multipath.conf. For the "on" action, the key specifies the key use to register the local node. For the "off" action, this key specifies the key to be removed from the device(s).</shortdesc>
+ 	</parameter>
+-	<parameter name="port" unique="0" required="1" deprecated="1">
+-		<getopt mixed="Key to use for the current operation" />
++	<parameter name="port" unique="0" required="0" deprecated="1">
++		<getopt mixed="-n, --plug=[key]" />
+ 		<content type="string"  />
+ 		<shortdesc lang="en">Key to use for the current operation. This key should be unique to a node and have to be written in /etc/multipath.conf. For the "on" action, the key specifies the key use to register the local node. For the "off" action, this key specifies the key to be removed from the device(s).</shortdesc>
+ 	</parameter>
diff --git a/SPECS/fence-agents.spec b/SPECS/fence-agents.spec
index 346ffe1..005a91e 100644
--- a/SPECS/fence-agents.spec
+++ b/SPECS/fence-agents.spec
@@ -66,7 +66,7 @@
 Name: fence-agents
 Summary: Fence Agents for Red Hat Cluster
 Version: 4.2.1
-Release: 24%{?alphatag:.%{alphatag}}%{?dist}
+Release: 30%{?alphatag:.%{alphatag}}%{?dist}
 License: GPLv2+ and LGPLv2+
 Group: System Environment/Base
 URL: https://github.com/ClusterLabs/fence-agents
@@ -116,6 +116,12 @@ Patch30: bz1670460-fence_rhevm-2-fix-debug-encoding-issues.patch
 Patch31: bz1709879-fence_mpath-fix-watchdog-hardreboot.patch
 Patch32: bz1713665-fence_redfish-full-redfish-spec-compliance.patch
 Patch33: bz1653700-3-fence_scsi-watchdog-fix-retry-failing-on-first-try.patch
+Patch34: bz1734812-fence_iloX_ssh-monitor-timeout-warning.patch
+Patch35: bz1751702-fence_mpath-fix-watchdog-trigger-multipath-disconnect.patch
+Patch36: bz1753229-fence_mpath-1-add-plug-parameter-support.patch
+Patch37: bz1753229-fence_mpath-2-fix-plug-parameter-issues.patch
+Patch38: bz1722004-1-fencing-inetX_only-SSH-fence_zvmip.patch
+Patch39: bz1722004-2-fence_redfish-fence_vmware_soap-suppress-warning.patch
 # bundle patches
 Patch1000: bz1568753-4-fence_gce-bundled-libs.patch
 Patch1001: bz1568753-5-%{oauth2client}-docs-build-fix.patch
@@ -199,6 +205,12 @@ BuildRequires:  python-six >= 1.6.1
 %patch31 -p1
 %patch32 -p1
 %patch33 -p1 -F1
+%patch34 -p1
+%patch35 -p1
+%patch36 -p1
+%patch37 -p1
+%patch38 -p1
+%patch39 -p1
 
 %ifarch x86_64
 # bundles
@@ -227,7 +239,7 @@ cp %{fasteners_dir}/LICENSE %{fasteners}_LICENSE
 cp %{fasteners_dir}/README.rst %{fasteners}_README.rst
 
 # python-keyring bundle
-unzip %SOURCE5 -d %{bundled_lib_dir}
+unzip -q %SOURCE5 -d %{bundled_lib_dir}
 mv %{bundled_lib_dir}/%{keyring}-%{keyring_version} %{keyring_dir}
 cp %{keyring_dir}/README.rst %{keyring}_README.rst
 
@@ -308,7 +320,7 @@ popd
 # python-keyring bundle
 pushd %{keyring_dir}
 %patch1008 -p1
-rm -frv keyring.egg-info
+rm -fr keyring.egg-info
 # Drop redundant shebangs.
 sed -i '1{\@^#!/usr/bin/env python@d}' keyring/cli.py
 # Drop slags from upstream of using his own versioning system.
@@ -499,8 +511,8 @@ Requires: fence-agents-lpar >= %{version}-%{release}
 %ifarch s390x
 Requires: fence-agents-zvm >= %{version}-%{release}
 %endif
-Provides: fence-agents = %{version}-%{release}
-Obsoletes: fence-agents < 3.1.13
+Provides: %{name} >= %{version}-%{release}
+Obsoletes: %{name} < %{version}-%{release}
 %description all
 Red Hat Fence Agents is a collection of all supported fence agents.
 %files all
@@ -519,7 +531,7 @@ Provides: bundled(python-aliyun-sdk-core) = %{aliyunsdkcore_version}
 Provides: bundled(python-aliyun-sdk-ecs) = %{aliyunsdkecs_version}
 # python-aliyun-sdk-vpc bundle
 Provides: bundled(python-aliyun-sdk-vpc) = %{aliyunsdkvpc_version}
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description aliyun
 The fence-agents-aliyun package contains a fence agent for Alibaba Cloud (Aliyun) instances.
 %files aliyun
@@ -539,7 +551,7 @@ Group: System Environment/Base
 Summary: Fence agent for AMT (WS-Man) devices
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: openwsman-python >= 2.6.3-1.git4391e5c.el7
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description amt-ws
 The fence-agents-amt-ws package contains a fence agent for AMT (WS-Man) devices.
 %files amt-ws
@@ -553,7 +565,7 @@ Group: System Environment/Base
 Summary: Fence agent for APC devices
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: telnet openssh-clients
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description apc
 The fence-agents-apc package contains a fence agent for APC devices that are accessed via telnet or SSH. 
 %files apc 
@@ -567,7 +579,7 @@ Group: System Environment/Base
 Summary: Fence agent for APC devices (SNMP)
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: net-snmp-utils
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description apc-snmp
 The fence-agents-apc-snmp package contains a fence agent for APC devices that are accessed via the SNMP protocol. 
 %files apc-snmp
@@ -582,7 +594,7 @@ Group: System Environment/Base
 Summary: Fence agent for Amazon AWS
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: python-boto3
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description aws
 The fence-agents-aws package contains a fence agent for Amazon AWS instances. 
 %files aws
@@ -598,7 +610,7 @@ Group: System Environment/Base
 Summary: Fence agent for Azure Resource Manager
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: python-azure-sdk >= 4.0.0
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description azure-arm
 The fence-agents-azure-arm package contains a fence agent for Azure instances. 
 %files azure-arm
@@ -614,7 +626,7 @@ Group: System Environment/Base
 Summary: Fence agent for IBM BladeCenter 
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: telnet openssh-clients
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description bladecenter
 The fence-agents-bladecenter package contains a fence agent for IBM BladeCenter devices that are accessed via telnet or SSH.
 %files bladecenter
@@ -628,7 +640,7 @@ Group: System Environment/Base
 Summary: Fence agent for HP Brocade
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: telnet openssh-clients
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description brocade
 The fence-agents-brocade package contains a fence agent for HP Brocade devices that are accessed via telnet or SSH.
 %files brocade
@@ -642,7 +654,7 @@ Group: System Environment/Base
 Summary: Fence agent for Cisco MDS 9000 series
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: net-snmp-utils
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description cisco-mds
 The fence-agents-cisco-mds package contains a fence agent for Cisco MDS 9000 series devices that are accessed via the SNMP protocol.
 %files cisco-mds
@@ -655,7 +667,7 @@ License: GPLv2+ and LGPLv2+
 Group: System Environment/Base
 Summary: Fence agent for Cisco UCS series
 Requires: fence-agents-common >= %{version}-%{release}
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description cisco-ucs
 The fence-agents-cisco-ucs package contains a fence agent for Cisco UCS series devices that are accessed via the SNMP protocol.
 %files cisco-ucs
@@ -669,7 +681,7 @@ Group: System Environment/Base
 Summary: Fence agent for Nova compute nodes
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: python-requests
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description compute
 The fence-agents-compute package contains a fence agent for Nova compute nodes.
 %files compute
@@ -685,7 +697,7 @@ Group: System Environment/Base
 Summary: Fence agent for Dell DRAC 5
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: telnet openssh-clients
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description drac5
 The fence-agents-drac5 package contains a fence agent for Dell DRAC 5 series devices that are accessed via telnet or SSH.
 %files drac5
@@ -699,7 +711,7 @@ Group: System Environment/Base
 Summary: Fence agent for Eaton network power switches
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: net-snmp-utils
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description eaton-snmp
 The fence-agents-eaton-snmp package contains a fence agent for Eaton network power switches that are accessed via the SNMP protocol.
 %files eaton-snmp
@@ -712,7 +724,7 @@ License: GPLv2+ and LGPLv2+
 Group: System Environment/Base
 Summary: Fence agent for Emerson devices (SNMP)
 Requires: fence-agents-common >= %{version}-%{release}
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description emerson
 The fence-agents-emerson package contains a fence agent for Emerson devices that are accessed via the SNMP protocol.
 %files emerson
@@ -725,7 +737,7 @@ License: GPLv2+ and LGPLv2+
 Group: System Environment/Base
 Summary: Fence agent for ePowerSwitch 8M+ power switches
 Requires: fence-agents-common >= %{version}-%{release}
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description eps
 The fence-agents-eps package contains a fence agent for ePowerSwitch 8M+ power switches that are accessed via the HTTP(s) protocol.
 %files eps
@@ -752,7 +764,7 @@ Provides: bundled(python-%{fasteners}) = %{fasteners_version}
 Provides: bundled(python-%{keyring}) = %{keyring_version}
 # python-uritemplate bundle
 Provides: bundled(python-%{uritemplate}) = %{uritemplate_version}
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description gce
 The fence-agents-gce package contains a fence agent for GCE (Google Cloud Engine) instances.
 %files gce
@@ -773,7 +785,7 @@ License: GPLv2+ and LGPLv2+
 Group: System Environment/Base
 Summary: Fence agent used to control other fence agents based on ping-heuristics
 Requires: fence-agents-common >= %{version}-%{release}
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description heuristics-ping
 
 The fence-agents-heuristics-ping package contains fence agent used to control other fence agents based on ping-heuristics
@@ -788,7 +800,7 @@ Group: System Environment/Base
 Summary: Fence agent for HP BladeSystem devices
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: telnet openssh-clients
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description hpblade
 The fence-agents-hpblade package contains a fence agent for HP BladeSystem devices that are accessed via telnet or SSH.
 %files hpblade
@@ -802,7 +814,7 @@ Group: System Environment/Base
 Summary: Fence agent for IBM BladeCenter
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: net-snmp-utils
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description ibmblade
 The fence-agents-ibmblade package contains a fence agent for IBM BladeCenter devices that are accessed via the SNMP protocol.
 %files ibmblade
@@ -816,7 +828,7 @@ Group: System Environment/Base
 Summary: Fence agent for devices with IF-MIB interfaces
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: net-snmp-utils
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description ifmib
 The fence-agents-ifmib package contains a fence agent for IF-MIB interfaces that are accessed via the SNMP protocol.
 %files ifmib
@@ -830,7 +842,7 @@ Group: System Environment/Base
 Summary: Fence agent for HP iLO2 devices
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: gnutls-utils
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description ilo2
 The fence-agents-ilo2 package contains a fence agent for HP iLO2 devices that are accessed via the HTTP(s) protocol.
 %files ilo2
@@ -846,7 +858,7 @@ Group: System Environment/Base
 Summary: Fence agent for HP iLO Moonshot devices
 Requires: telnet openssh-clients
 Requires: fence-agents-common >= %{version}-%{release}
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description ilo-moonshot
 The fence-agents-ilo-moonshot package contains a fence agent for HP iLO Moonshot devices that are accessed via telnet or SSH.
 %files ilo-moonshot
@@ -860,7 +872,7 @@ Group: System Environment/Base
 Summary: Fence agent for HP iLO MP devices
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: telnet openssh-clients
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description ilo-mp
 The fence-agents-ilo-mp package contains a fence agent for HP iLO MP devices that are accessed via telnet or SSH.
 %files ilo-mp
@@ -874,7 +886,7 @@ Group: System Environment/Base
 Summary: Fence agent for HP iLO devices via SSH
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: telnet openssh-clients
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description ilo-ssh
 The fence-agents-ilo-ssh package contains a fence agent for HP iLO devices that are accessed via SSH.
 %files ilo-ssh
@@ -894,7 +906,7 @@ Group: System Environment/Base
 Summary: Fence agent for devices with Intel Modular interfaces
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: net-snmp-utils
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description intelmodular
 The fence-agents-intelmodular package contains a fence agent for Intel Modular interfaces that are accessed via the SNMP protocol.
 %files intelmodular
@@ -908,7 +920,7 @@ Group: System Environment/Base
 Summary: Fence agent for IBM iPDU network power switches
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: net-snmp-utils
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description ipdu
 The fence-agents-ipdu package contains a fence agent for IBM iPDU network power switches that are accessed via the SNMP protocol.
 %files ipdu
@@ -922,7 +934,7 @@ Group: System Environment/Base
 Summary: Fence agent for devices with IPMI interface
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: /usr/bin/ipmitool
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description ipmilan
 The fence-agents-ipmilan package contains a fence agent for devices with IPMI interface. 
 %files ipmilan
@@ -946,7 +958,7 @@ Group: System Environment/Base
 Summary: Fence agent for reservations over Device Mapper Multipath
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: device-mapper-multipath
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description mpath
 The fence-agents-mpath package contains fence agent for SCSI persistent reservation over Device Mapper Multipath
 %files mpath
@@ -960,7 +972,7 @@ License: GPLv2+ and LGPLv2+
 Group: System Environment/Base
 Summary: Fence agent for use with kdump crash recovery service
 Requires: fence-agents-common >= %{version}-%{release}
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description kdump
 The fence-agents-kdump package contains a fence agent for use with kdump crash recovery service.
 %files kdump
@@ -977,7 +989,7 @@ Group: System Environment/Base
 Summary: Fence agent for IBM LPAR
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: telnet openssh-clients
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description lpar
 The fence-agents-lpar package contains a fence agent for IBM LPAR devices that are accessed via telnet or SSH.
 %files lpar
@@ -992,7 +1004,7 @@ Group: System Environment/Base
 Summary: Fence agent for Redfish
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: python-requests
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description redfish
 The fence-agents-redfish package contains a fence agent for Redfish
 %files redfish
@@ -1005,7 +1017,7 @@ License: GPLv2+ and LGPLv2+
 Group: System Environment/Base
 Summary: Fence agent for RHEV-M
 Requires: fence-agents-common >= %{version}-%{release}
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description rhevm
 The fence-agents-rhevm package contains a fence agent for RHEV-M via REST API
 %files rhevm
@@ -1019,7 +1031,7 @@ Group: System Environment/Base
 Summary: Fence agent for IBM RSA II
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: telnet openssh-clients
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description rsa
 The fence-agents-rsa package contains a fence agent for IBM RSA II devices that are accessed via telnet or SSH.
 %files rsa
@@ -1033,7 +1045,7 @@ Group: System Environment/Base
 Summary: Fence agent for Fujitsu RSB
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: telnet openssh-clients
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description rsb
 The fence-agents-rsb package contains a fence agent for Fujitsu RSB devices that are accessed via telnet or SSH.
 %files rsb
@@ -1048,7 +1060,7 @@ Group: System Environment/Base
 Summary: Fence agent for QLogic SANBox2 FC switches
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: telnet
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description sanbox2
 The fence-agents-sanbox2 package contains a fence agent for QLogic SANBox2 switches that are accessed via telnet.
 %files sanbox2
@@ -1062,7 +1074,7 @@ License: GPLv2+ and LGPLv2+
 Group: System Environment/Base
 Summary: Fence agent for SBD (storage-based death)
 Requires: fence-agents-common >= %{version}-%{release}
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description sbd
 The fence-agents-sbd package contains fence agent for SBD (storage-based death)
 %files sbd
@@ -1075,7 +1087,7 @@ License: GPLv2+ and LGPLv2+
 Group: System Environment/Base
 Summary: Fence agent for SCSI persistent reservations
 Requires: sg3_utils fence-agents-common >= %{version}-%{release}
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description scsi
 The fence-agents-scsi package contains fence agent for SCSI persistent reservations
 %files scsi
@@ -1092,7 +1104,7 @@ Group: System Environment/Base
 Summary: Fence agent for virtual machines based on libvirt
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: openssh-clients /usr/bin/virsh
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description virsh
 The fence-agents-virsh package contains a fence agent for virtual machines that are accessed via SSH.
 %files virsh
@@ -1105,7 +1117,7 @@ License: GPLv2+ and LGPLv2+
 Group: System Environment/Base
 Summary: Fence agent for VMWare with REST API
 Requires: fence-agents-common >= %{version}-%{release}
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description vmware-rest
 The fence-agents-vmware-rest package contains a fence agent for VMWare with REST API
 %files vmware-rest
@@ -1119,7 +1131,7 @@ Group: System Environment/Base
 Summary: Fence agent for VMWare with SOAP API v4.1+
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: python-suds python-requests
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description vmware-soap
 The fence-agents-vmware-soap package contains a fence agent for VMWare with SOAP API v4.1+
 %files vmware-soap
@@ -1133,7 +1145,7 @@ Group: System Environment/Base
 Summary: Fence agent for WTI Network power switches
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: telnet openssh-clients
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description wti
 The fence-agents-wti package contains a fence agent for WTI network power switches that are accessed via telnet or SSH.
 %files wti
@@ -1148,7 +1160,7 @@ Group: System Environment/Base
 Summary: Fence agent for z/VM hypervisors
 Requires: fence-agents-common >= %{version}-%{release}
 Requires: telnet openssh-clients
-Obsoletes: fence-agents
+Obsoletes: %{name} < %{version}-%{release}
 %description zvm
 The fence-agents-zvm package contains a fence agent for z/VM hypervisors
 %files zvm
@@ -1160,6 +1172,24 @@ The fence-agents-zvm package contains a fence agent for z/VM hypervisors
 %endif
 
 %changelog
+* Tue Nov 26 2019 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-30
+- fencing: only use inetX_only parameters for SSH based agents and
+  fence_zvmip
+  Resolves: rhbz#1722004
+
+* Fri Sep 20 2019 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-28
+- fence_mpath: add plug parameter support to be able to use pcmk_host_map
+  Resolves: rhbz#1753229
+
+* Thu Sep 12 2019 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-26
+- fence_mpath: fix watchdog reboot not triggered when multipath
+  disconnected
+  Resolves: rhbz#1751702
+
+* Wed Aug 21 2019 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-25
+- fence_ilo4_ssh/fence_ilo5_ssh: add monitor timeout warning
+  Resolves: rhbz#1734812
+
 * Thu Jun 13 2019 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-24
 - fence_scsi watchdog: fix failing on first try when using retry
   Resolves: rhbz#1653700