diff --git a/SOURCES/bz1908146-bz1908147-bz1908148-bz1949114-update-openstack-agents.patch b/SOURCES/bz1908146-bz1908147-bz1908148-bz1949114-update-openstack-agents.patch
new file mode 100644
index 0000000..7b1a6e8
--- /dev/null
+++ b/SOURCES/bz1908146-bz1908147-bz1908148-bz1949114-update-openstack-agents.patch
@@ -0,0 +1,770 @@
+diff --color -uNr a/heartbeat/Makefile.am b/heartbeat/Makefile.am
+--- a/heartbeat/Makefile.am 2022-03-15 16:14:29.355209012 +0100
++++ b/heartbeat/Makefile.am 2022-03-15 16:18:35.917048467 +0100
+@@ -217,6 +217,7 @@
+ lvm-clvm.sh \
+ lvm-plain.sh \
+ lvm-tag.sh \
++ openstack-common.sh \
+ ora-common.sh \
+ mysql-common.sh \
+ nfsserver-redhat.sh \
+diff --color -uNr a/heartbeat/openstack-cinder-volume b/heartbeat/openstack-cinder-volume
+--- a/heartbeat/openstack-cinder-volume 2022-03-15 16:14:29.370209063 +0100
++++ b/heartbeat/openstack-cinder-volume 2022-03-15 16:17:36.231840008 +0100
+@@ -34,11 +34,11 @@
+ : ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/lib/heartbeat}
+ . ${OCF_FUNCTIONS_DIR}/ocf-shellfuncs
+
++. ${OCF_FUNCTIONS_DIR}/openstack-common.sh
++
+ # Defaults
+-OCF_RESKEY_openstackcli_default="/usr/bin/openstack"
+ OCF_RESKEY_volume_local_check_default="true"
+
+-: ${OCF_RESKEY_openstackcli=${OCF_RESKEY_openstackcli_default}}
+ : ${OCF_RESKEY_volume_local_check=${OCF_RESKEY_volume_local_check_default}}
+
+ #######################################################################
+@@ -68,14 +68,11 @@
+ Attach a cinder volume
+
+
+-
+-
+-Path to command line tools for openstack.
+-
+-Path to Openstack CLI tool
+-
+-
++END
+
++common_meta_data
++
++cat <
+
+ This option allows the cluster to monitor the cinder volume presence without
+@@ -85,28 +82,19 @@
+
+
+
+-
+-
+-Valid Openstack credentials as openrc file from api_access/openrc.
+-
+-openrc file
+-
+-
+-
+
+
+-Cinder volume identifier to use to attach the bloc storage.
++Cinder volume identifier to use to attach the block storage.
+
+ Volume ID
+
+
+-
+
+
+
+
+
+-
++
+
+
+
+@@ -127,17 +115,7 @@
+ osvol_validate() {
+ check_binary "$OCF_RESKEY_openstackcli"
+
+- if [ -z "$OCF_RESKEY_openrc" ]; then
+- ocf_exit_reason "openrc parameter not set"
+- return $OCF_ERR_CONFIGURED
+- fi
+-
+- if [ ! -f "$OCF_RESKEY_openrc" ] ; then
+- ocf_exit_reason "openrc file not found"
+- return $OCF_ERR_CONFIGURED
+- fi
+-
+- . $OCF_RESKEY_openrc
++ get_config
+
+ if ! $OCF_RESKEY_openstackcli volume list|grep -q $OCF_RESKEY_volume_id ; then
+ ocf_exit_reason "volume-id $OCF_RESKEY_volume_id not found"
+diff --color -uNr a/heartbeat/openstack-common.sh b/heartbeat/openstack-common.sh
+--- a/heartbeat/openstack-common.sh 1970-01-01 01:00:00.000000000 +0100
++++ b/heartbeat/openstack-common.sh 2022-03-15 16:17:36.232840011 +0100
+@@ -0,0 +1,147 @@
++OCF_RESKEY_openstackcli_default="/usr/bin/openstack"
++OCF_RESKEY_insecure_default="false"
++
++: ${OCF_RESKEY_openstackcli=${OCF_RESKEY_openstackcli_default}}
++: ${OCF_RESKEY_insecure=${OCF_RESKEY_insecure_default}}
++
++if ocf_is_true "${OCF_RESKEY_insecure}"; then
++ OCF_RESKEY_openstackcli="${OCF_RESKEY_openstackcli} --insecure"
++fi
++
++common_meta_data() {
++ cat <
++
++Openstack cloud (from ~/.config/openstack/clouds.yaml or /etc/openstack/clouds.yaml).
++
++Cloud from clouds.yaml
++
++
++
++
++
++Openstack credentials as openrc file from api_access/openrc.
++
++openrc file
++
++
++
++
++
++Keystone Auth URL
++
++Keystone Auth URL
++
++
++
++
++
++Username.
++
++Username
++
++
++
++
++
++Password.
++
++Password
++
++
++
++
++
++Keystone Project.
++
++Keystone Project
++
++
++
++
++
++Keystone User Domain Name.
++
++Keystone User Domain Name
++
++
++
++
++
++Keystone Project Domain Name.
++
++Keystone Project Domain Name
++
++
++
++
++
++Path to command line tools for openstack.
++
++Path to Openstack CLI tool
++
++
++
++
++
++Allow insecure connections
++
++Allow insecure connections
++
++
++END
++}
++
++get_config() {
++ if [ -n "$OCF_RESKEY_cloud" ]; then
++ TILDE=$(echo ~)
++ clouds_yaml="$TILDE/.config/openstack/clouds.yaml"
++ if [ ! -f "$clouds_yaml" ]; then
++ clouds_yaml="/etc/openstack/clouds.yaml"
++ fi
++ if [ ! -f "$clouds_yaml" ]; then
++ ocf_exit_reason "~/.config/openstack/clouds.yaml and /etc/openstack/clouds.yaml does not exist"
++ exit $OCF_ERR_CONFIGURED
++ fi
++ OCF_RESKEY_openstackcli="${OCF_RESKEY_openstackcli} --os-cloud $OCF_RESKEY_cloud"
++ elif [ -n "$OCF_RESKEY_openrc" ]; then
++ if [ ! -f "$OCF_RESKEY_openrc" ]; then
++ ocf_exit_reason "$OCF_RESKEY_openrc does not exist"
++ exit $OCF_ERR_CONFIGURED
++ fi
++ . $OCF_RESKEY_openrc
++ else
++ if [ -z "$OCF_RESKEY_auth_url" ]; then
++ ocf_exit_reason "auth_url not set"
++ exit $OCF_ERR_CONFIGURED
++ fi
++ if [ -z "$OCF_RESKEY_username" ]; then
++ ocf_exit_reason "username not set"
++ exit $OCF_ERR_CONFIGURED
++ fi
++ if [ -z "$OCF_RESKEY_password" ]; then
++ ocf_exit_reason "password not set"
++ exit $OCF_ERR_CONFIGURED
++ fi
++ if [ -z "$OCF_RESKEY_project_name" ]; then
++ ocf_exit_reason "project_name not set"
++ exit $OCF_ERR_CONFIGURED
++ fi
++ if [ -z "$OCF_RESKEY_user_domain_name" ]; then
++ ocf_exit_reason "user_domain_name not set"
++ exit $OCF_ERR_CONFIGURED
++ fi
++ if [ -z "$OCF_RESKEY_project_domain_name" ]; then
++ ocf_exit_reason " not set"
++ exit $OCF_ERR_CONFIGURED
++ fi
++
++ OCF_RESKEY_openstackcli="${OCF_RESKEY_openstackcli} --os-auth-url $OCF_RESKEY_auth_url"
++ OCF_RESKEY_openstackcli="${OCF_RESKEY_openstackcli} --os-username $OCF_RESKEY_username"
++ OCF_RESKEY_openstackcli="${OCF_RESKEY_openstackcli} --os-password $OCF_RESKEY_password"
++ OCF_RESKEY_openstackcli="${OCF_RESKEY_openstackcli} --os-project-name $OCF_RESKEY_project_name"
++ OCF_RESKEY_openstackcli="${OCF_RESKEY_openstackcli} --os-user-domain-name $OCF_RESKEY_user_domain_name"
++ OCF_RESKEY_openstackcli="${OCF_RESKEY_openstackcli} --os-project-domain-name $OCF_RESKEY_project_domain_name"
++ fi
++}
+diff --color -uNr a/heartbeat/openstack-floating-ip b/heartbeat/openstack-floating-ip
+--- a/heartbeat/openstack-floating-ip 2022-03-15 16:14:29.370209063 +0100
++++ b/heartbeat/openstack-floating-ip 2022-03-15 16:17:36.233840014 +0100
+@@ -34,10 +34,9 @@
+ : ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/lib/heartbeat}
+ . ${OCF_FUNCTIONS_DIR}/ocf-shellfuncs
+
+-# Defaults
+-OCF_RESKEY_openstackcli_default="/usr/bin/openstack"
++. ${OCF_FUNCTIONS_DIR}/openstack-common.sh
+
+-: ${OCF_RESKEY_openstackcli=${OCF_RESKEY_openstackcli_default}}
++# Defaults
+
+ #######################################################################
+
+@@ -67,22 +66,11 @@
+ Move a floating IP
+
+
+-
+-
+-Path to command line tools for openstack.
+-
+-Path to Openstack CLI tool
+-
+-
++END
+
+-
+-
+-Valid Openstack credentials as openrc file from api_access/openrc.
+-
+-openrc file
+-
+-
++common_meta_data
+
++cat <
+
+ Floating IP Identifier.
+@@ -104,7 +92,7 @@
+
+
+
+-
++
+
+
+
+@@ -115,17 +103,7 @@
+ osflip_validate() {
+ check_binary "$OCF_RESKEY_openstackcli"
+
+- if [ -z "$OCF_RESKEY_openrc" ]; then
+- ocf_exit_reason "openrc parameter not set"
+- return $OCF_ERR_CONFIGURED
+- fi
+-
+- if [ ! -f "$OCF_RESKEY_openrc" ] ; then
+- ocf_exit_reason "openrc file not found"
+- return $OCF_ERR_CONFIGURED
+- fi
+-
+- . $OCF_RESKEY_openrc
++ get_config
+
+ if ! $OCF_RESKEY_openstackcli floating ip list|grep -q $OCF_RESKEY_ip_id ; then
+ ocf_exit_reason "ip-id $OCF_RESKEY_ip_id not found"
+diff --color -uNr a/heartbeat/openstack-info b/heartbeat/openstack-info
+--- a/heartbeat/openstack-info 1970-01-01 01:00:00.000000000 +0100
++++ b/heartbeat/openstack-info 2022-03-15 16:17:36.234840018 +0100
+@@ -0,0 +1,270 @@
++#!/bin/sh
++#
++#
++# OCF resource agent to set attributes from Openstack instance details.
++# It records (in the CIB) various attributes of a node
++#
++# Copyright (c) 2018 Mathieu Grzybek
++# All Rights Reserved.
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of version 2 of the GNU General Public License as
++# published by the Free Software Foundation.
++#
++# This program is distributed in the hope that it would be useful, but
++# WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
++#
++# Further, this software is distributed without any warranty that it is
++# free of the rightful claim of any third person regarding infringement
++# or the like. Any license provided herein, whether implied or
++# otherwise, applies only to this software file. Patent licenses, if
++# any, provided herein do not apply to combinations of this program with
++# other software, or any other product whatsoever.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write the Free Software Foundation,
++# Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
++#
++#######################################################################
++# Initialization:
++
++: ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/lib/heartbeat}
++. ${OCF_FUNCTIONS_DIR}/ocf-shellfuncs
++
++. ${OCF_FUNCTIONS_DIR}/openstack-common.sh
++
++# Defaults
++OCF_RESKEY_pidfile_default="$HA_RSCTMP/OSInfo-${OCF_RESOURCE_HOSTNAME}"
++OCF_RESKEY_delay_default="0"
++OCF_RESKEY_clone_default="0"
++OCF_RESKEY_curlcli_default="/usr/bin/curl"
++OCF_RESKEY_pythoncli_default="/usr/bin/python"
++
++: ${OCF_RESKEY_curlcli=${OCF_RESKEY_curlcli_default}}
++: ${OCF_RESKEY_pythoncli=${OCF_RESKEY_pythoncli_default}}
++: ${OCF_RESKEY_pidfile=${OCF_RESKEY_pidfile_default}}
++: ${OCF_RESKEY_delay=${OCF_RESKEY_delay_default}}
++: ${OCF_RESKEY_clone=${OCF_RESKEY_clone_default}}
++
++#######################################################################
++
++meta_data() {
++ cat <
++
++
++1.0
++
++
++OCF resource agent to set attributes from Openstack instance details.
++It records (in the CIB) various attributes of a node.
++Sample output:
++ openstack_az : nova
++ openstack_flavor : c1.small
++ openstack_id : 60ac4343-5828-49b1-8aac-7c69b1417f31
++ openstack_ports : 7960d889-9750-4160-bf41-c69a41ad72d9:96530d18-57a3-4718-af32-30f2a74c22a2,b0e55a06-bd75-468d-8baa-22cfeb65799f:a55ae917-8016-4b1e-8ffa-04311b9dc7d6
++
++The layout of openstack_ports is a comma-separated list of tuples "subnet_id:port_id".
++
++Records various node attributes in the CIB
++
++
++END
++
++common_meta_data
++
++ cat <
++PID file
++PID file
++
++
++
++
++Interval to allow values to stabilize
++Dampening Delay
++
++
++
++
++
++Path to command line cURL binary.
++
++Path to cURL binary
++
++
++
++
++
++Path to command line Python interpreter.
++
++Path to Python interpreter
++
++
++
++
++
++
++
++
++
++
++
++
++
++END
++}
++
++#######################################################################
++
++OSInfoStats() {
++ local result
++ local value
++ local node
++ local node_id
++
++ get_config
++
++ # Nova data: server ID
++ node_id=$($OCF_RESKEY_curlcli \
++ -s http://169.254.169.254/openstack/latest/meta_data.json |
++ $OCF_RESKEY_pythoncli -m json.tool |
++ grep -P '\"uuid\": \".*\",$' |
++ grep -P -o '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}')
++
++ if [ $? -ne 0 ] ; then
++ ocf_exit_reason "Cannot find server ID"
++ exit $OCF_ERR_GENERIC
++ fi
++
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -n openstack_id -v "$node_id"
++
++ # Nova data: flavor
++ value=$($OCF_RESKEY_openstackcli server show \
++ --format value \
++ --column flavor \
++ $node_id)
++
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -n openstack_flavor -v "$value"
++
++ # Nova data: availability zone
++ value=$($OCF_RESKEY_openstackcli server show \
++ --format value \
++ --column OS-EXT-AZ:availability_zone \
++ $node_id)
++
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -n openstack_az -v "$value"
++
++ # Network data: ports
++ value=""
++ for port_id in $($OCF_RESKEY_openstackcli port list \
++ --format value \
++ --column id \
++ --server $node_id); do
++ subnet_id=$($OCF_RESKEY_openstackcli port show \
++ --format json \
++ --column fixed_ips \
++ ${port_id} | grep -P '\"subnet_id\": \".*\",$' |
++ grep -P -o '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}')
++ value+="${subnet_id}:${port_id},"
++ done
++ value=$(echo ${value} | sed -e 's/,$//g')
++
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -n openstack_ports -v "$value"
++
++ if [ ! -z "$OS_REGION_NAME" ] ; then
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -n openstack_region -v "$OS_REGION_NAME"
++ fi
++
++ if [ ! -z "$OS_TENANT_ID" ] ; then
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -n openstack_tenant_id -v "$OS_TENANT_ID"
++
++ if [ ! -z "$OS_TENANT_NAME" ] ; then
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -n openstack_tenant_name -v "$OS_TENANT_NAME"
++ fi
++ else
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -n openstack_project_id -v "$OS_PROJECT_ID"
++
++ if [ ! -z "$OS_PROJECT_NAME" ] ; then
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -n openstack_project_name -v "$OS_PROJECT_NAME"
++ fi
++ fi
++
++}
++
++OSInfo_usage() {
++ cat < $OCF_RESKEY_pidfile
++ OSInfoStats
++ exit $OCF_SUCCESS
++}
++
++OSInfo_stop() {
++ rm -f $OCF_RESKEY_pidfile
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -D -n openstack_id
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -D -n openstack_flavor
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -D -n openstack_az
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -D -n openstack_ports
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -D -n openstack_region
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -D -n openstack_tenant_id
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -D -n openstack_tenant_name
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -D -n openstack_project_id
++ ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -D -n openstack_project_name
++ exit $OCF_SUCCESS
++}
++
++OSInfo_monitor() {
++ if [ -f "$OCF_RESKEY_pidfile" ] ; then
++ OSInfoStats
++ exit $OCF_RUNNING
++ fi
++ exit $OCF_NOT_RUNNING
++}
++
++OSInfo_validate() {
++ check_binary "$OCF_RESKEY_curlcli"
++ check_binary "$OCF_RESKEY_openstackcli"
++ check_binary "$OCF_RESKEY_pythoncli"
++
++ return $OCF_SUCCESS
++}
++
++if [ $# -ne 1 ]; then
++ OSInfo_usage
++ exit $OCF_ERR_ARGS
++fi
++
++if [ x != x${OCF_RESKEY_delay} ]; then
++ OCF_RESKEY_delay="-d ${OCF_RESKEY_delay}"
++fi
++
++case $__OCF_ACTION in
++meta-data) meta_data
++ exit $OCF_SUCCESS
++ ;;
++start) OSInfo_validate || exit $?
++ OSInfo_start
++ ;;
++stop) OSInfo_stop
++ ;;
++monitor) OSInfo_monitor
++ ;;
++validate-all) OSInfo_validate
++ ;;
++usage|help) OSInfo_usage
++ exit $OCF_SUCCESS
++ ;;
++*) OSInfo_usage
++ exit $OCF_ERR_UNIMPLEMENTED
++ ;;
++esac
++
++exit $?
+diff --color -uNr a/heartbeat/openstack-info.in b/heartbeat/openstack-info.in
+--- a/heartbeat/openstack-info.in 2022-03-15 16:14:29.370209063 +0100
++++ b/heartbeat/openstack-info.in 2022-03-15 16:17:36.234840018 +0100
+@@ -32,16 +32,16 @@
+ : ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/lib/heartbeat}
+ . ${OCF_FUNCTIONS_DIR}/ocf-shellfuncs
+
++. ${OCF_FUNCTIONS_DIR}/openstack-common.sh
++
+ # Defaults
+ OCF_RESKEY_pidfile_default="$HA_RSCTMP/OSInfo-${OCF_RESOURCE_HOSTNAME}"
+ OCF_RESKEY_delay_default="0"
+ OCF_RESKEY_clone_default="0"
+ OCF_RESKEY_curlcli_default="/usr/bin/curl"
+-OCF_RESKEY_openstackcli_default="/usr/bin/openstack"
+ OCF_RESKEY_pythoncli_default="@PYTHON@"
+
+ : ${OCF_RESKEY_curlcli=${OCF_RESKEY_curlcli_default}}
+-: ${OCF_RESKEY_openstackcli=${OCF_RESKEY_openstackcli_default}}
+ : ${OCF_RESKEY_pythoncli=${OCF_RESKEY_pythoncli_default}}
+ : ${OCF_RESKEY_pidfile=${OCF_RESKEY_pidfile_default}}
+ : ${OCF_RESKEY_delay=${OCF_RESKEY_delay_default}}
+@@ -70,25 +70,23 @@
+ Records various node attributes in the CIB
+
+
++END
++
++common_meta_data
++
++ cat <
+ PID file
+ PID file
+
+
++
+
+ Interval to allow values to stabilize
+ Dampening Delay
+
+
+
+-
+-
+-Valid Openstack credentials as openrc file from api_access/openrc.
+-
+-openrc file
+-
+-
+-
+
+
+ Path to command line cURL binary.
+@@ -97,14 +95,6 @@
+
+
+
+-
+-
+-Path to command line tools for openstack.
+-
+-Path to Openstack CLI tool
+-
+-
+-
+
+
+ Path to command line Python interpreter.
+@@ -116,9 +106,9 @@
+
+
+
+-
+-
+-
++
++
++
+
+
+
+@@ -134,7 +124,7 @@
+ local node
+ local node_id
+
+- . $OCF_RESKEY_openrc
++ get_config
+
+ # Nova data: server ID
+ node_id=$($OCF_RESKEY_curlcli \
+@@ -244,16 +234,6 @@
+ check_binary "$OCF_RESKEY_openstackcli"
+ check_binary "$OCF_RESKEY_pythoncli"
+
+- if [ -z "$OCF_RESKEY_openrc" ]; then
+- ocf_exit_reason "openrc parameter not set"
+- return $OCF_ERR_CONFIGURED
+- fi
+-
+- if [ ! -f "$OCF_RESKEY_openrc" ] ; then
+- ocf_exit_reason "openrc file not found"
+- return $OCF_ERR_CONFIGURED
+- fi
+-
+ return $OCF_SUCCESS
+ }
+
+diff --color -uNr a/heartbeat/openstack-virtual-ip b/heartbeat/openstack-virtual-ip
+--- a/heartbeat/openstack-virtual-ip 2022-03-15 16:14:29.370209063 +0100
++++ b/heartbeat/openstack-virtual-ip 2022-03-15 16:17:36.235840021 +0100
+@@ -34,10 +34,9 @@
+ : ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/lib/heartbeat}
+ . ${OCF_FUNCTIONS_DIR}/ocf-shellfuncs
+
+-# Defaults
+-OCF_RESKEY_openstackcli_default="/usr/bin/openstack"
++. ${OCF_FUNCTIONS_DIR}/openstack-common.sh
+
+-: ${OCF_RESKEY_openstackcli=${OCF_RESKEY_openstackcli_default}}
++# Defaults
+
+ #######################################################################
+
+@@ -68,22 +67,11 @@
+ Move a virtual IP
+
+
+-
+-
+-Path to command line tools for openstack.
+-
+-Path to Openstack CLI tool
+-
+-
++END
+
+-
+-
+-Valid Openstack credentials as openrc file from api_access/openrc.
+-
+-openrc file
+-
+-
++common_meta_data
+
++cat <
+
+ Virtual IP Address.
+@@ -105,7 +93,7 @@
+
+
+
+-
++
+
+
+
+@@ -128,17 +116,7 @@
+ osvip_validate() {
+ check_binary "$OCF_RESKEY_openstackcli"
+
+- if [ -z "$OCF_RESKEY_openrc" ]; then
+- ocf_exit_reason "openrc parameter not set"
+- return $OCF_ERR_CONFIGURED
+- fi
+-
+- if [ ! -f "$OCF_RESKEY_openrc" ] ; then
+- ocf_exit_reason "openrc file not found"
+- return $OCF_ERR_CONFIGURED
+- fi
+-
+- . $OCF_RESKEY_openrc
++ get_config
+
+ ${HA_SBIN_DIR}/attrd_updater --query -n openstack_ports -N $(crm_node -n) > /dev/null 2>&1
+ if [ $? -ne 0 ] ; then
diff --git a/SOURCES/bz1654862-1-IPsrcaddr-dhcp-warning.patch b/SOURCES/bz2064342-1-IPsrcaddr-dhcp-warning.patch
similarity index 100%
rename from SOURCES/bz1654862-1-IPsrcaddr-dhcp-warning.patch
rename to SOURCES/bz2064342-1-IPsrcaddr-dhcp-warning.patch
diff --git a/SOURCES/bz1654862-2-IPsrcaddr-error-message-route-not-found.patch b/SOURCES/bz2064342-2-IPsrcaddr-error-message-route-not-found.patch
similarity index 100%
rename from SOURCES/bz1654862-2-IPsrcaddr-error-message-route-not-found.patch
rename to SOURCES/bz2064342-2-IPsrcaddr-error-message-route-not-found.patch
diff --git a/SOURCES/bz1654862-3-IPsrcaddr-fix-indentation.patch b/SOURCES/bz2064342-3-IPsrcaddr-fix-indentation.patch
similarity index 100%
rename from SOURCES/bz1654862-3-IPsrcaddr-fix-indentation.patch
rename to SOURCES/bz2064342-3-IPsrcaddr-fix-indentation.patch
diff --git a/SOURCES/bz1654862-4-IPsrcaddr-fixes.patch b/SOURCES/bz2064342-4-IPsrcaddr-fixes.patch
similarity index 100%
rename from SOURCES/bz1654862-4-IPsrcaddr-fixes.patch
rename to SOURCES/bz2064342-4-IPsrcaddr-fixes.patch
diff --git a/SPECS/resource-agents.spec b/SPECS/resource-agents.spec
index 6f48dac..07e0e4b 100644
--- a/SPECS/resource-agents.spec
+++ b/SPECS/resource-agents.spec
@@ -66,7 +66,7 @@
Name: resource-agents
Summary: Open Source HA Reusable Cluster Resource Scripts
Version: 4.9.0
-Release: 16%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}
+Release: 17%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}
License: GPLv2+ and LGPLv2+
URL: https://github.com/ClusterLabs/resource-agents
%if 0%{?fedora} || 0%{?centos_version} || 0%{?rhel}
@@ -97,10 +97,11 @@ Patch10: bz2012057-Route-return-OCF_NOT_RUNNING-missing-route.patch
Patch11: bz2029706-1-db2-crm_attribute-use-forever.patch
Patch12: bz2029706-2-db2-fixes.patch
Patch13: bz1992661-mysql-use-ssl-mode.patch
-Patch14: bz1654862-1-IPsrcaddr-dhcp-warning.patch
-Patch15: bz1654862-2-IPsrcaddr-error-message-route-not-found.patch
-Patch16: bz1654862-3-IPsrcaddr-fix-indentation.patch
-Patch17: bz1654862-4-IPsrcaddr-fixes.patch
+Patch14: bz2064342-1-IPsrcaddr-dhcp-warning.patch
+Patch15: bz2064342-2-IPsrcaddr-error-message-route-not-found.patch
+Patch16: bz2064342-3-IPsrcaddr-fix-indentation.patch
+Patch17: bz2064342-4-IPsrcaddr-fixes.patch
+Patch18: bz1908146-bz1908147-bz1908148-bz1949114-update-openstack-agents.patch
# bundle patches
Patch1000: 7-gcp-bundled.patch
@@ -292,6 +293,7 @@ exit 1
%patch15 -p1
%patch16 -p1
%patch17 -p1
+%patch18 -p1
chmod 755 heartbeat/nova-compute-wait
chmod 755 heartbeat/NovaEvacuate
@@ -714,10 +716,6 @@ rm -rf %{buildroot}
%exclude %{_usr}/lib/ocf/resource.d/heartbeat/mpathpersist
%exclude %{_usr}/lib/ocf/resource.d/heartbeat/mysql-proxy
%exclude %{_usr}/lib/ocf/resource.d/heartbeat/nvmet-*
-%exclude %{_usr}/lib/ocf/resource.d/heartbeat/openstack-cinder-volume
-%exclude %{_usr}/lib/ocf/resource.d/heartbeat/openstack-floating-ip
-%exclude %{_usr}/lib/ocf/resource.d/heartbeat/openstack-info
-%exclude %{_usr}/lib/ocf/resource.d/heartbeat/openstack-virtual-ip
%exclude %{_usr}/lib/ocf/resource.d/heartbeat/ovsmonitor
%exclude %{_usr}/lib/ocf/resource.d/heartbeat/pgagent
%exclude %{_usr}/lib/ocf/resource.d/heartbeat/pingd
@@ -782,10 +780,6 @@ rm -rf %{buildroot}
%exclude %{_mandir}/man7/ocf_heartbeat_mpathpersist.7.gz
%exclude %{_mandir}/man7/ocf_heartbeat_mysql-proxy.7.gz
%exclude %{_mandir}/man7/ocf_heartbeat_nvmet-*.7.gz
-%exclude %{_mandir}/man7/ocf_heartbeat_openstack-cinder-volume.7.gz
-%exclude %{_mandir}/man7/ocf_heartbeat_openstack-floating-ip.7.gz
-%exclude %{_mandir}/man7/ocf_heartbeat_openstack-info.7.gz
-%exclude %{_mandir}/man7/ocf_heartbeat_openstack-virtual-ip.7.gz
%exclude %{_mandir}/man7/ocf_heartbeat_ovsmonitor.7.gz
%exclude %{_mandir}/man7/ocf_heartbeat_pgagent.7.gz
%exclude %{_mandir}/man7/ocf_heartbeat_pingd.7.gz
@@ -872,11 +866,17 @@ ccs_update_schema > /dev/null 2>&1 ||:
%{_usr}/lib/ocf/lib/heartbeat/OCF_*.pm
%changelog
+* Wed Mar 16 2022 Oyvind Albrigtsen - 4.9.0-17
+- openstack-cinder-volume/openstack-floating-ip/openstack-info/
+ openstack-virtual-ip: new resource agents
+
+ Resolves: rhbz#1908146, rhbz#1908147, rhbz#1908148, rhbz#1949114
+
* Thu Mar 3 2022 Oyvind Albrigtsen - 4.9.0-16
- IPsrcaddr: add warning about possible issues when used with DHCP,
and add error message when matching route not found
- Resolves: rhbz#1654862
+ Resolves: rhbz#2064342
* Thu Feb 24 2022 Oyvind Albrigtsen - 4.9.0-15
- db2: use -l forever to fix crm_attribute issue