- fence_scsi: fix registration handling if ISID conflicts

Resolves: RHEL-5396
- bundled certifi: fix CVE-2023-37920
  Resolves: RHEL-9446
This commit is contained in:
Oyvind Albrigtsen 2023-09-27 14:50:24 +02:00
parent 0d3103d97e
commit 6fbe4aa99c
4 changed files with 302 additions and 123 deletions

View File

@ -0,0 +1,68 @@
From 9d0d0d013c7edae43a4ebc5f46bf2e7a4f127654 Mon Sep 17 00:00:00 2001
From: "sreejit.mohanan" <sreejit.mohanan@nutanix.com>
Date: Fri, 17 Feb 2023 18:04:03 -0800
Subject: [PATCH] fence_scsi: fix registration handling if ISID conflicts ISID
(Initiator Session ID) belonging to I_T Nexus changes for RHEL based on the
session ID. This means that the connection to the device can be set up with
different ISID on reconnects.
fence_scsi treats same key as a tip to ignore issuing registration
to the device but if the device was registered using a different
ISID, the key would be the same but the I_T Nexus (new ISID) would
not have access to the device.
Fixing this by preempting the old key and replacing with the current
one.
---
agents/scsi/fence_scsi.py | 35 ++++++++++++++++++++++++++++++++---
1 file changed, 32 insertions(+), 3 deletions(-)
diff --git a/agents/scsi/fence_scsi.py b/agents/scsi/fence_scsi.py
index f9e6823b2..85e4f29e6 100644
--- a/agents/scsi/fence_scsi.py
+++ b/agents/scsi/fence_scsi.py
@@ -137,12 +137,41 @@ def register_dev(options, dev):
for slave in get_mpath_slaves(dev):
register_dev(options, slave)
return True
- if get_reservation_key(options, dev, False) == options["--key"]:
- return True
+
+ # Check if any registration exists for the key already. We track this in
+ # order to decide whether the existing registration needs to be cleared.
+ # This is needed since the previous registration could be for a
+ # different I_T nexus (different ISID).
+ registration_key_exists = False
+ if options["--key"] in get_registration_keys(options, dev):
+ registration_key_exists = True
+ if not register_helper(options, options["--key"], dev):
+ return False
+
+ if registration_key_exists:
+ # If key matches, make sure it matches with the connection that
+ # exists right now. To do this, we can issue a preempt with same key
+ # which should replace the old invalid entries from the target.
+ if not preempt(options, options["--key"], dev):
+ return False
+
+ # If there was no reservation, we need to issue another registration
+ # since the previous preempt would clear registration made above.
+ if get_reservation_key(options, dev, False) != options["--key"]:
+ return register_helper(options, options["--key"], dev)
+ return True
+
+# cancel registration without aborting tasks
+def preempt(options, host, dev):
+ reset_dev(options,dev)
+ cmd = options["--sg_persist-path"] + " -n -o -P -T 5 -K " + host + " -S " + options["--key"] + " -d " + dev
+ return not bool(run_cmd(options, cmd)["rc"])
+
+# helper function to send the register command
+def register_helper(options, host, dev):
reset_dev(options, dev)
cmd = options["--sg_persist-path"] + " -n -o -I -S " + options["--key"] + " -d " + dev
cmd += " -Z" if "--aptpl" in options else ""
- #cmd return code != 0 but registration can be successful
return not bool(run_cmd(options, cmd)["rc"])

View File

@ -0,0 +1,103 @@
From 34baef58db442148b8e067509d2cdd37b7a91ef4 Mon Sep 17 00:00:00 2001
From: "sreejit.mohanan" <sreejit.mohanan@nutanix.com>
Date: Thu, 7 Sep 2023 15:57:51 -0700
Subject: [PATCH] fence_scsi: fix registration handling in device 'off'
workflows
ISID (Initiator Session ID) belonging to I_T Nexus changes for
RHEL based on the session ID. This means that the connection to
the device can be set up with different ISID on reconnects.
When a device is powered off, fence_scsi assumes that the client
has a registration to the device and sends a preempt-and-abort
request which ends up failing due to reservation conflict.
Fixing this by registering the host key with the device and preempting
the old registration (if it exists). This should make sure that the
host is able to preempt the other key successfully.
---
agents/scsi/fence_scsi.py | 29 +++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)
diff --git a/agents/scsi/fence_scsi.py b/agents/scsi/fence_scsi.py
index 42530ceb5..519319bf5 100644
--- a/agents/scsi/fence_scsi.py
+++ b/agents/scsi/fence_scsi.py
@@ -41,7 +41,7 @@ def set_status(conn, options):
for dev in options["devices"]:
is_block_device(dev)
- register_dev(options, dev)
+ register_dev(options, dev, options["--key"])
if options["--key"] not in get_registration_keys(options, dev):
count += 1
logging.debug("Failed to register key "\
@@ -62,7 +62,7 @@ def set_status(conn, options):
fail_usage("Failed: keys cannot be same. You can not fence yourself.")
for dev in options["devices"]:
is_block_device(dev)
-
+ register_dev(options, dev, host_key)
if options["--key"] in get_registration_keys(options, dev):
preempt_abort(options, host_key, dev)
@@ -131,11 +131,11 @@ def reset_dev(options, dev):
return run_cmd(options, options["--sg_turs-path"] + " " + dev)["rc"]
-def register_dev(options, dev):
+def register_dev(options, dev, key):
dev = os.path.realpath(dev)
if re.search(r"^dm", dev[5:]):
for slave in get_mpath_slaves(dev):
- register_dev(options, slave)
+ register_dev(options, slave, key)
return True
# Check if any registration exists for the key already. We track this in
@@ -143,34 +143,35 @@ def register_dev(options, dev):
# This is needed since the previous registration could be for a
# different I_T nexus (different ISID).
registration_key_exists = False
- if options["--key"] in get_registration_keys(options, dev):
+ if key in get_registration_keys(options, dev):
+ logging.debug("Registration key exists for device " + dev)
registration_key_exists = True
- if not register_helper(options, options["--key"], dev):
+ if not register_helper(options, dev, key):
return False
if registration_key_exists:
# If key matches, make sure it matches with the connection that
# exists right now. To do this, we can issue a preempt with same key
# which should replace the old invalid entries from the target.
- if not preempt(options, options["--key"], dev):
+ if not preempt(options, key, dev, key):
return False
# If there was no reservation, we need to issue another registration
# since the previous preempt would clear registration made above.
- if get_reservation_key(options, dev, False) != options["--key"]:
- return register_helper(options, options["--key"], dev)
+ if get_reservation_key(options, dev, False) != key:
+ return register_helper(options, dev, key)
return True
-# cancel registration without aborting tasks
-def preempt(options, host, dev):
+# helper function to preempt host with 'key' using 'host_key' without aborting tasks
+def preempt(options, host_key, dev, key):
reset_dev(options,dev)
- cmd = options["--sg_persist-path"] + " -n -o -P -T 5 -K " + host + " -S " + options["--key"] + " -d " + dev
+ cmd = options["--sg_persist-path"] + " -n -o -P -T 5 -K " + host_key + " -S " + key + " -d " + dev
return not bool(run_cmd(options, cmd)["rc"])
# helper function to send the register command
-def register_helper(options, host, dev):
+def register_helper(options, dev, key):
reset_dev(options, dev)
- cmd = options["--sg_persist-path"] + " -n -o -I -S " + options["--key"] + " -d " + dev
+ cmd = options["--sg_persist-path"] + " -n -o -I -S " + key + " -d " + dev
cmd += " -Z" if "--aptpl" in options else ""
return not bool(run_cmd(options, cmd)["rc"])

View File

@ -17,8 +17,8 @@
%global ruamelyamlclib_version 0.2.6 %global ruamelyamlclib_version 0.2.6
%global kubernetes kubernetes %global kubernetes kubernetes
%global kubernetes_version 12.0.1 %global kubernetes_version 12.0.1
%global certifi certifi %global certifi certifi
%global certifi_version 2021.10.8 %global certifi_version 2023.7.22
%global googleauth google-auth %global googleauth google-auth
%global googleauth_version 2.3.0 %global googleauth_version 2.3.0
%global cachetools cachetools %global cachetools cachetools
@ -59,7 +59,7 @@
Name: fence-agents Name: fence-agents
Summary: Set of unified programs capable of host isolation ("fencing") Summary: Set of unified programs capable of host isolation ("fencing")
Version: 4.10.0 Version: 4.10.0
Release: 55%{?alphatag:.%{alphatag}}%{?dist} Release: 56%{?alphatag:.%{alphatag}}%{?dist}
License: GPLv2+ and LGPLv2+ License: GPLv2+ and LGPLv2+
URL: https://github.com/ClusterLabs/fence-agents URL: https://github.com/ClusterLabs/fence-agents
Source0: https://fedorahosted.org/releases/f/e/fence-agents/%{name}-%{version}.tar.gz Source0: https://fedorahosted.org/releases/f/e/fence-agents/%{name}-%{version}.tar.gz
@ -109,85 +109,84 @@ Source1025: azure_mgmt_compute-21.0.0-py2.py3-none-any.whl
Source1026: azure_mgmt_core-1.2.2-py2.py3-none-any.whl Source1026: azure_mgmt_core-1.2.2-py2.py3-none-any.whl
Source1027: azure_mgmt_network-19.0.0-py2.py3-none-any.whl Source1027: azure_mgmt_network-19.0.0-py2.py3-none-any.whl
Source1028: azure-identity-1.10.0.zip Source1028: azure-identity-1.10.0.zip
Source1029: certifi-2021.5.30-py2.py3-none-any.whl Source1029: chardet-4.0.0-py2.py3-none-any.whl
Source1030: chardet-4.0.0-py2.py3-none-any.whl Source1030: idna-2.10-py2.py3-none-any.whl
Source1031: idna-2.10-py2.py3-none-any.whl Source1031: isodate-0.6.0-py2.py3-none-any.whl
Source1032: isodate-0.6.0-py2.py3-none-any.whl Source1032: msrest-0.6.21-py2.py3-none-any.whl
Source1033: msrest-0.6.21-py2.py3-none-any.whl Source1033: msrestazure-0.6.4-py2.py3-none-any.whl
Source1034: msrestazure-0.6.4-py2.py3-none-any.whl Source1034: %{oauthlib}-%{oauthlib_version}.tar.gz
Source1035: %{oauthlib}-%{oauthlib_version}.tar.gz Source1035: PyJWT-2.1.0-py3-none-any.whl
Source1036: PyJWT-2.1.0-py3-none-any.whl Source1036: requests-2.25.1-py2.py3-none-any.whl
Source1037: requests-2.25.1-py2.py3-none-any.whl Source1037: requests_oauthlib-1.3.0-py2.py3-none-any.whl
Source1038: requests_oauthlib-1.3.0-py2.py3-none-any.whl Source1038: msal-1.18.0.tar.gz
Source1139: msal-1.18.0.tar.gz Source1039: msal-extensions-1.0.0.tar.gz
Source1140: msal-extensions-1.0.0.tar.gz Source1040: portalocker-2.5.1.tar.gz
Source1141: portalocker-2.5.1.tar.gz
# google # google
Source1042: cachetools-4.2.2-py3-none-any.whl Source1041: cachetools-4.2.2-py3-none-any.whl
Source1043: chardet-3.0.4-py2.py3-none-any.whl Source1042: chardet-3.0.4-py2.py3-none-any.whl
Source1044: google_api_core-1.30.0-py2.py3-none-any.whl Source1043: google_api_core-1.30.0-py2.py3-none-any.whl
Source1045: google_api_python_client-1.12.8-py2.py3-none-any.whl Source1044: google_api_python_client-1.12.8-py2.py3-none-any.whl
Source1046: googleapis_common_protos-1.53.0-py2.py3-none-any.whl Source1045: googleapis_common_protos-1.53.0-py2.py3-none-any.whl
Source1047: google_auth-1.32.0-py2.py3-none-any.whl Source1046: google_auth-1.32.0-py2.py3-none-any.whl
Source1048: google_auth_httplib2-0.1.0-py2.py3-none-any.whl Source1047: google_auth_httplib2-0.1.0-py2.py3-none-any.whl
Source1049: httplib2-0.19.1-py3-none-any.whl Source1048: httplib2-0.19.1-py3-none-any.whl
Source1050: packaging-20.9-py2.py3-none-any.whl Source1049: packaging-20.9-py2.py3-none-any.whl
Source1051: protobuf-3.17.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl Source1050: protobuf-3.17.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Source1052: pyasn1-0.4.8-py2.py3-none-any.whl Source1051: pyasn1-0.4.8-py2.py3-none-any.whl
Source1053: pyasn1_modules-0.2.8-py2.py3-none-any.whl Source1052: pyasn1_modules-0.2.8-py2.py3-none-any.whl
Source1054: pyparsing-2.4.7-py2.py3-none-any.whl Source1053: pyparsing-2.4.7-py2.py3-none-any.whl
Source1055: pyroute2-0.6.4.tar.gz Source1054: pyroute2-0.6.4.tar.gz
Source1056: pyroute2.core-0.6.4.tar.gz Source1055: pyroute2.core-0.6.4.tar.gz
Source1057: pyroute2.ethtool-0.6.4.tar.gz Source1056: pyroute2.ethtool-0.6.4.tar.gz
Source1058: pyroute2.ipdb-0.6.4.tar.gz Source1057: pyroute2.ipdb-0.6.4.tar.gz
Source1059: pyroute2.ipset-0.6.4.tar.gz Source1058: pyroute2.ipset-0.6.4.tar.gz
Source1060: pyroute2.ndb-0.6.4.tar.gz Source1059: pyroute2.ndb-0.6.4.tar.gz
Source1061: pyroute2.nftables-0.6.4.tar.gz Source1060: pyroute2.nftables-0.6.4.tar.gz
Source1062: pyroute2.nslink-0.6.4.tar.gz Source1061: pyroute2.nslink-0.6.4.tar.gz
Source1063: pytz-2021.1-py2.py3-none-any.whl Source1062: pytz-2021.1-py2.py3-none-any.whl
Source1064: rsa-4.7.2-py3-none-any.whl Source1063: rsa-4.7.2-py3-none-any.whl
Source1065: setuptools-57.0.0-py3-none-any.whl Source1064: setuptools-57.0.0-py3-none-any.whl
Source1066: uritemplate-3.0.1-py2.py3-none-any.whl Source1065: uritemplate-3.0.1-py2.py3-none-any.whl
# common (pexpect / suds) # common (pexpect / suds)
Source1067: pexpect-4.8.0-py2.py3-none-any.whl Source1066: pexpect-4.8.0-py2.py3-none-any.whl
Source1068: ptyprocess-0.7.0-py2.py3-none-any.whl Source1067: ptyprocess-0.7.0-py2.py3-none-any.whl
Source1069: suds_community-0.8.5-py3-none-any.whl Source1068: suds_community-0.8.5-py3-none-any.whl
### END ### ### END ###
# kubevirt # kubevirt
## pip download --no-binary :all: openshift "ruamel.yaml.clib>=0.1.2" ## pip download --no-binary :all: openshift "ruamel.yaml.clib>=0.1.2"
### BEGIN ### BEGIN
Source1070: %{openshift}-%{openshift_version}.tar.gz Source1069: %{openshift}-%{openshift_version}.tar.gz
Source1071: %{ruamelyamlclib}-%{ruamelyamlclib_version}.tar.gz Source1070: %{ruamelyamlclib}-%{ruamelyamlclib_version}.tar.gz
Source1072: %{kubernetes}-%{kubernetes_version}.tar.gz Source1071: %{kubernetes}-%{kubernetes_version}.tar.gz
Source1073: %{certifi}-%{certifi_version}.tar.gz Source1072: %{certifi}-%{certifi_version}.tar.gz
Source1074: %{googleauth}-%{googleauth_version}.tar.gz Source1073: %{googleauth}-%{googleauth_version}.tar.gz
Source1075: %{cachetools}-%{cachetools_version}.tar.gz Source1074: %{cachetools}-%{cachetools_version}.tar.gz
Source1076: %{pyasn1modules}-%{pyasn1modules_version}.tar.gz Source1075: %{pyasn1modules}-%{pyasn1modules_version}.tar.gz
Source1077: %{pyasn1}-%{pyasn1_version}.tar.gz Source1076: %{pyasn1}-%{pyasn1_version}.tar.gz
Source1078: python-%{dateutil}-%{dateutil_version}.tar.gz Source1077: python-%{dateutil}-%{dateutil_version}.tar.gz
Source1079: %{pyyaml}-%{pyyaml_version}.tar.gz Source1078: %{pyyaml}-%{pyyaml_version}.tar.gz
## rsa is dependency for "pip install", ## rsa is dependency for "pip install",
## but gets removed to use cryptography lib instead ## but gets removed to use cryptography lib instead
Source1080: rsa-4.7.2.tar.gz Source1079: rsa-4.7.2.tar.gz
Source1081: %{six}-%{six_version}.tar.gz Source1080: %{six}-%{six_version}.tar.gz
Source1082: %{urllib3}-%{urllib3_version}.tar.gz Source1081: %{urllib3}-%{urllib3_version}.tar.gz
Source1083: %{websocketclient}-%{websocketclient_version}.tar.gz Source1082: %{websocketclient}-%{websocketclient_version}.tar.gz
Source1084: %{jinja2}-%{jinja2_version}.tar.gz Source1083: %{jinja2}-%{jinja2_version}.tar.gz
Source1085: %{markupsafe}-%{markupsafe_version}.tar.gz Source1084: %{markupsafe}-%{markupsafe_version}.tar.gz
Source1086: python-%{stringutils}-%{stringutils_version}.tar.gz Source1085: python-%{stringutils}-%{stringutils_version}.tar.gz
Source1087: %{requests}-%{requests_version}.tar.gz Source1086: %{requests}-%{requests_version}.tar.gz
Source1088: %{chrstnormalizer}-%{chrstnormalizer_version}.tar.gz Source1087: %{chrstnormalizer}-%{chrstnormalizer_version}.tar.gz
Source1089: %{idna}-%{idna_version}.tar.gz Source1088: %{idna}-%{idna_version}.tar.gz
Source1090: %{reqstsoauthlib}-%{reqstsoauthlib_version}.tar.gz Source1089: %{reqstsoauthlib}-%{reqstsoauthlib_version}.tar.gz
Source1091: %{ruamelyaml}-%{ruamelyaml_version}.tar.gz Source1090: %{ruamelyaml}-%{ruamelyaml_version}.tar.gz
Source1092: %{setuptools}-%{setuptools_version}.tar.gz Source1091: %{setuptools}-%{setuptools_version}.tar.gz
## required for installation ## required for installation
Source1093: setuptools_scm-6.3.2.tar.gz Source1092: setuptools_scm-6.3.2.tar.gz
Source1094: packaging-21.2-py3-none-any.whl Source1093: packaging-21.2-py3-none-any.whl
Source1095: poetry-core-1.0.7.tar.gz Source1094: poetry-core-1.0.7.tar.gz
Source1096: pyparsing-3.0.1.tar.gz Source1095: pyparsing-3.0.1.tar.gz
Source1097: tomli-1.0.1.tar.gz Source1096: tomli-1.0.1.tar.gz
Source1098: wheel-0.37.0-py2.py3-none-any.whl Source1097: wheel-0.37.0-py2.py3-none-any.whl
### END ### END
Patch0: ha-cloud-support-aliyun.patch Patch0: ha-cloud-support-aliyun.patch
@ -237,6 +236,8 @@ Patch43: bz2187327-fence_scsi-2-support-space-separated-devices.patch
Patch44: bz2211930-fence_azure-arm-stack-hub-support.patch Patch44: bz2211930-fence_azure-arm-stack-hub-support.patch
Patch45: bz2221643-fence_ibm_powervs-performance-improvements.patch Patch45: bz2221643-fence_ibm_powervs-performance-improvements.patch
Patch46: bz2224267-fence_ipmilan-fix-typos-in-metadata.patch Patch46: bz2224267-fence_ipmilan-fix-typos-in-metadata.patch
Patch47: RHEL-5396-fence_scsi-1-fix-ISID-reg-handling.patch
Patch48: RHEL-5396-fence_scsi-2-fix-ISID-reg-handling-off.patch
### HA support libs/utils ### ### HA support libs/utils ###
Patch1000: bz2217902-1-aws-awscli-azure-fix-bundled-dateutil-CVE-2007-4559.patch Patch1000: bz2217902-1-aws-awscli-azure-fix-bundled-dateutil-CVE-2007-4559.patch
@ -351,53 +352,55 @@ BuildRequires: %{systemd_units}
%prep %prep
%setup -q -n %{name}-%{version}%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}} %setup -q -n %{name}-%{version}%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}
%patch0 -p1 %patch -p1 -P 0
%patch1 -p1 %patch -p1 -P 1
%patch2 -p1 %patch -p1 -P 2
%patch3 -p1 %patch -p1 -P 3
%patch4 -p1 %patch -p1 -P 4
%patch5 -p1 %patch -p1 -P 5
%patch6 -p1 %patch -p1 -P 6
%patch7 -p1 %patch -p1 -P 7
%patch8 -p1 %patch -p1 -P 8
%patch9 -p1 %patch -p1 -P 9
%patch10 -p1 %patch -p1 -P 10
%patch11 -p1 %patch -p1 -P 11
%patch12 -p1 %patch -p1 -P 12
%patch13 -p1 %patch -p1 -P 13
%patch14 -p1 -F2 %patch -p1 -P 14 -F2
%patch15 -p1 -F1 %patch -p1 -P 15 -F1
%patch16 -p1 %patch -p1 -P 16
%patch17 -p1 %patch -p1 -P 17
%patch18 -p1 %patch -p1 -P 18
%patch19 -p1 %patch -p1 -P 19
%patch20 -p1 %patch -p1 -P 20
%patch21 -p1 %patch -p1 -P 21
%patch22 -p1 %patch -p1 -P 22
%patch23 -p1 %patch -p1 -P 23
%patch24 -p1 %patch -p1 -P 24
%patch25 -p1 %patch -p1 -P 25
%patch26 -p1 %patch -p1 -P 26
%patch27 -p1 %patch -p1 -P 27
%patch28 -p1 %patch -p1 -P 28
%patch29 -p1 %patch -p1 -P 29
%patch30 -p1 %patch -p1 -P 30
%patch31 -p1 %patch -p1 -P 31
%patch32 -p1 %patch -p1 -P 32
%patch33 -p1 %patch -p1 -P 33
%patch34 -p1 %patch -p1 -P 34
%patch35 -p1 %patch -p1 -P 35
%patch36 -p1 %patch -p1 -P 36
%patch37 -p1 %patch -p1 -P 37
%patch38 -p1 %patch -p1 -P 38
%patch39 -p1 %patch -p1 -P 39
%patch40 -p1 %patch -p1 -P 40
%patch41 -p1 %patch -p1 -P 41
%patch42 -p1 %patch -p1 -P 42
%patch43 -p1 %patch -p1 -P 43
%patch44 -p1 %patch -p1 -P 44
%patch45 -p1 %patch -p1 -P 45
%patch46 -p1 %patch -p1 -P 46
%patch -p1 -P 47
%patch -p1 -P 48
# prevent compilation of something that won't get used anyway # prevent compilation of something that won't get used anyway
sed -i.orig 's|FENCE_ZVM=1|FENCE_ZVM=0|' configure.ac sed -i.orig 's|FENCE_ZVM=1|FENCE_ZVM=0|' configure.ac
@ -600,7 +603,7 @@ Provides: bundled(python-azure-core) = 1.15.0
Provides: bundled(python-azure-mgmt-compute) = 21.0.0 Provides: bundled(python-azure-mgmt-compute) = 21.0.0
Provides: bundled(python-azure-mgmt-core) = 1.2.2 Provides: bundled(python-azure-mgmt-core) = 1.2.2
Provides: bundled(python-azure-mgmt-network) = 19.0.0 Provides: bundled(python-azure-mgmt-network) = 19.0.0
Provides: bundled(python-certifi) = 2021.5.30 Provides: bundled(python-certifi) = %{certifi_version}
Provides: bundled(python-chardet) = 4.0.0 Provides: bundled(python-chardet) = 4.0.0
Provides: bundled(python-idna) = 2.10 Provides: bundled(python-idna) = 2.10
Provides: bundled(python-isodate) = 0.6.0 Provides: bundled(python-isodate) = 0.6.0
@ -1477,6 +1480,12 @@ are located on corosync cluster nodes.
%endif %endif
%changelog %changelog
* Wed Sep 27 2023 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.10.0-56
- fence_scsi: fix registration handling if ISID conflicts
Resolves: RHEL-5396
- bundled certifi: fix CVE-2023-37920
Resolves: RHEL-9446
* Thu Aug 3 2023 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.10.0-55 * Thu Aug 3 2023 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.10.0-55
- bundled dateutil: fix tarfile CVE-2007-4559 - bundled dateutil: fix tarfile CVE-2007-4559
Resolves: rhbz#2217902 Resolves: rhbz#2217902

