Merge "remove the CONF.allow_migrate_to_same_host"

This commit is contained in:
Jenkins 2015-04-23 13:46:28 +00:00 committed by Gerrit Code Review
commit 49cec4c74f
9 changed files with 19 additions and 19 deletions

View File

@ -88,10 +88,6 @@ compute_opts = [
default=False,
help='Allow destination machine to match source for resize. '
'Useful when testing in single-host environments.'),
cfg.BoolOpt('allow_migrate_to_same_host',
default=False,
help='Allow migrate machine to the same host. '
'Useful when testing in single-host environments.'),
cfg.StrOpt('default_schedule_zone',
help='Availability zone to use when user doesn\'t specify one'),
cfg.ListOpt('non_inheritable_image_properties',
@ -2643,10 +2639,6 @@ class API(base.Base):
if not CONF.allow_resize_to_same_host:
filter_properties['ignore_hosts'].append(instance.host)
# Here when flavor_id is None, the process is considered as migrate.
if (not flavor_id and not CONF.allow_migrate_to_same_host):
filter_properties['ignore_hosts'].append(instance.host)
if self.cell_type == 'api':
# Commit reservations early and create migration record.
self._resize_cells_support(context, quotas, instance,

View File

@ -3828,7 +3828,13 @@ class ComputeManager(manager.Manager):
raise exception.MigrationError(reason=msg)
same_host = instance.host == self.host
if same_host and not CONF.allow_resize_to_same_host:
# if the flavor IDs match, it's migrate; otherwise resize
if same_host and instance_type['id'] == instance['instance_type_id']:
# check driver whether support migrate to same host
if not self.driver.capabilities['supports_migrate_to_same_host']:
raise exception.UnableToMigrateToSelf(
instance_id=instance.uuid, host=self.host)
elif same_host and not CONF.allow_resize_to_same_host:
self._set_instance_error_state(context, instance)
msg = _('destination same as source!')
raise exception.MigrationError(reason=msg)

View File

@ -1246,7 +1246,6 @@ class _ComputeAPIUnitTestMixIn(object):
def _test_resize(self, flavor_id_passed=True,
same_host=False, allow_same_host=False,
allow_mig_same_host=False,
project_id=None,
extra_kwargs=None,
same_flavor=False,
@ -1254,8 +1253,7 @@ class _ComputeAPIUnitTestMixIn(object):
if extra_kwargs is None:
extra_kwargs = {}
self.flags(allow_resize_to_same_host=allow_same_host,
allow_migrate_to_same_host=allow_mig_same_host)
self.flags(allow_resize_to_same_host=allow_same_host)
params = {}
if project_id is not None:
@ -1312,8 +1310,6 @@ class _ComputeAPIUnitTestMixIn(object):
else:
filter_properties = {'ignore_hosts': [fake_inst['host']]}
if not flavor_id_passed and not allow_mig_same_host:
filter_properties['ignore_hosts'].append(fake_inst['host'])
if flavor_id_passed:
expected_reservations = fake_quotas.reservations
else:

View File

@ -306,6 +306,8 @@ class VMwareAPIVMTestCase(test.NoDBTestCase):
def test_driver_capabilities(self):
self.assertTrue(self.conn.capabilities['has_imagecache'])
self.assertFalse(self.conn.capabilities['supports_recreate'])
self.assertTrue(
self.conn.capabilities['supports_migrate_to_same_host'])
def test_configuration_linked_clone(self):
self.flags(use_linked_clone=None, group='vmware')

View File

@ -136,6 +136,7 @@ class ComputeDriver(object):
capabilities = {
"has_imagecache": False,
"supports_recreate": False,
"supports_migrate_to_same_host": False
}
def __init__(self, virtapi):

View File

@ -125,6 +125,7 @@ class FakeDriver(driver.ComputeDriver):
capabilities = {
"has_imagecache": True,
"supports_recreate": True,
"supports_migrate_to_same_host": True
}
# Since we don't have a real hypervisor, pretend we have lots of

View File

@ -162,7 +162,8 @@ class IronicDriver(virt_driver.ComputeDriver):
"""Hypervisor driver for Ironic - bare metal provisioning."""
capabilities = {"has_imagecache": False,
"supports_recreate": False}
"supports_recreate": False,
"supports_migrate_to_same_host": False}
def __init__(self, virtapi, read_only=False):
super(IronicDriver, self).__init__(virtapi)

View File

@ -381,10 +381,10 @@ MIN_LIBVIRT_PARALLELS_VERSION = (1, 2, 12)
class LibvirtDriver(driver.ComputeDriver):
capabilities = {
"has_imagecache": True,
"supports_recreate": True,
"supports_migrate_to_same_host": False
}
def __init__(self, virtapi, read_only=False):

View File

@ -110,6 +110,7 @@ class VMwareVCDriver(driver.ComputeDriver):
capabilities = {
"has_imagecache": True,
"supports_recreate": False,
"supports_migrate_to_same_host": True
}
# The vCenter driver includes API that acts on ESX hosts or groups