SIENTIAPDE-1325

Enhance release workflow to trigger only on merged pull requests and streamline data insertion in DataManager

- Updated the release workflow to execute only when a pull request is merged.
- Simplified the document insertion logic in DataManager by consolidating the dictionary construction.
- Refactored OPC Manager tests to utilize asynchronous mocks for improved accuracy in testing.
This commit is contained in:
vitor-aignosi
2025-11-10 09:14:35 -03:00
parent 373245d5a1
commit 89278827e7
5 changed files with 7 additions and 15 deletions

View File

@@ -8,6 +8,7 @@ on:
jobs: jobs:
release: release:
if: github.event.pull_request.merged == true
uses: Aignosi/github_workflow_templates/.github/workflows/dataops-module-release.yml@main uses: Aignosi/github_workflow_templates/.github/workflows/dataops-module-release.yml@main
permissions: write-all permissions: write-all
with: with:

View File

@@ -261,10 +261,7 @@ class DataManager(SientiaMonitoring):
try: try:
await self.mongo_repository.insert( await self.mongo_repository.insert(
collection_name=topic, collection_name=topic,
document={ document={**data, 'inserted_at': now()},
**data,
'inserted_at': now()
},
metadata=self.metadata, metadata=self.metadata,
) )
self.logger.debug(f'Message inserted into MongoDB collection {topic}: {data}') self.logger.debug(f'Message inserted into MongoDB collection {topic}: {data}')

View File

@@ -202,7 +202,7 @@ class OpcManager(SientiaMonitoring):
tags={ tags={
'pod_id': self.pod_id, 'pod_id': self.pod_id,
'server_name': self.name, 'server_name': self.name,
} },
) )
try: try:
self.client = Client(self.url, timeout=10, watchdog_intervall=3600000) self.client = Client(self.url, timeout=10, watchdog_intervall=3600000)
@@ -574,8 +574,6 @@ class OpcManager(SientiaMonitoring):
if self.non_receive_count >= 15: if self.non_receive_count >= 15:
await self.emit_metric( await self.emit_metric(
metric_object=metrics.OPC_RECONNECTIONS_TOTAL, metric_object=metrics.OPC_RECONNECTIONS_TOTAL,
method='inc',
value=1,
tags={ tags={
'pod_id': self.pod_id, 'pod_id': self.pod_id,
'server_name': self.name, 'server_name': self.name,

View File

@@ -286,13 +286,13 @@ async def test_update_opc_servers(metrics, opc_manager, ingestor_manager):
async def test_check_opc_servers_integrity_all_healthy(metrics, ingestor_manager): async def test_check_opc_servers_integrity_all_healthy(metrics, ingestor_manager):
# Setup mock OPC managers # Setup mock OPC managers
opc_manager1 = MagicMock() opc_manager1 = MagicMock()
opc_manager1.check_cycles.return_value = None opc_manager1.check_cycles = AsyncMock(return_value=None)
opc_manager1.check_opc_listenning.return_value = False opc_manager1.check_opc_listenning = AsyncMock(return_value=False)
opc_manager1.config = {'config': 'config1'} opc_manager1.config = {'config': 'config1'}
opc_manager2 = MagicMock() opc_manager2 = MagicMock()
opc_manager2.check_cycles.return_value = None opc_manager2.check_cycles = AsyncMock(return_value=None)
opc_manager2.check_opc_listenning.return_value = False opc_manager2.check_opc_listenning = AsyncMock(return_value=False)
opc_manager2.config = {'config': 'config2'} opc_manager2.config = {'config': 'config2'}
ingestor_manager.opc_managers = {'server1': opc_manager1, 'server2': opc_manager2} ingestor_manager.opc_managers = {'server1': opc_manager1, 'server2': opc_manager2}

View File

@@ -155,8 +155,6 @@ async def test_connect_no_security(client, mock_metrics, raw_opc_manager):
[ [
call( call(
metric_object=mock_metrics.OPC_CONNECTIONS_TOTAL, metric_object=mock_metrics.OPC_CONNECTIONS_TOTAL,
method='inc',
value=1,
tags={ tags={
'pod_id': raw_opc_manager.pod_id, 'pod_id': raw_opc_manager.pod_id,
'server_name': raw_opc_manager.name, 'server_name': raw_opc_manager.name,
@@ -620,8 +618,6 @@ async def test_check_opc_listenning_error_notification_and_retry(metrics, opc_ma
[ [
call( call(
metric_object=metrics.OPC_RECONNECTIONS_TOTAL, metric_object=metrics.OPC_RECONNECTIONS_TOTAL,
method='inc',
value=1,
tags={ tags={
'pod_id': opc_manager.pod_id, 'pod_id': opc_manager.pod_id,
'server_name': opc_manager.name, 'server_name': opc_manager.name,