♻️ RegisterParticipant add queue info

Signed-off-by: devad <cossjie@foxmail.com>

Former-commit-id: dcf79c70d7053ed7923e9bca6297877d923a5278
This commit is contained in:
devad 2023-08-18 10:30:17 +08:00
parent 8f6a1327f7
commit 3121b71085
9 changed files with 736 additions and 320 deletions

2
go.mod
View File

@ -16,7 +16,7 @@ require (
github.com/zeromicro/go-queue v1.1.8 github.com/zeromicro/go-queue v1.1.8
github.com/zeromicro/go-zero v1.5.4 github.com/zeromicro/go-zero v1.5.4
gitlink.org.cn/jcce-pcm/pcm-participant-ac v0.0.0-20230814074259-99e24e1194d1 gitlink.org.cn/jcce-pcm/pcm-participant-ac v0.0.0-20230814074259-99e24e1194d1
gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230811110436-43ae93ec1796 gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230817103341-2459e5bfc835
gitlink.org.cn/jcce-pcm/pcm-participant-modelarts v0.0.0-20230719015658-08a29549d86a gitlink.org.cn/jcce-pcm/pcm-participant-modelarts v0.0.0-20230719015658-08a29549d86a
gitlink.org.cn/jcce-pcm/pcm-participant-octopus v0.0.0-20230714030856-601935bc30e2 gitlink.org.cn/jcce-pcm/pcm-participant-octopus v0.0.0-20230714030856-601935bc30e2
gitlink.org.cn/jcce-pcm/pcm-participant-slurm v0.0.0-20230714030125-a52fa198ddf4 gitlink.org.cn/jcce-pcm/pcm-participant-slurm v0.0.0-20230714030125-a52fa198ddf4

4
go.sum
View File

@ -1029,8 +1029,8 @@ github.com/zeromicro/go-zero v1.5.4 h1:kRvcYuxcHOkUZvg7887KQl77Qv4klGL7MqGkTBgkp
github.com/zeromicro/go-zero v1.5.4/go.mod h1:x/aUyLmSwRECvOyjOf+lhwThBOilJIY+s3slmPAeboA= github.com/zeromicro/go-zero v1.5.4/go.mod h1:x/aUyLmSwRECvOyjOf+lhwThBOilJIY+s3slmPAeboA=
gitlink.org.cn/jcce-pcm/pcm-participant-ac v0.0.0-20230814074259-99e24e1194d1 h1:eh5H8d2+YsvN6uhkwMg6UbihPEDZcU2yKpXVYE8hDE0= gitlink.org.cn/jcce-pcm/pcm-participant-ac v0.0.0-20230814074259-99e24e1194d1 h1:eh5H8d2+YsvN6uhkwMg6UbihPEDZcU2yKpXVYE8hDE0=
gitlink.org.cn/jcce-pcm/pcm-participant-ac v0.0.0-20230814074259-99e24e1194d1/go.mod h1:OflOWySJqYAygcwL7vT2yVtfcUs9TM3kmoD+89Tbu7c= gitlink.org.cn/jcce-pcm/pcm-participant-ac v0.0.0-20230814074259-99e24e1194d1/go.mod h1:OflOWySJqYAygcwL7vT2yVtfcUs9TM3kmoD+89Tbu7c=
gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230811110436-43ae93ec1796 h1:NxIT12DfQW3ff8fUwrEhHFwe/c9sIlxUG3g0XUh7v90= gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230817103341-2459e5bfc835 h1:WDCPqD8IrepGJXankkpG14Ny6inh9AldB0RX9WWa+ck=
gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230811110436-43ae93ec1796/go.mod h1:Jk4srb1NAFSn/kMWeo71/I02luZ8OrmVnUFWb8abr7I= gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230817103341-2459e5bfc835/go.mod h1:r/KLzUpupCV5jdxSfgDhc2pVjP0fBi3VhAWRttsBn30=
gitlink.org.cn/jcce-pcm/pcm-participant-modelarts v0.0.0-20230719015658-08a29549d86a h1:eSniMdLizPV3RNrz7/URgjT3Kpv1cTZ05jrWfxRJxHs= gitlink.org.cn/jcce-pcm/pcm-participant-modelarts v0.0.0-20230719015658-08a29549d86a h1:eSniMdLizPV3RNrz7/URgjT3Kpv1cTZ05jrWfxRJxHs=
gitlink.org.cn/jcce-pcm/pcm-participant-modelarts v0.0.0-20230719015658-08a29549d86a/go.mod h1:BhOgwM1LC+BD46DjTaQyYQVZs1CikwI5Pl/6qzKUexc= gitlink.org.cn/jcce-pcm/pcm-participant-modelarts v0.0.0-20230719015658-08a29549d86a/go.mod h1:BhOgwM1LC+BD46DjTaQyYQVZs1CikwI5Pl/6qzKUexc=
gitlink.org.cn/jcce-pcm/pcm-participant-octopus v0.0.0-20230714030856-601935bc30e2 h1:RcGSqhsod6VXLksSLqNjV0q/SCeoUv6CbThKmV9NTZE= gitlink.org.cn/jcce-pcm/pcm-participant-octopus v0.0.0-20230714030856-601935bc30e2 h1:RcGSqhsod6VXLksSLqNjV0q/SCeoUv6CbThKmV9NTZE=

27
model/scqueuephyinfomodel.go Executable file
View File

@ -0,0 +1,27 @@
package model
import (
"github.com/zeromicro/go-zero/core/stores/cache"
"github.com/zeromicro/go-zero/core/stores/sqlx"
)
var _ ScQueuePhyInfoModel = (*customScQueuePhyInfoModel)(nil)
type (
// ScQueuePhyInfoModel is an interface to be customized, add more methods here,
// and implement the added methods in customScQueuePhyInfoModel.
ScQueuePhyInfoModel interface {
scQueuePhyInfoModel
}
customScQueuePhyInfoModel struct {
*defaultScQueuePhyInfoModel
}
)
// NewScQueuePhyInfoModel returns a model for the database table.
func NewScQueuePhyInfoModel(conn sqlx.SqlConn, c cache.CacheConf, opts ...cache.Option) ScQueuePhyInfoModel {
return &customScQueuePhyInfoModel{
defaultScQueuePhyInfoModel: newScQueuePhyInfoModel(conn, c, opts...),
}
}

135
model/scqueuephyinfomodel_gen.go Executable file
View File

@ -0,0 +1,135 @@
// Code generated by goctl. DO NOT EDIT.
package model
import (
"context"
"database/sql"
"fmt"
"strings"
"time"
"github.com/zeromicro/go-zero/core/stores/builder"
"github.com/zeromicro/go-zero/core/stores/cache"
"github.com/zeromicro/go-zero/core/stores/sqlc"
"github.com/zeromicro/go-zero/core/stores/sqlx"
"github.com/zeromicro/go-zero/core/stringx"
)
var (
scQueuePhyInfoFieldNames = builder.RawFieldNames(&ScQueuePhyInfo{})
scQueuePhyInfoRows = strings.Join(scQueuePhyInfoFieldNames, ",")
scQueuePhyInfoRowsExpectAutoSet = strings.Join(stringx.Remove(scQueuePhyInfoFieldNames, "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
scQueuePhyInfoRowsWithPlaceHolder = strings.Join(stringx.Remove(scQueuePhyInfoFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
cachePcmScQueuePhyInfoIdPrefix = "cache:pcm:scQueuePhyInfo:id:"
)
type (
scQueuePhyInfoModel interface {
Insert(ctx context.Context, data *ScQueuePhyInfo) (sql.Result, error)
FindOne(ctx context.Context, id int64) (*ScQueuePhyInfo, error)
Update(ctx context.Context, data *ScQueuePhyInfo) error
Delete(ctx context.Context, id int64) error
}
defaultScQueuePhyInfoModel struct {
sqlc.CachedConn
table string
}
ScQueuePhyInfo struct {
Id int64 `db:"id"` // id
QueueName string `db:"queue_name"` // 队列名称
QueNodes int64 `db:"que_nodes"` // 队列节点总数
QueMinNodect int64 `db:"que_min_nodect"` // 队列最小节点数
QueMaxNgpus int64 `db:"que_max_ngpus"` // 队列最大GPU卡数
QueMaxPpn int64 `db:"que_max_ppn"` // 使用该队列作业最大CPU核心数
QueChargeRate string `db:"que_charge_rate"` // 费率
QueMaxNcpus int64 `db:"que_max_ncpus"` // 用户最大可用核心数
QueMaxNdcus int64 `db:"que_max_ndcus"` // 队列总DCU卡数
QueMinNcpus int64 `db:"que_min_ncpus"` // 队列最小CPU核数
QueFreeNodes int64 `db:"que_free_nodes"` // 队列空闲节点数
QueMaxNodect int64 `db:"que_max_nodect"` // 队列作业最大节点数
QueMaxGpuPN int64 `db:"que_max_gpu_PN"` // 队列单作业最大GPU卡数
QueMaxWalltime string `db:"que_max_walltime"` // 队列最大运行时间
QueMaxDcuPN int64 `db:"que_max_dcu_PN"` // 队列单作业最大DCU卡数
ParticipantId int64 `db:"participant_id"` // 集群动态信息id
DeletedFlag int64 `db:"deleted_flag"` // 是否删除
CreatedBy sql.NullInt64 `db:"created_by"` // 创建人
CreatedTime time.Time `db:"created_time"` // 创建时间
UpdatedBy sql.NullInt64 `db:"updated_by"` // 更新人
UpdatedTime sql.NullTime `db:"updated_time"` // 更新时间
}
)
func newScQueuePhyInfoModel(conn sqlx.SqlConn, c cache.CacheConf, opts ...cache.Option) *defaultScQueuePhyInfoModel {
return &defaultScQueuePhyInfoModel{
CachedConn: sqlc.NewConn(conn, c, opts...),
table: "`sc_queue_phy_info`",
}
}
func (m *defaultScQueuePhyInfoModel) withSession(session sqlx.Session) *defaultScQueuePhyInfoModel {
return &defaultScQueuePhyInfoModel{
CachedConn: m.CachedConn.WithSession(session),
table: "`sc_queue_phy_info`",
}
}
func (m *defaultScQueuePhyInfoModel) Delete(ctx context.Context, id int64) error {
pcmScQueuePhyInfoIdKey := fmt.Sprintf("%s%v", cachePcmScQueuePhyInfoIdPrefix, id)
_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
return conn.ExecCtx(ctx, query, id)
}, pcmScQueuePhyInfoIdKey)
return err
}
func (m *defaultScQueuePhyInfoModel) FindOne(ctx context.Context, id int64) (*ScQueuePhyInfo, error) {
pcmScQueuePhyInfoIdKey := fmt.Sprintf("%s%v", cachePcmScQueuePhyInfoIdPrefix, id)
var resp ScQueuePhyInfo
err := m.QueryRowCtx(ctx, &resp, pcmScQueuePhyInfoIdKey, func(ctx context.Context, conn sqlx.SqlConn, v any) error {
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", scQueuePhyInfoRows, m.table)
return conn.QueryRowCtx(ctx, v, query, id)
})
switch err {
case nil:
return &resp, nil
case sqlc.ErrNotFound:
return nil, ErrNotFound
default:
return nil, err
}
}
func (m *defaultScQueuePhyInfoModel) Insert(ctx context.Context, data *ScQueuePhyInfo) (sql.Result, error) {
pcmScQueuePhyInfoIdKey := fmt.Sprintf("%s%v", cachePcmScQueuePhyInfoIdPrefix, data.Id)
ret, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, scQueuePhyInfoRowsExpectAutoSet)
return conn.ExecCtx(ctx, query, data.Id, data.QueueName, data.QueNodes, data.QueMinNodect, data.QueMaxNgpus, data.QueMaxPpn, data.QueChargeRate, data.QueMaxNcpus, data.QueMaxNdcus, data.QueMinNcpus, data.QueFreeNodes, data.QueMaxNodect, data.QueMaxGpuPN, data.QueMaxWalltime, data.QueMaxDcuPN, data.ParticipantId, data.DeletedFlag, data.CreatedBy, data.CreatedTime, data.UpdatedBy, data.UpdatedTime)
}, pcmScQueuePhyInfoIdKey)
return ret, err
}
func (m *defaultScQueuePhyInfoModel) Update(ctx context.Context, data *ScQueuePhyInfo) error {
pcmScQueuePhyInfoIdKey := fmt.Sprintf("%s%v", cachePcmScQueuePhyInfoIdPrefix, data.Id)
_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, scQueuePhyInfoRowsWithPlaceHolder)
return conn.ExecCtx(ctx, query, data.QueueName, data.QueNodes, data.QueMinNodect, data.QueMaxNgpus, data.QueMaxPpn, data.QueChargeRate, data.QueMaxNcpus, data.QueMaxNdcus, data.QueMinNcpus, data.QueFreeNodes, data.QueMaxNodect, data.QueMaxGpuPN, data.QueMaxWalltime, data.QueMaxDcuPN, data.ParticipantId, data.DeletedFlag, data.CreatedBy, data.CreatedTime, data.UpdatedBy, data.UpdatedTime, data.Id)
}, pcmScQueuePhyInfoIdKey)
return err
}
func (m *defaultScQueuePhyInfoModel) formatPrimary(primary any) string {
return fmt.Sprintf("%s%v", cachePcmScQueuePhyInfoIdPrefix, primary)
}
func (m *defaultScQueuePhyInfoModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary any) error {
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", scQueuePhyInfoRows, m.table)
return conn.QueryRowCtx(ctx, v, query, primary)
}
func (m *defaultScQueuePhyInfoModel) tableName() string {
return m.table
}

