diff --git a/SOURCES/bz1861139-fence_lpar-fix-long-user-host-issue.patch b/SOURCES/bz1861139-fence_lpar-fix-long-user-host-issue.patch
new file mode 100644
index 0000000..f65f6ba
--- /dev/null
+++ b/SOURCES/bz1861139-fence_lpar-fix-long-user-host-issue.patch
@@ -0,0 +1,127 @@
+From 3424464d3e447308f171399302cf76eb573a618f Mon Sep 17 00:00:00 2001
+From: Reid wahl <nrwahl@protonmail.com>
+Date: Fri, 24 Jul 2020 18:22:24 -0700
+Subject: [PATCH] fence_lpar: Fix parse error from long command line
+
+When Pacemaker executes `fence_lpar` and the HMC command line is greater
+than 80 characters, a parse error causes agent failure. This can happen
+with a long user name and/or long managed system name. It happens only
+when Pacemaker spawns the `fence_lpar` process; it does not happen when
+`fence_lpar` is run from the CLI.
+
+A long command line gets a carriage return ('\r') added at the 80
+character mark and wraps back to the beginning of the line with no line
+feed ('\n'), overwriting the displayed characters. `fence_lpar`'s regex
+matches handle this fine when it's run from the command line.
+
+The problem is that when Pacemaker spawns fence_lpar, **for some
+reason** there are backspace characters in the buffer when we hit the
+'\r' character. This seems to overwrite some of the `conn.before`
+string. As a result, the regex doesn't match `conn.before`, and the
+agent fails.
+
+This patch works around the `conn.before` weirdness by reading and
+discarding the first received line **before** any regex processing.
+
+Resolves: RHBZ#1860544
+Resolves: RHBZ#1860545
+
+Signed-off-by: Reid Wahl <nrwahl@protonmail.com>
+---
+ agents/lpar/fence_lpar.py | 33 +++++++++++++++++++++++++++------
+ 1 file changed, 27 insertions(+), 6 deletions(-)
+
+diff --git a/agents/lpar/fence_lpar.py b/agents/lpar/fence_lpar.py
+index 270bbe3b..9dfabc43 100644
+--- a/agents/lpar/fence_lpar.py
++++ b/agents/lpar/fence_lpar.py
+@@ -19,6 +19,9 @@
+ def get_power_status(conn, options):
+ 	if options["--hmc-version"] == "3":
+ 		conn.send("lssyscfg -r lpar -m " + options["--managed"] + " -n " + options["--plug"] + " -F name,state\n")
++
++		# First line (command) may cause parsing issues if long
++		conn.readline()
+ 		conn.log_expect(options["--command-prompt"], int(options["--power-timeout"]))
+ 
+ 		try:
+@@ -29,6 +32,9 @@ def get_power_status(conn, options):
+ 	elif options["--hmc-version"] in ["4", "IVM"]:
+ 		conn.send("lssyscfg -r lpar -m "+ options["--managed"] +
+ 				" --filter 'lpar_names=" + options["--plug"] + "'\n")
++
++		# First line (command) may cause parsing issues if long
++		conn.readline()
+ 		conn.log_expect(options["--command-prompt"], int(options["--power-timeout"]))
+ 
+ 		try:
+@@ -49,6 +55,9 @@ def set_power_status(conn, options):
+ 	if options["--hmc-version"] == "3":
+ 		conn.send("chsysstate -o " + options["--action"] + " -r lpar -m " + options["--managed"]
+ 			+ " -n " + options["--plug"] + "\n")
++
++		# First line (command) may cause parsing issues if long
++		conn.readline()
+ 		conn.log_expect(options["--command-prompt"], int(options["--power-timeout"]))
+ 	elif options["--hmc-version"] in ["4", "IVM"]:
+ 		if options["--action"] == "on":
+@@ -60,17 +69,23 @@ def set_power_status(conn, options):
+ 		else:
+ 			conn.send("chsysstate -o shutdown -r lpar --immed" +
+ 				" -m " + options["--managed"] + " -n " + options["--plug"] + "\n")
++
++		# First line (command) may cause parsing issues if long
++		conn.readline()
+ 		conn.log_expect(options["--command-prompt"], int(options["--power-timeout"]))
+ 
+ def get_lpar_list(conn, options):
+ 	outlets = {}
+ 	if options["--hmc-version"] == "3":
+ 		conn.send("query_partition_names -m " + options["--managed"] + "\n")
++
++		## We have to remove first line (command)
++		conn.readline()
+ 		conn.log_expect(options["--command-prompt"], int(options["--power-timeout"]))
+ 
+-		## We have to remove first 3 lines (command + header) and last line (part of new prompt)
++		## We have to remove next 2 lines (header) and last line (part of new prompt)
+ 		####
+-		res = re.search("^.+?\n(.+?\n){2}(.*)\n.*$", conn.before, re.S)
++		res = re.search("^(.+?\n){2}(.*)\n.*$", conn.before, re.S)
+ 
+ 		if res == None:
+ 			fail_usage("Unable to parse output of list command")
+@@ -81,11 +96,14 @@ def get_lpar_list(conn, options):
+ 	elif options["--hmc-version"] == "4":
+ 		conn.send("lssyscfg -r lpar -m " + options["--managed"] +
+ 			" -F name:state\n")
++
++		## We have to remove first line (command)
++		conn.readline()
+ 		conn.log_expect(options["--command-prompt"], int(options["--power-timeout"]))
+ 
+-		## We have to remove first line (command) and last line (part of new prompt)
++		## We have to remove last line (part of new prompt)
+ 		####
+-		res = re.search("^.+?\n(.*)\n.*$", conn.before, re.S)
++		res = re.search("^(.*)\n.*$", conn.before, re.S)
+ 
+ 		if res == None:
+ 			fail_usage("Unable to parse output of list command")
+@@ -100,11 +118,14 @@ def get_lpar_list(conn, options):
+ 	elif options["--hmc-version"] == "IVM":
+ 		conn.send("lssyscfg -r lpar -m " + options["--managed"] +
+ 			" -F name,state\n")
++
++		## We have to remove first line (command)
++		conn.readline()
+ 		conn.log_expect(options["--command-prompt"], int(options["--power-timeout"]))
+ 
+-		## We have to remove first line (command) and last line (part of new prompt)
++		## We have to remove last line (part of new prompt)
+ 		####
+-		res = re.search("^.+?\n(.*)\n.*$", conn.before, re.S)
++		res = re.search("^(.*)\n.*$", conn.before, re.S)
+ 
+ 		if res == None:
+ 			fail_usage("Unable to parse output of list command")
diff --git a/SOURCES/bz1867156-fence_evacuate-support-private-flavors.patch b/SOURCES/bz1867156-fence_evacuate-support-private-flavors.patch
new file mode 100644
index 0000000..60eddd2
--- /dev/null
+++ b/SOURCES/bz1867156-fence_evacuate-support-private-flavors.patch
@@ -0,0 +1,26 @@
+From 18ef1622475db947aef70042523f4a176c4155bd Mon Sep 17 00:00:00 2001
+From: Luca Miccini <lmiccini@redhat.com>
+Date: Thu, 23 Jul 2020 14:33:38 +0200
+Subject: [PATCH] [fence_evacuate] Enable evacuation of instances using private
+ flavors
+
+This commit extends the flavor.list() api call in the fence_evacuate
+agent to fetch private flavors that could be tagged with the 'evacuable'
+attribute, allowing instance-ha to be enabled on a per tenant basis.
+---
+ agents/evacuate/fence_evacuate.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/agents/evacuate/fence_evacuate.py b/agents/evacuate/fence_evacuate.py
+index 88837dd8..53d6fd15 100644
+--- a/agents/evacuate/fence_evacuate.py
++++ b/agents/evacuate/fence_evacuate.py
+@@ -87,7 +87,7 @@ def _is_server_evacuable(server, evac_flavors, evac_images):
+ 
+ def _get_evacuable_flavors(connection):
+ 	result = []
+-	flavors = connection.flavors.list()
++	flavors = connection.flavors.list(is_public=None)
+ 	# Since the detailed view for all flavors doesn't provide the extra specs,
+ 	# we need to call each of the flavor to get them.
+ 	for flavor in flavors:
diff --git a/SPECS/fence-agents.spec b/SPECS/fence-agents.spec
index bfb236a..190e73d 100644
--- a/SPECS/fence-agents.spec
+++ b/SPECS/fence-agents.spec
@@ -29,7 +29,7 @@
 Name: fence-agents
 Summary: Set of unified programs capable of host isolation ("fencing")
 Version: 4.2.1
