Skip to content
Snippets Groups Projects
Commit ed513724 authored by Podosochnyy Maxim's avatar Podosochnyy Maxim
Browse files

Исправлена ошибка с неверным указанием каналов

parent dca43310
No related branches found
No related tags found
No related merge requests found
...@@ -9,17 +9,25 @@ from perxis.extensions import extension_service_pb2 ...@@ -9,17 +9,25 @@ from perxis.extensions import extension_service_pb2
from perxis.extensions.extension_service import ExtensionService from perxis.extensions.extension_service import ExtensionService
from perxis.extensions import extension_pb2 from perxis.extensions import extension_pb2
from perxis.spaces import spaces_pb2 from perxis.spaces import spaces_pb2
from perxis.organizations import organizations_pb2
from perxis.environments import environments_pb2 from perxis.environments import environments_pb2
from perxis.collections import helpers as collections_helpers from perxis.collections import helpers as collections_helpers
from perxis.roles import roles_pb2 from perxis.roles import roles_pb2
from perxis.common import common_pb2 from perxis.common import common_pb2
from perxis.clients import clients_pb2 from perxis.clients import clients_pb2
from perxis.users import users_pb2
class Servicer(ExtensionService): class Servicer(ExtensionService):
extension_id = extension.ID extension_id = extension.ID
collections = collections_helpers.make_collection_instances("./schemes", extension_collections.schemes_mapping) collections = collections_helpers.make_collection_instances("./schemes", extension_collections.schemes_mapping)
actions = [ actions = [
make_action_dict(
extension_id=extension.ID,
action_id="get_current_organization_and_users",
name="Получить текущую организацию и пользователей",
kind=extension_pb2.Action.Kind.ENVIRONMENT,
),
make_action_dict( make_action_dict(
extension_id=extension.ID, extension_id=extension.ID,
action_id="demo-action-no-callback", action_id="demo-action-no-callback",
...@@ -68,6 +76,59 @@ class Servicer(ExtensionService): ...@@ -68,6 +76,59 @@ class Servicer(ExtensionService):
) )
] ]
async def action_get_current_organization_and_users(
self,
request: extension_pb2.ActionRequest,
_
):
response_list = []
message = await self.spaces_service.Get(
spaces_pb2.GetRequest(
space_id=request.space_id
)
)
space = message.space
message = await self.organizations_service.Get(
organizations_pb2.GetRequest(
org_id=space.org_id
)
)
organization = message.org
response_list.append(
f"Организация {organization.name}, пространство {space.name}"
)
message = await self.environments_service.Get(
environments_pb2.GetRequest(
space_id=request.space_id,
env_id=request.env_id,
)
)
environment = message.env
response_list.append(
f"Окружение {', '.join(environment.aliases)}"
)
message = await self.users_service.Find(
users_pb2.FindRequest()
)
for user in message.users:
response_list.append(f"Пользователь {user.name} ({user.id})")
return extension_service_pb2.ActionResponse(
state=extension_service_pb2.ActionResponse.State.DONE,
title="Текущее окружение",
msg=", ".join(response_list)
)
async def action_demo_action_items( async def action_demo_action_items(
self, self,
request: extension_pb2.ActionRequest, request: extension_pb2.ActionRequest,
...@@ -87,6 +148,14 @@ class Servicer(ExtensionService): ...@@ -87,6 +148,14 @@ class Servicer(ExtensionService):
space = message.space space = message.space
message = await self.organizations_service.Get(
organizations_pb2.GetRequest(
org_id=space.org_id
)
)
organization = message.org
message = await self.environments_service.Get( message = await self.environments_service.Get(
environments_pb2.GetRequest( environments_pb2.GetRequest(
space_id=request.space_id, space_id=request.space_id,
...@@ -103,7 +172,7 @@ class Servicer(ExtensionService): ...@@ -103,7 +172,7 @@ class Servicer(ExtensionService):
else: else:
state = extension_service_pb2.ActionResponse.State.DONE state = extension_service_pb2.ActionResponse.State.DONE
title = f"Действие над одним элементом в пространстве {space.name} и окружении {', '.join(environment.aliases)}" title = f"Действие над одним элементом в организации {organization.name}, пространстве {space.name} и окружении {', '.join(environment.aliases)}"
return extension_service_pb2.ActionResponse( return extension_service_pb2.ActionResponse(
state=state, state=state,
......
...@@ -31,7 +31,10 @@ async def _main( ...@@ -31,7 +31,10 @@ async def _main(
ext_descriptor: manager_service_pb2.ExtensionDescriptor, ext_descriptor: manager_service_pb2.ExtensionDescriptor,
servicer_cls: extension_service_pb2_grpc.ExtensionServiceServicer, servicer_cls: extension_service_pb2_grpc.ExtensionServiceServicer,
ext_manager_host: str, ext_manager_host: str,
content_host: str content_host: str,
account_host: str,
files_host: str,
images_host: str
): ):
interceptor = header_adder_interceptor( interceptor = header_adder_interceptor(
'x-perxis-access', 'system' 'x-perxis-access', 'system'
...@@ -47,6 +50,10 @@ async def _main( ...@@ -47,6 +50,10 @@ async def _main(
async def register_extension(): async def register_extension():
await _register_extension() await _register_extension()
account_channel = grpc.aio.insecure_channel(account_host, interceptors=[interceptor])
files_channel = grpc.aio.insecure_channel(files_host, interceptors=[interceptor])
images_channel = grpc.aio.insecure_channel(images_host, interceptors=[interceptor])
async with grpc.aio.insecure_channel(ext_manager_host, interceptors=[interceptor]) as extensions_manager_channel: 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) ext_manager_stub = manager_service_pb2_grpc.ExtensionManagerServiceStub(extensions_manager_channel)
...@@ -80,12 +87,12 @@ async def _main( ...@@ -80,12 +87,12 @@ async def _main(
environments_stub = environments_pb2_grpc.EnvironmentsStub(content_channel) environments_stub = environments_pb2_grpc.EnvironmentsStub(content_channel)
items_stub = items_pb2_grpc.ItemsStub(content_channel) items_stub = items_pb2_grpc.ItemsStub(content_channel)
spaces_stub = spaces_pb2_grpc.SpacesStub(content_channel) spaces_stub = spaces_pb2_grpc.SpacesStub(content_channel)
files_stub = files_pb2_grpc.FilesStub(content_channel) files_stub = files_pb2_grpc.FilesStub(files_channel)
images_stub = images_pb2_grpc.ImagesStub(content_channel) images_stub = images_pb2_grpc.ImagesStub(images_channel)
references_stub = references_pb2_grpc.ReferencesStub(content_channel) references_stub = references_pb2_grpc.ReferencesStub(content_channel)
users_stub = users_pb2_grpc.UsersStub(content_channel) users_stub = users_pb2_grpc.UsersStub(account_channel)
organizations_stub = organizations_pb2_grpc.OrganizationsStub(content_channel) organizations_stub = organizations_pb2_grpc.OrganizationsStub(account_channel)
members_stub = members_pb2_grpc.MembersStub(content_channel) members_stub = members_pb2_grpc.MembersStub(account_channel)
locales_stub = locales_pb2_grpc.LocalesStub(content_channel) locales_stub = locales_pb2_grpc.LocalesStub(content_channel)
invitations_stub = invitations_pb2_grpc.InvitationsStub(content_channel) invitations_stub = invitations_pb2_grpc.InvitationsStub(content_channel)
collaborators_stub = collaborators_pb2_grpc.CollaboratorsStub(content_channel) collaborators_stub = collaborators_pb2_grpc.CollaboratorsStub(content_channel)
...@@ -118,12 +125,19 @@ async def _main( ...@@ -118,12 +125,19 @@ async def _main(
await server.start() await server.start()
await server.wait_for_termination() await server.wait_for_termination()
await account_channel.close()
await files_channel.close()
await images_channel.close()
def bootstrap( def bootstrap(
ext_descriptor: manager_service_pb2.ExtensionDescriptor, ext_descriptor: manager_service_pb2.ExtensionDescriptor,
servicer_cls: extension_service_pb2_grpc.ExtensionServiceServicer, servicer_cls: extension_service_pb2_grpc.ExtensionServiceServicer,
ext_manager_host: str, ext_manager_host: str = "extension-manager:9030",
content_host: str, content_host: str = "content:9020",
account_host: str = "account:9010",
files_host: str = "files:8003",
images_host: str = "images:8005"
): ):
logger.info(f"Инициализация сервиса расширения {ext_descriptor.extension}") logger.info(f"Инициализация сервиса расширения {ext_descriptor.extension}")
...@@ -133,10 +147,13 @@ def bootstrap( ...@@ -133,10 +147,13 @@ def bootstrap(
try: try:
loop.run_until_complete( loop.run_until_complete(
_main( _main(
ext_descriptor, ext_descriptor=ext_descriptor,
servicer_cls, servicer_cls=servicer_cls,
ext_manager_host, ext_manager_host=ext_manager_host,
content_host content_host=content_host,
account_host=account_host,
files_host=files_host,
images_host=images_host,
) )
) )
finally: finally:
......
...@@ -14,7 +14,7 @@ def load_requirements(): ...@@ -14,7 +14,7 @@ def load_requirements():
setup( setup(
name='perxis', name='perxis',
version='1.7.1', version='1.7.2',
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',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment