summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Betts <sam@code-smash.net>2014-10-01 16:19:14 +0100
committerSam Betts <sam@code-smash.net>2014-10-01 17:32:01 +0100
commitd8aec8c766444f56f741dfb6a53a1b6f1a2de69e (patch)
treef95391b83f1ba35f7b5d1c9866cf82b6005fa1b5
parent931eebcb2dc297c78e46f6f1052b4512721f46db (diff)
downloadironic-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.py1
-rw-r--r--ironic/tests/conductor/test_manager.py42
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')