Merge "Implemented resume_state_on_host_boot driver callback"
This commit is contained in:
commit
e968708f66
|
@ -950,6 +950,23 @@ class LXDDriverTest(test.NoDBTestCase):
|
||||||
self.client.containers.get.assert_called_once_with(instance.name)
|
self.client.containers.get.assert_called_once_with(instance.name)
|
||||||
container.unfreeze.assert_called_once_with(wait=True)
|
container.unfreeze.assert_called_once_with(wait=True)
|
||||||
|
|
||||||
|
def test_resume_state_on_host_boot(self):
|
||||||
|
container = mock.Mock()
|
||||||
|
state = mock.Mock()
|
||||||
|
state.memory = dict({'usage': 0, 'usage_peak': 0})
|
||||||
|
state.status_code = 102
|
||||||
|
container.state.return_value = state
|
||||||
|
self.client.containers.get.return_value = container
|
||||||
|
ctx = context.get_admin_context()
|
||||||
|
instance = fake_instance.fake_instance_obj(
|
||||||
|
ctx, name='test', memory_mb=0)
|
||||||
|
|
||||||
|
lxd_driver = driver.LXDDriver(None)
|
||||||
|
lxd_driver.init_host(None)
|
||||||
|
|
||||||
|
lxd_driver.resume_state_on_host_boot(ctx, instance, None, None)
|
||||||
|
container.start.assert_called_once_with(wait=True)
|
||||||
|
|
||||||
def test_rescue(self):
|
def test_rescue(self):
|
||||||
profile = mock.Mock()
|
profile = mock.Mock()
|
||||||
profile.devices = {
|
profile.devices = {
|
||||||
|
|
|
@ -869,6 +869,23 @@ class LXDDriver(driver.ComputeDriver):
|
||||||
"""
|
"""
|
||||||
self.unpause(instance)
|
self.unpause(instance)
|
||||||
|
|
||||||
|
def resume_state_on_host_boot(self, context, instance, network_info,
|
||||||
|
block_device_info=None):
|
||||||
|
"""resume guest state when a host is booted."""
|
||||||
|
try:
|
||||||
|
state = self.get_info(instance).state
|
||||||
|
ignored_states = (power_state.RUNNING,
|
||||||
|
power_state.SUSPENDED,
|
||||||
|
power_state.NOSTATE,
|
||||||
|
power_state.PAUSED)
|
||||||
|
|
||||||
|
if state in ignored_states:
|
||||||
|
return
|
||||||
|
|
||||||
|
self.power_on(context, instance, network_info, block_device_info)
|
||||||
|
except (exception.InternalError, exception.InstanceNotFound):
|
||||||
|
pass
|
||||||
|
|
||||||
def rescue(self, context, instance, network_info, image_meta,
|
def rescue(self, context, instance, network_info, image_meta,
|
||||||
rescue_password):
|
rescue_password):
|
||||||
"""Rescue a LXD container.
|
"""Rescue a LXD container.
|
||||||
|
|
Loading…
Reference in New Issue