You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
191 lines
4.2 KiB
191 lines
4.2 KiB
syntax = "proto3";
|
|
|
|
package api.v1;
|
|
|
|
import "google/api/annotations.proto";
|
|
import "protoc-gen-openapiv2/options/annotations.proto";
|
|
import "google/protobuf/struct.proto";
|
|
|
|
|
|
option go_package = "vgpu/api/v1;v1";
|
|
|
|
service ResourcePool {
|
|
|
|
rpc Create (ResourcePoolCreateRequest) returns (BaseResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v1/resource/pool/create",
|
|
body: "*"
|
|
};
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
|
summary: "资源池创建";
|
|
};
|
|
}
|
|
|
|
rpc Update (ResourcePoolUpdateRequest) returns (BaseResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v1/resource/pool/update",
|
|
body: "*"
|
|
};
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
|
summary: "资源池更新";
|
|
};
|
|
}
|
|
|
|
rpc Delete (ResourcePoolDeleteRequest) returns (BaseResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v1/resource/pool/delete",
|
|
body: "*"
|
|
};
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
|
summary: "资源池删除";
|
|
};
|
|
}
|
|
|
|
rpc RemoveNode (RemoveNodeRequest) returns (BaseResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v1/resource/pool/removeNode",
|
|
body: "*"
|
|
};
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
|
summary: "移除节点";
|
|
};
|
|
}
|
|
|
|
rpc List (ResourcePoolListRequest) returns (ResourcePoolListResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1/resource/pool/list"
|
|
};
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
|
summary: "资源池列表";
|
|
};
|
|
}
|
|
|
|
rpc GetDetail (ResourcePoolDetailRequest) returns (ResourcePoolDetailResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v1/resource/pool/detail",
|
|
body: "*"
|
|
};
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
|
summary: "资源池详情";
|
|
};
|
|
}
|
|
|
|
rpc GetAvailableNodes (AvailableNodesRequest) returns (AvailableNodesResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1/available/nodes"
|
|
};
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
|
summary: "可用节点列表";
|
|
};
|
|
}
|
|
|
|
}
|
|
|
|
message BaseResponse {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
google.protobuf.Struct data = 3;
|
|
}
|
|
|
|
message Nodes {
|
|
string node_ip = 1;
|
|
string node_name = 2;
|
|
}
|
|
|
|
message ResourcePoolCreateRequest {
|
|
string pool_name = 1;
|
|
repeated Nodes nodes = 2;
|
|
}
|
|
|
|
message ResourcePoolUpdateRequest {
|
|
int64 pool_id = 1;
|
|
string pool_name = 2;
|
|
repeated Nodes nodes = 3;
|
|
}
|
|
|
|
message ResourcePoolDeleteRequest {
|
|
int64 pool_id = 1;
|
|
}
|
|
|
|
message PoolNodeReply {
|
|
string ip = 1;
|
|
bool is_schedulable = 2;
|
|
bool is_ready = 3;
|
|
repeated string type = 4;
|
|
int32 vgpu_used = 5;
|
|
int32 vgpu_total = 6;
|
|
int32 core_used = 7;
|
|
int32 core_total = 8;
|
|
int32 memory_used = 9;
|
|
int32 memory_total = 10;
|
|
string uid = 11;
|
|
string name = 12;
|
|
int32 card_cnt = 13;
|
|
string os_image = 14;
|
|
string operating_system = 15;
|
|
string kernel_version = 16;
|
|
string container_runtime_version = 17;
|
|
string kubelet_version = 18;
|
|
string kube_proxy_version = 19;
|
|
string architecture = 20;
|
|
string creation_timestamp = 21;
|
|
int64 disk_size = 22;
|
|
int64 node_id = 23;
|
|
int64 cpu_cores = 24;
|
|
int64 total_memory = 25;
|
|
}
|
|
|
|
message ResourcePoolDetailRequest {
|
|
int64 pool_id = 1;
|
|
}
|
|
|
|
message ResourcePoolDetailResponse {
|
|
repeated PoolNodeReply list = 1;
|
|
}
|
|
|
|
message ResourcePoolListData{
|
|
int64 pool_id = 1;
|
|
string pool_name = 2;
|
|
int64 cpu_cores = 3;
|
|
int64 node_num = 4;
|
|
int64 gpu_num = 5;
|
|
int64 available_memory = 6;//kb
|
|
int64 total_memory = 7; // kb
|
|
int64 disk_size = 8;
|
|
repeated Nodes node_list = 9;
|
|
string link_url = 10;
|
|
}
|
|
|
|
message ResourcePoolListRequest {
|
|
|
|
}
|
|
|
|
message ResourcePoolListResponse {
|
|
repeated ResourcePoolListData data = 1;
|
|
}
|
|
|
|
message AvailableNodesRequest{
|
|
|
|
}
|
|
|
|
message AvailableNodesResponse{
|
|
repeated AvailableNodesInfo data = 1;
|
|
}
|
|
|
|
message AvailableNodesInfo{
|
|
string node_name = 1;
|
|
int64 cpu_cores = 2;
|
|
int64 gpu_num = 3;
|
|
int64 gpu_memory = 4;
|
|
int64 total_memory = 5; // byte
|
|
int64 disk_size = 6;
|
|
string node_ip = 7;
|
|
}
|
|
|
|
|
|
message RemoveNodeRequest{
|
|
int64 node_id = 1;
|
|
}
|
|
|
|
|