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;
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)
......
......@@ -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; // Список расширений для удаления
......
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment