Merge "Remove redundant node_periodic tests"

This commit is contained in:
Zuul 2021-10-19 08:08:09 +00:00 committed by Gerrit Code Review
commit c13e2d468d
4 changed files with 10 additions and 213 deletions

View File

@ -36,6 +36,8 @@ class PeriodicTestService(base_manager.BaseConductorManager):
def simple(self, task, context):
self.test.assertIsInstance(context, ironic_context.RequestContext)
self.test.assertTrue(task.shared)
# This may raise
task.upgrade_lock()
self.nodes.append(task.node.uuid)
@periodics.node_periodic(purpose="herding cats", spacing=42,
@ -83,10 +85,15 @@ class NodePeriodicTestCase(db_base.DbTestCase):
self.uuid = uuidutils.generate_uuid()
self.node = obj_utils.create_test_node(self.context, uuid=self.uuid)
def test_simple(self, mock_iter_nodes):
@mock.patch.object(periodics.LOG, 'info', autospec=True)
def test_simple(self, mock_log, mock_iter_nodes):
node2 = obj_utils.create_test_node(self.context,
uuid=uuidutils.generate_uuid(),
reservation='host0')
mock_iter_nodes.return_value = iter([
(uuidutils.generate_uuid(), 'driver1', ''),
(self.uuid, 'driver2', 'group'),
(node2.uuid, 'driver3', 'group'),
])
self.service.simple(self.ctx)
@ -94,6 +101,8 @@ class NodePeriodicTestCase(db_base.DbTestCase):
mock_iter_nodes.assert_called_once_with(self.service,
filters=None, fields=())
self.assertEqual([self.uuid], self.service.nodes)
# 1 node not found, 1 locked
self.assertEqual(2, mock_log.call_count)
def test_exclusive(self, mock_iter_nodes):
mock_iter_nodes.return_value = iter([

View File

@ -25,7 +25,6 @@ import tenacity
from ironic.common import exception
from ironic.common import states
from ironic.conductor import periodics
from ironic.conductor import task_manager
from ironic.conductor import utils as manager_utils
from ironic.conf import CONF
@ -2557,24 +2556,6 @@ class DracRedfishRAIDTestCase(test_utils.BaseDracTest):
self.raid._check_raid_tasks_status.assert_called_once_with(
task, ['/TaskService/123'])
@mock.patch.object(task_manager, 'acquire', autospec=True)
def test__query_raid_tasks_status_not_drac(self, mock_acquire):
driver_internal_info = {'raid_task_monitor_uris': ['/TaskService/123']}
self.node.driver_internal_info = driver_internal_info
self.node.save()
mock_manager = mock.Mock()
node_list = [(self.node.uuid, 'not-idrac', '', driver_internal_info)]
mock_manager.iter_nodes.return_value = node_list
task = mock.Mock(node=self.node,
driver=mock.Mock(raid=mock.Mock()))
mock_acquire.return_value = mock.MagicMock(
__enter__=mock.MagicMock(return_value=task))
self.raid._check_raid_tasks_status = mock.Mock()
self.raid._query_raid_tasks_status(mock_manager, self.context)
self.raid._check_raid_tasks_status.assert_not_called()
@mock.patch.object(task_manager, 'acquire', autospec=True)
def test__query_raid_tasks_status_no_task_monitor_url(self, mock_acquire):
driver_internal_info = {'something': 'else'}
@ -2593,42 +2574,6 @@ class DracRedfishRAIDTestCase(test_utils.BaseDracTest):
self.raid._check_raid_tasks_status.assert_not_called()
@mock.patch.object(periodics.LOG, 'info', autospec=True)
@mock.patch.object(task_manager, 'acquire', autospec=True)
def test__query_raid_tasks_status_node_notfound(
self, mock_acquire, mock_log):
driver_internal_info = {'raid_task_monitor_uris': ['/TaskService/123']}
self.node.driver_internal_info = driver_internal_info
self.node.save()
mock_manager = mock.Mock()
node_list = [(self.node.uuid, 'idrac', '', driver_internal_info)]
mock_manager.iter_nodes.return_value = node_list
mock_acquire.side_effect = exception.NodeNotFound
self.raid._check_raid_tasks_status = mock.Mock()
self.raid._query_raid_tasks_status(mock_manager, self.context)
self.raid._check_raid_tasks_status.assert_not_called()
self.assertTrue(mock_log.called)
@mock.patch.object(periodics.LOG, 'info', autospec=True)
@mock.patch.object(task_manager, 'acquire', autospec=True)
def test__query_raid_tasks_status_node_locked(
self, mock_acquire, mock_log):
driver_internal_info = {'raid_task_monitor_uris': ['/TaskService/123']}
self.node.driver_internal_info = driver_internal_info
self.node.save()
mock_manager = mock.Mock()
node_list = [(self.node.uuid, 'idrac', '', driver_internal_info)]
mock_manager.iter_nodes.return_value = node_list
mock_acquire.side_effect = exception.NodeLocked
self.raid._check_raid_tasks_status = mock.Mock()
self.raid._query_raid_tasks_status(mock_manager, self.context)
self.raid._check_raid_tasks_status.assert_not_called()
self.assertTrue(mock_log.called)
@mock.patch.object(redfish_utils, 'get_task_monitor', autospec=True)
def test__check_raid_tasks_status(self, mock_get_task_monitor):
driver_internal_info = {

View File

@ -23,7 +23,6 @@ from oslo_utils import uuidutils
from ironic.conductor import task_manager
from ironic.drivers.modules.irmc import common as irmc_common
from ironic.drivers.modules.irmc import raid as irmc_raid
from ironic.drivers.modules import noop
from ironic.tests.unit.drivers.modules.irmc import test_common
from ironic.tests.unit.objects import utils as obj_utils
@ -62,23 +61,6 @@ class iRMCPeriodicTaskTestCase(test_common.BaseIRMCTest):
raid_object._query_raid_config_fgi_status(mock_manager, None)
self.assertEqual(0, report_mock.call_count)
@mock.patch.object(irmc_common, 'get_irmc_report', autospec=True)
@mock.patch.object(task_manager, 'acquire', autospec=True)
def test__query_raid_config_fgi_status_without_raid_object(
self, mock_acquire, report_mock):
mock_manager = mock.Mock()
raid_config = self.raid_config
task = mock.Mock(node=self.node, driver=self.driver)
mock_acquire.return_value = mock.MagicMock(
__enter__=mock.MagicMock(return_value=task))
node_list = [(self.node.uuid, 'irmc', '', raid_config)]
mock_manager.iter_nodes.return_value = node_list
task.driver.raid = noop.NoRAID()
raid_object = irmc_raid.IRMCRAID()
raid_object._query_raid_config_fgi_status(mock_manager,
self.context)
self.assertEqual(0, report_mock.call_count)
@mock.patch.object(irmc_common, 'get_irmc_report', autospec=True)
@mock.patch.object(task_manager, 'acquire', autospec=True)
def test__query_raid_config_fgi_status_without_input(

View File

@ -25,7 +25,6 @@ from ironic.common import components
from ironic.common import exception
from ironic.common import indicator_states
from ironic.common import states
from ironic.conductor import periodics
from ironic.conductor import task_manager
from ironic.conductor import utils as manager_utils
from ironic.drivers.modules import deploy_utils
@ -863,29 +862,6 @@ class RedfishManagementTestCase(db_base.DbTestCase):
management._clear_firmware_updates.assert_called_once_with(self.node)
@mock.patch.object(task_manager, 'acquire', autospec=True)
def test__query_firmware_update_failed_not_redfish(self, mock_acquire):
driver_internal_info = {
'firmware_updates': [
{'task_monitor': '/task/123',
'url': 'test1'}]}
self.node.driver_internal_info = driver_internal_info
self.node.save()
management = redfish_mgmt.RedfishManagement()
mock_manager = mock.Mock()
node_list = [(self.node.uuid, 'not-redfish', '', driver_internal_info)]
mock_manager.iter_nodes.return_value = node_list
task = mock.Mock(node=self.node,
driver=mock.Mock(management=mock.Mock()))
mock_acquire.return_value = mock.MagicMock(
__enter__=mock.MagicMock(return_value=task))
management._clear_firmware_updates = mock.Mock()
management._query_firmware_update_failed(mock_manager,
self.context)
management._clear_firmware_updates.assert_not_called()
@mock.patch.object(task_manager, 'acquire', autospec=True)
def test__query_firmware_update_failed_no_firmware_upd(self, mock_acquire):
driver_internal_info = {'something': 'else'}
@ -906,52 +882,6 @@ class RedfishManagementTestCase(db_base.DbTestCase):
management._clear_firmware_updates.assert_not_called()
@mock.patch.object(periodics.LOG, 'info', autospec=True)
@mock.patch.object(task_manager, 'acquire', autospec=True)
def test__query_firmware_update_failed_node_notfound(self, mock_acquire,
mock_log):
driver_internal_info = {
'firmware_updates': [
{'task_monitor': '/task/123',
'url': 'test1'}]}
self.node.driver_internal_info = driver_internal_info
self.node.save()
management = redfish_mgmt.RedfishManagement()
mock_manager = mock.Mock()
node_list = [(self.node.uuid, 'redfish', '', driver_internal_info)]
mock_manager.iter_nodes.return_value = node_list
mock_acquire.side_effect = exception.NodeNotFound
management._clear_firmware_updates = mock.Mock()
management._query_firmware_update_failed(mock_manager,
self.context)
management._clear_firmware_updates.assert_not_called()
self.assertTrue(mock_log.called)
@mock.patch.object(periodics.LOG, 'info', autospec=True)
@mock.patch.object(task_manager, 'acquire', autospec=True)
def test__query_firmware_update_failed_node_locked(
self, mock_acquire, mock_log):
driver_internal_info = {
'firmware_updates': [
{'task_monitor': '/task/123',
'url': 'test1'}]}
self.node.driver_internal_info = driver_internal_info
self.node.save()
management = redfish_mgmt.RedfishManagement()
mock_manager = mock.Mock()
node_list = [(self.node.uuid, 'redfish', '', driver_internal_info)]
mock_manager.iter_nodes.return_value = node_list
mock_acquire.side_effect = exception.NodeLocked
management._clear_firmware_updates = mock.Mock()
management._query_firmware_update_failed(mock_manager,
self.context)
management._clear_firmware_updates.assert_not_called()
self.assertTrue(mock_log.called)
@mock.patch.object(task_manager, 'acquire', autospec=True)
def test__query_firmware_update_status(self, mock_acquire):
driver_internal_info = {
@ -975,29 +905,6 @@ class RedfishManagementTestCase(db_base.DbTestCase):
management._check_node_firmware_update.assert_called_once_with(task)
@mock.patch.object(task_manager, 'acquire', autospec=True)
def test__query_firmware_update_status_not_redfish(self, mock_acquire):
driver_internal_info = {
'firmware_updates': [
{'task_monitor': '/task/123',
'url': 'test1'}]}
self.node.driver_internal_info = driver_internal_info
self.node.save()
management = redfish_mgmt.RedfishManagement()
mock_manager = mock.Mock()
node_list = [(self.node.uuid, 'not-redfish', '', driver_internal_info)]
mock_manager.iter_nodes.return_value = node_list
task = mock.Mock(node=self.node,
driver=mock.Mock(management=mock.Mock()))
mock_acquire.return_value = mock.MagicMock(
__enter__=mock.MagicMock(return_value=task))
management._check_node_firmware_update = mock.Mock()
management._query_firmware_update_status(mock_manager,
self.context)
management._check_node_firmware_update.assert_not_called()
@mock.patch.object(task_manager, 'acquire', autospec=True)
def test__query_firmware_update_status_no_firmware_upd(self, mock_acquire):
driver_internal_info = {'something': 'else'}
@ -1018,52 +925,6 @@ class RedfishManagementTestCase(db_base.DbTestCase):
management._check_node_firmware_update.assert_not_called()
@mock.patch.object(periodics.LOG, 'info', autospec=True)
@mock.patch.object(task_manager, 'acquire', autospec=True)
def test__query_firmware_update_status_node_notfound(self, mock_acquire,
mock_log):
driver_internal_info = {
'firmware_updates': [
{'task_monitor': '/task/123',
'url': 'test1'}]}
self.node.driver_internal_info = driver_internal_info
self.node.save()
management = redfish_mgmt.RedfishManagement()
mock_manager = mock.Mock()
node_list = [(self.node.uuid, 'redfish', '', driver_internal_info)]
mock_manager.iter_nodes.return_value = node_list
mock_acquire.side_effect = exception.NodeNotFound
management._check_node_firmware_update = mock.Mock()
management._query_firmware_update_status(mock_manager,
self.context)
management._check_node_firmware_update.assert_not_called()
self.assertTrue(mock_log.called)
@mock.patch.object(periodics.LOG, 'info', autospec=True)
@mock.patch.object(task_manager, 'acquire', autospec=True)
def test__query_firmware_update_status_node_locked(
self, mock_acquire, mock_log):
driver_internal_info = {
'firmware_updates': [
{'task_monitor': '/task/123',
'url': 'test1'}]}
self.node.driver_internal_info = driver_internal_info
self.node.save()
management = redfish_mgmt.RedfishManagement()
mock_manager = mock.Mock()
node_list = [(self.node.uuid, 'redfish', '', driver_internal_info)]
mock_manager.iter_nodes.return_value = node_list
mock_acquire.side_effect = exception.NodeLocked
management._check_node_firmware_update = mock.Mock()
management._query_firmware_update_status(mock_manager,
self.context)
management._check_node_firmware_update.assert_not_called()
self.assertTrue(mock_log.called)
@mock.patch.object(redfish_mgmt.LOG, 'warning', autospec=True)
@mock.patch.object(redfish_utils, 'get_update_service', autospec=True)
def test__check_node_firmware_update_redfish_conn_error(