View File

@ -32,6 +32,7 @@ type (
ParticipantResp = pcmCore.ParticipantResp ParticipantResp = pcmCore.ParticipantResp
ParticipantServiceResp = pcmCore.ParticipantServiceResp ParticipantServiceResp = pcmCore.ParticipantServiceResp
ParticipantTenant = pcmCore.ParticipantTenant ParticipantTenant = pcmCore.ParticipantTenant
QueuePhyInfo = pcmCore.QueuePhyInfo
SyncInfoReq = pcmCore.SyncInfoReq SyncInfoReq = pcmCore.SyncInfoReq
SyncInfoResp = pcmCore.SyncInfoResp SyncInfoResp = pcmCore.SyncInfoResp

View File

@ -32,6 +32,7 @@ type (
ParticipantResp = pcmCore.ParticipantResp ParticipantResp = pcmCore.ParticipantResp
ParticipantServiceResp = pcmCore.ParticipantServiceResp ParticipantServiceResp = pcmCore.ParticipantServiceResp
ParticipantTenant = pcmCore.ParticipantTenant ParticipantTenant = pcmCore.ParticipantTenant
QueuePhyInfo = pcmCore.QueuePhyInfo
SyncInfoReq = pcmCore.SyncInfoReq SyncInfoReq = pcmCore.SyncInfoReq
SyncInfoResp = pcmCore.SyncInfoResp SyncInfoResp = pcmCore.SyncInfoResp

View File

@ -70,6 +70,21 @@ func (l *RegisterParticipantLogic) RegisterParticipant(in *pcmCore.ParticipantPh
nodeList = append(nodeList, nodeInfo) nodeList = append(nodeList, nodeInfo)
} }
result = db.Save(&nodeList) result = db.Save(&nodeList)
//保存队列信息
queueList := make([]*model.ScQueuePhyInfo, 0)
for _, info := range in.QueueInfo {
queueInfo := &model.ScQueuePhyInfo{}
tool.Convert(info, queueInfo)
queueInfo.CreatedTime = time.Now()
queueInfo.ParticipantId = participantInfo.Id
//查询队列name与ParticipantId是否存在
queueErr := db.Where(&model.ScQueuePhyInfo{QueueName: queueInfo.QueueName, ParticipantId: in.ParticipantId}).Take(queueInfo)
if errors.Is(queueErr.Error, gorm.ErrRecordNotFound) {
queueInfo.Id = tool.GenSnowflakeID()
}
queueList = append(queueList, queueInfo)
}
result = db.Save(&queueList)
//保存标签信息 //保存标签信息
labelList := make([]*model.ScParticipantLabelInfo, 0) labelList := make([]*model.ScParticipantLabelInfo, 0)
for _, label := range in.LabelInfo { for _, label := range in.LabelInfo {

View File

@ -24,9 +24,9 @@ message AiInfo {
string createTime = 10; string createTime = 10;
string imageUrl = 11; string imageUrl = 11;
string command = 12; string command = 12;
string flavorId = 13; string flavorId = 13;
string subscriptionId = 14; string subscriptionId = 14;
string itemVersionId = 15; string itemVersionId = 15;
} }
message CloudInfo { message CloudInfo {
@ -67,43 +67,42 @@ message HpcInfo {
uint32 assocId = 20; uint32 assocId = 20;
} }
message SyncInfoResp{ message SyncInfoResp {
int64 code = 1; int64 code = 1;
string msg = 2; string msg = 2;
} }
message InfoListReq{ message InfoListReq {
string kind = 1; string kind = 1;
int64 participantId = 2; int64 participantId = 2;
} }
message InfoListResp{ message InfoListResp {
repeated HpcInfo HpcInfoList = 1; repeated HpcInfo HpcInfoList = 1;
repeated CloudInfo CloudInfoList = 2; repeated CloudInfo CloudInfoList = 2;
repeated AiInfo AiInfoList = 3; repeated AiInfo AiInfoList = 3;
} }
// pcm core services // pcm core services
service pcmCore { service pcmCore {
//SyncInfo Synchronous data information // SyncInfo Synchronous data information
rpc SyncInfo(SyncInfoReq) returns (SyncInfoResp); rpc SyncInfo(SyncInfoReq) returns (SyncInfoResp);
//InfoList // InfoList
rpc InfoList(InfoListReq) returns (InfoListResp); rpc InfoList(InfoListReq) returns (InfoListResp);
} }
// participantTenant // participantTenant
message ParticipantTenant{ message ParticipantTenant {
string tenantName = 1; // string tenantName = 1; //
} }
// //
message ParticipantLabel { message ParticipantLabel {
int64 id = 1; //id int64 id = 1; // id
string key = 2; // string key = 2; //
string value = 3; // string value = 3; //
} }
enum MessageStatus { enum MessageStatus {
@ -112,97 +111,117 @@ enum MessageStatus {
UNKNOWN = 2; UNKNOWN = 2;
} }
message HealthCheckResp{ message HealthCheckResp {
MessageStatus messageStatus = 1; MessageStatus messageStatus = 1;
int64 code = 2; int64 code = 2;
string msg = 3; string msg = 3;
} }
message ParticipantPhyResp { message ParticipantPhyResp {
int64 code = 1; int64 code = 1;
string msg = 2; string msg = 2;
int64 participantId = 3; //participant int64 participantId = 3; // participant
} }
// //
message ListParticipantPhyResp { message ListParticipantPhyResp {
int64 code = 1; int64 code = 1;
string msg = 2; string msg = 2;
repeated ParticipantPhyReq ParticipantPhys=3; repeated ParticipantPhyReq ParticipantPhys = 3;
} }
//participantPhy // participantPhy
message ParticipantPhyReq { message ParticipantPhyReq {
string name = 1; // string name = 1; //
string host = 2; //host string host = 2; // host
string port = 3; // string port = 3; //
string networkType = 4; // string networkType = 4; //
string networkBandwidth = 5; // string networkBandwidth = 5; //
string storageType = 6; // string storageType = 6; //
string storageSpace = 7; // string storageSpace = 7; //
string storageAvailSpace = 8; // string storageAvailSpace = 8; //
string storageBandwidth = 9; // string storageBandwidth = 9; //
string type = 10; //:0-1-2- string type = 10; // :0-1-2-
int64 tenantId = 11; //id int64 tenantId = 11; // id
string tenantName = 12; // string tenantName = 12; //
repeated NodePhyInfo nodeInfo = 13; // repeated NodePhyInfo nodeInfo = 13; //
int64 participantId = 14; //participant id int64 participantId = 14; // participant id
repeated ParticipantLabel labelInfo = 15; // repeated ParticipantLabel labelInfo = 15; //
int64 id =16; //id repeated QueuePhyInfo queueInfo = 16; //
int64 id = 17; // id
} }
// NodePhyInfo // NodePhyInfo
message NodePhyInfo { message NodePhyInfo {
int64 id = 1; int64 id = 1;
string nodeName = 2; // string nodeName = 2; //
string osName = 3; // string osName = 3; //
string osVersion = 4; // string osVersion = 4; //
string archType = 5; // string archType = 5; //
string archName = 6; // string archName = 6; //
string archFreq = 7; // string archFreq = 7; //
}
// QueuePhyInfo
message QueuePhyInfo {
int64 id = 1; // id
string queueName=2; //
int64 queNodes = 3; //
int64 queMinNodect = 4; //
int64 queMaxNgpus = 5; // GPU卡数
int64 queMaxPpn = 6; // 使CPU核心数
string queChargeRate = 7; //
int64 queMaxNcpus = 8; //
int64 queMaxNdcus = 9; // DCU卡数
int64 queMinNcpus = 10; // CPU核数
int64 queFreeNodes = 11; //
int64 queMaxNodect = 12; //
int64 queMaxGpuPN = 13; // GPU卡数
string queMaxWalltime = 14; //
int64 queMaxDcuPN = 15; // DCU卡数
} }
// ParticipantHeartbeatReq // ParticipantHeartbeatReq
message ParticipantHeartbeatReq{ message ParticipantHeartbeatReq {
int64 participantId = 1; //participantId int64 participantId = 1; // participantId
string host = 2; //host string host = 2; // host
string port = 3; //port string port = 3; // port
} }
// ParticipantAvailInfo Participant可用信息 // ParticipantAvailInfo Participant可用信息
message ParticipantAvailReq{ message ParticipantAvailReq {
int64 id = 1; //id int64 id = 1; // id
int64 availStorageSpace = 2; // int64 availStorageSpace = 2; //
int64 userNum = 3; // int64 userNum = 3; //
int64 pendingJobNum = 4; // int64 pendingJobNum = 4; //
int64 runningJobNum = 5; // int64 runningJobNum = 5; //
int64 participantId = 6; //id int64 participantId = 6; // id
repeated NodeAvailInfo nodeAvailInfo = 7; // repeated NodeAvailInfo nodeAvailInfo = 7; //
} }
// NodeAvailInfo // NodeAvailInfo
message NodeAvailInfo{ message NodeAvailInfo {
int64 id = 1; //id int64 id = 1; // id
string nodeName = 2; // string nodeName = 2; //
int64 cpuTotal = 3; //cpu核数 int64 cpuTotal = 3; // cpu核数
double cpuUsable = 4; //cpu可用率 double cpuUsable = 4; // cpu可用率
int64 diskTotal = 5; // int64 diskTotal = 5; //
int64 diskAvail = 6; // int64 diskAvail = 6; //
int64 memTotal = 7; // int64 memTotal = 7; //
int64 memAvail = 8; // int64 memAvail = 8; //
int64 gpuTotal = 9; //gpu总数 int64 gpuTotal = 9; // gpu总数
int64 gpuAvail = 10; //gpu可用数 int64 gpuAvail = 10; // gpu可用数
int64 participantAvailId = 11; //id int64 participantAvailId = 11; // id
} }
// //
message ListParticipantAvailResp{ message ListParticipantAvailResp {
int64 code = 1; int64 code = 1;
string msg = 2; string msg = 2;
repeated ParticipantAvailReq ParticipantAvails=3; repeated ParticipantAvailReq ParticipantAvails = 3;
} }
message ParticipantResp{ message ParticipantResp {
int64 code = 1; int64 code = 1;
string msg = 2; string msg = 2;
} }
@ -212,30 +231,30 @@ message ParticipantServiceResp {
repeated ClientInfo data = 3; repeated ClientInfo data = 3;
} }
message ClientInfo{ message ClientInfo {
string host = 1; // @gotags: redis:"host" string host = 1; // @gotags: redis:"host"
string port = 2; // @gotags: redis:"port" string port = 2; // @gotags: redis:"port"
int64 participantId = 3; // @gotags: redis:"participantId" int64 participantId = 3; // @gotags: redis:"participantId"
} }
// participant // participant
service participantService { service participantService {
// registerParticipant Participant注册接口 // registerParticipant Participant注册接口
rpc registerParticipant (ParticipantPhyReq) returns (ParticipantPhyResp) {}; rpc registerParticipant(ParticipantPhyReq) returns (ParticipantPhyResp) {};
// reportHeartbeat // reportHeartbeat
rpc reportHeartbeat (ParticipantHeartbeatReq) returns (HealthCheckResp) {}; rpc reportHeartbeat(ParticipantHeartbeatReq) returns (HealthCheckResp) {};
// reportAvailable // reportAvailable
rpc reportAvailable (ParticipantAvailReq) returns(ParticipantResp){} rpc reportAvailable(ParticipantAvailReq) returns (ParticipantResp) {}
// listParticipant // listParticipant
rpc listParticipant (ParticipantTenant) returns(ParticipantServiceResp){} rpc listParticipant(ParticipantTenant) returns (ParticipantServiceResp) {}
// listAvailable // listAvailable
rpc listPhyAvailable (ParticipantTenant) returns(ListParticipantAvailResp){} rpc listPhyAvailable(ParticipantTenant) returns (ListParticipantAvailResp) {}
// listPhyInformation // listPhyInformation
rpc listPhyInformation (ParticipantTenant) returns (ListParticipantPhyResp) {}; rpc listPhyInformation(ParticipantTenant) returns (ListParticipantPhyResp) {};
} }

View File

@ -812,7 +812,7 @@ type ParticipantTenant struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
TenantName string `protobuf:"bytes,1,opt,name=tenantName,proto3" json:"tenantName,omitempty"` //租户名称 TenantName string `protobuf:"bytes,1,opt,name=tenantName,proto3" json:"tenantName,omitempty"` // 租户名称
} }
func (x *ParticipantTenant) Reset() { func (x *ParticipantTenant) Reset() {
@ -860,9 +860,9 @@ type ParticipantLabel struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` //id Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // id
Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` //标签名 Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` // 标签名
Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` //标签值 Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` // 标签值
} }
func (x *ParticipantLabel) Reset() { func (x *ParticipantLabel) Reset() {
@ -988,7 +988,7 @@ type ParticipantPhyResp struct {
Code int64 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` Code int64 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`
ParticipantId int64 `protobuf:"varint,3,opt,name=participantId,proto3" json:"participantId,omitempty"` //participant 唯一标识 ParticipantId int64 `protobuf:"varint,3,opt,name=participantId,proto3" json:"participantId,omitempty"` // participant 唯一标识
} }
func (x *ParticipantPhyResp) Reset() { func (x *ParticipantPhyResp) Reset() {
@ -1114,22 +1114,23 @@ type ParticipantPhyReq struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` //名称 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // 名称
Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"` //host Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"` // host
Port string `protobuf:"bytes,3,opt,name=port,proto3" json:"port,omitempty"` //端口号 Port string `protobuf:"bytes,3,opt,name=port,proto3" json:"port,omitempty"` // 端口号
NetworkType string `protobuf:"bytes,4,opt,name=networkType,proto3" json:"networkType,omitempty"` //集群网络类型 NetworkType string `protobuf:"bytes,4,opt,name=networkType,proto3" json:"networkType,omitempty"` // 集群网络类型
NetworkBandwidth string `protobuf:"bytes,5,opt,name=networkBandwidth,proto3" json:"networkBandwidth,omitempty"` //集群网络带宽 NetworkBandwidth string `protobuf:"bytes,5,opt,name=networkBandwidth,proto3" json:"networkBandwidth,omitempty"` // 集群网络带宽
StorageType string `protobuf:"bytes,6,opt,name=storageType,proto3" json:"storageType,omitempty"` //集群存储类型 StorageType string `protobuf:"bytes,6,opt,name=storageType,proto3" json:"storageType,omitempty"` // 集群存储类型
StorageSpace string `protobuf:"bytes,7,opt,name=storageSpace,proto3" json:"storageSpace,omitempty"` //集群存储空间 StorageSpace string `protobuf:"bytes,7,opt,name=storageSpace,proto3" json:"storageSpace,omitempty"` // 集群存储空间
StorageAvailSpace string `protobuf:"bytes,8,opt,name=storageAvailSpace,proto3" json:"storageAvailSpace,omitempty"` //集群存储可用空间 StorageAvailSpace string `protobuf:"bytes,8,opt,name=storageAvailSpace,proto3" json:"storageAvailSpace,omitempty"` // 集群存储可用空间
StorageBandwidth string `protobuf:"bytes,9,opt,name=storageBandwidth,proto3" json:"storageBandwidth,omitempty"` //集群存储带宽 StorageBandwidth string `protobuf:"bytes,9,opt,name=storageBandwidth,proto3" json:"storageBandwidth,omitempty"` // 集群存储带宽
Type string `protobuf:"bytes,10,opt,name=type,proto3" json:"type,omitempty"` //参与者类型:0-数算集群1-智算集群2-超算集群 Type string `protobuf:"bytes,10,opt,name=type,proto3" json:"type,omitempty"` // 参与者类型:0-数算集群1-智算集群2-超算集群
TenantId int64 `protobuf:"varint,11,opt,name=tenantId,proto3" json:"tenantId,omitempty"` //租户id TenantId int64 `protobuf:"varint,11,opt,name=tenantId,proto3" json:"tenantId,omitempty"` // 租户id
TenantName string `protobuf:"bytes,12,opt,name=tenantName,proto3" json:"tenantName,omitempty"` //租户名称 TenantName string `protobuf:"bytes,12,opt,name=tenantName,proto3" json:"tenantName,omitempty"` // 租户名称
NodeInfo []*NodePhyInfo `protobuf:"bytes,13,rep,name=nodeInfo,proto3" json:"nodeInfo,omitempty"` //节点信息 NodeInfo []*NodePhyInfo `protobuf:"bytes,13,rep,name=nodeInfo,proto3" json:"nodeInfo,omitempty"` // 节点信息
ParticipantId int64 `protobuf:"varint,14,opt,name=participantId,proto3" json:"participantId,omitempty"` //participant id ParticipantId int64 `protobuf:"varint,14,opt,name=participantId,proto3" json:"participantId,omitempty"` // participant id
LabelInfo []*ParticipantLabel `protobuf:"bytes,15,rep,name=labelInfo,proto3" json:"labelInfo,omitempty"` //标签信息 LabelInfo []*ParticipantLabel `protobuf:"bytes,15,rep,name=labelInfo,proto3" json:"labelInfo,omitempty"` // 标签信息
Id int64 `protobuf:"varint,16,opt,name=id,proto3" json:"id,omitempty"` //id QueueInfo []*QueuePhyInfo `protobuf:"bytes,16,rep,name=queueInfo,proto3" json:"queueInfo,omitempty"` // 队列信息
Id int64 `protobuf:"varint,17,opt,name=id,proto3" json:"id,omitempty"` // id
} }
func (x *ParticipantPhyReq) Reset() { func (x *ParticipantPhyReq) Reset() {
@ -1269,6 +1270,13 @@ func (x *ParticipantPhyReq) GetLabelInfo() []*ParticipantLabel {
return nil return nil
} }
func (x *ParticipantPhyReq) GetQueueInfo() []*QueuePhyInfo {
if x != nil {
return x.QueueInfo
}
return nil
}
func (x *ParticipantPhyReq) GetId() int64 { func (x *ParticipantPhyReq) GetId() int64 {
if x != nil { if x != nil {
return x.Id return x.Id
@ -1283,12 +1291,12 @@ type NodePhyInfo struct {
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
NodeName string `protobuf:"bytes,2,opt,name=nodeName,proto3" json:"nodeName,omitempty"` //节点名称 NodeName string `protobuf:"bytes,2,opt,name=nodeName,proto3" json:"nodeName,omitempty"` // 节点名称
OsName string `protobuf:"bytes,3,opt,name=osName,proto3" json:"osName,omitempty"` //系统名称 OsName string `protobuf:"bytes,3,opt,name=osName,proto3" json:"osName,omitempty"` // 系统名称
OsVersion string `protobuf:"bytes,4,opt,name=osVersion,proto3" json:"osVersion,omitempty"` //系统版本 OsVersion string `protobuf:"bytes,4,opt,name=osVersion,proto3" json:"osVersion,omitempty"` // 系统版本
ArchType string `protobuf:"bytes,5,opt,name=archType,proto3" json:"archType,omitempty"` //架构类型 ArchType string `protobuf:"bytes,5,opt,name=archType,proto3" json:"archType,omitempty"` // 架构类型
ArchName string `protobuf:"bytes,6,opt,name=archName,proto3" json:"archName,omitempty"` //架构名称 ArchName string `protobuf:"bytes,6,opt,name=archName,proto3" json:"archName,omitempty"` // 架构名称
ArchFreq string `protobuf:"bytes,7,opt,name=archFreq,proto3" json:"archFreq,omitempty"` //架构频率 ArchFreq string `protobuf:"bytes,7,opt,name=archFreq,proto3" json:"archFreq,omitempty"` // 架构频率
} }
func (x *NodePhyInfo) Reset() { func (x *NodePhyInfo) Reset() {
@ -1372,21 +1380,181 @@ func (x *NodePhyInfo) GetArchFreq() string {
return "" return ""
} }
// QueuePhyInfo 队列信息
type QueuePhyInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // id
QueueName string `protobuf:"bytes,2,opt,name=queueName,proto3" json:"queueName,omitempty"` //队列名称
QueNodes int64 `protobuf:"varint,3,opt,name=queNodes,proto3" json:"queNodes,omitempty"` // 队列节点总数
QueMinNodect int64 `protobuf:"varint,4,opt,name=queMinNodect,proto3" json:"queMinNodect,omitempty"` // 队列最小节点数
QueMaxNgpus int64 `protobuf:"varint,5,opt,name=queMaxNgpus,proto3" json:"queMaxNgpus,omitempty"` // 队列最大GPU卡数
QueMaxPpn int64 `protobuf:"varint,6,opt,name=queMaxPpn,proto3" json:"queMaxPpn,omitempty"` // 使用该队列作业最大CPU核心数
QueChargeRate string `protobuf:"bytes,7,opt,name=queChargeRate,proto3" json:"queChargeRate,omitempty"` // 费率
QueMaxNcpus int64 `protobuf:"varint,8,opt,name=queMaxNcpus,proto3" json:"queMaxNcpus,omitempty"` // 用户最大可用核心数
QueMaxNdcus int64 `protobuf:"varint,9,opt,name=queMaxNdcus,proto3" json:"queMaxNdcus,omitempty"` // 队列总DCU卡数
QueMinNcpus int64 `protobuf:"varint,10,opt,name=queMinNcpus,proto3" json:"queMinNcpus,omitempty"` // 队列最小CPU核数
QueFreeNodes int64 `protobuf:"varint,11,opt,name=queFreeNodes,proto3" json:"queFreeNodes,omitempty"` // 队列空闲节点数
QueMaxNodect int64 `protobuf:"varint,12,opt,name=queMaxNodect,proto3" json:"queMaxNodect,omitempty"` // 队列作业最大节点数
QueMaxGpuPN int64 `protobuf:"varint,13,opt,name=queMaxGpuPN,proto3" json:"queMaxGpuPN,omitempty"` // 队列单作业最大GPU卡数
QueMaxWalltime string `protobuf:"bytes,14,opt,name=queMaxWalltime,proto3" json:"queMaxWalltime,omitempty"` // 队列最大运行时间
QueMaxDcuPN int64 `protobuf:"varint,15,opt,name=queMaxDcuPN,proto3" json:"queMaxDcuPN,omitempty"` // 队列单作业最大DCU卡数
}
func (x *QueuePhyInfo) Reset() {
*x = QueuePhyInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_pb_pcmCore_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *QueuePhyInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QueuePhyInfo) ProtoMessage() {}
func (x *QueuePhyInfo) ProtoReflect() protoreflect.Message {
mi := &file_pb_pcmCore_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use QueuePhyInfo.ProtoReflect.Descriptor instead.
func (*QueuePhyInfo) Descriptor() ([]byte, []int) {
return file_pb_pcmCore_proto_rawDescGZIP(), []int{14}
}
func (x *QueuePhyInfo) GetId() int64 {
if x != nil {
return x.Id
}
return 0
}
func (x *QueuePhyInfo) GetQueueName() string {
if x != nil {
return x.QueueName
}
return ""
}
func (x *QueuePhyInfo) GetQueNodes() int64 {
if x != nil {
return x.QueNodes
}
return 0
}
func (x *QueuePhyInfo) GetQueMinNodect() int64 {
if x != nil {
return x.QueMinNodect
}
return 0
}
func (x *QueuePhyInfo) GetQueMaxNgpus() int64 {
if x != nil {
return x.QueMaxNgpus
}
return 0
}
func (x *QueuePhyInfo) GetQueMaxPpn() int64 {
if x != nil {
return x.QueMaxPpn
}
return 0
}
func (x *QueuePhyInfo) GetQueChargeRate() string {
if x != nil {
return x.QueChargeRate
}
return ""
}
func (x *QueuePhyInfo) GetQueMaxNcpus() int64 {
if x != nil {
return x.QueMaxNcpus
}
return 0
}
func (x *QueuePhyInfo) GetQueMaxNdcus() int64 {
if x != nil {
return x.QueMaxNdcus
}
return 0
}
func (x *QueuePhyInfo) GetQueMinNcpus() int64 {
if x != nil {
return x.QueMinNcpus
}
return 0
}
func (x *QueuePhyInfo) GetQueFreeNodes() int64 {
if x != nil {
return x.QueFreeNodes
}
return 0
}
func (x *QueuePhyInfo) GetQueMaxNodect() int64 {
if x != nil {
return x.QueMaxNodect
}
return 0
}
func (x *QueuePhyInfo) GetQueMaxGpuPN() int64 {
if x != nil {
return x.QueMaxGpuPN
}
return 0
}
func (x *QueuePhyInfo) GetQueMaxWalltime() string {
if x != nil {
return x.QueMaxWalltime
}
return ""
}
func (x *QueuePhyInfo) GetQueMaxDcuPN() int64 {
if x != nil {
return x.QueMaxDcuPN
}
return 0
}
// ParticipantHeartbeatReq 心跳请求 // ParticipantHeartbeatReq 心跳请求
type ParticipantHeartbeatReq struct { type ParticipantHeartbeatReq struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
ParticipantId int64 `protobuf:"varint,1,opt,name=participantId,proto3" json:"participantId,omitempty"` //participantId ParticipantId int64 `protobuf:"varint,1,opt,name=participantId,proto3" json:"participantId,omitempty"` // participantId
Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"` //host Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"` // host
Port string `protobuf:"bytes,3,opt,name=port,proto3" json:"port,omitempty"` //port Port string `protobuf:"bytes,3,opt,name=port,proto3" json:"port,omitempty"` // port
} }
func (x *ParticipantHeartbeatReq) Reset() { func (x *ParticipantHeartbeatReq) Reset() {
*x = ParticipantHeartbeatReq{} *x = ParticipantHeartbeatReq{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_pb_pcmCore_proto_msgTypes[14] mi := &file_pb_pcmCore_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1399,7 +1567,7 @@ func (x *ParticipantHeartbeatReq) String() string {
func (*ParticipantHeartbeatReq) ProtoMessage() {} func (*ParticipantHeartbeatReq) ProtoMessage() {}
func (x *ParticipantHeartbeatReq) ProtoReflect() protoreflect.Message { func (x *ParticipantHeartbeatReq) ProtoReflect() protoreflect.Message {
mi := &file_pb_pcmCore_proto_msgTypes[14] mi := &file_pb_pcmCore_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1412,7 +1580,7 @@ func (x *ParticipantHeartbeatReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use ParticipantHeartbeatReq.ProtoReflect.Descriptor instead. // Deprecated: Use ParticipantHeartbeatReq.ProtoReflect.Descriptor instead.
func (*ParticipantHeartbeatReq) Descriptor() ([]byte, []int) { func (*ParticipantHeartbeatReq) Descriptor() ([]byte, []int) {
return file_pb_pcmCore_proto_rawDescGZIP(), []int{14} return file_pb_pcmCore_proto_rawDescGZIP(), []int{15}
} }
func (x *ParticipantHeartbeatReq) GetParticipantId() int64 { func (x *ParticipantHeartbeatReq) GetParticipantId() int64 {
@ -1442,19 +1610,19 @@ type ParticipantAvailReq struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` //id Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // id
AvailStorageSpace int64 `protobuf:"varint,2,opt,name=availStorageSpace,proto3" json:"availStorageSpace,omitempty"` //集群存储可用空间 AvailStorageSpace int64 `protobuf:"varint,2,opt,name=availStorageSpace,proto3" json:"availStorageSpace,omitempty"` // 集群存储可用空间
UserNum int64 `protobuf:"varint,3,opt,name=userNum,proto3" json:"userNum,omitempty"` //用户数量 UserNum int64 `protobuf:"varint,3,opt,name=userNum,proto3" json:"userNum,omitempty"` // 用户数量
PendingJobNum int64 `protobuf:"varint,4,opt,name=pendingJobNum,proto3" json:"pendingJobNum,omitempty"` //待处理作业数量 PendingJobNum int64 `protobuf:"varint,4,opt,name=pendingJobNum,proto3" json:"pendingJobNum,omitempty"` // 待处理作业数量
RunningJobNum int64 `protobuf:"varint,5,opt,name=runningJobNum,proto3" json:"runningJobNum,omitempty"` //运行作业数量 RunningJobNum int64 `protobuf:"varint,5,opt,name=runningJobNum,proto3" json:"runningJobNum,omitempty"` // 运行作业数量
ParticipantId int64 `protobuf:"varint,6,opt,name=participantId,proto3" json:"participantId,omitempty"` //集群静态信息id ParticipantId int64 `protobuf:"varint,6,opt,name=participantId,proto3" json:"participantId,omitempty"` // 集群静态信息id
NodeAvailInfo []*NodeAvailInfo `protobuf:"bytes,7,rep,name=nodeAvailInfo,proto3" json:"nodeAvailInfo,omitempty"` //节点可用信息 NodeAvailInfo []*NodeAvailInfo `protobuf:"bytes,7,rep,name=nodeAvailInfo,proto3" json:"nodeAvailInfo,omitempty"` // 节点可用信息
} }
func (x *ParticipantAvailReq) Reset() { func (x *ParticipantAvailReq) Reset() {
*x = ParticipantAvailReq{} *x = ParticipantAvailReq{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_pb_pcmCore_proto_msgTypes[15] mi := &file_pb_pcmCore_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1467,7 +1635,7 @@ func (x *ParticipantAvailReq) String() string {
func (*ParticipantAvailReq) ProtoMessage() {} func (*ParticipantAvailReq) ProtoMessage() {}
func (x *ParticipantAvailReq) ProtoReflect() protoreflect.Message { func (x *ParticipantAvailReq) ProtoReflect() protoreflect.Message {
mi := &file_pb_pcmCore_proto_msgTypes[15] mi := &file_pb_pcmCore_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1480,7 +1648,7 @@ func (x *ParticipantAvailReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use ParticipantAvailReq.ProtoReflect.Descriptor instead. // Deprecated: Use ParticipantAvailReq.ProtoReflect.Descriptor instead.
func (*ParticipantAvailReq) Descriptor() ([]byte, []int) { func (*ParticipantAvailReq) Descriptor() ([]byte, []int) {
return file_pb_pcmCore_proto_rawDescGZIP(), []int{15} return file_pb_pcmCore_proto_rawDescGZIP(), []int{16}
} }
func (x *ParticipantAvailReq) GetId() int64 { func (x *ParticipantAvailReq) GetId() int64 {
@ -1538,23 +1706,23 @@ type NodeAvailInfo struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` //id Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // id
NodeName string `protobuf:"bytes,2,opt,name=nodeName,proto3" json:"nodeName,omitempty"` //节点名称 NodeName string `protobuf:"bytes,2,opt,name=nodeName,proto3" json:"nodeName,omitempty"` // 节点名称
CpuTotal int64 `protobuf:"varint,3,opt,name=cpuTotal,proto3" json:"cpuTotal,omitempty"` //cpu核数 CpuTotal int64 `protobuf:"varint,3,opt,name=cpuTotal,proto3" json:"cpuTotal,omitempty"` // cpu核数
CpuUsable float64 `protobuf:"fixed64,4,opt,name=cpuUsable,proto3" json:"cpuUsable,omitempty"` //cpu可用率 CpuUsable float64 `protobuf:"fixed64,4,opt,name=cpuUsable,proto3" json:"cpuUsable,omitempty"` // cpu可用率
DiskTotal int64 `protobuf:"varint,5,opt,name=diskTotal,proto3" json:"diskTotal,omitempty"` //磁盘空间 DiskTotal int64 `protobuf:"varint,5,opt,name=diskTotal,proto3" json:"diskTotal,omitempty"` // 磁盘空间
DiskAvail int64 `protobuf:"varint,6,opt,name=diskAvail,proto3" json:"diskAvail,omitempty"` //磁盘可用空间 DiskAvail int64 `protobuf:"varint,6,opt,name=diskAvail,proto3" json:"diskAvail,omitempty"` // 磁盘可用空间
MemTotal int64 `protobuf:"varint,7,opt,name=memTotal,proto3" json:"memTotal,omitempty"` //内存总数 MemTotal int64 `protobuf:"varint,7,opt,name=memTotal,proto3" json:"memTotal,omitempty"` // 内存总数
MemAvail int64 `protobuf:"varint,8,opt,name=memAvail,proto3" json:"memAvail,omitempty"` //内存可用数 MemAvail int64 `protobuf:"varint,8,opt,name=memAvail,proto3" json:"memAvail,omitempty"` // 内存可用数
GpuTotal int64 `protobuf:"varint,9,opt,name=gpuTotal,proto3" json:"gpuTotal,omitempty"` //gpu总数 GpuTotal int64 `protobuf:"varint,9,opt,name=gpuTotal,proto3" json:"gpuTotal,omitempty"` // gpu总数
GpuAvail int64 `protobuf:"varint,10,opt,name=gpuAvail,proto3" json:"gpuAvail,omitempty"` //gpu可用数 GpuAvail int64 `protobuf:"varint,10,opt,name=gpuAvail,proto3" json:"gpuAvail,omitempty"` // gpu可用数
ParticipantAvailId int64 `protobuf:"varint,11,opt,name=participantAvailId,proto3" json:"participantAvailId,omitempty"` //集群动态信息id ParticipantAvailId int64 `protobuf:"varint,11,opt,name=participantAvailId,proto3" json:"participantAvailId,omitempty"` // 集群动态信息id
} }
func (x *NodeAvailInfo) Reset() { func (x *NodeAvailInfo) Reset() {
*x = NodeAvailInfo{} *x = NodeAvailInfo{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_pb_pcmCore_proto_msgTypes[16] mi := &file_pb_pcmCore_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1567,7 +1735,7 @@ func (x *NodeAvailInfo) String() string {
func (*NodeAvailInfo) ProtoMessage() {} func (*NodeAvailInfo) ProtoMessage() {}
func (x *NodeAvailInfo) ProtoReflect() protoreflect.Message { func (x *NodeAvailInfo) ProtoReflect() protoreflect.Message {
mi := &file_pb_pcmCore_proto_msgTypes[16] mi := &file_pb_pcmCore_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1580,7 +1748,7 @@ func (x *NodeAvailInfo) ProtoReflect() protoreflect.Message {
// Deprecated: Use NodeAvailInfo.ProtoReflect.Descriptor instead. // Deprecated: Use NodeAvailInfo.ProtoReflect.Descriptor instead.
func (*NodeAvailInfo) Descriptor() ([]byte, []int) { func (*NodeAvailInfo) Descriptor() ([]byte, []int) {
return file_pb_pcmCore_proto_rawDescGZIP(), []int{16} return file_pb_pcmCore_proto_rawDescGZIP(), []int{17}
} }
func (x *NodeAvailInfo) GetId() int64 { func (x *NodeAvailInfo) GetId() int64 {
@ -1674,7 +1842,7 @@ type ListParticipantAvailResp struct {
func (x *ListParticipantAvailResp) Reset() { func (x *ListParticipantAvailResp) Reset() {
*x = ListParticipantAvailResp{} *x = ListParticipantAvailResp{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_pb_pcmCore_proto_msgTypes[17] mi := &file_pb_pcmCore_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1687,7 +1855,7 @@ func (x *ListParticipantAvailResp) String() string {
func (*ListParticipantAvailResp) ProtoMessage() {} func (*ListParticipantAvailResp) ProtoMessage() {}
func (x *ListParticipantAvailResp) ProtoReflect() protoreflect.Message { func (x *ListParticipantAvailResp) ProtoReflect() protoreflect.Message {
mi := &file_pb_pcmCore_proto_msgTypes[17] mi := &file_pb_pcmCore_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1700,7 +1868,7 @@ func (x *ListParticipantAvailResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListParticipantAvailResp.ProtoReflect.Descriptor instead. // Deprecated: Use ListParticipantAvailResp.ProtoReflect.Descriptor instead.
func (*ListParticipantAvailResp) Descriptor() ([]byte, []int) { func (*ListParticipantAvailResp) Descriptor() ([]byte, []int) {
return file_pb_pcmCore_proto_rawDescGZIP(), []int{17} return file_pb_pcmCore_proto_rawDescGZIP(), []int{18}
} }
func (x *ListParticipantAvailResp) GetCode() int64 { func (x *ListParticipantAvailResp) GetCode() int64 {
@ -1736,7 +1904,7 @@ type ParticipantResp struct {
func (x *ParticipantResp) Reset() { func (x *ParticipantResp) Reset() {
*x = ParticipantResp{} *x = ParticipantResp{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_pb_pcmCore_proto_msgTypes[18] mi := &file_pb_pcmCore_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1749,7 +1917,7 @@ func (x *ParticipantResp) String() string {
func (*ParticipantResp) ProtoMessage() {} func (*ParticipantResp) ProtoMessage() {}
func (x *ParticipantResp) ProtoReflect() protoreflect.Message { func (x *ParticipantResp) ProtoReflect() protoreflect.Message {
mi := &file_pb_pcmCore_proto_msgTypes[18] mi := &file_pb_pcmCore_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1762,7 +1930,7 @@ func (x *ParticipantResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use ParticipantResp.ProtoReflect.Descriptor instead. // Deprecated: Use ParticipantResp.ProtoReflect.Descriptor instead.
func (*ParticipantResp) Descriptor() ([]byte, []int) { func (*ParticipantResp) Descriptor() ([]byte, []int) {
return file_pb_pcmCore_proto_rawDescGZIP(), []int{18} return file_pb_pcmCore_proto_rawDescGZIP(), []int{19}
} }
func (x *ParticipantResp) GetCode() int64 { func (x *ParticipantResp) GetCode() int64 {
@ -1792,7 +1960,7 @@ type ParticipantServiceResp struct {
func (x *ParticipantServiceResp) Reset() { func (x *ParticipantServiceResp) Reset() {
*x = ParticipantServiceResp{} *x = ParticipantServiceResp{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_pb_pcmCore_proto_msgTypes[19] mi := &file_pb_pcmCore_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1805,7 +1973,7 @@ func (x *ParticipantServiceResp) String() string {
func (*ParticipantServiceResp) ProtoMessage() {} func (*ParticipantServiceResp) ProtoMessage() {}
func (x *ParticipantServiceResp) ProtoReflect() protoreflect.Message { func (x *ParticipantServiceResp) ProtoReflect() protoreflect.Message {
mi := &file_pb_pcmCore_proto_msgTypes[19] mi := &file_pb_pcmCore_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1818,7 +1986,7 @@ func (x *ParticipantServiceResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use ParticipantServiceResp.ProtoReflect.Descriptor instead. // Deprecated: Use ParticipantServiceResp.ProtoReflect.Descriptor instead.
func (*ParticipantServiceResp) Descriptor() ([]byte, []int) { func (*ParticipantServiceResp) Descriptor() ([]byte, []int) {
return file_pb_pcmCore_proto_rawDescGZIP(), []int{19} return file_pb_pcmCore_proto_rawDescGZIP(), []int{20}
} }
func (x *ParticipantServiceResp) GetCode() int64 { func (x *ParticipantServiceResp) GetCode() int64 {
@ -1855,7 +2023,7 @@ type ClientInfo struct {
func (x *ClientInfo) Reset() { func (x *ClientInfo) Reset() {
*x = ClientInfo{} *x = ClientInfo{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_pb_pcmCore_proto_msgTypes[20] mi := &file_pb_pcmCore_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1868,7 +2036,7 @@ func (x *ClientInfo) String() string {
func (*ClientInfo) ProtoMessage() {} func (*ClientInfo) ProtoMessage() {}
func (x *ClientInfo) ProtoReflect() protoreflect.Message { func (x *ClientInfo) ProtoReflect() protoreflect.Message {
mi := &file_pb_pcmCore_proto_msgTypes[20] mi := &file_pb_pcmCore_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1881,7 +2049,7 @@ func (x *ClientInfo) ProtoReflect() protoreflect.Message {
// Deprecated: Use ClientInfo.ProtoReflect.Descriptor instead. // Deprecated: Use ClientInfo.ProtoReflect.Descriptor instead.
func (*ClientInfo) Descriptor() ([]byte, []int) { func (*ClientInfo) Descriptor() ([]byte, []int) {
return file_pb_pcmCore_proto_rawDescGZIP(), []int{20} return file_pb_pcmCore_proto_rawDescGZIP(), []int{21}
} }
func (x *ClientInfo) GetHost() string { func (x *ClientInfo) GetHost() string {
@ -2056,7 +2224,7 @@ var file_pb_pcmCore_proto_rawDesc = []byte{
0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72,
0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x79, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x79,
0x52, 0x65, 0x71, 0x52, 0x0f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x52, 0x0f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74,
0x50, 0x68, 0x79, 0x73, 0x22, 0xae, 0x04, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x50, 0x68, 0x79, 0x73, 0x22, 0xe3, 0x04, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69,
0x70, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x79, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x70, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x79, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12,
0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f,
@ -2090,135 +2258,171 @@ var file_pb_pcmCore_proto_rawDesc = []byte{
0x6c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x19, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x19, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63,
0x69, 0x70, 0x61, 0x6e, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x09, 0x6c, 0x61, 0x62, 0x65, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x09, 0x6c, 0x61, 0x62, 0x65,
0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49, 0x6e,
0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0xc3, 0x01, 0x0a, 0x0b, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x68, 0x66, 0x6f, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f,
0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x72, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x68, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52,
0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0xc3, 0x01, 0x0a, 0x0b, 0x4e,
0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x6f, 0x64, 0x65, 0x50, 0x68, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
0x09, 0x52, 0x06, 0x6f, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x73, 0x56, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f,
0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x73, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f,
0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x63, 0x68, 0x54, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x73, 0x4e, 0x61, 0x6d, 0x65,
0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x63, 0x68, 0x54, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c,
0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x09, 0x6f, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28,
0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x09, 0x52, 0x09, 0x6f, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08,
0x1a, 0x0a, 0x08, 0x61, 0x72, 0x63, 0x68, 0x46, 0x72, 0x65, 0x71, 0x18, 0x07, 0x20, 0x01, 0x28, 0x61, 0x72, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
0x09, 0x52, 0x08, 0x61, 0x72, 0x63, 0x68, 0x46, 0x72, 0x65, 0x71, 0x22, 0x67, 0x0a, 0x17, 0x50, 0x61, 0x72, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x63, 0x68,
0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x63, 0x68,
0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x63, 0x68, 0x46, 0x72, 0x65, 0x71,
0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x63, 0x68, 0x46, 0x72, 0x65, 0x71,
0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x22, 0xfc, 0x03, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x68, 0x79, 0x49, 0x6e, 0x66,
0x68, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69,
0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02,
0x70, 0x6f, 0x72, 0x74, 0x22, 0x9d, 0x02, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12,
0x70, 0x61, 0x6e, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x03, 0x52, 0x08, 0x71, 0x75, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x71,
0x61, 0x76, 0x61, 0x69, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x70, 0x61, 0x63, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x53, 0x74, 0x03, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x63, 0x74, 0x12,
0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x67, 0x70, 0x75, 0x73, 0x18, 0x05,
0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x75, 0x73, 0x65, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x67, 0x70, 0x75,
0x72, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4a, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x50, 0x70, 0x6e, 0x18, 0x06,
0x6f, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x70, 0x65, 0x6e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x50, 0x70, 0x6e, 0x12,
0x64, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x75, 0x24, 0x0a, 0x0d, 0x71, 0x75, 0x65, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65,
0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x43, 0x68, 0x61, 0x72, 0x67,
0x03, 0x52, 0x0d, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4e, 0x75, 0x6d, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e,
0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x63, 0x70, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d,
0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x61, 0x78, 0x4e, 0x63, 0x70, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61,
0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x41, 0x76, 0x78, 0x4e, 0x64, 0x63, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x71, 0x75,
0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x64, 0x63, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65,
0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x76, 0x61, 0x69, 0x4d, 0x69, 0x6e, 0x4e, 0x63, 0x70, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b,
0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x4e, 0x63, 0x70, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x71,
0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd1, 0x02, 0x0a, 0x0d, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x76, 0x61, 0x75, 0x65, 0x46, 0x72, 0x65, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28,
0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x03, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x46, 0x72, 0x65, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12,
0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x22, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x63, 0x74, 0x18,
0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x6f, 0x64,
0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x70, 0x75, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x47, 0x70, 0x75,
0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x63, 0x70, 0x75, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1c, 0x50, 0x4e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78,
0x0a, 0x09, 0x63, 0x70, 0x75, 0x55, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x47, 0x70, 0x75, 0x50, 0x4e, 0x12, 0x26, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x57,
0x01, 0x52, 0x09, 0x63, 0x70, 0x75, 0x55, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x71,
0x64, 0x69, 0x73, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a,
0x09, 0x64, 0x69, 0x73, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x44, 0x63, 0x75, 0x50, 0x4e, 0x18, 0x0f, 0x20, 0x01,
0x73, 0x6b, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x28, 0x03, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x44, 0x63, 0x75, 0x50, 0x4e, 0x22,
0x69, 0x73, 0x6b, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x54, 0x67, 0x0a, 0x17, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x48, 0x65,
0x6f, 0x74, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x54, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61,
0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x03, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64,
0x12, 0x1a, 0x0a, 0x08, 0x67, 0x70, 0x75, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x28, 0x03, 0x52, 0x08, 0x67, 0x70, 0x75, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01,
0x67, 0x70, 0x75, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x9d, 0x02, 0x0a, 0x13, 0x50, 0x61, 0x72,
0x67, 0x70, 0x75, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x12, 0x2e, 0x0a, 0x12, 0x70, 0x61, 0x72, 0x74, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71,
0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x49, 0x64, 0x18, 0x0b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64,
0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x49, 0x64, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x61, 0x76, 0x61,
0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x76, 0x61, 0x69, 0x69, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x18,
0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x07, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x65, 0x6e, 0x64,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x4a, 0x0a, 0x11, 0x50, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x73, 0x0d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x24,
0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x0a, 0x0d, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4e, 0x75, 0x6d, 0x18,
0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x76, 0x61, 0x69, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f,
0x6c, 0x52, 0x65, 0x71, 0x52, 0x11, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70,
0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x37, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x70, 0x61, 0x72,
0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0d, 0x6e, 0x6f,
0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x64, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x03, 0x28,
0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65,
0x22, 0x67, 0x0a, 0x16, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x53, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x41,
0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x76, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd1, 0x02, 0x0a, 0x0d, 0x4e, 0x6f, 0x64,
0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f,
0x12, 0x27, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f,
0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x70, 0x75, 0x54, 0x6f, 0x74,
0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5a, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x63, 0x70, 0x75, 0x54, 0x6f, 0x74,
0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x70, 0x75, 0x55, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x63, 0x70, 0x75, 0x55, 0x73, 0x61, 0x62, 0x6c, 0x65,
0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20,
0x24, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1c,
0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28,
0x61, 0x6e, 0x74, 0x49, 0x64, 0x2a, 0x33, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x03, 0x52, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08,
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x00, 0x6d, 0x65, 0x6d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08,
0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x6d, 0x65, 0x6d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x41,
0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x32, 0x7b, 0x0a, 0x07, 0x70, 0x63, 0x76, 0x61, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x41,
0x6d, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x66, 0x76, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x70, 0x75, 0x54, 0x6f, 0x74, 0x61, 0x6c,
0x6f, 0x12, 0x14, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x67, 0x70, 0x75, 0x54, 0x6f, 0x74, 0x61, 0x6c,
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x70, 0x75, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x18, 0x0a, 0x20, 0x01,
0x65, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x37, 0x28, 0x03, 0x52, 0x08, 0x67, 0x70, 0x75, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x12, 0x2e, 0x0a, 0x12,
0x0a, 0x08, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x2e, 0x70, 0x63, 0x6d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c,
0x43, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63,
0x1a, 0x15, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x49, 0x64, 0x22, 0x8c, 0x01, 0x0a,
0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x32, 0x80, 0x04, 0x0a, 0x12, 0x70, 0x61, 0x72, 0x74, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74,
0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x50, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64,
0x0a, 0x13, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a,
0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12,
0x4a, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x76,
0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x63, 0x6d,
0x43, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74,
0x41, 0x76, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x52, 0x11, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63,
0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x37, 0x0a, 0x0f, 0x50,
0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12,
0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x03, 0x6d, 0x73, 0x67, 0x22, 0x67, 0x0a, 0x16, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70,
0x61, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12,
0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x03, 0x6d, 0x73, 0x67, 0x12, 0x27, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x43, 0x6c, 0x69,
0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5a, 0x0a,
0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x68,
0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12,
0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70,
0x6f, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61,
0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74,
0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x2a, 0x33, 0x0a, 0x0d, 0x4d, 0x65, 0x73,
0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x41,
0x49, 0x4c, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10,
0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x32, 0x7b,
0x0a, 0x07, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x53, 0x79, 0x6e,
0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e,
0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x63,
0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
0x73, 0x70, 0x12, 0x37, 0x0a, 0x08, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14,
0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73,
0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x49,
0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x32, 0x80, 0x04, 0x0a, 0x12,
0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69,
0x63, 0x65, 0x12, 0x50, 0x0a, 0x13, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61,
0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x63, 0x6d, 0x43,
0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x50,
0x68, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e,
0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x79, 0x52, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x79, 0x52, 0x65,
0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x48, 0x65,
0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x20, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72,
0x12, 0x4f, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x48, 0x65, 0x61,
0x65, 0x61, 0x74, 0x12, 0x20, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x63, 0x6d, 0x43,
0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x6f, 0x72, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52,
0x61, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41,
0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f,
0x00, 0x12, 0x4b, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x76,
0x61, 0x62, 0x6c, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65,
0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x52, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70,
0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x0f, 0x6c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63,
0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x50, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e,
0x0a, 0x0f, 0x6c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e,
0x74, 0x12, 0x1a, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74,
0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x1a, 0x1f, 0x2e, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65,
0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x73, 0x70, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x10, 0x6c, 0x69, 0x73, 0x74, 0x50, 0x68, 0x79, 0x41,
0x61, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1a, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f,
0x12, 0x53, 0x0a, 0x10, 0x6c, 0x69, 0x73, 0x74, 0x50, 0x68, 0x79, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x54, 0x65,
0x61, 0x62, 0x6c, 0x65, 0x12, 0x1a, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x6e, 0x61, 0x6e, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x4c,
0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x76,
0x1a, 0x21, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x12, 0x6c, 0x69, 0x73,
0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x52, 0x74, 0x50, 0x68, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x12, 0x6c, 0x69, 0x73, 0x74, 0x50, 0x68, 0x79, 0x1a, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63,
0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x2e, 0x70, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x63,
0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63,
0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0a,
0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x5a, 0x08, 0x2f, 0x70, 0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x74, 0x50, 0x68, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2f, 0x70, 0x6f, 0x33,
0x63, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -2234,7 +2438,7 @@ func file_pb_pcmCore_proto_rawDescGZIP() []byte {
} }
var file_pb_pcmCore_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_pb_pcmCore_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_pb_pcmCore_proto_msgTypes = make([]protoimpl.MessageInfo, 21) var file_pb_pcmCore_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
var file_pb_pcmCore_proto_goTypes = []interface{}{ var file_pb_pcmCore_proto_goTypes = []interface{}{
(MessageStatus)(0), // 0: pcmCore.MessageStatus (MessageStatus)(0), // 0: pcmCore.MessageStatus
(*SyncInfoReq)(nil), // 1: pcmCore.SyncInfoReq (*SyncInfoReq)(nil), // 1: pcmCore.SyncInfoReq
@ -2251,13 +2455,14 @@ var file_pb_pcmCore_proto_goTypes = []interface{}{
(*ListParticipantPhyResp)(nil), // 12: pcmCore.ListParticipantPhyResp (*ListParticipantPhyResp)(nil), // 12: pcmCore.ListParticipantPhyResp
(*ParticipantPhyReq)(nil), // 13: pcmCore.ParticipantPhyReq (*ParticipantPhyReq)(nil), // 13: pcmCore.ParticipantPhyReq
(*NodePhyInfo)(nil), // 14: pcmCore.NodePhyInfo (*NodePhyInfo)(nil), // 14: pcmCore.NodePhyInfo
(*ParticipantHeartbeatReq)(nil), // 15: pcmCore.ParticipantHeartbeatReq (*QueuePhyInfo)(nil), // 15: pcmCore.QueuePhyInfo
(*ParticipantAvailReq)(nil), // 16: pcmCore.ParticipantAvailReq (*ParticipantHeartbeatReq)(nil), // 16: pcmCore.ParticipantHeartbeatReq
(*NodeAvailInfo)(nil), // 17: pcmCore.NodeAvailInfo (*ParticipantAvailReq)(nil), // 17: pcmCore.ParticipantAvailReq
(*ListParticipantAvailResp)(nil), // 18: pcmCore.ListParticipantAvailResp (*NodeAvailInfo)(nil), // 18: pcmCore.NodeAvailInfo
(*ParticipantResp)(nil), // 19: pcmCore.ParticipantResp (*ListParticipantAvailResp)(nil), // 19: pcmCore.ListParticipantAvailResp
(*ParticipantServiceResp)(nil), // 20: pcmCore.ParticipantServiceResp (*ParticipantResp)(nil), // 20: pcmCore.ParticipantResp
(*ClientInfo)(nil), // 21: pcmCore.ClientInfo (*ParticipantServiceResp)(nil), // 21: pcmCore.ParticipantServiceResp
(*ClientInfo)(nil), // 22: pcmCore.ClientInfo
} }
var file_pb_pcmCore_proto_depIdxs = []int32{ var file_pb_pcmCore_proto_depIdxs = []int32{
4, // 0: pcmCore.SyncInfoReq.HpcInfoList:type_name -> pcmCore.HpcInfo 4, // 0: pcmCore.SyncInfoReq.HpcInfoList:type_name -> pcmCore.HpcInfo
@ -2270,30 +2475,31 @@ var file_pb_pcmCore_proto_depIdxs = []int32{
13, // 7: pcmCore.ListParticipantPhyResp.ParticipantPhys:type_name -> pcmCore.ParticipantPhyReq 13, // 7: pcmCore.ListParticipantPhyResp.ParticipantPhys:type_name -> pcmCore.ParticipantPhyReq
14, // 8: pcmCore.ParticipantPhyReq.nodeInfo:type_name -> pcmCore.NodePhyInfo 14, // 8: pcmCore.ParticipantPhyReq.nodeInfo:type_name -> pcmCore.NodePhyInfo
9, // 9: pcmCore.ParticipantPhyReq.labelInfo:type_name -> pcmCore.ParticipantLabel 9, // 9: pcmCore.ParticipantPhyReq.labelInfo:type_name -> pcmCore.ParticipantLabel
17, // 10: pcmCore.ParticipantAvailReq.nodeAvailInfo:type_name -> pcmCore.NodeAvailInfo 15, // 10: pcmCore.ParticipantPhyReq.queueInfo:type_name -> pcmCore.QueuePhyInfo
16, // 11: pcmCore.ListParticipantAvailResp.ParticipantAvails:type_name -> pcmCore.ParticipantAvailReq 18, // 11: pcmCore.ParticipantAvailReq.nodeAvailInfo:type_name -> pcmCore.NodeAvailInfo
21, // 12: pcmCore.ParticipantServiceResp.data:type_name -> pcmCore.ClientInfo 17, // 12: pcmCore.ListParticipantAvailResp.ParticipantAvails:type_name -> pcmCore.ParticipantAvailReq
1, // 13: pcmCore.pcmCore.SyncInfo:input_type -> pcmCore.SyncInfoReq 22, // 13: pcmCore.ParticipantServiceResp.data:type_name -> pcmCore.ClientInfo
6, // 14: pcmCore.pcmCore.InfoList:input_type -> pcmCore.InfoListReq 1, // 14: pcmCore.pcmCore.SyncInfo:input_type -> pcmCore.SyncInfoReq
13, // 15: pcmCore.participantService.registerParticipant:input_type -> pcmCore.ParticipantPhyReq 6, // 15: pcmCore.pcmCore.InfoList:input_type -> pcmCore.InfoListReq
15, // 16: pcmCore.participantService.reportHeartbeat:input_type -> pcmCore.ParticipantHeartbeatReq 13, // 16: pcmCore.participantService.registerParticipant:input_type -> pcmCore.ParticipantPhyReq
16, // 17: pcmCore.participantService.reportAvailable:input_type -> pcmCore.ParticipantAvailReq 16, // 17: pcmCore.participantService.reportHeartbeat:input_type -> pcmCore.ParticipantHeartbeatReq
8, // 18: pcmCore.participantService.listParticipant:input_type -> pcmCore.ParticipantTenant 17, // 18: pcmCore.participantService.reportAvailable:input_type -> pcmCore.ParticipantAvailReq
8, // 19: pcmCore.participantService.listPhyAvailable:input_type -> pcmCore.ParticipantTenant 8, // 19: pcmCore.participantService.listParticipant:input_type -> pcmCore.ParticipantTenant
8, // 20: pcmCore.participantService.listPhyInformation:input_type -> pcmCore.ParticipantTenant 8, // 20: pcmCore.participantService.listPhyAvailable:input_type -> pcmCore.ParticipantTenant
5, // 21: pcmCore.pcmCore.SyncInfo:output_type -> pcmCore.SyncInfoResp 8, // 21: pcmCore.participantService.listPhyInformation:input_type -> pcmCore.ParticipantTenant
7, // 22: pcmCore.pcmCore.InfoList:output_type -> pcmCore.InfoListResp 5, // 22: pcmCore.pcmCore.SyncInfo:output_type -> pcmCore.SyncInfoResp
11, // 23: pcmCore.participantService.registerParticipant:output_type -> pcmCore.ParticipantPhyResp 7, // 23: pcmCore.pcmCore.InfoList:output_type -> pcmCore.InfoListResp
10, // 24: pcmCore.participantService.reportHeartbeat:output_type -> pcmCore.HealthCheckResp 11, // 24: pcmCore.participantService.registerParticipant:output_type -> pcmCore.ParticipantPhyResp
19, // 25: pcmCore.participantService.reportAvailable:output_type -> pcmCore.ParticipantResp 10, // 25: pcmCore.participantService.reportHeartbeat:output_type -> pcmCore.HealthCheckResp
20, // 26: pcmCore.participantService.listParticipant:output_type -> pcmCore.ParticipantServiceResp 20, // 26: pcmCore.participantService.reportAvailable:output_type -> pcmCore.ParticipantResp
18, // 27: pcmCore.participantService.listPhyAvailable:output_type -> pcmCore.ListParticipantAvailResp 21, // 27: pcmCore.participantService.listParticipant:output_type -> pcmCore.ParticipantServiceResp
12, // 28: pcmCore.participantService.listPhyInformation:output_type -> pcmCore.ListParticipantPhyResp 19, // 28: pcmCore.participantService.listPhyAvailable:output_type -> pcmCore.ListParticipantAvailResp
21, // [21:29] is the sub-list for method output_type 12, // 29: pcmCore.participantService.listPhyInformation:output_type -> pcmCore.ListParticipantPhyResp
13, // [13:21] is the sub-list for method input_type 22, // [22:30] is the sub-list for method output_type
13, // [13:13] is the sub-list for extension type_name 14, // [14:22] is the sub-list for method input_type
13, // [13:13] is the sub-list for extension extendee 14, // [14:14] is the sub-list for extension type_name
0, // [0:13] is the sub-list for field type_name 14, // [14:14] is the sub-list for extension extendee
0, // [0:14] is the sub-list for field type_name
} }
func init() { file_pb_pcmCore_proto_init() } func init() { file_pb_pcmCore_proto_init() }
@ -2471,7 +2677,7 @@ func file_pb_pcmCore_proto_init() {
} }
} }
file_pb_pcmCore_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { file_pb_pcmCore_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ParticipantHeartbeatReq); i { switch v := v.(*QueuePhyInfo); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -2483,7 +2689,7 @@ func file_pb_pcmCore_proto_init() {
} }
} }
file_pb_pcmCore_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { file_pb_pcmCore_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ParticipantAvailReq); i { switch v := v.(*ParticipantHeartbeatReq); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -2495,7 +2701,7 @@ func file_pb_pcmCore_proto_init() {
} }
} }
file_pb_pcmCore_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { file_pb_pcmCore_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*NodeAvailInfo); i { switch v := v.(*ParticipantAvailReq); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -2507,7 +2713,7 @@ func file_pb_pcmCore_proto_init() {
} }
} }
file_pb_pcmCore_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { file_pb_pcmCore_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListParticipantAvailResp); i { switch v := v.(*NodeAvailInfo); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -2519,7 +2725,7 @@ func file_pb_pcmCore_proto_init() {
} }
} }
file_pb_pcmCore_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { file_pb_pcmCore_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ParticipantResp); i { switch v := v.(*ListParticipantAvailResp); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -2531,7 +2737,7 @@ func file_pb_pcmCore_proto_init() {
} }
} }
file_pb_pcmCore_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { file_pb_pcmCore_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ParticipantServiceResp); i { switch v := v.(*ParticipantResp); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -2543,6 +2749,18 @@ func file_pb_pcmCore_proto_init() {
} }
} }
file_pb_pcmCore_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { file_pb_pcmCore_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ParticipantServiceResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pb_pcmCore_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ClientInfo); i { switch v := v.(*ClientInfo); i {
case 0: case 0:
return &v.state return &v.state
@ -2561,7 +2779,7 @@ func file_pb_pcmCore_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_pb_pcmCore_proto_rawDesc, RawDescriptor: file_pb_pcmCore_proto_rawDesc,
NumEnums: 1, NumEnums: 1,
NumMessages: 21, NumMessages: 22,
NumExtensions: 0, NumExtensions: 0,
NumServices: 2, NumServices: 2,
}, },