Merge "VMware: Honor vmware_cluster_name during retype"
This commit is contained in:
commit
d172a170a4
@ -924,9 +924,11 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
||||
@mock.patch.object(VMDK_DRIVER, '_get_storage_profile')
|
||||
@mock.patch.object(VMDK_DRIVER, '_get_extra_spec_storage_profile')
|
||||
@mock.patch.object(VMDK_DRIVER, 'ds_sel')
|
||||
@mock.patch.object(VMDK_DRIVER, '_select_datastore')
|
||||
def test_retype_with_diff_profile_and_ds_compliance(
|
||||
self, ds_sel, get_extra_spec_storage_profile, get_storage_profile,
|
||||
get_extra_spec_disk_type, get_disk_type, vops, in_use):
|
||||
self, select_datastore, ds_sel, get_extra_spec_storage_profile,
|
||||
get_storage_profile, get_extra_spec_disk_type, get_disk_type,
|
||||
vops, in_use):
|
||||
backing = mock.sentinel.backing
|
||||
vops.get_backing.return_value = backing
|
||||
|
||||
@ -957,7 +959,7 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
||||
host))
|
||||
ds_sel.is_datastore_compliant.assert_called_once_with(datastore,
|
||||
new_profile)
|
||||
self.assertFalse(ds_sel.select_datastore.called)
|
||||
select_datastore.assert_not_called()
|
||||
vops.change_backing_profile.assert_called_once_with(backing,
|
||||
new_profile_id)
|
||||
|
||||
@ -970,9 +972,11 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
||||
@mock.patch.object(VMDK_DRIVER, '_get_storage_profile')
|
||||
@mock.patch.object(VMDK_DRIVER, '_get_extra_spec_storage_profile')
|
||||
@mock.patch.object(VMDK_DRIVER, 'ds_sel')
|
||||
@mock.patch.object(VMDK_DRIVER, '_select_datastore')
|
||||
def test_retype_with_diff_profile_and_ds_sel_no_candidate(
|
||||
self, ds_sel, get_extra_spec_storage_profile, get_storage_profile,
|
||||
get_extra_spec_disk_type, get_disk_type, vops, in_use):
|
||||
self, select_datastore, ds_sel, get_extra_spec_storage_profile,
|
||||
get_storage_profile, get_extra_spec_disk_type, get_disk_type,
|
||||
vops, in_use):
|
||||
backing = mock.sentinel.backing
|
||||
vops.get_backing.return_value = backing
|
||||
|
||||
@ -992,7 +996,8 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
||||
get_extra_spec_storage_profile.return_value = new_profile
|
||||
|
||||
ds_sel.is_datastore_compliant.return_value = False
|
||||
ds_sel.select_datastore.return_value = ()
|
||||
select_datastore.side_effect = (
|
||||
vmdk_exceptions.NoValidDatastoreException)
|
||||
|
||||
context = mock.sentinel.context
|
||||
volume = self._create_volume_dict(status='retyping')
|
||||
@ -1003,7 +1008,7 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
||||
host))
|
||||
ds_sel.is_datastore_compliant.assert_called_once_with(datastore,
|
||||
new_profile)
|
||||
ds_sel.select_datastore.assert_called_once_with(
|
||||
select_datastore.assert_called_once_with(
|
||||
{hub.DatastoreSelector.SIZE_BYTES: volume['size'] * units.Gi,
|
||||
hub.DatastoreSelector.PROFILE_NAME: new_profile})
|
||||
|
||||
@ -1016,10 +1021,12 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
||||
@mock.patch.object(VMDK_DRIVER, '_get_storage_profile')
|
||||
@mock.patch.object(VMDK_DRIVER, '_get_extra_spec_storage_profile')
|
||||
@mock.patch.object(VMDK_DRIVER, 'ds_sel')
|
||||
@mock.patch.object(VMDK_DRIVER, '_select_datastore')
|
||||
@mock.patch.object(VMDK_DRIVER, '_get_volume_group_folder')
|
||||
def test_retype_with_diff_extra_spec_and_vol_snapshot(
|
||||
self,
|
||||
get_volume_group_folder,
|
||||
select_datastore,
|
||||
ds_sel, get_extra_spec_storage_profile,
|
||||
get_storage_profile,
|
||||
get_extra_spec_disk_type,
|
||||
@ -1049,7 +1056,7 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
||||
rp = mock.sentinel.rp
|
||||
new_datastore = mock.Mock(value='ds2')
|
||||
summary = mock.Mock(datastore=new_datastore)
|
||||
ds_sel.select_datastore.return_value = (host, rp, summary)
|
||||
select_datastore.return_value = (host, rp, summary)
|
||||
|
||||
folder = mock.sentinel.folder
|
||||
get_volume_group_folder.return_value = folder
|
||||
@ -1066,7 +1073,7 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
||||
host))
|
||||
ds_sel.is_datastore_compliant.assert_called_once_with(datastore,
|
||||
new_profile)
|
||||
ds_sel.select_datastore.assert_called_once_with(
|
||||
select_datastore.assert_called_once_with(
|
||||
{hub.DatastoreSelector.SIZE_BYTES: volume['size'] * units.Gi,
|
||||
hub.DatastoreSelector.HARD_ANTI_AFFINITY_DS: ['ds1'],
|
||||
hub.DatastoreSelector.PROFILE_NAME: new_profile})
|
||||
@ -1085,6 +1092,7 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
||||
@mock.patch.object(VMDK_DRIVER, '_get_storage_profile')
|
||||
@mock.patch.object(VMDK_DRIVER, '_get_extra_spec_storage_profile')
|
||||
@mock.patch.object(VMDK_DRIVER, 'ds_sel')
|
||||
@mock.patch.object(VMDK_DRIVER, '_select_datastore')
|
||||
@mock.patch.object(VMDK_DRIVER, '_get_volume_group_folder')
|
||||
@mock.patch('oslo_utils.uuidutils.generate_uuid')
|
||||
@mock.patch.object(VMDK_DRIVER, '_delete_temp_backing')
|
||||
@ -1093,7 +1101,9 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
||||
delete_temp_backing,
|
||||
generate_uuid,
|
||||
get_volume_group_folder,
|
||||
ds_sel, get_extra_spec_storage_profile,
|
||||
select_datastore,
|
||||
ds_sel,
|
||||
get_extra_spec_storage_profile,
|
||||
get_storage_profile,
|
||||
get_extra_spec_disk_type,
|
||||
get_disk_type,
|
||||
@ -1122,7 +1132,7 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
||||
host = mock.sentinel.host
|
||||
rp = mock.sentinel.rp
|
||||
summary = mock.Mock(datastore=datastore)
|
||||
ds_sel.select_datastore.return_value = (host, rp, summary)
|
||||
select_datastore.return_value = (host, rp, summary)
|
||||
|
||||
folder = mock.sentinel.folder
|
||||
get_volume_group_folder.return_value = folder
|
||||
@ -1152,7 +1162,7 @@ class VMwareVcVmdkDriverTestCase(test.TestCase):
|
||||
diff, host))
|
||||
ds_sel.is_datastore_compliant.assert_called_once_with(datastore,
|
||||
new_profile)
|
||||
ds_sel.select_datastore.assert_called_once_with(
|
||||
select_datastore.assert_called_once_with(
|
||||
{hub.DatastoreSelector.SIZE_BYTES: volume['size'] * units.Gi,
|
||||
hub.DatastoreSelector.PROFILE_NAME: new_profile})
|
||||
vops.clone_backing.assert_called_once_with(
|
||||
|
@ -1297,8 +1297,9 @@ class VMwareVcVmdkDriver(driver.VolumeDriver):
|
||||
req[hub.DatastoreSelector.PROFILE_NAME] = new_profile
|
||||
|
||||
# Select datastore satisfying the requirements.
|
||||
best_candidate = self.ds_sel.select_datastore(req)
|
||||
if not best_candidate:
|
||||
try:
|
||||
best_candidate = self._select_datastore(req)
|
||||
except vmdk_exceptions.NoValidDatastoreException:
|
||||
# No candidate datastores; can't retype.
|
||||
LOG.warning(_LW("There are no datastores matching new "
|
||||
"requirements; can't retype volume: %s."),
|
||||
|
Loading…
x
Reference in New Issue
Block a user