Merge "Fix broken backup_swift_service_auth=True"

This commit is contained in:
Zuul 2024-05-18 04:48:20 +00:00 committed by Gerrit Code Review
commit 1bd50f1c40
4 changed files with 20 additions and 2 deletions

View File

@ -192,7 +192,8 @@ class SwiftBackupDriver(chunkeddriver.ChunkedBackupDriver):
sa_plugin = service_auth.get_service_auth_plugin()
if sa_plugin is not None:
result['X-Service-Token'] = sa_plugin.get_token()
sa_session = service_auth.get_service_session()
result['X-Service-Token'] = sa_plugin.get_token(session=sa_session)
return result

View File

@ -19,6 +19,7 @@ from cinder import exception
CONF = cfg.CONF
_SERVICE_AUTH = None
_SERVICE_SESSION = None
SERVICE_USER_GROUP = 'service_user'
@ -66,6 +67,16 @@ def get_service_auth_plugin():
return None
def get_service_session():
if CONF.service_user.send_service_user_token:
global _SERVICE_SESSION
if not _SERVICE_SESSION:
_SERVICE_SESSION = ks_loading.load_session_from_conf_options(
CONF, SERVICE_USER_GROUP, auth=get_service_auth_plugin())
return _SERVICE_SESSION
return None
def get_auth_plugin(context, auth=None):
if auth:
user_auth = auth

View File

@ -317,7 +317,7 @@ class BackupSwiftTestCase(test.TestCase):
@mock.patch.object(service_auth, 'get_service_auth_plugin')
def test_backup_swift_service_auth_headers_enabled(self, mock_plugin):
class FakeServiceAuthPlugin:
def get_token(self):
def get_token(self, session):
return "fake"
self.override_config('send_service_user_token', True,
group='service_user')

View File

@ -0,0 +1,6 @@
---
fixes:
- |
`Bug #2058596 <https://bugs.launchpad.net/cinder/+bug/2058596>`_: Fixed
broken ``backup_swift_service_auth=True`` which made swift backup driver
consistently fail during object data access.