SIENTIAPDE-1325
Refactor Ingestor and Metrics Classes for Enhanced Asynchronous Operations - Updated IngestorManager, OpcManager, and ResourceManager to utilize asynchronous methods for improved performance. - Integrated MetricsController into various classes for better observability and monitoring. - Adjusted unit tests to accommodate the new asynchronous behavior, ensuring proper mocking of async methods. - Removed deprecated Redis metrics and streamlined resource management logic.
This commit is contained in:
@@ -74,7 +74,7 @@ def ingestor(_notification_handler, _getenv):
|
||||
|
||||
@fixture
|
||||
def ingestor_manager_started(ingestor):
|
||||
ingestor.ingestor_manager = MagicMock(
|
||||
ingestor.ingestor_manager = AsyncMock(
|
||||
initialize_opc_from_config=AsyncMock(),
|
||||
shutdown=AsyncMock(),
|
||||
update_opc_servers=AsyncMock(),
|
||||
@@ -138,6 +138,7 @@ async def test_prepare_ingestor(ingestor_manager_mock, ingestor):
|
||||
logger=ingestor.logger,
|
||||
notification_handler=ingestor.notification_handler,
|
||||
export_to_kafka=ingestor.export_to_kafka,
|
||||
metrics_controller=ingestor.metrics_controller,
|
||||
)
|
||||
ingestor_manager.declare_active.assert_called_once()
|
||||
ingestor_manager.get_slot_leases.assert_called_once()
|
||||
@@ -177,11 +178,12 @@ def test_manage_slots_none_available(ingestor_manager_started):
|
||||
ingestor_manager_started.ingestor_manager.handle_acquired_tags.assert_not_called()
|
||||
|
||||
|
||||
def test_manage_slots_none_available_none_available(ingestor_manager_started):
|
||||
@mark.asyncio
|
||||
async def test_manage_slots_none_available_none_available(ingestor_manager_started):
|
||||
ingestor_manager_started.handle_acquired_tags = MagicMock()
|
||||
ingestor_manager_started.ingestor_manager.managed_tags = False
|
||||
|
||||
ingestor_manager_started.manage_no_slots(2)
|
||||
await ingestor_manager_started.manage_no_slots(2)
|
||||
|
||||
ingestor_manager_started.ingestor_manager.get_slot_leases.assert_called_once_with(1)
|
||||
|
||||
@@ -235,7 +237,7 @@ async def test_manage_leases_no_available_slots_extra_sltos(ingestor_manager_sta
|
||||
|
||||
@mark.asyncio
|
||||
async def test_loop(ingestor_manager_started):
|
||||
ingestor_manager_started.manage_no_slots = MagicMock()
|
||||
ingestor_manager_started.manage_no_slots = AsyncMock()
|
||||
ingestor_manager_started.manage_leases = AsyncMock()
|
||||
ingestor_manager_started.update_ingestor_manager = AsyncMock()
|
||||
ingestor_manager_started.ingestor_manager.check_opc_servers_integrity = AsyncMock()
|
||||
@@ -244,11 +246,11 @@ async def test_loop(ingestor_manager_started):
|
||||
'slot2': 'server2',
|
||||
'slot3': 'server3',
|
||||
}
|
||||
ingestor_manager_started.ingestor_manager.get_active_ingestors = MagicMock(
|
||||
ingestor_manager_started.ingestor_manager.get_active_ingestors = AsyncMock(
|
||||
return_value=['ingestor1', 'ingestor2']
|
||||
)
|
||||
ingestor_manager_started.ingestor_manager.get_number_of_slots = MagicMock(return_value=5)
|
||||
ingestor_manager_started.ingestor_manager.get_number_of_leases = MagicMock(return_value=1)
|
||||
ingestor_manager_started.ingestor_manager.get_number_of_slots = AsyncMock(return_value=5)
|
||||
ingestor_manager_started.ingestor_manager.get_number_of_leases = AsyncMock(return_value=1)
|
||||
|
||||
await ingestor_manager_started.loop()
|
||||
|
||||
@@ -269,15 +271,15 @@ async def test_loop(ingestor_manager_started):
|
||||
|
||||
@mark.asyncio
|
||||
async def test_loop_no_managed(ingestor_manager_started):
|
||||
ingestor_manager_started.manage_no_slots = MagicMock()
|
||||
ingestor_manager_started.manage_no_slots = AsyncMock()
|
||||
ingestor_manager_started.manage_leases = AsyncMock()
|
||||
ingestor_manager_started.update_ingestor_manager = AsyncMock()
|
||||
ingestor_manager_started.ingestor_manager.check_opc_servers_integrity = AsyncMock()
|
||||
ingestor_manager_started.ingestor_manager.managed_tags = {}
|
||||
ingestor_manager_started.ingestor_manager.get_active_ingestors = MagicMock(
|
||||
ingestor_manager_started.ingestor_manager.get_active_ingestors = AsyncMock(
|
||||
return_value=['ingestor1', 'ingestor2']
|
||||
)
|
||||
ingestor_manager_started.ingestor_manager.get_number_of_slots = MagicMock(return_value=5)
|
||||
ingestor_manager_started.ingestor_manager.get_number_of_slots = AsyncMock(return_value=5)
|
||||
|
||||
await ingestor_manager_started.loop()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user