Refator: use 'server stop' to set a server power off

Change-Id: I9ba131f5172ebb4c80bb5eb15b55bfda1a0777d5
This commit is contained in:
liusheng 2017-01-09 16:18:13 +08:00
parent 51000d267b
commit d2106cdada
3 changed files with 33 additions and 0 deletions

View File

@ -374,3 +374,14 @@ class StartServer(ServersActionBase):
def take_action(self, parsed_args):
self._action_multiple_items(parsed_args, 'start', 'set_power_state',
power_state='on')
class StopServer(ServersActionBase):
"""Stop baremetal server(s)."""
def get_parser(self, prog_name):
return self._get_parser_with_action(prog_name, 'stop')
def take_action(self, parsed_args):
self._action_multiple_items(parsed_args, 'stop', 'set_power_state',
power_state='off')

View File

@ -505,3 +505,24 @@ class TestServerStart(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 TestServerStop(TestServerPowerActionBase):
def setUp(self):
super(TestServerStop, self).setUp()
self.cmd = server.StopServer(self.app, None)
self.action = 'off'
self.action_name = 'stop'
def test_server_stop_one(self, mock_update_all, mock_find):
self._test_server_power_action_one(mock_update_all, mock_find)
def test_server_stop_multiple(self, mock_update_all, mock_find):
self._test_server_power_action_multiple(mock_update_all, mock_find)
def test_server_stop_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

@ -42,6 +42,7 @@ openstack.baremetal_compute.v1 =
baremetal_server_list = moganclient.osc.v1.server:ListServer
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_update = moganclient.osc.v1.server:UpdateServer
baremetal_availability_zone_list = moganclient.osc.v1.availability_zone:ListAvailabilityZone