From d8aec8c766444f56f741dfb6a53a1b6f1a2de69e Mon Sep 17 00:00:00 2001 From: Sam Betts Date: Wed, 1 Oct 2014 16:19:14 +0100 Subject: Add a call to management.validate(task) Makes sure _send_sensor_data calls the driver validate method before calling get_sensor_data. Change-Id: I859ff3d315765f463a433fe3c02cb975f98972d2 Closes-Bug: 1375103 --- ironic/conductor/manager.py | 1 + ironic/tests/conductor/test_manager.py | 42 +++++++++++++++++++--------------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/ironic/conductor/manager.py b/ironic/conductor/manager.py index 898841338..f6c112f27 100644 --- a/ironic/conductor/manager.py +++ b/ironic/conductor/manager.py @@ -1128,6 +1128,7 @@ class ConductorManager(periodic_task.PeriodicTasks): try: with task_manager.acquire(context, node_uuid, shared=True) \ as task: + task.driver.management.validate(task) sensors_data = task.driver.management.get_sensors_data( task) except NotImplementedError: diff --git a/ironic/tests/conductor/test_manager.py b/ironic/tests/conductor/test_manager.py index 90bac2f85..4d7d0f48c 100644 --- a/ironic/tests/conductor/test_manager.py +++ b/ironic/tests/conductor/test_manager.py @@ -1323,15 +1323,18 @@ class UpdatePortTestCase(_ServiceSetUpMixin, tests_db_base.DbTestCase): acquire_mock.return_value.__enter__.return_value.driver = self.driver with mock.patch.object(self.driver.management, 'get_sensors_data') as get_sensors_data_mock: - get_sensors_data_mock.return_value = 'fake-sensor-data' - _mapped_to_this_conductor_mock.return_value = True - get_nodeinfo_list_mock.return_value = [(node.uuid, node.driver, - node.instance_uuid)] - self.service._send_sensor_data(self.context) - self.assertTrue(get_nodeinfo_list_mock.called) - self.assertTrue(_mapped_to_this_conductor_mock.called) - self.assertTrue(acquire_mock.called) - self.assertTrue(get_sensors_data_mock.called) + with mock.patch.object(self.driver.management, + 'validate') as validate_mock: + get_sensors_data_mock.return_value = 'fake-sensor-data' + _mapped_to_this_conductor_mock.return_value = True + get_nodeinfo_list_mock.return_value = [(node.uuid, node.driver, + node.instance_uuid)] + self.service._send_sensor_data(self.context) + self.assertTrue(get_nodeinfo_list_mock.called) + self.assertTrue(_mapped_to_this_conductor_mock.called) + self.assertTrue(acquire_mock.called) + self.assertTrue(get_sensors_data_mock.called) + self.assertTrue(validate_mock.called) @mock.patch.object(manager.ConductorManager, '_mapped_to_this_conductor') @mock.patch.object(dbapi.IMPL, 'get_nodeinfo_list') @@ -1344,15 +1347,18 @@ class UpdatePortTestCase(_ServiceSetUpMixin, tests_db_base.DbTestCase): acquire_mock.return_value.__enter__.return_value.driver = self.driver with mock.patch.object(self.driver.management, 'get_sensors_data') as get_sensors_data_mock: - get_sensors_data_mock.return_value = 'fake-sensor-data' - _mapped_to_this_conductor_mock.return_value = True - get_nodeinfo_list_mock.return_value = [(node.uuid, node.driver, - node.instance_uuid)] - self.service._send_sensor_data(self.context) - self.assertFalse(get_nodeinfo_list_mock.called) - self.assertFalse(_mapped_to_this_conductor_mock.called) - self.assertFalse(acquire_mock.called) - self.assertFalse(get_sensors_data_mock.called) + with mock.patch.object(self.driver.management, + 'validate') as validate_mock: + get_sensors_data_mock.return_value = 'fake-sensor-data' + _mapped_to_this_conductor_mock.return_value = True + get_nodeinfo_list_mock.return_value = [(node.uuid, node.driver, + node.instance_uuid)] + self.service._send_sensor_data(self.context) + self.assertFalse(get_nodeinfo_list_mock.called) + self.assertFalse(_mapped_to_this_conductor_mock.called) + self.assertFalse(acquire_mock.called) + self.assertFalse(get_sensors_data_mock.called) + self.assertFalse(validate_mock.called) def test_set_boot_device(self): node = obj_utils.create_test_node(self.context, driver='fake') -- cgit v1.2.1