Fix Non-OpenStack dynamic pollster credentials handling

There was a problem with the barbican credentials processing for
Non-OpenStack dynamic pollster. The credentials variables would be
retrieved as a byte string, which would break the processing.
Therefore, we needed to introduce a method to check if the credentials
are a String object. if they are not, we convert them to String.

Change-Id: I2084061eb8f543d4c557963599732e35cfa22996
This commit is contained in:
Rafael Weingärtner 2022-09-07 14:16:53 -03:00
parent fb184a9e59
commit 37bf3efb28

View File

@ -850,6 +850,9 @@ class NonOpenStackApisSamplesGatherer(PollsterSampleGatherer):
if override_credentials:
credentials = override_credentials
if not isinstance(credentials, str):
credentials = self.normalize_credentials_to_string(credentials)
url = self.get_request_linked_samples_url(kwargs, definitions)
authenticator_module_name = definitions['module']
@ -878,6 +881,17 @@ class NonOpenStackApisSamplesGatherer(PollsterSampleGatherer):
return resp, url
@staticmethod
def normalize_credentials_to_string(credentials):
if isinstance(credentials, bytes):
credentials = credentials.decode('utf-8')
else:
credentials = str(credentials)
LOG.debug("Credentials [%s] were not defined as a string. "
"Therefore, we converted it to a string like object.",
credentials)
return credentials
def create_request_arguments(self, definitions):
request_arguments = super(
NonOpenStackApisSamplesGatherer, self).create_request_arguments(