Merge "Filter endpoints using region name"

This commit is contained in:
Zuul
2025-01-20 16:35:52 +00:00
committed by Gerrit Code Review
5 changed files with 17 additions and 6 deletions

View File

@@ -82,3 +82,7 @@ options:
Frequency of the auto retrofit cron job execution
.
It is one of ['hourly', 'daily', 'weekly']
region:
default: RegionOne
type: string
description: OpenStack Region

View File

@@ -47,18 +47,21 @@ def session_from_identity_credentials(identity_credentials):
return session
def get_glance_client(session, endpoint_type=None):
def get_glance_client(session, endpoint_type=None, region=None):
"""Get Glance Client from Keystone Session.
:param session: Keystone Session object
:type session: keystoneauth1.session.Session
:param endpoint_type: Type of endpoint the client should connect to
:type endpoint_type: Optional[str]
:param region: The OpenStack region
:type region: Optional[str]
:returns: Glance Client
:rtype: glanceclient.Client
"""
endpoint = session.auth.get_endpoint(
session, service_type='image', interface=endpoint_type or 'publicURL')
session, service_type='image', interface=endpoint_type or 'publicURL',
region_name=region)
return glanceclient.Client(
'2', session=session, endpoint=endpoint)

View File

@@ -179,8 +179,10 @@ class OctaviaDiskimageRetrofitCharm(charms_openstack.charm.OpenStackCharm):
"""
session = glance_retrofitter.session_from_identity_credentials(
keystone_endpoint)
region = self.config["region"] or None
glance = glance_retrofitter.get_glance_client(
session, endpoint_type=self.endpoint_type())
session, endpoint_type=self.endpoint_type(),
region=region)
ubuntu_release = self.get_ubuntu_release(
series=self.config['retrofit-series'])

View File

@@ -52,7 +52,8 @@ class TestGlanceRetrofitter(test_utils.PatchHelper):
result = glance_retrofitter.get_glance_client(
session, endpoint_type='aEndpointType')
session.auth.get_endpoint.assert_called_once_with(
session, service_type='image', interface='aEndpointType')
session, service_type='image', interface='aEndpointType',
region_name=None)
self.Client.assert_called_once_with(
'2', session=session, endpoint=session.auth.get_endpoint())
self.assertEqual(result, self.Client())
@@ -60,7 +61,8 @@ class TestGlanceRetrofitter(test_utils.PatchHelper):
result = glance_retrofitter.get_glance_client(
session)
session.auth.get_endpoint.assert_called_once_with(
session, service_type='image', interface='publicURL')
session, service_type='image', interface='publicURL',
region_name=None)
def test_get_product_name(self):
self.patch_object(glance_retrofitter.subprocess, 'check_output')

View File

@@ -245,7 +245,7 @@ class TestOctaviaDiskimageRetrofitCharm(test_utils.PatchHelper):
assert_called_once_with('aKeystone')
self.glance_retrofitter.get_glance_client.assert_called_once_with(
self.glance_retrofitter.session_from_identity_credentials(),
endpoint_type='publicURL')
endpoint_type='publicURL', region=None)
self.glance_retrofitter.find_destination_image.return_value = \
[]
self.hookenv.env_proxy_settings.return_value = proxy_envvars