-Release: 41%{?alphatag:.%{alphatag}}%{?dist}
+Release: 41%{?alphatag:.%{alphatag}}%{?dist}.2
 License: GPLv2+ and LGPLv2+
 Group: System Environment/Base
 URL: https://github.com/ClusterLabs/fence-agents
@@ -95,6 +95,8 @@ Patch53: bz1781357-fence_aws-improve-logging-and-metadata-usage-text.patch
 Patch54: bz1753228-fence_mpath-1-add-plug-parameter-support.patch
 Patch55: bz1753228-fence_mpath-2-fix-plug-parameter-issues.patch
 Patch56: bz1798641-fence_mpath-fix-reserve-parameter-typo.patch
+Patch57: bz1861139-fence_lpar-fix-long-user-host-issue.patch
+Patch58: bz1867156-fence_evacuate-support-private-flavors.patch
 
 %if 0%{?fedora} || 0%{?rhel} > 7
 %global supportedagents amt_ws apc apc_snmp bladecenter brocade cisco_mds cisco_ucs compute drac5 eaton_snmp emerson eps evacuate hpblade ibmblade ifmib ilo ilo_moonshot ilo_mp ilo_ssh intelmodular ipdu ipmilan mpath kdump redfish rhevm rsa rsb sbd scsi vmware_rest vmware_soap wti
@@ -229,6 +231,8 @@ BuildRequires: python3-google-api-client
 %patch54 -p1
 %patch55 -p1
 %patch56 -p1
+%patch57 -p1
+%patch58 -p1
 
 # prevent compilation of something that won't get used anyway
 sed -i.orig 's|FENCE_ZVM=1|FENCE_ZVM=0|' configure.ac
@@ -1022,6 +1026,17 @@ Fence agent for IBM z/VM over IP.
 %endif
 
 %changelog
+* Tue Jul 28 2020 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-41.2
+- fence_evacuate: enable evacuation of instances using private flavors
+
+  Resolves: rhbz#1867156
+
+* Tue Jul 28 2020 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-41.1
+- fence_lpar: fix issue with long username, hostname, etc not
+  working when the command run by the agent exceeds 80 characters
+
+  Resolves: rhbz#1861139
+
 * Thu Feb 13 2020 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-41
 - fence_mpath: add plug parameter support to be able to use pcmk_host_map
   Resolves: rhbz#1753228