diff --git a/examples/extension_service/servicer.py b/examples/extension_service/servicer.py index 0cc7e2fef2a421e1580a242f8049201d564fe081..475af373b3d5d33a53ff13c9aa4b6b04fd9bae69 100644 --- a/examples/extension_service/servicer.py +++ b/examples/extension_service/servicer.py @@ -8,6 +8,8 @@ from perxis.extensions.actions import make_action_dict from perxis.extensions import extension_service_pb2 from perxis.extensions.extension_service import ExtensionService from perxis.extensions import extension_pb2 +from perxis.spaces import spaces_pb2 +from perxis.environments import environments_pb2 from perxis.collections import helpers as collections_helpers from perxis.roles import roles_pb2 from perxis.common import common_pb2 @@ -77,6 +79,23 @@ class Servicer(ExtensionService): ) ) + message = await self.spaces_service.Get( + spaces_pb2.GetRequest( + space_id=request.space_id + ) + ) + + space = message.space + + message = await self.environments_service.Get( + environments_pb2.GetRequest( + space_id=request.space_id, + env_id=request.env_id, + ) + ) + + environment = message.env + with_error = bool(random.randint(0, 1)) if with_error: @@ -84,9 +103,11 @@ class Servicer(ExtensionService): else: state = extension_service_pb2.ActionResponse.State.DONE + title = f"Действие над одним элементом в пространстве {space.name} и окружении {', '.join(environment.aliases)}" + return extension_service_pb2.ActionResponse( state=state, - title="Действие над одним элементом", + title=title, error=", ".join(["Ошибка"] if with_error else []), msg=f"{'Ошибка' if with_error else 'ОК'} ({request.item_ids}, {request.collection_id})" ) diff --git a/perxis/extensions/bootstrap.py b/perxis/extensions/bootstrap.py index 8924b37f1462fe8269f7b258d31855deb763a68b..2b7632d54b27b7b3f637b5200c89777bb71cda9e 100644 --- a/perxis/extensions/bootstrap.py +++ b/perxis/extensions/bootstrap.py @@ -6,9 +6,19 @@ import logging from concurrent import futures from perxis.collections import collections_pb2_grpc +from perxis.collaborators import collaborators_pb2_grpc +from perxis.invitations import invitations_pb2_grpc from perxis.environments import environments_pb2_grpc +from perxis.locales import locales_pb2_grpc +from perxis.members import members_pb2_grpc +from perxis.organizations import organizations_pb2_grpc +from perxis.users import users_pb2_grpc +from perxis.references import references_pb2_grpc +from perxis.images import images_pb2_grpc +from perxis.files import files_pb2_grpc from perxis.roles import roles_pb2_grpc from perxis.items import items_pb2_grpc +from perxis.spaces import spaces_pb2_grpc from perxis.clients import clients_pb2_grpc from perxis.common import operation_service_pb2_grpc from perxis.extensions import manager_service_pb2_grpc, manager_service_pb2, extension_service_pb2_grpc @@ -69,11 +79,36 @@ async def _main( clients_stub = clients_pb2_grpc.ClientsStub(content_channel) environments_stub = environments_pb2_grpc.EnvironmentsStub(content_channel) items_stub = items_pb2_grpc.ItemsStub(content_channel) + spaces_stub = spaces_pb2_grpc.SpacesStub(content_channel) + files_stub = files_pb2_grpc.FilesStub(content_channel) + images_stub = images_pb2_grpc.ImagesStub(content_channel) + references_stub = references_pb2_grpc.ReferencesStub(content_channel) + users_stub = users_pb2_grpc.UsersStub(content_channel) + organizations_stub = organizations_pb2_grpc.OrganizationsStub(content_channel) + members_stub = members_pb2_grpc.MembersStub(content_channel) + locales_stub = locales_pb2_grpc.LocalesStub(content_channel) + invitations_stub = invitations_pb2_grpc.InvitationsStub(content_channel) + collaborators_stub = collaborators_pb2_grpc.CollaboratorsStub(content_channel) server = grpc.aio.server(futures.ThreadPoolExecutor(max_workers=10)) servicer = servicer_cls( - collections_stub, environments_stub, roles_stub, clients_stub, items_stub + collections_service=collections_stub, + environments_service=environments_stub, + roles_service=roles_stub, + clients_service=clients_stub, + items_service=items_stub, + spaces_service=spaces_stub, + files_service=files_stub, + images_service=images_stub, + references_service=references_stub, + users_service=users_stub, + organizations_service=organizations_stub, + members_service=members_stub, + locales_service=locales_stub, + invitations_service=invitations_stub, + collaborators_service=collaborators_stub, + channel=content_channel, ) extension_service_pb2_grpc.add_ExtensionServiceServicer_to_server(servicer, server) diff --git a/perxis/extensions/extension_service.py b/perxis/extensions/extension_service.py index 14a954be8c0096d030fda2571b460eefa79501aa..14b07f15bbbdbf6f044120f34cc12843c35782ab 100644 --- a/perxis/extensions/extension_service.py +++ b/perxis/extensions/extension_service.py @@ -10,9 +10,19 @@ import dataclasses from google.protobuf import timestamp_pb2, any_pb2, wrappers_pb2 from perxis.extensions import extension_service_pb2, extension_service_pb2_grpc, extension_pb2 +from perxis.collaborators import collaborators_pb2_grpc +from perxis.invitations import invitations_pb2_grpc +from perxis.locales import locales_pb2_grpc +from perxis.organizations import organizations_pb2_grpc +from perxis.members import members_pb2_grpc +from perxis.users import users_pb2_grpc +from perxis.references import references_pb2_grpc +from perxis.images import images_pb2_grpc +from perxis.files import files_pb2_grpc from perxis.roles import roles_pb2_grpc, roles_pb2 from perxis.items import items_pb2_grpc from perxis.clients import clients_pb2_grpc, clients_pb2 +from perxis.spaces import spaces_pb2_grpc from perxis.common import operation_pb2, operation_service_pb2_grpc, operation_service_pb2, error_pb2 from perxis.collections import collections_pb2_grpc, collections_pb2 from perxis.environments import environments_pb2_grpc @@ -92,6 +102,17 @@ class ExtensionService( roles_service: roles_pb2_grpc.RolesStub, clients_service: clients_pb2_grpc.ClientsStub, items_service: items_pb2_grpc.ItemsStub, + spaces_service: spaces_pb2_grpc.SpacesStub, + files_service: files_pb2_grpc.FilesStub, + images_service: images_pb2_grpc.ImagesStub, + references_service: references_pb2_grpc.ReferencesStub, + users_service: users_pb2_grpc.UsersStub, + organizations_service: organizations_pb2_grpc.OrganizationsStub, + members_service: members_pb2_grpc.MembersStub, + locales_service: locales_pb2_grpc.LocalesStub, + invitations_service: invitations_pb2_grpc.InvitationsStub, + collaborators_service: collaborators_pb2_grpc.CollaboratorsStub, + channel: grpc.Channel, ): self.logger = logging.getLogger(__name__) self.collections_service = collections_service @@ -99,6 +120,17 @@ class ExtensionService( self.roles_service = roles_service self.clients_service = clients_service self.items_service = items_service + self.spaces_service = spaces_service + self.files_service = files_service + self.images_service = images_service + self.references_service = references_service + self.users_service = users_service + self.organizations_service = organizations_service + self.members_service = members_service + self.locales_service = locales_service + self.invitations_service = invitations_service + self.collaborators_service = collaborators_service + self.channel = channel self.extension_setup = ExtensionSetup( self.collections_service, self.environments_service, diff --git a/setup.py b/setup.py index ac272ee60bc7cbed982b2b18ab1cd62e435e4dec..3d431653216d94a4273f1d76568d6a3f44d585d2 100644 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ def load_requirements(): setup( name='perxis', - version='1.6.1', + version='1.7.0', description='Perxis python client', long_description=long_description, long_description_content_type='text/markdown',