diff --git a/moganclient/osc/v1/server.py b/moganclient/osc/v1/server.py index d2317c7..fa5169f 100644 --- a/moganclient/osc/v1/server.py +++ b/moganclient/osc/v1/server.py @@ -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') diff --git a/moganclient/tests/unit/osc/v1/test_server.py b/moganclient/tests/unit/osc/v1/test_server.py index 6ea0291..92de02f 100644 --- a/moganclient/tests/unit/osc/v1/test_server.py +++ b/moganclient/tests/unit/osc/v1/test_server.py @@ -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) diff --git a/setup.cfg b/setup.cfg index a6aec52..c29b024 100644 --- a/setup.cfg +++ b/setup.cfg @@ -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