Endpoint type for glanceclient
At this moment nevertheless of 'endpoint_type' parameter from 'glance_client' section Zun always tries to interact with Glance public API endpoint. If public API endpoint unaccessible from compute nodes zun-compute service is unable to run new container from image stored in the glance repository. This patch intended to make Zun use 'endpoint_type' parameter from 'glance_client' section of zun.conf file and pass the same type of endpoint to the glanceclient. Change-Id: Ibfa5cd8a48502c3dec357437fef0094ab8960a77
This commit is contained in:
parent
009424db69
commit
bcd102c97e
|
@ -62,7 +62,15 @@ class OpenStackClients(object):
|
|||
|
||||
glanceclient_version = self._get_client_option('glance', 'api_version')
|
||||
session = self.keystone().session
|
||||
|
||||
endpoint_type = self._get_client_option('glance', 'endpoint_type')
|
||||
region_name = self._get_client_option('glance', 'region_name')
|
||||
glance_url = self.url_for(service_type='image',
|
||||
interface=endpoint_type,
|
||||
region_name=region_name)
|
||||
|
||||
self._glance = glanceclient.Client(glanceclient_version,
|
||||
endpoint=glance_url,
|
||||
session=session)
|
||||
|
||||
return self._glance
|
||||
|
|
|
@ -61,14 +61,26 @@ class ClientsTest(base.BaseTestCase):
|
|||
@mock.patch.object(clients.OpenStackClients, 'keystone')
|
||||
def _test_clients_glance(self, expected_region_name, mock_keystone,
|
||||
mock_call):
|
||||
mock_keystone.return_value = mock.Mock(session='fake-session')
|
||||
mock_session = mock_keystone.return_value.session
|
||||
mock_session.get_endpoint.return_value = 'glance_url'
|
||||
fake_region = 'fake_region'
|
||||
fake_endpoint = 'fake_endpoint'
|
||||
zun.conf.CONF.set_override('region_name', fake_region,
|
||||
group='glance_client')
|
||||
zun.conf.CONF.set_override('endpoint_type', fake_endpoint,
|
||||
group='glance_client')
|
||||
con = mock.MagicMock()
|
||||
obj = clients.OpenStackClients(con)
|
||||
obj._glance = None
|
||||
obj.glance()
|
||||
|
||||
mock_session.get_endpoint.assert_called_once_with(
|
||||
region_name=fake_region, service_type='image',
|
||||
interface=fake_endpoint)
|
||||
mock_call.assert_called_once_with(
|
||||
zun.conf.CONF.glance_client.api_version,
|
||||
session='fake-session')
|
||||
endpoint='glance_url',
|
||||
session=mock_session)
|
||||
|
||||
def test_clients_glance(self):
|
||||
self._test_clients_glance(None)
|
||||
|
@ -80,7 +92,8 @@ class ClientsTest(base.BaseTestCase):
|
|||
|
||||
@mock.patch.object(clients.OpenStackClients, 'keystone')
|
||||
def test_clients_glance_cached(self, mock_keystone):
|
||||
mock_keystone.return_value = mock.Mock(session='fake-session')
|
||||
mock_keystone.return_value.session.get_endpoint.return_value = \
|
||||
'glance_url'
|
||||
con = mock.MagicMock()
|
||||
obj = clients.OpenStackClients(con)
|
||||
obj._glance = None
|
||||
|
|
Loading…
Reference in New Issue