Merge "Do not compute deltas when doing migration"
This commit is contained in:
commit
699b1635a2
nova
@ -2607,27 +2607,31 @@ class API(base.Base):
|
||||
raise exception.CannotResizeToSameFlavor()
|
||||
|
||||
# ensure there is sufficient headroom for upsizes
|
||||
deltas = self._upsize_quota_delta(context, new_instance_type,
|
||||
current_instance_type)
|
||||
try:
|
||||
quotas = self._reserve_quota_delta(context, deltas, instance)
|
||||
except exception.OverQuota as exc:
|
||||
quotas = exc.kwargs['quotas']
|
||||
overs = exc.kwargs['overs']
|
||||
usages = exc.kwargs['usages']
|
||||
headroom = self._get_headroom(quotas, usages, deltas)
|
||||
if flavor_id:
|
||||
deltas = self._upsize_quota_delta(context, new_instance_type,
|
||||
current_instance_type)
|
||||
try:
|
||||
quotas = self._reserve_quota_delta(context, deltas, instance)
|
||||
except exception.OverQuota as exc:
|
||||
quotas = exc.kwargs['quotas']
|
||||
overs = exc.kwargs['overs']
|
||||
usages = exc.kwargs['usages']
|
||||
headroom = self._get_headroom(quotas, usages, deltas)
|
||||
|
||||
resource = overs[0]
|
||||
used = quotas[resource] - headroom[resource]
|
||||
total_allowed = used + headroom[resource]
|
||||
overs = ','.join(overs)
|
||||
LOG.warning(_LW("%(overs)s quota exceeded for %(pid)s,"
|
||||
" tried to resize instance."),
|
||||
{'overs': overs, 'pid': context.project_id})
|
||||
raise exception.TooManyInstances(overs=overs,
|
||||
req=deltas[resource],
|
||||
used=used, allowed=total_allowed,
|
||||
resource=resource)
|
||||
resource = overs[0]
|
||||
used = quotas[resource] - headroom[resource]
|
||||
total_allowed = used + headroom[resource]
|
||||
overs = ','.join(overs)
|
||||
LOG.warning(_LW("%(overs)s quota exceeded for %(pid)s,"
|
||||
" tried to resize instance."),
|
||||
{'overs': overs, 'pid': context.project_id})
|
||||
raise exception.TooManyInstances(overs=overs,
|
||||
req=deltas[resource],
|
||||
used=used,
|
||||
allowed=total_allowed,
|
||||
resource=resource)
|
||||
else:
|
||||
quotas = objects.Quotas()
|
||||
|
||||
instance.task_state = task_states.RESIZE_PREP
|
||||
instance.progress = 0
|
||||
|
@ -1418,12 +1418,12 @@ class _ComputeAPIUnitTestMixIn(object):
|
||||
fake_inst)
|
||||
fake_quotas = objects.Quotas.from_reservations(self.context,
|
||||
resvs)
|
||||
|
||||
self.compute_api._upsize_quota_delta(
|
||||
self.context, mox.IsA(objects.Flavor),
|
||||
mox.IsA(objects.Flavor)).AndReturn('deltas')
|
||||
self.compute_api._reserve_quota_delta(self.context, 'deltas',
|
||||
fake_inst).AndReturn(fake_quotas)
|
||||
if flavor_id_passed:
|
||||
self.compute_api._upsize_quota_delta(
|
||||
self.context, mox.IsA(objects.Flavor),
|
||||
mox.IsA(objects.Flavor)).AndReturn('deltas')
|
||||
self.compute_api._reserve_quota_delta(self.context, 'deltas',
|
||||
fake_inst).AndReturn(fake_quotas)
|
||||
|
||||
def _check_state(expected_task_state=None):
|
||||
self.assertEqual(task_states.RESIZE_PREP,
|
||||
@ -1442,8 +1442,10 @@ class _ComputeAPIUnitTestMixIn(object):
|
||||
|
||||
if not flavor_id_passed and not allow_mig_same_host:
|
||||
filter_properties['ignore_hosts'].append(fake_inst['host'])
|
||||
|
||||
expected_reservations = fake_quotas.reservations
|
||||
if flavor_id_passed:
|
||||
expected_reservations = fake_quotas.reservations
|
||||
else:
|
||||
expected_reservations = []
|
||||
if self.cell_type == 'api':
|
||||
fake_quotas.commit(self.context)
|
||||
expected_reservations = []
|
||||
|
Loading…
x
Reference in New Issue
Block a user