diff --git a/kuksa-client/kuksa_client/grpc/__init__.py b/kuksa-client/kuksa_client/grpc/__init__.py index d6cb5c0..e9822bc 100644 --- a/kuksa-client/kuksa_client/grpc/__init__.py +++ b/kuksa-client/kuksa_client/grpc/__init__.py @@ -1268,7 +1268,10 @@ def set( try: resp = self.client_stub_v2.PublishValueRequest(req, **rpc_kwargs) except RpcError as exc: - raise VSSClientError.from_grpc_error(exc) from exc + if exc.code() == grpc.StatusCode.UNIMPLEMENTED: + self.set(updates) + else: + raise VSSClientError.from_grpc_error(exc) from exc @check_connected def subscribe( @@ -1304,7 +1307,10 @@ def subscribe( for path, dp in resp.entries.items() ] except RpcError as exc: - raise VSSClientError.from_grpc_error(exc) from exc + if exc.code() == grpc.StatusCode.UNIMPLEMENTED: + self.subscribe(entries) + else: + raise VSSClientError.from_grpc_error(exc) from exc @check_connected def authorize(self, token: str, **rpc_kwargs) -> str: diff --git a/kuksa-client/kuksa_client/grpc/aio.py b/kuksa-client/kuksa_client/grpc/aio.py index b26f10f..0a17af3 100644 --- a/kuksa-client/kuksa_client/grpc/aio.py +++ b/kuksa-client/kuksa_client/grpc/aio.py @@ -427,7 +427,10 @@ async def set( try: resp = await self.client_stub_v2.PublishValue(req, **rpc_kwargs) except AioRpcError as exc: - raise VSSClientError.from_grpc_error(exc) from exc + if exc.code() == grpc.StatusCode.UNIMPLEMENTED: + await self.set(updates) + else: + raise VSSClientError.from_grpc_error(exc) from exc @check_connected_async_iter async def subscribe( @@ -466,7 +469,10 @@ async def subscribe( for path, dp in resp.entries.items() ] except AioRpcError as exc: - raise VSSClientError.from_grpc_error(exc) from exc + if exc.code() == grpc.StatusCode.UNIMPLEMENTED: + await self.subscribe(entries) + else: + raise VSSClientError.from_grpc_error(exc) from exc @check_connected_async async def authorize(self, token: str, **rpc_kwargs) -> str: