diff options
author | Sam Betts <sam@code-smash.net> | 2014-10-01 16:19:14 +0100 |
---|---|---|
committer | Sam Betts <sam@code-smash.net> | 2014-10-01 17:32:01 +0100 |
commit | d8aec8c766444f56f741dfb6a53a1b6f1a2de69e (patch) | |
tree | f95391b83f1ba35f7b5d1c9866cf82b6005fa1b5 | |
parent | 931eebcb2dc297c78e46f6f1052b4512721f46db (diff) | |
download | ironic-d8aec8c766444f56f741dfb6a53a1b6f1a2de69e.tar.gz |
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
-rw-r--r-- | ironic/conductor/manager.py | 1 | ||||
-rw-r--r-- | 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') |