Merge "Execute _poll_shelved_instances only if shelved_offload_time is > 0"
This commit is contained in:
commit
566f603615
|
@ -162,8 +162,8 @@ interval_opts = [
|
||||||
cfg.IntOpt('shelved_offload_time',
|
cfg.IntOpt('shelved_offload_time',
|
||||||
default=0,
|
default=0,
|
||||||
help='Time in seconds before a shelved instance is eligible '
|
help='Time in seconds before a shelved instance is eligible '
|
||||||
'for removing from a host. -1 never offload, 0 offload '
|
'for removing from a host. -1 never offload, 0 offload '
|
||||||
'when shelved'),
|
'immediately when shelved'),
|
||||||
cfg.IntOpt('instance_delete_interval',
|
cfg.IntOpt('instance_delete_interval',
|
||||||
default=300,
|
default=300,
|
||||||
help='Interval in seconds for retrying failed instance file '
|
help='Interval in seconds for retrying failed instance file '
|
||||||
|
@ -5456,6 +5456,9 @@ class ComputeManager(manager.Manager):
|
||||||
@periodic_task.periodic_task(spacing=CONF.shelved_poll_interval)
|
@periodic_task.periodic_task(spacing=CONF.shelved_poll_interval)
|
||||||
def _poll_shelved_instances(self, context):
|
def _poll_shelved_instances(self, context):
|
||||||
|
|
||||||
|
if CONF.shelved_offload_time <= 0:
|
||||||
|
return
|
||||||
|
|
||||||
filters = {'vm_state': vm_states.SHELVED,
|
filters = {'vm_state': vm_states.SHELVED,
|
||||||
'host': self.host}
|
'host': self.host}
|
||||||
shelved_instances = objects.InstanceList.get_by_filters(
|
shelved_instances = objects.InstanceList.get_by_filters(
|
||||||
|
|
|
@ -19,6 +19,7 @@ from nova.compute import claims
|
||||||
from nova.compute import task_states
|
from nova.compute import task_states
|
||||||
from nova.compute import vm_states
|
from nova.compute import vm_states
|
||||||
from nova import db
|
from nova import db
|
||||||
|
from nova import objects
|
||||||
from nova.tests.unit.compute import test_compute
|
from nova.tests.unit.compute import test_compute
|
||||||
from nova.tests.unit.image import fake as fake_image
|
from nova.tests.unit.image import fake as fake_image
|
||||||
|
|
||||||
|
@ -328,6 +329,13 @@ class ShelveComputeManagerTestCase(test_compute.BaseTestCase):
|
||||||
self.compute.unshelve_instance(self.context, instance, image=None,
|
self.compute.unshelve_instance(self.context, instance, image=None,
|
||||||
filter_properties=filter_properties, node=node)
|
filter_properties=filter_properties, node=node)
|
||||||
|
|
||||||
|
@mock.patch.object(objects.InstanceList, 'get_by_filters')
|
||||||
|
def test_shelved_poll_none_offloaded(self, mock_get_by_filters):
|
||||||
|
# Test instances are not offloaded when shelved_offload_time is -1
|
||||||
|
CONF.set_override('shelved_offload_time', -1)
|
||||||
|
self.compute._poll_shelved_instances(self.context)
|
||||||
|
self.assertEqual(0, mock_get_by_filters.call_count)
|
||||||
|
|
||||||
def test_shelved_poll_none_exist(self):
|
def test_shelved_poll_none_exist(self):
|
||||||
self.mox.StubOutWithMock(self.compute.driver, 'destroy')
|
self.mox.StubOutWithMock(self.compute.driver, 'destroy')
|
||||||
self.mox.StubOutWithMock(timeutils, 'is_older_than')
|
self.mox.StubOutWithMock(timeutils, 'is_older_than')
|
||||||
|
|
Loading…
Reference in New Issue