Add reboot instance driver method

Soft reboot invokes zvm cloud connector guest_reboot while hard
reboot invokes guest_reset.

Change-Id: I6689e67e9caec554e0582358cea11f01f181bd06
This commit is contained in:
Huang Rui 2018-01-08 10:11:16 +08:00
parent ddbcd6cfac
commit 77e5cfa112
3 changed files with 22 additions and 0 deletions

View File

@ -484,6 +484,18 @@ class TestZVMDriver(test.NoDBTestCase):
self.driver.unpause(self._instance)
ipa.assert_called_once_with(self._instance, 'guest_unpause')
@mock.patch('nova_zvm.virt.zvm.driver.ZVMDriver._instance_power_action')
def test_reboot_soft(self, ipa):
self.driver.reboot(self._context, self._instance, self._network_info,
'SOFT')
ipa.assert_called_once_with(self._instance, 'guest_reboot')
@mock.patch('nova_zvm.virt.zvm.driver.ZVMDriver._instance_power_action')
def test_reboot_hard(self, ipa):
self.driver.reboot(self._context, self._instance, self._network_info,
'HARD')
ipa.assert_called_once_with(self._instance, 'guest_reset')
@mock.patch('nova_zvm.virt.zvm.utils.zVMConnectorRequestHandler.call')
def test_get_console_output(self, call):
call.return_value = 'console output'

View File

@ -25,3 +25,6 @@ ZVM_POWER_STAT = {
'on': power_state.RUNNING,
'off': power_state.SHUTDOWN,
}
REBOOT_TYPE_SOFT = 'SOFT'
REBOOT_TYPE_HARD = 'HARD'

View File

@ -405,6 +405,13 @@ class ZVMDriver(driver.ComputeDriver):
"""Unpause the z/VM instance."""
self._instance_power_action(instance, 'guest_unpause')
def reboot(self, context, instance, network_info, reboot_type,
block_device_info=None, bad_volumes_callback=None):
if reboot_type == const.REBOOT_TYPE_SOFT:
self._instance_power_action(instance, 'guest_reboot')
else:
self._instance_power_action(instance, 'guest_reset')
def get_console_output(self, context, instance):
return self._reqh.call('guest_get_console_output', instance.name)