From d1722c4d2f7a0e56f585a76172a95d836e2e0128 Mon Sep 17 00:00:00 2001 From: Valeriy Ponomaryov Date: Tue, 3 Feb 2015 17:02:11 +0200 Subject: [PATCH] Do not instantiate network plugin when not used by driver We have two types of share drivers. First type supports creation of share servers and second does not. Then, we have approach of "network plugin" for handling of networking and it is useful only with first type of share drivers. So, we should restrict instantiation of network plugins with second type of share drivers. It will allow us to remove unused dependencies for running some share drivers. Change-Id: Ib7d6a9ff1b6ce0d5d2bca350040363ea1461c419 Closes-Bug: #1417087 --- manila/share/driver.py | 4 +++- manila/tests/share/test_driver.py | 14 +++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/manila/share/driver.py b/manila/share/driver.py index e8556274b7..b4d3ee3bc5 100644 --- a/manila/share/driver.py +++ b/manila/share/driver.py @@ -185,6 +185,9 @@ class ShareDriver(object): network_config_group = None self._verify_share_server_handling(driver_handles_share_servers) + if self.driver_handles_share_servers: + self.network_api = network.API( + config_group_name=network_config_group) if hasattr(self, 'init_execute_mixin'): # Instance with 'ExecuteMixin' @@ -192,7 +195,6 @@ class ShareDriver(object): if hasattr(self, 'init_ganesha_mixin'): # Instance with 'GaneshaMixin' self.init_ganesha_mixin(*args, **kwargs) # pylint: disable=E1101 - self.network_api = network.API(config_group_name=network_config_group) @property def driver_handles_share_servers(self): diff --git a/manila/tests/share/test_driver.py b/manila/tests/share/test_driver.py index 56dc67d01b..075329ffaa 100644 --- a/manila/tests/share/test_driver.py +++ b/manila/tests/share/test_driver.py @@ -77,12 +77,16 @@ class ShareDriverTestCase(test.TestCase): self.assertTrue(hasattr(share_driver, 'configuration')) config.append_config_values.assert_called_once_with(driver.share_opts) - if network_config_group: - network.API.assert_called_once_with( - config_group_name=config.network_config_group) + if driver_handles_share_servers: + if network_config_group: + network.API.assert_called_once_with( + config_group_name=config.network_config_group) + else: + network.API.assert_called_once_with( + config_group_name=config.config_group) else: - network.API.assert_called_once_with( - config_group_name=config.config_group) + self.assertFalse(hasattr(share_driver, 'network_api')) + self.assertFalse(network.API.called) return share_driver def test_instantiate_share_driver(self):