View File

@ -35,7 +35,7 @@ SHA512 (azure_mgmt_compute-21.0.0-py2.py3-none-any.whl) = e02fe9e100d898f4bbc14f
SHA512 (azure_mgmt_core-1.2.2-py2.py3-none-any.whl) = ea0b4062314de37d048cf6d9e40757372e050291a8861719dda2f1446c2e9a932050d0c0f732a8afb182993b7f700b5d6053217801199a4257b6269f5c7e47e5 SHA512 (azure_mgmt_core-1.2.2-py2.py3-none-any.whl) = ea0b4062314de37d048cf6d9e40757372e050291a8861719dda2f1446c2e9a932050d0c0f732a8afb182993b7f700b5d6053217801199a4257b6269f5c7e47e5
SHA512 (azure_mgmt_network-19.0.0-py2.py3-none-any.whl) = aa18ed97f167a1abf60c8fd7ae81b6777565c13f8ace06c81cdc70bf16c9fc2efad1984b8f159877ba3118312d2b81759df3b8e42b6f874cea5214943e8b054d SHA512 (azure_mgmt_network-19.0.0-py2.py3-none-any.whl) = aa18ed97f167a1abf60c8fd7ae81b6777565c13f8ace06c81cdc70bf16c9fc2efad1984b8f159877ba3118312d2b81759df3b8e42b6f874cea5214943e8b054d
SHA512 (azure-identity-1.10.0.zip) = 66551765ac0a4d43dc95cb755be3bfc31e2e7afa7eebf72c061c6c7d1dd0cf88988d88a39c2c1463fe27caced7ccd72da6520a9e977bfed0ee5f495fe00fab6a SHA512 (azure-identity-1.10.0.zip) = 66551765ac0a4d43dc95cb755be3bfc31e2e7afa7eebf72c061c6c7d1dd0cf88988d88a39c2c1463fe27caced7ccd72da6520a9e977bfed0ee5f495fe00fab6a
SHA512 (certifi-2021.5.30-py2.py3-none-any.whl) = 395c349cef4f8247af20a763a1927fe243e52d7fe846874f100b33e46119e48a3b7b681d3f3e879fe18a07ae81ba791ac7d0ed61017990d722f29d17e2573811 SHA512 (certifi-2023.7.22.tar.gz) = 220ec0a4251f301f057b4875e5966a223085b0c764c911450b43df7f49dbc5af50f14eeb692d935c0baa95d7c800055fa03efa4aaabba397a82c7b07c042bd90
SHA512 (chardet-4.0.0-py2.py3-none-any.whl) = cc8cdd5e73b4eace0131bbeaf6099e322ba5c2f827f26ad3316c674c60529d77f39f68d9fb83199ab78d16902021ab1ae58d74ab62d770cf95ceb804b9242e90 SHA512 (chardet-4.0.0-py2.py3-none-any.whl) = cc8cdd5e73b4eace0131bbeaf6099e322ba5c2f827f26ad3316c674c60529d77f39f68d9fb83199ab78d16902021ab1ae58d74ab62d770cf95ceb804b9242e90
SHA512 (idna-2.10-py2.py3-none-any.whl) = 7b7be129e1a99288aa74a15971377cb17bee1618843c03c8f782e287d0f3ecf3b8f26e3ea736444eb358f1d6079131a7eb291446f3279874eb8e00b624d9471c SHA512 (idna-2.10-py2.py3-none-any.whl) = 7b7be129e1a99288aa74a15971377cb17bee1618843c03c8f782e287d0f3ecf3b8f26e3ea736444eb358f1d6079131a7eb291446f3279874eb8e00b624d9471c
SHA512 (isodate-0.6.0-py2.py3-none-any.whl) = 6d39a350ff4af87c74ae3226e6627f9c254205bfd2a761a5bf956883667bbe6d4678e1830b629c899a6f0fe67a9603cb4890c5a1fa6c8d245fe4fdbddddde870 SHA512 (isodate-0.6.0-py2.py3-none-any.whl) = 6d39a350ff4af87c74ae3226e6627f9c254205bfd2a761a5bf956883667bbe6d4678e1830b629c899a6f0fe67a9603cb4890c5a1fa6c8d245fe4fdbddddde870
@ -79,7 +79,6 @@ SHA512 (suds_community-0.8.5-py3-none-any.whl) = 0719c3c2988ff96bd8698df326fb332
SHA512 (openshift-0.12.1.tar.gz) = 35a0ecfbc12d657f5f79d4c752a7c023a2a5e3fc5e7b377d9f11ce4a7d5f666ca5c6296f31adb44b7680d051af42d3638ced1092fb7e9146d2cc998f2c3a7b80 SHA512 (openshift-0.12.1.tar.gz) = 35a0ecfbc12d657f5f79d4c752a7c023a2a5e3fc5e7b377d9f11ce4a7d5f666ca5c6296f31adb44b7680d051af42d3638ced1092fb7e9146d2cc998f2c3a7b80
SHA512 (ruamel.yaml.clib-0.2.6.tar.gz) = 12307a3c3bae09cf65d9672894c9a869a7ed5483ca3afb9ee39d8bcbf1948b012a0dbf570e315cc8b9a8b55184de9e10324953ec4819d214379e01522ee13b20 SHA512 (ruamel.yaml.clib-0.2.6.tar.gz) = 12307a3c3bae09cf65d9672894c9a869a7ed5483ca3afb9ee39d8bcbf1948b012a0dbf570e315cc8b9a8b55184de9e10324953ec4819d214379e01522ee13b20
SHA512 (kubernetes-12.0.1.tar.gz) = ff4739dc185dbf46050e53382b9260a0a69c55b43820ccb1df498718c78d1bf42842f4ab1b6d0c3520c5edab45d9c9c9527aea9ccb0b6347f34e18202f9155a2 SHA512 (kubernetes-12.0.1.tar.gz) = ff4739dc185dbf46050e53382b9260a0a69c55b43820ccb1df498718c78d1bf42842f4ab1b6d0c3520c5edab45d9c9c9527aea9ccb0b6347f34e18202f9155a2
SHA512 (certifi-2021.10.8.tar.gz) = 06dc41a471f16f6c52751854e82fb42011c9388651cff55761298b86ba437d431e6325ab039ef330f2b2c5f69f5ba43dc468e7ca3df205a8bb31468f43711fbe
SHA512 (google-auth-2.3.0.tar.gz) = cf0040d238880ea4bbad64f0a47311f2ed3922a7301a0d5287319b39ea8e76dca66dc78fd860cc12386b078bd2147a1cba01de97381420ef94cc44fca0c90ad1 SHA512 (google-auth-2.3.0.tar.gz) = cf0040d238880ea4bbad64f0a47311f2ed3922a7301a0d5287319b39ea8e76dca66dc78fd860cc12386b078bd2147a1cba01de97381420ef94cc44fca0c90ad1
SHA512 (cachetools-4.2.4.tar.gz) = 29a6bb3a064e5603cd3e3882d8e5a6a6ef95ba3029716692c9a82d7186a0befcfb8ed4a0ee3ecb591fdff93a46836d5b25acca7ba5eab1ba837e86404aea8fcf SHA512 (cachetools-4.2.4.tar.gz) = 29a6bb3a064e5603cd3e3882d8e5a6a6ef95ba3029716692c9a82d7186a0befcfb8ed4a0ee3ecb591fdff93a46836d5b25acca7ba5eab1ba837e86404aea8fcf
SHA512 (pyasn1-modules-0.2.8.tar.gz) = fdfcaa065deffdd732deaa1fa30dec2fc4a90ffe15bd12de40636ce0212f447611096d2f4e652ed786b5c47544439e6a93721fabe121f3320f13965692a1ca5b SHA512 (pyasn1-modules-0.2.8.tar.gz) = fdfcaa065deffdd732deaa1fa30dec2fc4a90ffe15bd12de40636ce0212f447611096d2f4e652ed786b5c47544439e6a93721fabe121f3320f13965692a1ca5b