Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • perxis/perxis-python
1 result
Show changes
Commits on Source (12)
import asyncio
import aiocron
import grpc import grpc
import logging import logging
from concurrent import futures from concurrent import futures
from perxis.extensions import manager_pb2
from perxis.collections import collections_pb2_grpc from perxis.collections import collections_pb2_grpc
from perxis.environments import environments_pb2_grpc from perxis.environments import environments_pb2_grpc
from perxis.roles import roles_pb2_grpc from perxis.roles import roles_pb2_grpc
...@@ -22,7 +24,17 @@ def bootstrap( ...@@ -22,7 +24,17 @@ def bootstrap(
interceptor = header_adder_interceptor( interceptor = header_adder_interceptor(
'x-perxis-access', 'system' 'x-perxis-access', 'system'
) )
with grpc.insecure_channel(ext_manager_host) as extensions_manager_channel:
loop = asyncio.get_event_loop()
@aiocron.crontab('* * * * *', start=False)
def register_extension():
ext_manager_stub.RegisterExtensions(manager_pb2.RegisterExtensionsRequest(
extensions=[ext_descriptor]
))
logger.info(f"Расширение {ext_descriptor.extension} зарегистрировано в perxis")
with grpc.aio.insecure_channel(ext_manager_host) as extensions_manager_channel:
intercept_channel_extensions_manager_channel = grpc.intercept_channel(extensions_manager_channel, interceptor) intercept_channel_extensions_manager_channel = grpc.intercept_channel(extensions_manager_channel, interceptor)
ext_manager_stub = manager_pb2_grpc.ExtensionManagerStub(intercept_channel_extensions_manager_channel) ext_manager_stub = manager_pb2_grpc.ExtensionManagerStub(intercept_channel_extensions_manager_channel)
...@@ -43,13 +55,9 @@ def bootstrap( ...@@ -43,13 +55,9 @@ def bootstrap(
# f"Изменилась версия расширения {ext_descriptor.extension} ({ext.version} -> {ext_descriptor.version})" # f"Изменилась версия расширения {ext_descriptor.extension} ({ext.version} -> {ext_descriptor.version})"
# ) # )
ext_manager_stub.RegisterExtensions(manager_pb2.RegisterExtensionsRequest( register_extension.start()
extensions=[ext_descriptor]
))
logger.info(f"Расширение {ext_descriptor.extension} зарегистрировано в perxis") with grpc.aio.insecure_channel(content_host) as content_channel:
with grpc.insecure_channel(content_host) as content_channel:
intercepted_content_channel = grpc.intercept_channel(content_channel, interceptor) intercepted_content_channel = grpc.intercept_channel(content_channel, interceptor)
collections_stub = collections_pb2_grpc.CollectionsStub(intercepted_content_channel) collections_stub = collections_pb2_grpc.CollectionsStub(intercepted_content_channel)
...@@ -57,12 +65,21 @@ def bootstrap( ...@@ -57,12 +65,21 @@ def bootstrap(
clients_stub = clients_pb2_grpc.ClientsStub(intercepted_content_channel) clients_stub = clients_pb2_grpc.ClientsStub(intercepted_content_channel)
environments_stub = environments_pb2_grpc.EnvironmentsStub(intercepted_content_channel) environments_stub = environments_pb2_grpc.EnvironmentsStub(intercepted_content_channel)
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) server = grpc.aio.server(futures.ThreadPoolExecutor(max_workers=10))
extension_pb2_grpc.add_ExtensionServicer_to_server( loop.create_task(
servicer_cls( extension_pb2_grpc.add_ExtensionServicer_to_server(
collections_stub, environments_stub, roles_stub, clients_stub servicer_cls(
), server collections_stub, environments_stub, roles_stub, clients_stub
), server
)
) )
server.add_insecure_port("[::]:50051") server.add_insecure_port("[::]:50051")
server.start() loop.create_task(server.start())
server.wait_for_termination() loop.create_task(server.wait_for_termination())
try:
loop.run_forever()
finally:
loop.close()
loop.stop()
logging.info('Successfully shutdown service')
aiocron==1.8
certifi==2023.7.22 certifi==2023.7.22
chardet==5.2.0 chardet==5.2.0
charset-normalizer==3.2.0 charset-normalizer==3.2.0
......
...@@ -14,7 +14,7 @@ def load_requirements(): ...@@ -14,7 +14,7 @@ def load_requirements():
setup( setup(
name='perxis', name='perxis',
version='1.0.1', version='1.0.6',
description='Perxis python client', description='Perxis python client',
long_description=long_description, long_description=long_description,
long_description_content_type='text/markdown', long_description_content_type='text/markdown',
......