Merge "WIP Add a skipper for Octavia client if it is missing"

This commit is contained in:
Zuul 2023-02-09 16:03:24 +00:00 committed by Gerrit Code Review
commit beb4b8e49c
2 changed files with 10 additions and 3 deletions

View File

@ -51,6 +51,7 @@ class OctaviaClientManager(_client.OpenstackClientManager):
CLIENTS = OctaviaClientManager() CLIENTS = OctaviaClientManager()
@keystone.skip_if_missing_service(name='octavia')
def octavia_client(obj: OctaviaClientType = None) -> octavia.OctaviaAPI: def octavia_client(obj: OctaviaClientType = None) -> octavia.OctaviaAPI:
if obj is None: if obj is None:
return get_octavia_client() return get_octavia_client()

View File

@ -16,6 +16,7 @@ from __future__ import absolute_import
import inspect import inspect
from keystoneclient.v3 import endpoints from keystoneclient.v3 import endpoints
import mock
from octaviaclient.api.v2 import octavia as octaviaclient from octaviaclient.api.v2 import octavia as octaviaclient
from tobiko.openstack import keystone from tobiko.openstack import keystone
@ -87,20 +88,25 @@ class OctaviaClientTest(openstack.OpenstackTest):
super(OctaviaClientTest, self).setUp() super(OctaviaClientTest, self).setUp()
self.useFixture(KeystoneModulePatch()) self.useFixture(KeystoneModulePatch())
def _get_octavia_client(self, client_type):
with mock.patch('tobiko.openstack.keystone._services.has_service',
return_value=True):
return octavia.octavia_client(client_type)
def test_octavia_client_with_none(self): def test_octavia_client_with_none(self):
default_client = octavia.get_octavia_client() default_client = octavia.get_octavia_client()
client = octavia.octavia_client(None) client = self._get_octavia_client(None)
self.assertIsInstance(client, octaviaclient.OctaviaAPI) self.assertIsInstance(client, octaviaclient.OctaviaAPI)
self.assertIs(default_client, client) self.assertIs(default_client, client)
def test_octavia_client_with_client(self): def test_octavia_client_with_client(self):
default_client = octavia.get_octavia_client() default_client = octavia.get_octavia_client()
client = octavia.octavia_client(default_client) client = self._get_octavia_client(default_client)
self.assertIsInstance(client, octaviaclient.OctaviaAPI) self.assertIsInstance(client, octaviaclient.OctaviaAPI)
self.assertIs(default_client, client) self.assertIs(default_client, client)
def test_octavia_client_with_fixture(self): def test_octavia_client_with_fixture(self):
fixture = octavia.OctaviaClientFixture() fixture = octavia.OctaviaClientFixture()
client = octavia.octavia_client(fixture) client = self._get_octavia_client(fixture)
self.assertIsInstance(client, octaviaclient.OctaviaAPI) self.assertIsInstance(client, octaviaclient.OctaviaAPI)
self.assertIs(client, fixture.client) self.assertIs(client, fixture.client)