From 9213be7a4e968b91a6ecf32d9cdaf25a76065833 Mon Sep 17 00:00:00 2001 From: Maxim Podosochnyy <podosochnyy@perx.ru> Date: Thu, 30 Nov 2023 12:25:47 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20ExtensionService=20=D1=81=20=D1=83=D1=87?= =?UTF-8?q?=D1=91=D1=82=D0=BE=D0=BC=20long=20polling=20=D0=BE=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D0=B0=D1=86=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- perxis/extensions/bootstrap.py | 43 +++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/perxis/extensions/bootstrap.py b/perxis/extensions/bootstrap.py index a883b88..bc465cf 100644 --- a/perxis/extensions/bootstrap.py +++ b/perxis/extensions/bootstrap.py @@ -26,33 +26,38 @@ async def _main( 'x-perxis-access', 'system' ) - @aiocron.crontab('* * * * *', start=False) - async def register_extension(): + async def _register_extension(): await ext_manager_stub.RegisterExtensions(manager_service_pb2.RegisterExtensionsRequest( extensions=[ext_descriptor] )) logger.info(f"Расширение {ext_descriptor.extension} зарегистрировано РІ perxis") + @aiocron.crontab('* * * * *', start=False) + async def register_extension(): + await _register_extension() + async with grpc.aio.insecure_channel(ext_manager_host, interceptors=[interceptor]) as extensions_manager_channel: ext_manager_stub = manager_service_pb2_grpc.ExtensionManagerServiceStub(extensions_manager_channel) - #registered_extensions: manager_service_pb2.ListExtensionsResponse = await ext_manager_stub.ListExtensions( - # manager_service_pb2.ListExtensionsRequest() - #) - - # todo enable after fix - https://tracker.yandex.ru/PRXS-1507 - # for ext in registered_extensions.extensions: - # if ext.extension == ext_descriptor.extension: - # if ext.version != ext_descriptor.version: - # ext_manager_stub.UnregisterExtensions( - # manager_pb2.UnregisterExtensionsRequest( - # extensions=[ext_descriptor] - # ) - # ) - # - # logger.info( - # f"Рзменилась версия расширения {ext_descriptor.extension} ({ext.version} -> {ext_descriptor.version})" - # ) + registered_extensions: manager_service_pb2.ListRegisteredExtensionsResponse = await ext_manager_stub.ListRegisteredExtensions( + manager_service_pb2.ListRegisteredExtensionsRequest() + ) + + for ext in registered_extensions.extensions: + if ext.extension == ext_descriptor.extension: + if ext.version != ext_descriptor.version: + await ext_manager_stub.UnregisterExtensions( + manager_service_pb2.UnregisterExtensionsRequest( + extensions=[ext_descriptor] + ) + ) + + await _register_extension() + + logger.info( + f"Рзменилась версия расширения {ext_descriptor.extension} ({ext.version} " + f"-> {ext_descriptor.version})" + ) register_extension.start() -- GitLab