diff --git a/0001-RBD-Pass-bytes-type-for-mon_command-inbuf.patch b/0001-RBD-Pass-bytes-type-for-mon_command-inbuf.patch new file mode 100644 index 0000000000000000000000000000000000000000..56c12a16b5996c1a97592b0cacfc7fe18426afa5 --- /dev/null +++ b/0001-RBD-Pass-bytes-type-for-mon_command-inbuf.patch @@ -0,0 +1,62 @@ +From aed8e1625494d7232c2629def748a878a0d52dbf Mon Sep 17 00:00:00 2001 +From: zhangy1317 +Date: Wed, 16 Mar 2022 16:18:08 +0800 +Subject: [PATCH] RBD:Pass-bytes-type-for-mon_command-inbuf + +--- + cinder/tests/unit/volume/drivers/test_rbd.py | 8 ++++---- + cinder/volume/drivers/rbd.py | 4 ++-- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/cinder/tests/unit/volume/drivers/test_rbd.py b/cinder/tests/unit/volume/drivers/test_rbd.py +index d20c95a..d7df401 100644 +--- a/cinder/tests/unit/volume/drivers/test_rbd.py ++++ b/cinder/tests/unit/volume/drivers/test_rbd.py +@@ -1580,9 +1580,9 @@ class RBDTestCase(test.TestCase): + return_value=dynamic_total): + result = self.driver._get_pool_stats() + client.cluster.mon_command.assert_has_calls([ +- mock.call('{"prefix":"df", "format":"json"}', ''), ++ mock.call('{"prefix":"df", "format":"json"}', b''), + mock.call('{"prefix":"osd pool get-quota", "pool": "rbd",' +- ' "format":"json"}', ''), ++ ' "format":"json"}', b''), + ]) + self.assertEqual((free_capacity, total_capacity), result) + +@@ -1603,9 +1603,9 @@ class RBDTestCase(test.TestCase): + ] + result = self.driver._get_pool_stats() + client.cluster.mon_command.assert_has_calls([ +- mock.call('{"prefix":"df", "format":"json"}', ''), ++ mock.call('{"prefix":"df", "format":"json"}', b''), + mock.call('{"prefix":"osd pool get-quota", "pool": "rbd",' +- ' "format":"json"}', ''), ++ ' "format":"json"}', b''), + ]) + free_capacity = 1.56 + total_capacity = 3.0 +diff --git a/cinder/volume/drivers/rbd.py b/cinder/volume/drivers/rbd.py +index 2fa2e01..8637a61 100644 +--- a/cinder/volume/drivers/rbd.py ++++ b/cinder/volume/drivers/rbd.py +@@ -546,14 +546,14 @@ class RBDDriver(driver.CloneableImageVD, driver.MigrateVD, + + with RADOSClient(self) as client: + ret, df_outbuf, __ = client.cluster.mon_command( +- '{"prefix":"df", "format":"json"}', '') ++ '{"prefix":"df", "format":"json"}', b'') + if ret: + LOG.warning('Unable to get rados pool stats.') + return 'unknown', 'unknown' + + ret, quota_outbuf, __ = client.cluster.mon_command( + '{"prefix":"osd pool get-quota", "pool": "%s",' +- ' "format":"json"}' % pool_name, '') ++ ' "format":"json"}' % pool_name, b'') + if ret: + LOG.warning('Unable to get rados pool quotas.') + return 'unknown', 'unknown' +-- +2.33.0 + diff --git a/openstack-cinder.spec b/openstack-cinder.spec index 5ed50aa8440921ad9a38c22dea0d337eda54f5a7..da3a4891772f8b87be90fa997c24f5a1031c8767 100644 --- a/openstack-cinder.spec +++ b/openstack-cinder.spec @@ -6,7 +6,7 @@ access block storage volumes for use by Virtual Machine instances. Name: openstack-%{service} Version: 15.6.0 -Release: 1 +Release: 2 Summary: OpenStack Volume service License: ASL 2.0 URL: http://www.openstack.org/software/openstack-storage/ @@ -21,6 +21,7 @@ Source13: openstack-%{service}-backup.service Source20: %{service}-sudoers Source21: %{service}.logrotate +Patch: 0001-RBD-Pass-bytes-type-for-mon_command-inbuf.patch BuildRequires: openstack-macros BuildRequires: python3-os-win @@ -256,8 +257,9 @@ Requires: python3-%{service} This package contains the Cinder test files. %prep -%autosetup -n %{service}-%{version} +%setup -q -n %{service}-%{version} %py_req_cleanup +%autopatch -p1 %build %{py3_build} @@ -377,5 +379,8 @@ exit 0 %{python3_sitelib}/%{service}/tests %changelog +* Wed Mar 16 2022 zhangy1317 - 15.6.0-2 +- Fix RBD: Pass bytes type for mon_command inbuf + * Fri Nov 05 2021 wangxiyuan - 15.6.0-1 - Support OpenStack Train release