diff --git a/heat/engine/resources/openstack/nova/server.py b/heat/engine/resources/openstack/nova/server.py index 0710e8f530..58ccc9ff7d 100644 --- a/heat/engine/resources/openstack/nova/server.py +++ b/heat/engine/resources/openstack/nova/server.py @@ -747,15 +747,11 @@ class Server(stack_user.StackUser): resource_status=server.status, result=_('Server is not active')) - def _check_server_status(self): - server = self.nova().servers.get(self.resource_id) + def handle_check(self): + server = self.client().servers.get(self.resource_id) status = self.client_plugin().get_status(server) checks = [{'attr': 'status', 'expected': 'ACTIVE', 'current': status}] self._verify_check_conditions(checks) - return server - - def handle_check(self): - self._check_server_status() @classmethod def _build_block_device_mapping(cls, bdm): diff --git a/heat/tests/test_server.py b/heat/tests/test_server.py index 71f621b275..e3f2d6056c 100644 --- a/heat/tests/test_server.py +++ b/heat/tests/test_server.py @@ -126,41 +126,33 @@ class ServersTest(common.HeatTestCase): stack_user_project_id='8888') return (templ, stack) - def _prepare_server_check(self): + def _prepare_server_check(self, status='ACTIVE'): templ, self.stack = self._setup_test_stack('server_check') server = self.fc.servers.list()[1] + server.status = status res = self.stack['WebServer'] - res.nova = mock.Mock() - res.nova().servers.get = mock.Mock(return_value=server) + res.client = mock.Mock() + res.client().servers.get.return_value = server return res def test_check(self): res = self._prepare_server_check() - res._check_server_status = mock.Mock() scheduler.TaskRunner(res.check)() self.assertEqual((res.CHECK, res.COMPLETE), res.state) def test_check_fail(self): res = self._prepare_server_check() - res._check_server_status = mock.Mock(side_effect=Exception('boom')) + res.client().servers.get.side_effect = Exception('boom') exc = self.assertRaises(exception.ResourceFailure, scheduler.TaskRunner(res.check)) self.assertIn('boom', six.text_type(exc)) self.assertEqual((res.CHECK, res.FAILED), res.state) - def test_check_server_status(self): - res = self._prepare_server_check() - server = res._check_server_status() - self.assertEqual(self.fc.servers.list()[1], server) - - def test_check_server_status_not_active(self): - res = self._prepare_server_check() - res._check_active = mock.Mock(return_value=False) - res.nova().servers.get().status = 'FOO' - - exc = self.assertRaises(exception.Error, - scheduler.TaskRunner(res._check_server_status)) + def test_check_not_active(self): + res = self._prepare_server_check(status='FOO') + exc = self.assertRaises(exception.ResourceFailure, + scheduler.TaskRunner(res.check)) self.assertIn('FOO', six.text_type(exc)) def _get_test_template(self, stack_name, server_name=None,