Refactor DriverBase.get_instance()

scope param is added to allow getting multiple independent instances
of a driver. This is particularly useful for using same VIFPoolDriver
implementation for multiple PodVIFDrivers (eg. NoopVIFPool may be
used for multiple PodVIFDriver types)

Also renames driver_alias to specific_driver to better indicate its
function.

Related-Bug: 1747406
Change-Id: Iea3b65b91f362a18cca6bf9d44d938063a56118b
Signed-off-by: Yash Gupta <y.gupta@samsung.com>
This commit is contained in:
Yash Gupta
2018-08-27 17:09:38 +09:00
parent 232e9c1a1b
commit 721932dc4b
8 changed files with 32 additions and 17 deletions

View File

@@ -51,6 +51,7 @@ class TestDriverBase(test_base.TestCase):
def test_get_instance_not_loaded(self, m_stv_mgr, m_cfg, m_mgrs):
alias = _TestDriver.ALIAS
cfg_name = '%s_driver' % (alias)
mgr_key = '%s:_from_cfg:default' % (alias)
drv_name = 'driver_impl'
namespace = '%s.%s' % (d_base._DRIVER_NAMESPACE_BASE, alias)
m_cfg.kubernetes.__getitem__.return_value = drv_name
@@ -64,7 +65,7 @@ class TestDriverBase(test_base.TestCase):
m_cfg.kubernetes.__getitem__.assert_called_with(cfg_name)
m_stv_mgr.assert_called_with(namespace=namespace, name=drv_name,
invoke_on_load=True)
m_mgrs.__setitem__.assert_called_once_with(cfg_name, m_mgr)
m_mgrs.__setitem__.assert_called_once_with(mgr_key, m_mgr)
@mock.patch.object(d_base, '_DRIVER_MANAGERS')
@mock.patch('kuryr_kubernetes.config.CONF')

View File

@@ -132,7 +132,7 @@ class TestNPWGMultiVIFDriver(test_base.TestCase):
m_drv = multi_vif.NPWGMultiVIFDriver()
self.assertEqual(self._vif_pool_drv, m_drv._drv_vif_pool)
m_get_vif_pool_driver.assert_called_once_with(
driver_alias='multi_pool')
specific_driver='multi_pool')
m_set_vifs_driver.assert_called_once()
@mock.patch('kuryr_kubernetes.utils.get_subnet')