Merge branch 'feature/SIENTIAPDE-1972-gateway-write-read' into feature/SIENTIAPDE-1972-gateway-wiring
This commit is contained in:
@@ -53,7 +53,7 @@ class GrpcServer:
|
|||||||
self.logger = logger
|
self.logger = logger
|
||||||
self.port = port
|
self.port = port
|
||||||
self.slot_lookup = slot_lookup
|
self.slot_lookup = slot_lookup
|
||||||
self.server = None
|
self.server: grpc.aio.Server | None = None
|
||||||
|
|
||||||
async def start(self) -> None:
|
async def start(self) -> None:
|
||||||
self.server = grpc.aio.server()
|
self.server = grpc.aio.server()
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ here. No reconnect logic — nats-py handles reconnection internally.
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
import nats
|
import nats
|
||||||
|
from nats.aio.client import Client
|
||||||
|
from nats.aio.subscription import Subscription
|
||||||
from sientia_do.observability.logger import Logger
|
from sientia_do.observability.logger import Logger
|
||||||
|
|
||||||
from ingestor.engines.write import WriteEngine
|
from ingestor.engines.write import WriteEngine
|
||||||
@@ -28,8 +30,8 @@ class NatsWriteConsumer:
|
|||||||
self.logger = logger
|
self.logger = logger
|
||||||
self.subject = subject
|
self.subject = subject
|
||||||
self.queue = queue
|
self.queue = queue
|
||||||
self.nc = None
|
self.nc: Client | None = None
|
||||||
self.sub = None
|
self.sub: Subscription | None = None
|
||||||
|
|
||||||
async def start(self) -> None:
|
async def start(self) -> None:
|
||||||
self.nc = await nats.connect(servers=self.nats_url)
|
self.nc = await nats.connect(servers=self.nats_url)
|
||||||
|
|||||||
@@ -75,7 +75,9 @@ class OpcConnectionPool(SientiaMonitoring):
|
|||||||
|
|
||||||
async def _connect(self, server_cfg: dict) -> Client:
|
async def _connect(self, server_cfg: dict) -> Client:
|
||||||
client = Client(server_cfg['url'], timeout=10)
|
client = Client(server_cfg['url'], timeout=10)
|
||||||
client.application_uri = server_cfg.get('server_uri')
|
server_uri = server_cfg.get('server_uri')
|
||||||
|
if server_uri:
|
||||||
|
client.application_uri = server_uri
|
||||||
if server_cfg.get('use_security'):
|
if server_cfg.get('use_security'):
|
||||||
cert, key = await self.cert_provider.fetch()
|
cert, key = await self.cert_provider.fetch()
|
||||||
await apply_security(client, server_cfg.get('server_uri'), cert, key, None)
|
await apply_security(client, server_cfg.get('server_uri'), cert, key, None)
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ class ActiveReadEngine(SientiaMonitoring):
|
|||||||
await self._record_read_lag(source_ts, tags)
|
await self._record_read_lag(source_ts, tags)
|
||||||
source_str = self._format_ts(source_ts)
|
source_str = self._format_ts(source_ts)
|
||||||
persisted = bool(names)
|
persisted = bool(names)
|
||||||
if persisted:
|
if names:
|
||||||
await self.sink.publish_reading(
|
await self.sink.publish_reading(
|
||||||
tag=addr, value=value, timestamp=source_str, names=names
|
tag=addr, value=value, timestamp=source_str, names=names
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -81,6 +81,9 @@ warn_unused_ignores = false
|
|||||||
warn_no_return = true
|
warn_no_return = true
|
||||||
strict_equality = true
|
strict_equality = true
|
||||||
ignore_missing_imports = true
|
ignore_missing_imports = true
|
||||||
|
# Generated protoc/grpcio-tools output - not a checking target, dynamic attrs
|
||||||
|
# mypy can't see (message classes built at runtime from DESCRIPTOR).
|
||||||
|
exclude = ["^ingestor/proto/"]
|
||||||
|
|
||||||
# Ignore missing imports for external packages
|
# Ignore missing imports for external packages
|
||||||
[[tool.mypy.overrides]]
|
[[tool.mypy.overrides]]
|
||||||
@@ -107,6 +110,14 @@ ignore_missing_imports = true
|
|||||||
module = "pandas.*"
|
module = "pandas.*"
|
||||||
ignore_missing_imports = true
|
ignore_missing_imports = true
|
||||||
|
|
||||||
|
# Generated protoc/grpcio-tools output - not hand-maintained, dynamic attrs
|
||||||
|
# mypy can't see (message classes built at runtime from DESCRIPTOR). Skip
|
||||||
|
# following it entirely so importers see Any instead of false attr-defined errors.
|
||||||
|
[[tool.mypy.overrides]]
|
||||||
|
module = "ingestor.proto.*"
|
||||||
|
ignore_errors = true
|
||||||
|
follow_imports = "skip"
|
||||||
|
|
||||||
[tool.pytest.ini_options]
|
[tool.pytest.ini_options]
|
||||||
testpaths = ["tests"]
|
testpaths = ["tests"]
|
||||||
python_files = ["test_*.py"]
|
python_files = ["test_*.py"]
|
||||||
|
|||||||
Reference in New Issue
Block a user