Refator: use 'server reboot' to set a server power reboot

Change-Id: I145c12a8e7bd0d50a89bc44d735e3e1b0eaf47b1
This commit is contained in:
liusheng 2017-01-09 16:20:53 +08:00
parent d2106cdada
commit b98c53ebf9
3 changed files with 33 additions and 0 deletions

View File

@ -385,3 +385,14 @@ class StopServer(ServersActionBase):
def take_action(self, parsed_args):
self._action_multiple_items(parsed_args, 'stop', 'set_power_state',
power_state='off')
class RebootServer(ServersActionBase):
"""Reboot baremetal server(s)."""
def get_parser(self, prog_name):
return self._get_parser_with_action(prog_name, 'reboot')
def take_action(self, parsed_args):
self._action_multiple_items(parsed_args, 'reboot', 'set_power_state',
power_state='reboot')

View File

@ -526,3 +526,24 @@ class TestServerStop(TestServerPowerActionBase):
mock_update_all, mock_find):
self._test_server_delete_more_than_one_partly_failed(
mock_update_all, mock_find)
@mock.patch.object(utils, 'find_resource')
@mock.patch.object(server_mgr.ServerManager, '_update_all')
class TestServerReboot(TestServerPowerActionBase):
def setUp(self):
super(TestServerReboot, self).setUp()
self.cmd = server.RebootServer(self.app, None)
self.action = 'reboot'
self.action_name = 'reboot'
def test_server_reboot_one(self, mock_update_all, mock_find):
self._test_server_power_action_one(mock_update_all, mock_find)
def test_server_reboot_multiple(self, mock_update_all, mock_find):
self._test_server_power_action_multiple(mock_update_all, mock_find)
def test_server_reboot_multiple_partly_failed(self,
mock_update_all, mock_find):
self._test_server_delete_more_than_one_partly_failed(
mock_update_all, mock_find)

View File

@ -43,6 +43,7 @@ openstack.baremetal_compute.v1 =
baremetal_server_show = moganclient.osc.v1.server:ShowServer
baremetal_server_start = moganclient.osc.v1.server:StartServer
baremetal_server_stop = moganclient.osc.v1.server:StopServer
baremetal_server_reboot = moganclient.osc.v1.server:RebootServer
baremetal_server_update = moganclient.osc.v1.server:UpdateServer
baremetal_availability_zone_list = moganclient.osc.v1.availability_zone:ListAvailabilityZone