From d394a1e5f62879152247b18cc3cb8c5d7a1bd23b Mon Sep 17 00:00:00 2001 From: Pavel Antonov <antonov@perx.ru> Date: Wed, 27 Sep 2023 18:08:35 +0400 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20API=20=D1=80=D0=B0=D1=81=D1=88=D0=B8=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B9:=20=D0=BF=D0=BE=D0=B4=D0=B4=D0=B5=D1=80?= =?UTF-8?q?=D0=B6=D0=BA=D0=B0=20=D0=B4=D0=BB=D0=B8=D1=82=D0=B5=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D1=8B=D1=85=20=D0=BE=D0=BF=D0=B5=D1=80=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proto/extensions/extension.proto | 20 ----------- proto/extensions/extension_service.proto | 10 +----- .../{manager.proto => manager_service.proto} | 33 ++++++++++++++++--- 3 files changed, 30 insertions(+), 33 deletions(-) rename proto/extensions/{manager.proto => manager_service.proto} (83%) diff --git a/proto/extensions/extension.proto b/proto/extensions/extension.proto index 98840b4..fbd9b6b 100644 --- a/proto/extensions/extension.proto +++ b/proto/extensions/extension.proto @@ -16,26 +16,6 @@ package extensions; import "references/references.proto"; -message Extension { - enum State { - OK = 0; // Текущее состояние расширения без ошибок - ERROR = 1; // Возникла ошибка при выполнении запроса - PENDING = 2; // Ожидает обработки (в очереди) - IN_PROGRESS = 3; // Запрос уже выполняется - PARAMETERS_REQUIRED= 4; // Требуются дополнительные данные для выполнения запроса - } - - State state = 10000; // Состояние расширение - string extension = 10100; // Имя расширения - string msg = 10200; // Сообщение - string error = 10300; // Ошибка (state == ERROR) - bool installed = 10400; // Расширение установлено - bool update_available = 10500; // Доступно обновление - string installed_version = 10510; // Установленная версия расширения - string available_version = 10520; // Доступная версия расширения -} - - // Target - определяет как открывать результат выполнения действия в пользовательском интерфейсе enum Target { DEFAULT = 0; // По умолчанию (если нет других условий, то MODAL) diff --git a/proto/extensions/extension_service.proto b/proto/extensions/extension_service.proto index 9d2893f..a4ef071 100644 --- a/proto/extensions/extension_service.proto +++ b/proto/extensions/extension_service.proto @@ -27,14 +27,13 @@ service ExtensionService { rpc Install(InstallRequest) returns (common.Operation) {} // Uninstall выполняет удаление указанных расширений. - rpc Uninstall(UninstallRequest) returns (common.Operation) {} // Удаление расширений + rpc Uninstall(UninstallRequest) returns (common.Operation) {} // Check выполняет проверку установки для расширения. При этом расширение проверяет наличие необходимых данных в // пространстве или наличие новой версии расширения и сообщает об этом. Никаких действий с данными пространства не // производится. rpc Check(CheckRequest) returns (common.Operation) {} - // Пользовательские Действия (Actions) // // Пользовательские действия позволяют расширить функционал пользовательского интерфейса путем @@ -66,13 +65,6 @@ message InstallRequest { bool update = 10200; // Установить обновления расширений } -// ExtensionList - возвращает список состояний расширений в результате выполнения операции `common.Operation` -// (см. `common.OperationService`) -// В методах Install, Uninstall, Check возвращается список состояний расширений в результате выполнения операции -message ExtensionList { - repeated Extension results = 10000; // Список состояний расширений -} - // UninstallRequest - запрос на удаление расширений message UninstallRequest { repeated string extensions = 10000; // Список расширений для удаления diff --git a/proto/extensions/manager.proto b/proto/extensions/manager_service.proto similarity index 83% rename from proto/extensions/manager.proto rename to proto/extensions/manager_service.proto index 0def401..054bf1c 100644 --- a/proto/extensions/manager.proto +++ b/proto/extensions/manager_service.proto @@ -32,7 +32,7 @@ option go_package = "git.perx.ru/perxis/perxis-go/proto/extensions;extensions"; package extensions; // ExtensionManager - менеджер расширений. Должен реализовывать так же сервис Extension -service ExtensionManager { +service ExtensionManagerService { // ## Регистрация расширений // // Регистрация\Дерегистрация происходить через сервис менеджера расширений (Extension Manager). В процессе регистрации сервис сообщает @@ -51,9 +51,36 @@ service ExtensionManager { // Получить список зарегистрированных сервисов rpc ListExtensions(ListExtensionsRequest) returns (ListExtensionsResponse) {} // Получить список сервисов + + // GetExtensionStatus - получить статус расширения + rpc GetExtensions(GetExtensionsRequest) returns (GetExtensionsResponse) {} // Получить описание сервиса + +} + +// GetExtensionRequest - запрос на получение статуса расширений в пространстве и окружении +message GetExtensionsRequest { + repeated string extensions = 1; // Имя расширения + string space_id = 2; // Пространство имен расширения + string env_id = 3; // Идентификатор окружения +} + + +// GetExtensionResponse - описание расширения +message GetExtensionsResponse { + message Status { + string extension = 10100; // Имя расширения + string msg = 10200; // Сообщение + string error = 10300; // Ошибка (state == ERROR) + bool not_found = 10350; // Расширение не найдено + bool installed = 10400; // Расширение установлено + bool update_available = 10500; // Доступно обновление + string installed_version = 10510; // Установленная версия расширения + string available_version = 10520; // Доступная версия расширения + } + repeated Status status = 1; } -// ServiceDescription описание сервиса +// ServiceDescription описание расширения (возвращается сервисом при регистрации) message ExtensionDescriptor { string extension = 10000; // Имя расширения string title = 10010; // Название расширения @@ -92,9 +119,7 @@ message ListExtensionsResponse { } // Описание коллекций - // space_extensions (Пространство/Расширения) - message SpaceExtensions { enum State { PENDING = 0; -- GitLab