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 logging
from concurrent import futures
from perxis.extensions import manager_pb2
from perxis.collections import collections_pb2_grpc
from perxis.environments import environments_pb2_grpc
from perxis.roles import roles_pb2_grpc
......@@ -22,7 +24,17 @@ def bootstrap(
interceptor = header_adder_interceptor(
'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)
ext_manager_stub = manager_pb2_grpc.ExtensionManagerStub(intercept_channel_extensions_manager_channel)
......@@ -43,13 +55,9 @@ def bootstrap(
# f"Изменилась версия расширения {ext_descriptor.extension} ({ext.version} -> {ext_descriptor.version})"
# )
ext_manager_stub.RegisterExtensions(manager_pb2.RegisterExtensionsRequest(
extensions=[ext_descriptor]
))
register_extension.start()
logger.info(f"Расширение {ext_descriptor.extension} зарегистрировано в perxis")
with grpc.insecure_channel(content_host) as content_channel:
with grpc.aio.insecure_channel(content_host) as content_channel:
intercepted_content_channel = grpc.intercept_channel(content_channel, interceptor)
collections_stub = collections_pb2_grpc.CollectionsStub(intercepted_content_channel)
......@@ -57,12 +65,21 @@ def bootstrap(
clients_stub = clients_pb2_grpc.ClientsStub(intercepted_content_channel)
environments_stub = environments_pb2_grpc.EnvironmentsStub(intercepted_content_channel)
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
extension_pb2_grpc.add_ExtensionServicer_to_server(
servicer_cls(
collections_stub, environments_stub, roles_stub, clients_stub
), server
server = grpc.aio.server(futures.ThreadPoolExecutor(max_workers=10))
loop.create_task(
extension_pb2_grpc.add_ExtensionServicer_to_server(
servicer_cls(
collections_stub, environments_stub, roles_stub, clients_stub
), server
)
)
server.add_insecure_port("[::]:50051")
server.start()
server.wait_for_termination()
loop.create_task(server.start())
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
chardet==5.2.0
charset-normalizer==3.2.0
......
......@@ -14,7 +14,7 @@ def load_requirements():
setup(
name='perxis',
version='1.0.1',
version='1.0.6',
description='Perxis python client',
long_description=long_description,
long_description_content_type='text/markdown',
......