diff --git a/proto/extensions/extension.proto b/proto/extensions/extension.proto index 98840b481beea9de9e545e7109eadcc7c27c77cb..fbd9b6b9921b13949c4d4caea2452970698e11f7 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 9d2893fbca22f06390d6e734d5c4f350152711d3..a4ef07120f1f339f494fcc7950e1b8259222b978 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 0def40164a520bc46acaf6440608a803944bd937..054bf1c7935c58d809876f6ca7211e9bf9d8f37e 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;