refactor(gateway): drop dead error_stack and unused metadata from OpcConnectionPool (ponytail)
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
import asyncio
|
||||
import traceback
|
||||
|
||||
from asyncua import Client
|
||||
from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler
|
||||
@@ -23,10 +22,8 @@ class OpcConnectionPool(SientiaMonitoring):
|
||||
logger: Logger,
|
||||
notification_handler: NotificationHandler,
|
||||
metrics_controller: MetricsController,
|
||||
metadata: dict | None = None,
|
||||
):
|
||||
self.cert_provider = cert_provider
|
||||
self.metadata = metadata or {}
|
||||
self.clock = MonotonicClock()
|
||||
self._connections: dict[str, tuple[Client, float]] = {}
|
||||
# ponytail: one Lock per server_id, never cleaned up — server set is
|
||||
@@ -119,20 +116,15 @@ class OpcConnectionPool(SientiaMonitoring):
|
||||
tags={'pod_id': self.pod_id, 'server_name': server_id},
|
||||
)
|
||||
|
||||
async def _disconnect_with_retries(self, client: Client, server_id: str) -> list:
|
||||
async def _disconnect_with_retries(self, client: Client, server_id: str) -> None:
|
||||
"""Tries 5 times to disconnect, with a delay of 100ms x try (mirrors
|
||||
OpcManager.disconnection_fallback)."""
|
||||
error_stack = []
|
||||
for i in range(5):
|
||||
try:
|
||||
await client.disconnect()
|
||||
return []
|
||||
return
|
||||
except Exception as e:
|
||||
self.logger.error(
|
||||
f'Failed to disconnect from {server_id}, attempt {i + 1} of 5: {e}'
|
||||
)
|
||||
error_stack.append(
|
||||
{'attempt': i + 1, 'error': str(e), 'traceback': traceback.format_exc()}
|
||||
)
|
||||
await asyncio.sleep(0.1 * i)
|
||||
return error_stack
|
||||
|
||||
@@ -13,7 +13,6 @@ def make_pool(cert_provider=None):
|
||||
logger=MagicMock(),
|
||||
notification_handler=MagicMock(),
|
||||
metrics_controller=AsyncMock(),
|
||||
metadata={},
|
||||
)
|
||||
pool.emit_metric = AsyncMock()
|
||||
return pool
|
||||
|
||||
Reference in New Issue
Block a user