Skip to content
Snippets Groups Projects
Commit d394a1e5 authored by Pavel Antonov's avatar Pavel Antonov :asterisk:
Browse files

Изменение API расширений: поддержка длительных операций

parent 147815cb
No related branches found
No related tags found
1 merge request!19Добавлены longtime operation. Добавлено описание сервиса OperationService и ExtensionService
...@@ -16,26 +16,6 @@ package extensions; ...@@ -16,26 +16,6 @@ package extensions;
import "references/references.proto"; 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 - определяет как открывать результат выполнения действия в пользовательском интерфейсе // Target - определяет как открывать результат выполнения действия в пользовательском интерфейсе
enum Target { enum Target {
DEFAULT = 0; // По умолчанию (если нет других условий, то MODAL) DEFAULT = 0; // По умолчанию (если нет других условий, то MODAL)
......
...@@ -27,14 +27,13 @@ service ExtensionService { ...@@ -27,14 +27,13 @@ service ExtensionService {
rpc Install(InstallRequest) returns (common.Operation) {} rpc Install(InstallRequest) returns (common.Operation) {}
// Uninstall выполняет удаление указанных расширений. // Uninstall выполняет удаление указанных расширений.
rpc Uninstall(UninstallRequest) returns (common.Operation) {} // Удаление расширений rpc Uninstall(UninstallRequest) returns (common.Operation) {}
// Check выполняет проверку установки для расширения. При этом расширение проверяет наличие необходимых данных в // Check выполняет проверку установки для расширения. При этом расширение проверяет наличие необходимых данных в
// пространстве или наличие новой версии расширения и сообщает об этом. Никаких действий с данными пространства не // пространстве или наличие новой версии расширения и сообщает об этом. Никаких действий с данными пространства не
// производится. // производится.
rpc Check(CheckRequest) returns (common.Operation) {} rpc Check(CheckRequest) returns (common.Operation) {}
// Пользовательские Действия (Actions) // Пользовательские Действия (Actions)
// //
// Пользовательские действия позволяют расширить функционал пользовательского интерфейса путем // Пользовательские действия позволяют расширить функционал пользовательского интерфейса путем
...@@ -66,13 +65,6 @@ message InstallRequest { ...@@ -66,13 +65,6 @@ message InstallRequest {
bool update = 10200; // Установить обновления расширений bool update = 10200; // Установить обновления расширений
} }
// ExtensionList - возвращает список состояний расширений в результате выполнения операции `common.Operation`
// (см. `common.OperationService`)
// В методах Install, Uninstall, Check возвращается список состояний расширений в результате выполнения операции
message ExtensionList {
repeated Extension results = 10000; // Список состояний расширений
}
// UninstallRequest - запрос на удаление расширений // UninstallRequest - запрос на удаление расширений
message UninstallRequest { message UninstallRequest {
repeated string extensions = 10000; // Список расширений для удаления repeated string extensions = 10000; // Список расширений для удаления
......
...@@ -32,7 +32,7 @@ option go_package = "git.perx.ru/perxis/perxis-go/proto/extensions;extensions"; ...@@ -32,7 +32,7 @@ option go_package = "git.perx.ru/perxis/perxis-go/proto/extensions;extensions";
package extensions; package extensions;
// ExtensionManager - менеджер расширений. Должен реализовывать так же сервис Extension // ExtensionManager - менеджер расширений. Должен реализовывать так же сервис Extension
service ExtensionManager { service ExtensionManagerService {
// ## Регистрация расширений // ## Регистрация расширений
// //
// Регистрация\Дерегистрация происходить через сервис менеджера расширений (Extension Manager). В процессе регистрации сервис сообщает // Регистрация\Дерегистрация происходить через сервис менеджера расширений (Extension Manager). В процессе регистрации сервис сообщает
...@@ -51,9 +51,36 @@ service ExtensionManager { ...@@ -51,9 +51,36 @@ service ExtensionManager {
// Получить список зарегистрированных сервисов // Получить список зарегистрированных сервисов
rpc ListExtensions(ListExtensionsRequest) returns (ListExtensionsResponse) {} // Получить список сервисов 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 { message ExtensionDescriptor {
string extension = 10000; // Имя расширения string extension = 10000; // Имя расширения
string title = 10010; // Название расширения string title = 10010; // Название расширения
...@@ -92,9 +119,7 @@ message ListExtensionsResponse { ...@@ -92,9 +119,7 @@ message ListExtensionsResponse {
} }
// Описание коллекций // Описание коллекций
// space_extensions (Пространство/Расширения) // space_extensions (Пространство/Расширения)
message SpaceExtensions { message SpaceExtensions {
enum State { enum State {
PENDING = 0; PENDING = 0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment