Merge "Raise an AccessError with SessionService init" into stable/train

This commit is contained in:
Zuul 2021-12-08 09:01:32 +00:00 committed by Gerrit Code Review
commit 847738f26e
3 changed files with 14 additions and 1 deletions

View File

@ -0,0 +1,7 @@
---
fixes:
- |
Fixes an issue where stale or invalid authentication data may
result in an attempt to lookup the ``SessionService`` failing
without any exception. The failure will now raise an
``AccessError`` exception.

View File

@ -53,6 +53,7 @@ class SessionService(base.ResourceBase):
the object according to schema of given version.
:param registries: Dict of Redfish Message Registry objects to be
used in any resource that needs registries to parse messages
:raises: AccessError if resource authentication fails.
"""
try:
super(SessionService, self).__init__(
@ -63,6 +64,7 @@ class SessionService(base.ResourceBase):
'SessionService. If this happens before '
'authentication, we\'ll have to guess the Sessions URL.',
ae)
raise
def _get_sessions_collection_path(self):
"""Helper function to find the SessionCollections path"""

View File

@ -43,7 +43,11 @@ class SessionServiceTestCase(base.TestCase):
self.conn.get.return_value.json.side_effect = (
exceptions.AccessError(
'GET', 'any_url', mock.MagicMock()))
sessionservice.SessionService(
# Actually, it is a good thing to raise access error exceptions,
# so we know when we need to handle failures.
self.assertRaises(
exceptions.AccessError,
sessionservice.SessionService,
self.conn, '/redfish/v1/SessionService', redfish_version='1.0.2')
self.assertTrue(mock_LOG.debug.called)