Merge "VMware: Remove member initialization in properties"
This commit is contained in:
commit
446c3521a0
|
@ -1696,6 +1696,7 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
|||
|
||||
@mock.patch.object(VMDK_DRIVER, '_validate_params')
|
||||
@mock.patch('re.compile')
|
||||
@mock.patch.object(VMDK_DRIVER, '_create_session')
|
||||
@mock.patch.object(VMDK_DRIVER, '_get_vc_version')
|
||||
@mock.patch.object(VMDK_DRIVER, '_validate_vcenter_version')
|
||||
@mock.patch('oslo_vmware.pbm.get_pbm_wsdl_location')
|
||||
|
@ -1706,9 +1707,12 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
|||
@mock.patch.object(VMDK_DRIVER, 'session')
|
||||
def _test_do_setup(
|
||||
self, session, vops, ds_sel_cls, vops_cls, register_extension,
|
||||
get_pbm_wsdl_loc, validate_vc_version, get_vc_version, re_compile,
|
||||
validate_params, enable_pbm=True, ds_regex_pat=None,
|
||||
invalid_regex=False):
|
||||
get_pbm_wsdl_loc, validate_vc_version, get_vc_version,
|
||||
create_session, re_compile, validate_params, enable_pbm=True,
|
||||
ds_regex_pat=None, invalid_regex=False):
|
||||
mock_session = mock.Mock()
|
||||
create_session.return_value = mock_session
|
||||
|
||||
if enable_pbm:
|
||||
ver_str = '5.5'
|
||||
pbm_wsdl = mock.sentinel.pbm_wsdl
|
||||
|
@ -1740,11 +1744,12 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
|||
self._driver.do_setup(mock.ANY)
|
||||
|
||||
validate_params.assert_called_once_with()
|
||||
create_session.assert_called_once_with()
|
||||
get_vc_version.assert_called_once_with()
|
||||
validate_vc_version.assert_called_once_with(ver_str)
|
||||
if enable_pbm:
|
||||
get_pbm_wsdl_loc.assert_called_once_with(ver_str)
|
||||
self.assertEqual(pbm_wsdl, self._driver.pbm_wsdl)
|
||||
mock_session.pbm_wsdl_loc_set.assert_called_once_with(pbm_wsdl)
|
||||
self.assertEqual(enable_pbm, self._driver._storage_policy_enabled)
|
||||
register_extension.assert_called_once()
|
||||
vops_cls.assert_called_once_with(
|
||||
|
@ -1775,12 +1780,13 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
|||
self._test_do_setup(enable_pbm=False)
|
||||
|
||||
@mock.patch.object(VMDK_DRIVER, '_validate_params')
|
||||
@mock.patch.object(VMDK_DRIVER, '_create_session')
|
||||
@mock.patch.object(VMDK_DRIVER, '_get_vc_version')
|
||||
@mock.patch.object(VMDK_DRIVER, '_validate_vcenter_version')
|
||||
@mock.patch('oslo_vmware.pbm.get_pbm_wsdl_location')
|
||||
def test_do_setup_with_invalid_pbm_wsdl(
|
||||
self, get_pbm_wsdl_loc, validate_vc_version, get_vc_version,
|
||||
validate_params):
|
||||
create_session, validate_params):
|
||||
ver_str = '5.5'
|
||||
get_vc_version.return_value = ver_str
|
||||
|
||||
|
@ -1791,6 +1797,7 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
|||
mock.ANY)
|
||||
|
||||
validate_params.assert_called_once_with()
|
||||
create_session.assert_called_once_with()
|
||||
get_vc_version.assert_called_once_with()
|
||||
validate_vc_version.assert_called_once_with(ver_str)
|
||||
get_pbm_wsdl_loc.assert_called_once_with(ver_str)
|
||||
|
@ -3095,11 +3102,13 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
|||
volumeops.BACKING_UUID_KEY: ''})
|
||||
|
||||
@mock.patch('oslo_vmware.api.VMwareAPISession')
|
||||
def test_session(self, apiSession):
|
||||
self._driver._session = None
|
||||
def test_create_session(self, apiSession):
|
||||
session = mock.sentinel.session
|
||||
apiSession.return_value = session
|
||||
|
||||
self._driver.session()
|
||||
ret = self._driver._create_session()
|
||||
|
||||
self.assertEqual(session, ret)
|
||||
config = self._driver.configuration
|
||||
apiSession.assert_called_once_with(
|
||||
config.vmware_host_ip,
|
||||
|
@ -3108,7 +3117,6 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
|||
config.vmware_api_retry_count,
|
||||
config.vmware_task_poll_interval,
|
||||
wsdl_loc=config.safe_get('vmware_wsdl_location'),
|
||||
pbm_wsdl_loc=None,
|
||||
port=config.vmware_host_port,
|
||||
cacert=config.vmware_ca_file,
|
||||
insecure=config.vmware_insecure,
|
||||
|
|
|
@ -291,19 +291,10 @@ class VMwareVcVmdkDriver(driver.VolumeDriver):
|
|||
|
||||
@property
|
||||
def volumeops(self):
|
||||
if not self._volumeops:
|
||||
max_objects = self.configuration.vmware_max_objects_retrieval
|
||||
self._volumeops = volumeops.VMwareVolumeOps(self.session,
|
||||
max_objects)
|
||||
return self._volumeops
|
||||
|
||||
@property
|
||||
def ds_sel(self):
|
||||
if not self._ds_sel:
|
||||
max_objects = self.configuration.vmware_max_objects_retrieval
|
||||
self._ds_sel = hub.DatastoreSelector(self.volumeops,
|
||||
self.session,
|
||||
max_objects)
|
||||
return self._ds_sel
|
||||
|
||||
def _validate_params(self):
|
||||
|
@ -1761,30 +1752,32 @@ class VMwareVcVmdkDriver(driver.VolumeDriver):
|
|||
|
||||
@property
|
||||
def session(self):
|
||||
if not self._session:
|
||||
ip = self.configuration.vmware_host_ip
|
||||
port = self.configuration.vmware_host_port
|
||||
username = self.configuration.vmware_host_username
|
||||
password = self.configuration.vmware_host_password
|
||||
api_retry_count = self.configuration.vmware_api_retry_count
|
||||
task_poll_interval = self.configuration.vmware_task_poll_interval
|
||||
wsdl_loc = self.configuration.safe_get('vmware_wsdl_location')
|
||||
pbm_wsdl = self.pbm_wsdl if hasattr(self, 'pbm_wsdl') else None
|
||||
ca_file = self.configuration.vmware_ca_file
|
||||
insecure = self.configuration.vmware_insecure
|
||||
pool_size = self.configuration.vmware_connection_pool_size
|
||||
self._session = api.VMwareAPISession(ip, username,
|
||||
password, api_retry_count,
|
||||
task_poll_interval,
|
||||
wsdl_loc=wsdl_loc,
|
||||
pbm_wsdl_loc=pbm_wsdl,
|
||||
port=port,
|
||||
cacert=ca_file,
|
||||
insecure=insecure,
|
||||
pool_size=pool_size,
|
||||
op_id_prefix='c-vol')
|
||||
return self._session
|
||||
|
||||
def _create_session(self):
|
||||
ip = self.configuration.vmware_host_ip
|
||||
port = self.configuration.vmware_host_port
|
||||
username = self.configuration.vmware_host_username
|
||||
password = self.configuration.vmware_host_password
|
||||
api_retry_count = self.configuration.vmware_api_retry_count
|
||||
task_poll_interval = self.configuration.vmware_task_poll_interval
|
||||
wsdl_loc = self.configuration.safe_get('vmware_wsdl_location')
|
||||
ca_file = self.configuration.vmware_ca_file
|
||||
insecure = self.configuration.vmware_insecure
|
||||
pool_size = self.configuration.vmware_connection_pool_size
|
||||
session = api.VMwareAPISession(ip,
|
||||
username,
|
||||
password,
|
||||
api_retry_count,
|
||||
task_poll_interval,
|
||||
wsdl_loc=wsdl_loc,
|
||||
port=port,
|
||||
cacert=ca_file,
|
||||
insecure=insecure,
|
||||
pool_size=pool_size,
|
||||
op_id_prefix='c-vol')
|
||||
return session
|
||||
|
||||
def _get_vc_version(self):
|
||||
"""Connect to vCenter server and fetch version.
|
||||
|
||||
|
@ -1846,6 +1839,8 @@ class VMwareVcVmdkDriver(driver.VolumeDriver):
|
|||
raise exception.InvalidInput(reason=_(
|
||||
"Invalid regular expression: %s.") % regex_pattern)
|
||||
|
||||
self._session = self._create_session()
|
||||
|
||||
# Validate vCenter version.
|
||||
self._vc_version = self._get_vc_version()
|
||||
self._validate_vcenter_version(self._vc_version)
|
||||
|
@ -1855,19 +1850,16 @@ class VMwareVcVmdkDriver(driver.VolumeDriver):
|
|||
versionutils.is_compatible(self.PBM_ENABLED_VC_VERSION,
|
||||
self._vc_version,
|
||||
same_major=False)):
|
||||
self.pbm_wsdl = pbm.get_pbm_wsdl_location(self._vc_version)
|
||||
if not self.pbm_wsdl:
|
||||
pbm_wsdl_loc = pbm.get_pbm_wsdl_location(self._vc_version)
|
||||
if not pbm_wsdl_loc:
|
||||
LOG.error("Not able to configure PBM for vCenter server: %s",
|
||||
self._vc_version)
|
||||
raise exceptions.VMwareDriverException()
|
||||
self._storage_policy_enabled = True
|
||||
# Destroy current session so that it is recreated with pbm enabled
|
||||
self._session = None
|
||||
self._session.pbm_wsdl_loc_set(pbm_wsdl_loc)
|
||||
|
||||
self._register_extension()
|
||||
|
||||
# recreate session and initialize volumeops and ds_sel
|
||||
# TODO(vbala) remove properties: session, volumeops and ds_sel
|
||||
max_objects = self.configuration.vmware_max_objects_retrieval
|
||||
self._volumeops = volumeops.VMwareVolumeOps(
|
||||
self.session, max_objects, EXTENSION_KEY, EXTENSION_TYPE)
|
||||
|
|
Loading…
Reference in New Issue