| @@ -0,0 +1,19 @@ | |||||
| Name: slurmcore-api | |||||
| Host: 0.0.0.0 | |||||
| Port: 8999 | |||||
| #pay success notify order-mq for kq(kafka pub sub) | |||||
| ScheduleHpcConf: | |||||
| Brokers: | |||||
| - 10.101.15.161:9092 | |||||
| HpcTopic: Schedule-Hpc-Topic | |||||
| CloudTopic: Schedule-Cloud-Topic | |||||
| DB: | |||||
| DataSource: root:uJpLd6u-J?HC1@(106.53.150.192:3306)/pcm | |||||
| Redis: | |||||
| Host: localhost:6379 | |||||
| Cache: | |||||
| - Host: localhost:6379 | |||||
| @@ -1,4 +0,0 @@ | |||||
| Name: slurmcore-api | |||||
| Host: 0.0.0.0 | |||||
| Port: 8999 | |||||
| DataSourceName: root:uJpLd6u-J?HC1@(106.53.150.192:3306)/slurm | |||||
| @@ -1,7 +1,23 @@ | |||||
| package config | package config | ||||
| import "github.com/zeromicro/go-zero/rest" | |||||
| import ( | |||||
| "github.com/zeromicro/go-zero/core/stores/cache" | |||||
| "github.com/zeromicro/go-zero/core/stores/redis" | |||||
| "github.com/zeromicro/go-zero/rest" | |||||
| ) | |||||
| type Config struct { | type Config struct { | ||||
| rest.RestConf | rest.RestConf | ||||
| ScheduleHpcConf KqConfig | |||||
| DB struct { | |||||
| DataSource string | |||||
| } | |||||
| Redis redis.RedisConf | |||||
| Cache cache.CacheConf | |||||
| } | |||||
| type KqConfig struct { | |||||
| Brokers []string | |||||
| HpcTopic string | |||||
| CloudTopic string | |||||
| } | } | ||||
| @@ -1,6 +1,7 @@ | |||||
| package handler | package handler | ||||
| import ( | import ( | ||||
| "PCM/common/tool" | |||||
| "net/http" | "net/http" | ||||
| "PCM/adaptor/PCM-CORE/api/internal/logic" | "PCM/adaptor/PCM-CORE/api/internal/logic" | ||||
| @@ -16,7 +17,9 @@ func scheduleTaskHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { | |||||
| httpx.ErrorCtx(r.Context(), w, err) | httpx.ErrorCtx(r.Context(), w, err) | ||||
| return | return | ||||
| } | } | ||||
| // 解析yaml文件 | |||||
| _, fileHeader, err := r.FormFile("file") | |||||
| err = tool.Yaml2struct(fileHeader, &req) | |||||
| l := logic.NewScheduleTaskLogic(r.Context(), svcCtx) | l := logic.NewScheduleTaskLogic(r.Context(), svcCtx) | ||||
| resp, err := l.ScheduleTask(&req) | resp, err := l.ScheduleTask(&req) | ||||
| if err != nil { | if err != nil { | ||||
| @@ -1,10 +1,14 @@ | |||||
| package logic | package logic | ||||
| import ( | import ( | ||||
| "PCM/adaptor/PCM-CORE/model" | |||||
| "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/hpccoreclient" | |||||
| "PCM/common/constant" | |||||
| "PCM/common/tool" | "PCM/common/tool" | ||||
| "context" | "context" | ||||
| "encoding/json" | "encoding/json" | ||||
| appv1 "k8s.io/api/apps/v1" | appv1 "k8s.io/api/apps/v1" | ||||
| "strconv" | |||||
| "PCM/adaptor/PCM-CORE/api/internal/svc" | "PCM/adaptor/PCM-CORE/api/internal/svc" | ||||
| "PCM/adaptor/PCM-CORE/api/internal/types" | "PCM/adaptor/PCM-CORE/api/internal/types" | ||||
| @@ -33,11 +37,37 @@ func NewScheduleTaskLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Sche | |||||
| } | } | ||||
| func (l *ScheduleTaskLogic) ScheduleTask(req *types.ScheduleTaskReq) (resp *types.ScheduleTaskResp, err error) { | func (l *ScheduleTaskLogic) ScheduleTask(req *types.ScheduleTaskReq) (resp *types.ScheduleTaskResp, err error) { | ||||
| task := model.Task{ | |||||
| Status: "pending", | |||||
| Description: req.Description, | |||||
| Name: req.Name, | |||||
| } | |||||
| switch req.Kind { | switch req.Kind { | ||||
| case "cloud": | case "cloud": | ||||
| cloudTask(req.Metadata) | |||||
| case "slurm": | |||||
| SlurmTask(req.Metadata) | |||||
| task.Type = constant.TASK_TYPE_CLOUD | |||||
| jsonStr, _ := json.Marshal(req.Metadata) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } | |||||
| l.svcCtx.ScheduleCloudClient.Push(string(jsonStr)) | |||||
| case "hpc": | |||||
| task.Type = constant.TASK_TYPE_HPC | |||||
| // 保存作业信息到数据库并获取id | |||||
| result, err := l.svcCtx.TaskModel.Insert(l.ctx, &task) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } | |||||
| id, _ := result.LastInsertId() | |||||
| l.svcCtx.RedisClient.Set(l.ctx, "taskStatus_"+strconv.FormatInt(id, 10), "pending", 0).Result() | |||||
| // 解析结构体并转换成入参 | |||||
| var submitJobReq *hpccoreclient.SubmitJobReq | |||||
| tool.Convert(req.Metadata, &submitJobReq) | |||||
| submitJobReq.TaskId = id | |||||
| byteArray, _ := json.Marshal(submitJobReq) | |||||
| l.svcCtx.ScheduleHpcClient.Push(string(byteArray)) | |||||
| case "ai": | |||||
| task.Type = constant.TASK_TYPE_AI | |||||
| } | } | ||||
| return resp, err | return resp, err | ||||
| @@ -50,8 +80,3 @@ func cloudTask(metadata interface{}) { | |||||
| json.Unmarshal(jsonStr, &deployment) | json.Unmarshal(jsonStr, &deployment) | ||||
| tool.HttpPost("localhost:8082/api/v1/deployments/create", deployment) | tool.HttpPost("localhost:8082/api/v1/deployments/create", deployment) | ||||
| } | } | ||||
| func SlurmTask(metadata interface{}) { | |||||
| jsonStr, _ := json.Marshal(metadata) | |||||
| tool.HttpPost("localhost:8899/submitJob", jsonStr) | |||||
| } | |||||
| @@ -2,14 +2,29 @@ package svc | |||||
| import ( | import ( | ||||
| "PCM/adaptor/PCM-CORE/api/internal/config" | "PCM/adaptor/PCM-CORE/api/internal/config" | ||||
| "PCM/adaptor/PCM-CORE/model" | |||||
| "github.com/go-redis/redis/v8" | |||||
| "github.com/zeromicro/go-queue/kq" | |||||
| "github.com/zeromicro/go-zero/core/stores/sqlx" | |||||
| ) | ) | ||||
| type ServiceContext struct { | type ServiceContext struct { | ||||
| Config config.Config | |||||
| Config config.Config | |||||
| ScheduleHpcClient *kq.Pusher | |||||
| RedisClient *redis.Client | |||||
| ScheduleCloudClient *kq.Pusher | |||||
| TaskModel model.TaskModel | |||||
| } | } | ||||
| func NewServiceContext(c config.Config) *ServiceContext { | func NewServiceContext(c config.Config) *ServiceContext { | ||||
| sqlConn := sqlx.NewMysql(c.DB.DataSource) | |||||
| return &ServiceContext{ | return &ServiceContext{ | ||||
| Config: c, | Config: c, | ||||
| RedisClient: redis.NewClient(&redis.Options{ | |||||
| Addr: c.Redis.Host, | |||||
| }), | |||||
| TaskModel: model.NewTaskModel(sqlConn, c.Cache), | |||||
| ScheduleHpcClient: kq.NewPusher(c.ScheduleHpcConf.Brokers, c.ScheduleHpcConf.HpcTopic), | |||||
| ScheduleCloudClient: kq.NewPusher(c.ScheduleHpcConf.Brokers, c.ScheduleHpcConf.CloudTopic), | |||||
| } | } | ||||
| } | } | ||||
| @@ -2,9 +2,11 @@ | |||||
| package types | package types | ||||
| type ScheduleTaskReq struct { | type ScheduleTaskReq struct { | ||||
| Operate string `yaml:"operate"` | |||||
| Kind string `yaml:"kind"` | |||||
| Metadata interface{} `yaml:"metadata"` | |||||
| Operate string `yaml:"operate"` | |||||
| Kind string `yaml:"kind"` | |||||
| Name string `yaml:"name"` | |||||
| Description string `yaml:"description"` | |||||
| Metadata interface{} `yaml:"metadata"` | |||||
| } | } | ||||
| type ScheduleTaskResp struct { | type ScheduleTaskResp struct { | ||||
| @@ -9,9 +9,11 @@ info( | |||||
| type ( | type ( | ||||
| scheduleTaskReq { | scheduleTaskReq { | ||||
| Operate string `yaml:"operate"` | |||||
| Kind string `yaml:"kind"` | |||||
| Metadata interface{} `yaml:"metadata"` | |||||
| Operate string `yaml:"operate"` | |||||
| Kind string `yaml:"kind"` | |||||
| Name string `yaml:"name"` | |||||
| Description string `yaml:"description"` | |||||
| Metadata interface{} `yaml:"metadata"` | |||||
| } | } | ||||
| scheduleTaskResp { | scheduleTaskResp { | ||||
| Code int32 `json:"code"` | Code int32 `json:"code"` | ||||
| @@ -12,7 +12,7 @@ import ( | |||||
| "github.com/zeromicro/go-zero/rest" | "github.com/zeromicro/go-zero/rest" | ||||
| ) | ) | ||||
| var configFile = flag.String("f", "adaptor/PCM-CORE/api/etc/slurmcore-api.yaml", "the config file") | |||||
| var configFile = flag.String("f", "adaptor/PCM-CORE/api/etc/pcmcore-api.yaml", "the config file") | |||||
| func main() { | func main() { | ||||
| flag.Parse() | flag.Parse() | ||||
| @@ -0,0 +1,27 @@ | |||||
| package model | |||||
| import ( | |||||
| "github.com/zeromicro/go-zero/core/stores/cache" | |||||
| "github.com/zeromicro/go-zero/core/stores/sqlx" | |||||
| ) | |||||
| var _ DictModel = (*customDictModel)(nil) | |||||
| type ( | |||||
| // DictModel is an interface to be customized, add more methods here, | |||||
| // and implement the added methods in customDictModel. | |||||
| DictModel interface { | |||||
| dictModel | |||||
| } | |||||
| customDictModel struct { | |||||
| *defaultDictModel | |||||
| } | |||||
| ) | |||||
| // NewDictModel returns a model for the database table. | |||||
| func NewDictModel(conn sqlx.SqlConn, c cache.CacheConf) DictModel { | |||||
| return &customDictModel{ | |||||
| defaultDictModel: newDictModel(conn, c), | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,117 @@ | |||||
| // Code generated by goctl. DO NOT EDIT. | |||||
| package model | |||||
| import ( | |||||
| "context" | |||||
| "database/sql" | |||||
| "fmt" | |||||
| "strings" | |||||
| "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 ( | |||||
| dictFieldNames = builder.RawFieldNames(&Dict{}) | |||||
| dictRows = strings.Join(dictFieldNames, ",") | |||||
| dictRowsExpectAutoSet = strings.Join(stringx.Remove(dictFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",") | |||||
| dictRowsWithPlaceHolder = strings.Join(stringx.Remove(dictFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?" | |||||
| cachePcmDictIdPrefix = "cache:pcm:dict:id:" | |||||
| ) | |||||
| type ( | |||||
| dictModel interface { | |||||
| Insert(ctx context.Context, data *Dict) (sql.Result, error) | |||||
| FindOne(ctx context.Context, id int64) (*Dict, error) | |||||
| Update(ctx context.Context, data *Dict) error | |||||
| Delete(ctx context.Context, id int64) error | |||||
| } | |||||
| defaultDictModel struct { | |||||
| sqlc.CachedConn | |||||
| table string | |||||
| } | |||||
| Dict struct { | |||||
| Id int64 `db:"id"` // id | |||||
| DictName string `db:"dict_name"` // 字典名称 | |||||
| DictCode string `db:"dict_code"` // 字典编号 | |||||
| DictValue string `db:"dict_value"` // 字典值 | |||||
| Source string `db:"source"` // 来源 | |||||
| Description sql.NullString `db:"description"` // 描述 | |||||
| CreatedBy sql.NullInt64 `db:"created_by"` // 创建人 | |||||
| CreatedTime sql.NullTime `db:"created_time"` // 创建时间 | |||||
| UpdatedBy sql.NullInt64 `db:"updated_by"` // 更新人 | |||||
| UpdatedTime sql.NullTime `db:"updated_time"` // 更新时间 | |||||
| DeletedFlag int64 `db:"deleted_flag"` // 是否删除(0-否,1-是) | |||||
| } | |||||
| ) | |||||
| func newDictModel(conn sqlx.SqlConn, c cache.CacheConf) *defaultDictModel { | |||||
| return &defaultDictModel{ | |||||
| CachedConn: sqlc.NewConn(conn, c), | |||||
| table: "`dict`", | |||||
| } | |||||
| } | |||||
| func (m *defaultDictModel) Delete(ctx context.Context, id int64) error { | |||||
| pcmDictIdKey := fmt.Sprintf("%s%v", cachePcmDictIdPrefix, 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) | |||||
| }, pcmDictIdKey) | |||||
| return err | |||||
| } | |||||
| func (m *defaultDictModel) FindOne(ctx context.Context, id int64) (*Dict, error) { | |||||
| pcmDictIdKey := fmt.Sprintf("%s%v", cachePcmDictIdPrefix, id) | |||||
| var resp Dict | |||||
| err := m.QueryRowCtx(ctx, &resp, pcmDictIdKey, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) error { | |||||
| query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", dictRows, 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 *defaultDictModel) Insert(ctx context.Context, data *Dict) (sql.Result, error) { | |||||
| pcmDictIdKey := fmt.Sprintf("%s%v", cachePcmDictIdPrefix, 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, dictRowsExpectAutoSet) | |||||
| return conn.ExecCtx(ctx, query, data.DictName, data.DictCode, data.DictValue, data.Source, data.Description, data.CreatedBy, data.CreatedTime, data.UpdatedBy, data.UpdatedTime, data.DeletedFlag) | |||||
| }, pcmDictIdKey) | |||||
| return ret, err | |||||
| } | |||||
| func (m *defaultDictModel) Update(ctx context.Context, data *Dict) error { | |||||
| pcmDictIdKey := fmt.Sprintf("%s%v", cachePcmDictIdPrefix, 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, dictRowsWithPlaceHolder) | |||||
| return conn.ExecCtx(ctx, query, data.DictName, data.DictCode, data.DictValue, data.Source, data.Description, data.CreatedBy, data.CreatedTime, data.UpdatedBy, data.UpdatedTime, data.DeletedFlag, data.Id) | |||||
| }, pcmDictIdKey) | |||||
| return err | |||||
| } | |||||
| func (m *defaultDictModel) formatPrimary(primary interface{}) string { | |||||
| return fmt.Sprintf("%s%v", cachePcmDictIdPrefix, primary) | |||||
| } | |||||
| func (m *defaultDictModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary interface{}) error { | |||||
| query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", dictRows, m.table) | |||||
| return conn.QueryRowCtx(ctx, v, query, primary) | |||||
| } | |||||
| func (m *defaultDictModel) tableName() string { | |||||
| return m.table | |||||
| } | |||||
| @@ -0,0 +1,27 @@ | |||||
| package model | |||||
| import ( | |||||
| "github.com/zeromicro/go-zero/core/stores/cache" | |||||
| "github.com/zeromicro/go-zero/core/stores/sqlx" | |||||
| ) | |||||
| var _ TaskModel = (*customTaskModel)(nil) | |||||
| type ( | |||||
| // TaskModel is an interface to be customized, add more methods here, | |||||
| // and implement the added methods in customTaskModel. | |||||
| TaskModel interface { | |||||
| taskModel | |||||
| } | |||||
| customTaskModel struct { | |||||
| *defaultTaskModel | |||||
| } | |||||
| ) | |||||
| // NewTaskModel returns a model for the database table. | |||||
| func NewTaskModel(conn sqlx.SqlConn, c cache.CacheConf) TaskModel { | |||||
| return &customTaskModel{ | |||||
| defaultTaskModel: newTaskModel(conn, c), | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,124 @@ | |||||
| // Code generated by goctl. DO NOT EDIT. | |||||
| package model | |||||
| import ( | |||||
| "context" | |||||
| "database/sql" | |||||
| "fmt" | |||||
| "strings" | |||||
| "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 ( | |||||
| taskFieldNames = builder.RawFieldNames(&Task{}) | |||||
| taskRows = strings.Join(taskFieldNames, ",") | |||||
| taskRowsExpectAutoSet = strings.Join(stringx.Remove(taskFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",") | |||||
| taskRowsWithPlaceHolder = strings.Join(stringx.Remove(taskFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?" | |||||
| cachePcmTaskIdPrefix = "cache:pcm:task:id:" | |||||
| ) | |||||
| type ( | |||||
| taskModel interface { | |||||
| Insert(ctx context.Context, data *Task) (sql.Result, error) | |||||
| FindOne(ctx context.Context, id int64) (*Task, error) | |||||
| Update(ctx context.Context, data *Task) error | |||||
| Delete(ctx context.Context, id int64) error | |||||
| } | |||||
| defaultTaskModel struct { | |||||
| sqlc.CachedConn | |||||
| table string | |||||
| } | |||||
| Task struct { | |||||
| Id int64 `db:"id"` // id | |||||
| JobId string `db:"job_id"` | |||||
| Description string `db:"description"` // 作业描述 | |||||
| Name string `db:"name"` // 作业名称 | |||||
| Type int64 `db:"type"` // 作业类型(1-云算、2-超算、3-智算) | |||||
| Status string `db:"status"` // 作业状态 | |||||
| Strategy int64 `db:"strategy"` // 策略 | |||||
| SynergyStatus int64 `db:"synergy_status"` // 协同状态(0-未协同、1-已协同) | |||||
| CardCount int64 `db:"card_count"` // 卡数 | |||||
| StartTime sql.NullTime `db:"start_time"` // 开始运行时间 | |||||
| EndTime sql.NullTime `db:"end_time"` // 结束运行时间 | |||||
| RunningTime int64 `db:"running_time"` // 已运行时间(单位秒) | |||||
| Result string `db:"result"` // 作业结果 | |||||
| CreatedBy int64 `db:"created_by"` // 创建人 | |||||
| CreatedTime sql.NullTime `db:"created_time"` // 创建时间 | |||||
| UpdatedBy int64 `db:"updated_by"` // 更新人 | |||||
| UpdatedTime sql.NullTime `db:"updated_time"` // 更新时间 | |||||
| DeletedFlag int64 `db:"deleted_flag"` // 是否删除(0-否,1-是) | |||||
| } | |||||
| ) | |||||
| func newTaskModel(conn sqlx.SqlConn, c cache.CacheConf) *defaultTaskModel { | |||||
| return &defaultTaskModel{ | |||||
| CachedConn: sqlc.NewConn(conn, c), | |||||
| table: "`task`", | |||||
| } | |||||
| } | |||||
| func (m *defaultTaskModel) Delete(ctx context.Context, id int64) error { | |||||
| pcmTaskIdKey := fmt.Sprintf("%s%v", cachePcmTaskIdPrefix, 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) | |||||
| }, pcmTaskIdKey) | |||||
| return err | |||||
| } | |||||
| func (m *defaultTaskModel) FindOne(ctx context.Context, id int64) (*Task, error) { | |||||
| pcmTaskIdKey := fmt.Sprintf("%s%v", cachePcmTaskIdPrefix, id) | |||||
| var resp Task | |||||
| err := m.QueryRowCtx(ctx, &resp, pcmTaskIdKey, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) error { | |||||
| query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", taskRows, 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 *defaultTaskModel) Insert(ctx context.Context, data *Task) (sql.Result, error) { | |||||
| pcmTaskIdKey := fmt.Sprintf("%s%v", cachePcmTaskIdPrefix, 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, taskRowsExpectAutoSet) | |||||
| return conn.ExecCtx(ctx, query, data.JobId, data.Description, data.Name, data.Type, data.Status, data.Strategy, data.SynergyStatus, data.CardCount, data.StartTime, data.EndTime, data.RunningTime, data.Result, data.CreatedBy, data.CreatedTime, data.UpdatedBy, data.UpdatedTime, data.DeletedFlag) | |||||
| }, pcmTaskIdKey) | |||||
| return ret, err | |||||
| } | |||||
| func (m *defaultTaskModel) Update(ctx context.Context, data *Task) error { | |||||
| pcmTaskIdKey := fmt.Sprintf("%s%v", cachePcmTaskIdPrefix, 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, taskRowsWithPlaceHolder) | |||||
| return conn.ExecCtx(ctx, query, data.JobId, data.Description, data.Name, data.Type, data.Status, data.Strategy, data.SynergyStatus, data.CardCount, data.StartTime, data.EndTime, data.RunningTime, data.Result, data.CreatedBy, data.CreatedTime, data.UpdatedBy, data.UpdatedTime, data.DeletedFlag, data.Id) | |||||
| }, pcmTaskIdKey) | |||||
| return err | |||||
| } | |||||
| func (m *defaultTaskModel) formatPrimary(primary interface{}) string { | |||||
| return fmt.Sprintf("%s%v", cachePcmTaskIdPrefix, primary) | |||||
| } | |||||
| func (m *defaultTaskModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary interface{}) error { | |||||
| query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", taskRows, m.table) | |||||
| return conn.QueryRowCtx(ctx, v, query, primary) | |||||
| } | |||||
| func (m *defaultTaskModel) tableName() string { | |||||
| return m.table | |||||
| } | |||||
| @@ -0,0 +1,5 @@ | |||||
| package model | |||||
| import "github.com/zeromicro/go-zero/core/stores/sqlx" | |||||
| var ErrNotFound = sqlx.ErrNotFound | |||||
| @@ -1,7 +1,7 @@ | |||||
| // Code generated by protoc-gen-go-grpc. DO NOT EDIT. | // Code generated by protoc-gen-go-grpc. DO NOT EDIT. | ||||
| // versions: | // versions: | ||||
| // - protoc-gen-go-grpc v1.2.0 | // - protoc-gen-go-grpc v1.2.0 | ||||
| // - protoc v3.12.4 | |||||
| // - protoc v3.19.4 | |||||
| // source: hpcAC.proto | // source: hpcAC.proto | ||||
| package hpcAC | package hpcAC | ||||
| @@ -22,10 +22,11 @@ type ( | |||||
| FileDataReq = hpcAC.FileDataReq | FileDataReq = hpcAC.FileDataReq | ||||
| FileDataResp = hpcAC.FileDataResp | FileDataResp = hpcAC.FileDataResp | ||||
| GetJobDetailResp = hpcAC.GetJobDetailResp | GetJobDetailResp = hpcAC.GetJobDetailResp | ||||
| HistoryJob = hpcAC.HistoryJob | |||||
| HistoryJobData = hpcAC.HistoryJobData | |||||
| HistoryJobDetail = hpcAC.HistoryJobDetail | HistoryJobDetail = hpcAC.HistoryJobDetail | ||||
| HistoryJobDetailReq = hpcAC.HistoryJobDetailReq | HistoryJobDetailReq = hpcAC.HistoryJobDetailReq | ||||
| HistoryJobDetailResp = hpcAC.HistoryJobDetailResp | HistoryJobDetailResp = hpcAC.HistoryJobDetailResp | ||||
| HistoryJobList = hpcAC.HistoryJobList | |||||
| Job = hpcAC.Job | Job = hpcAC.Job | ||||
| JobCore = hpcAC.JobCore | JobCore = hpcAC.JobCore | ||||
| JobDetail = hpcAC.JobDetail | JobDetail = hpcAC.JobDetail | ||||
| @@ -1,15 +1,11 @@ | |||||
| package logic | package logic | ||||
| import ( | import ( | ||||
| "context" | |||||
| "encoding/json" | |||||
| "io" | |||||
| "net/http" | |||||
| "time" | |||||
| "PCM/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC" | "PCM/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC" | ||||
| "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/svc" | "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/svc" | ||||
| "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/util" | "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/util" | ||||
| "PCM/common/tool" | |||||
| "context" | |||||
| "github.com/zeromicro/go-zero/core/logx" | "github.com/zeromicro/go-zero/core/logx" | ||||
| ) | ) | ||||
| @@ -31,40 +27,46 @@ func NewGetJobDetailLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetJ | |||||
| // GetJobDetail get job detail | // GetJobDetail get job detail | ||||
| func (l *GetJobDetailLogic) GetJobDetail(in *hpcAC.JobDetailReq) (*hpcAC.GetJobDetailResp, error) { | func (l *GetJobDetailLogic) GetJobDetail(in *hpcAC.JobDetailReq) (*hpcAC.GetJobDetailResp, error) { | ||||
| // todo: add your logic here and delete this line | // todo: add your logic here and delete this line | ||||
| var resp hpcAC.GetJobDetailResp | |||||
| jobDetailUrl := "/hpc/openapi/v2/jobs/" | |||||
| jobId := in.JobId | |||||
| token := util.GetToken() | |||||
| c := http.Client{Timeout: time.Duration(3) * time.Second} | |||||
| reqUrl, err := http.NewRequest("GET", "https://api01.hpccube.com:65106/"+jobDetailUrl+jobId, nil) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } | |||||
| reqUrl.Header.Add("token", token) | |||||
| respUrl, err := c.Do(reqUrl) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } | |||||
| body, err := io.ReadAll(respUrl.Body) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } | |||||
| if err = json.Unmarshal(body, &resp); err != nil { | |||||
| if resp.Code != "0" { | |||||
| resp.Data = nil | |||||
| } else { | |||||
| return nil, err | |||||
| } | |||||
| } | |||||
| return &resp, nil | |||||
| //var resp hpcAC.GetJobDetailResp | |||||
| // | |||||
| //jobDetailUrl := | |||||
| // | |||||
| //jobId := in.JobId | |||||
| // | |||||
| //token := util.GetToken() | |||||
| //c := http.Client{Timeout: time.Duration(3) * time.Second} | |||||
| // | |||||
| //reqUrl, err := http.NewRequest("GET", "https://api01.hpccube.com:65106/"+jobDetailUrl+jobId, nil) | |||||
| // | |||||
| //if err != nil { | |||||
| // return nil, err | |||||
| //} | |||||
| // | |||||
| //reqUrl.Header.Add("token", token) | |||||
| // | |||||
| //respUrl, err := c.Do(reqUrl) | |||||
| //if err != nil { | |||||
| // return nil, err | |||||
| //} | |||||
| // | |||||
| //body, err := io.ReadAll(respUrl.Body) | |||||
| //if err != nil { | |||||
| // return nil, err | |||||
| //} | |||||
| // | |||||
| //if err = json.Unmarshal(body, &resp); err != nil { | |||||
| // if resp.Code != "0" { | |||||
| // resp.Data = nil | |||||
| // } else { | |||||
| // return nil, err | |||||
| // } | |||||
| //} | |||||
| var resp *hpcAC.GetJobDetailResp | |||||
| acHttpRequest := tool.GetACHttpRequest() | |||||
| acHttpRequest.SetHeader(tool.ContentType, tool.ApplicationJson). | |||||
| SetResult(&resp). | |||||
| SetHeader("token", util.GetToken()). | |||||
| Get("https://api01.hpccube.com:65106/hpc/openapi/v2/jobs/" + in.JobId) | |||||
| return resp, nil | |||||
| } | } | ||||
| @@ -127,7 +127,7 @@ message JobDetail{ | |||||
| string job_name = 14; // @gotags: copier:"JobName", json:"jobName" | string job_name = 14; // @gotags: copier:"JobName", json:"jobName" | ||||
| string job_run_time = 15; // @gotags: copier:"JobRunTime", json:"jobRunTime" | string job_run_time = 15; // @gotags: copier:"JobRunTime", json:"jobRunTime" | ||||
| string job_start_time = 16; // @gotags: copier:"JobStartTime", json:"jobStartTime" | string job_start_time = 16; // @gotags: copier:"JobStartTime", json:"jobStartTime" | ||||
| string job_status = 17; // @gotags: copier:"JobStatus", json:"jobStatus" | |||||
| string jobStatus = 17; // @gotags: copier:"JobStatus", json:"jobStatus" | |||||
| string job_submit_time = 18; // @gotags: copier:"JobSubmitTime", json:"jobSubmitTime" | string job_submit_time = 18; // @gotags: copier:"JobSubmitTime", json:"jobSubmitTime" | ||||
| JobVncSessionInfo job_session_info = 19; // @gotags: copier:"JobVncSessionInfo", json:"jobVncSessionInfo" | JobVncSessionInfo job_session_info = 19; // @gotags: copier:"JobVncSessionInfo", json:"jobVncSessionInfo" | ||||
| string job_manager_id = 20; // @gotags: copier:"JobManagerId", json:"jobmanagerId" | string job_manager_id = 20; // @gotags: copier:"JobManagerId", json:"jobmanagerId" | ||||
| @@ -155,7 +155,7 @@ message JobDetailReq{ | |||||
| message GetJobDetailResp{ | message GetJobDetailResp{ | ||||
| string code = 1; // @gotags: copier:"Code", json:"code" | string code = 1; // @gotags: copier:"Code", json:"code" | ||||
| string msg = 2; // @gotags: copier:"Msg", json:"msg" | string msg = 2; // @gotags: copier:"Msg", json:"msg" | ||||
| JobDetail data = 3; // @gotags: copier:"JobDetail", json:"data" | |||||
| JobDetail data = 3; // @gotags: copier:"data", json:"data" | |||||
| } | } | ||||
| /******************Job Detail End*************************/ | /******************Job Detail End*************************/ | ||||
| @@ -0,0 +1,14 @@ | |||||
| Name: hpccore.rpc | |||||
| ListenOn: 0.0.0.0:2003 | |||||
| #rpc | |||||
| ACRpcConf: | |||||
| Endpoints: | |||||
| - 127.0.0.1:2001 | |||||
| NonBlock: true | |||||
| #rpc | |||||
| THRpcConf: | |||||
| Endpoints: | |||||
| - 127.0.0.1:2002 | |||||
| NonBlock: true | |||||
| @@ -1,16 +0,0 @@ | |||||
| Name: hpcCoreApi | |||||
| Host: 0.0.0.0 | |||||
| Port: 8999 | |||||
| DataSourceName: root:uJpLd6u-J?HC1@(106.53.150.192:3306)/slurm | |||||
| #rpc | |||||
| ACRpcConf: | |||||
| Endpoints: | |||||
| - 127.0.0.1:2001 | |||||
| NonBlock: true | |||||
| #rpc | |||||
| THRpcConf: | |||||
| Endpoints: | |||||
| - 127.0.0.1:2002 | |||||
| NonBlock: true | |||||
| @@ -1,18 +1,16 @@ | |||||
| package main | package main | ||||
| import ( | import ( | ||||
| "flag" | |||||
| "fmt" | |||||
| "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/api/internal/config" | "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/api/internal/config" | ||||
| "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/api/internal/handler" | "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/api/internal/handler" | ||||
| "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/api/internal/svc" | "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/api/internal/svc" | ||||
| "flag" | |||||
| "fmt" | |||||
| "github.com/zeromicro/go-zero/core/conf" | "github.com/zeromicro/go-zero/core/conf" | ||||
| "github.com/zeromicro/go-zero/rest" | "github.com/zeromicro/go-zero/rest" | ||||
| ) | ) | ||||
| var configFile = flag.String("f", "adaptor/PCM-HPC/PCM-HPC-CORE/api/etc/hpccoreapi.yaml", "the config file") | |||||
| var configFile = flag.String("f", "adaptor/PCM-HPC/PCM-HPC-CORE/api/etc/hpccore.yaml", "the config file") | |||||
| func main() { | func main() { | ||||
| flag.Parse() | flag.Parse() | ||||
| @@ -0,0 +1,6 @@ | |||||
| #tmp | |||||
| tmp | |||||
| tmp/* | |||||
| @@ -0,0 +1,40 @@ | |||||
| Name: hpc-core-mq | |||||
| Host: 0.0.0.0 | |||||
| Port: 3001 | |||||
| Mode: dev | |||||
| Log: | |||||
| ServiceName: hpc-mq | |||||
| Level: error | |||||
| Redis: | |||||
| Host: localhost:6379 | |||||
| Cache: | |||||
| - Host: localhost:6379 | |||||
| #kq | |||||
| KqConf: | |||||
| Name: ScheduleHpc | |||||
| Brokers: | |||||
| - 10.101.15.161:9092 | |||||
| Group: Schedule-Hpc-group | |||||
| Topic: Schedule-Hpc-Topic | |||||
| Offset: first | |||||
| Consumers: 1 | |||||
| Processors: 1 | |||||
| #rpc | |||||
| HpcAcConf: | |||||
| Endpoints: | |||||
| - 127.0.0.1:2001 | |||||
| NonBlock: true | |||||
| #rpc | |||||
| HpcCoreConf: | |||||
| Endpoints: | |||||
| - 127.0.0.1:2003 | |||||
| NonBlock: true | |||||
| DB: | |||||
| DataSource: root:uJpLd6u-J?HC1@(106.53.150.192:3306)/pcm | |||||
| @@ -0,0 +1,34 @@ | |||||
| package main | |||||
| import ( | |||||
| "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/config" | |||||
| "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/listen" | |||||
| "flag" | |||||
| "github.com/zeromicro/go-zero/core/conf" | |||||
| "github.com/zeromicro/go-zero/core/service" | |||||
| ) | |||||
| var configFile = flag.String("f", "adaptor/PCM-HPC/PCM-HPC-CORE/mq/etc/hpcCore.yaml", "Specify the config file") | |||||
| func main() { | |||||
| flag.Parse() | |||||
| var c config.Config | |||||
| conf.MustLoad(*configFile, &c) | |||||
| // log、prometheus、trace、metricsUrl. | |||||
| if err := c.SetUp(); err != nil { | |||||
| panic(err) | |||||
| } | |||||
| serviceGroup := service.NewServiceGroup() | |||||
| defer serviceGroup.Stop() | |||||
| for _, mq := range listen.Mqs(c) { | |||||
| serviceGroup.Add(mq) | |||||
| } | |||||
| serviceGroup.Start() | |||||
| } | |||||
| @@ -0,0 +1,24 @@ | |||||
| package config | |||||
| import ( | |||||
| "github.com/zeromicro/go-queue/kq" | |||||
| "github.com/zeromicro/go-zero/core/service" | |||||
| "github.com/zeromicro/go-zero/core/stores/cache" | |||||
| "github.com/zeromicro/go-zero/core/stores/redis" | |||||
| "github.com/zeromicro/go-zero/zrpc" | |||||
| ) | |||||
| type Config struct { | |||||
| service.ServiceConf | |||||
| Redis redis.RedisConf | |||||
| DB struct { | |||||
| DataSource string | |||||
| } | |||||
| // kq : pub sub | |||||
| KqConf kq.KqConf | |||||
| Cache cache.CacheConf | |||||
| // rpc | |||||
| HpcAcConf zrpc.RpcClientConf | |||||
| HpcCoreConf zrpc.RpcClientConf | |||||
| } | |||||
| @@ -0,0 +1,22 @@ | |||||
| package listen | |||||
| import ( | |||||
| "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/config" | |||||
| kqMq "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/mqs/kq" | |||||
| "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/svc" | |||||
| "context" | |||||
| "github.com/zeromicro/go-queue/kq" | |||||
| "github.com/zeromicro/go-zero/core/service" | |||||
| ) | |||||
| // pub sub use kq (kafka) | |||||
| func KqMqs(c config.Config, ctx context.Context, svcContext *svc.ServiceContext) []service.Service { | |||||
| return []service.Service{ | |||||
| //Listening for changes in consumption flow status | |||||
| kq.MustNewQueue(c.KqConf, kqMq.NewScheduleHpcMq(ctx, svcContext)), | |||||
| //..... | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,41 @@ | |||||
| package listen | |||||
| import ( | |||||
| "PCM/adaptor/PCM-CORE/model" | |||||
| "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/config" | |||||
| "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/svc" | |||||
| "context" | |||||
| "github.com/go-redis/redis/v8" | |||||
| "github.com/zeromicro/go-zero/core/service" | |||||
| "github.com/zeromicro/go-zero/core/stores/sqlx" | |||||
| ) | |||||
| // back to all consumers | |||||
| func Mqs(c config.Config) []service.Service { | |||||
| svcContext := svc.NewServiceContext(c) | |||||
| // 启动定时任务 | |||||
| svcContext.Cron.Start() | |||||
| // 同步字典数据到缓存中 | |||||
| ctx := context.Background() | |||||
| // 初始化数据 | |||||
| initData(ctx, svcContext.SqlConn, svcContext.RedisClient) | |||||
| var services []service.Service | |||||
| //kq :pub sub | |||||
| services = append(services, KqMqs(c, ctx, svcContext)...) | |||||
| return services | |||||
| } | |||||
| func initData(ctx context.Context, sql sqlx.SqlConn, redisClient *redis.Client) { | |||||
| // 查询出字典数据列表 | |||||
| var dictList []model.Dict | |||||
| err := sql.QueryRows(&dictList, "select * from dict") | |||||
| if err != nil { | |||||
| return | |||||
| } | |||||
| for _, dict := range dictList { | |||||
| redisClient.Set(ctx, dict.DictValue, dict.DictCode, 0) | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,102 @@ | |||||
| package kq | |||||
| import ( | |||||
| "PCM/adaptor/PCM-HPC/PCM-AC/rpc/hpcacclient" | |||||
| "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/svc" | |||||
| "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/hpccoreclient" | |||||
| "PCM/common/tool" | |||||
| "context" | |||||
| "encoding/json" | |||||
| "github.com/robfig/cron/v3" | |||||
| "github.com/zeromicro/go-zero/core/logx" | |||||
| "strings" | |||||
| ) | |||||
| /* | |||||
| * | |||||
| Listening to the payment flow status change notification message queue | |||||
| */ | |||||
| type ScheduleHpcMq struct { | |||||
| ctx context.Context | |||||
| svcCtx *svc.ServiceContext | |||||
| } | |||||
| func NewScheduleHpcMq(ctx context.Context, svcCtx *svc.ServiceContext) *ScheduleHpcMq { | |||||
| return &ScheduleHpcMq{ | |||||
| ctx: ctx, | |||||
| svcCtx: svcCtx, | |||||
| } | |||||
| } | |||||
| func (l *ScheduleHpcMq) Consume(_, val string) error { | |||||
| var message hpccoreclient.SubmitJobReq | |||||
| if err := json.Unmarshal([]byte(val), &message); err != nil { | |||||
| logx.WithContext(l.ctx).Error("PaymentUpdateStatusMq->Consume Unmarshal err : %v , val : %s", err, val) | |||||
| return err | |||||
| } | |||||
| if err := l.execService(message); err != nil { | |||||
| logx.WithContext(l.ctx).Error("PaymentUpdateStatusMq->execService err : %v , val : %s , message:%+v", err, val, message) | |||||
| return err | |||||
| } | |||||
| return nil | |||||
| } | |||||
| func (l *ScheduleHpcMq) execService(message hpccoreclient.SubmitJobReq) error { | |||||
| // 提交作业到hpc-core | |||||
| var submitJobReq *hpccoreclient.SubmitJobReq | |||||
| tool.Convert(message, &submitJobReq) | |||||
| job, _ := l.svcCtx.HpcCoreRpc.SubmitJob(l.ctx, submitJobReq) | |||||
| // 启动定时任务查询作业状态 | |||||
| if job != nil { | |||||
| go l.addTaskCron(job.Data, submitJobReq.TaskId) | |||||
| } | |||||
| return nil | |||||
| } | |||||
| func (l *ScheduleHpcMq) addTaskCron(jobId string, taskId int64) { | |||||
| // 创建定时任务 | |||||
| entryId, err := l.addCron(jobId, taskId) | |||||
| if err != nil { | |||||
| return | |||||
| } | |||||
| // 将定时任务id缓存到redis 便于停止定时任务 | |||||
| l.svcCtx.RedisClient.Set(l.ctx, "taskCron_"+tool.Int64ToString(taskId), entryId, 0) | |||||
| } | |||||
| func (l *ScheduleHpcMq) addCron(jobId string, taskId int64) (string, error) { | |||||
| entryID, err := l.svcCtx.Cron.AddFunc("0/9 * * * * ?", func() { | |||||
| // 调用hpc-core获取job详细信息 | |||||
| req := hpcacclient.JobDetailReq{ | |||||
| JobId: jobId, | |||||
| } | |||||
| jobDetail, err := l.svcCtx.HpcAcRpc.GetJobDetail(l.ctx, &req) | |||||
| if err != nil { | |||||
| return | |||||
| } | |||||
| // 对比缓存中的数据 | |||||
| oldStatus, _ := l.svcCtx.RedisClient.Get(l.ctx, "taskStatus_"+tool.Int64ToString(taskId)).Result() | |||||
| if !strings.EqualFold(oldStatus, jobDetail.Data.JobStatus) { | |||||
| // job状态与之前不一致 修改redis和db中的数据 | |||||
| l.svcCtx.RedisClient.Set(l.ctx, "taskStatus_"+tool.Int64ToString(taskId), jobDetail.Data.JobStatus, 0) | |||||
| l.svcCtx.SqlConn.Exec("update task set job_id = ? , status = ? where id = ?", jobId, jobDetail.Data.JobStatus, taskId) | |||||
| } | |||||
| // 判断作业是否结束 | |||||
| l.endTask(taskId, jobDetail.Data.JobStatus) | |||||
| }) | |||||
| return tool.EntryIdToString(entryID), err | |||||
| } | |||||
| func (l *ScheduleHpcMq) endTask(taskId int64, currentStatus string) { | |||||
| // 查询字典中作业状态枚举值 | |||||
| statusDict, _ := l.svcCtx.RedisClient.Get(l.ctx, currentStatus).Result() | |||||
| if strings.EqualFold(statusDict, "suspended") || strings.EqualFold(statusDict, "completed") || strings.EqualFold(statusDict, "failed") { | |||||
| // 停止定时任务,清除缓存数据 | |||||
| entryId, _ := l.svcCtx.RedisClient.Get(l.ctx, "taskCron_"+tool.Int64ToString(taskId)).Result() | |||||
| l.svcCtx.Cron.Remove(cron.EntryID(tool.StringToInt(entryId))) | |||||
| l.svcCtx.RedisClient.Del(l.ctx, "taskStatus_"+tool.Int64ToString(taskId)) | |||||
| l.svcCtx.RedisClient.Del(l.ctx, "taskCron_"+tool.Int64ToString(taskId)) | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,38 @@ | |||||
| package svc | |||||
| import ( | |||||
| "PCM/adaptor/PCM-CORE/model" | |||||
| "PCM/adaptor/PCM-HPC/PCM-AC/rpc/hpcacclient" | |||||
| "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/config" | |||||
| "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/hpccoreclient" | |||||
| "github.com/go-redis/redis/v8" | |||||
| "github.com/robfig/cron/v3" | |||||
| "github.com/zeromicro/go-zero/core/stores/sqlx" | |||||
| "github.com/zeromicro/go-zero/zrpc" | |||||
| ) | |||||
| type ServiceContext struct { | |||||
| Config config.Config | |||||
| HpcAcRpc hpcacclient.HpcAC | |||||
| HpcCoreRpc hpccoreclient.HpcCore | |||||
| Cron *cron.Cron | |||||
| RedisClient *redis.Client | |||||
| TaskModel model.TaskModel | |||||
| DictModel model.DictModel | |||||
| SqlConn sqlx.SqlConn | |||||
| } | |||||
| func NewServiceContext(c config.Config) *ServiceContext { | |||||
| sqlConn := sqlx.NewMysql(c.DB.DataSource) | |||||
| return &ServiceContext{ | |||||
| SqlConn: sqlx.NewMysql(c.DB.DataSource), | |||||
| Cron: cron.New(cron.WithSeconds()), | |||||
| RedisClient: redis.NewClient(&redis.Options{ | |||||
| Addr: c.Redis.Host, | |||||
| }), | |||||
| Config: c, | |||||
| TaskModel: model.NewTaskModel(sqlConn, c.Cache), | |||||
| HpcAcRpc: hpcacclient.NewHpcAC(zrpc.MustNewClient(c.HpcAcConf)), | |||||
| HpcCoreRpc: hpccoreclient.NewHpcCore(zrpc.MustNewClient(c.HpcCoreConf)), | |||||
| } | |||||
| } | |||||
| @@ -25,9 +25,10 @@ type SubmitJobReq struct { | |||||
| sizeCache protoimpl.SizeCache | sizeCache protoimpl.SizeCache | ||||
| unknownFields protoimpl.UnknownFields | unknownFields protoimpl.UnknownFields | ||||
| Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` | |||||
| ThReq *THSubmitJobReq `protobuf:"bytes,2,opt,name=thReq,proto3" json:"thReq,omitempty"` | |||||
| AcReq *ACSubmitJobReq `protobuf:"bytes,3,opt,name=acReq,proto3" json:"acReq,omitempty"` | |||||
| TaskId int64 `protobuf:"varint,1,opt,name=taskId,proto3" json:"taskId,omitempty"` // @gotags: copier:"TaskId" | |||||
| Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` | |||||
| ThReq *THSubmitJobReq `protobuf:"bytes,3,opt,name=thReq,proto3" json:"thReq,omitempty"` | |||||
| AcReq *ACSubmitJobReq `protobuf:"bytes,4,opt,name=acReq,proto3" json:"acReq,omitempty"` | |||||
| } | } | ||||
| func (x *SubmitJobReq) Reset() { | func (x *SubmitJobReq) Reset() { | ||||
| @@ -62,6 +63,13 @@ func (*SubmitJobReq) Descriptor() ([]byte, []int) { | |||||
| return file_pcm_hpc_core_proto_rawDescGZIP(), []int{0} | return file_pcm_hpc_core_proto_rawDescGZIP(), []int{0} | ||||
| } | } | ||||
| func (x *SubmitJobReq) GetTaskId() int64 { | |||||
| if x != nil { | |||||
| return x.TaskId | |||||
| } | |||||
| return 0 | |||||
| } | |||||
| func (x *SubmitJobReq) GetVersion() string { | func (x *SubmitJobReq) GetVersion() string { | ||||
| if x != nil { | if x != nil { | ||||
| return x.Version | return x.Version | ||||
| @@ -1378,260 +1386,261 @@ var File_pcm_hpc_core_proto protoreflect.FileDescriptor | |||||
| var file_pcm_hpc_core_proto_rawDesc = []byte{ | var file_pcm_hpc_core_proto_rawDesc = []byte{ | ||||
| 0x0a, 0x12, 0x70, 0x63, 0x6d, 0x2d, 0x68, 0x70, 0x63, 0x2d, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, | 0x0a, 0x12, 0x70, 0x63, 0x6d, 0x2d, 0x68, 0x70, 0x63, 0x2d, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, | ||||
| 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x88, | |||||
| 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0xa0, | |||||
| 0x01, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, | 0x01, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, | ||||
| 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, | |||||
| 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x05, 0x74, 0x68, 0x52, | |||||
| 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, | |||||
| 0x61, 0x74, 0x65, 0x2e, 0x54, 0x48, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, | |||||
| 0x65, 0x71, 0x52, 0x05, 0x74, 0x68, 0x52, 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x63, 0x52, | |||||
| 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, | |||||
| 0x61, 0x74, 0x65, 0x2e, 0x41, 0x43, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, | |||||
| 0x65, 0x71, 0x52, 0x05, 0x61, 0x63, 0x52, 0x65, 0x71, 0x22, 0x49, 0x0a, 0x0d, 0x53, 0x75, 0x62, | |||||
| 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, | |||||
| 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, | |||||
| 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, | |||||
| 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, | |||||
| 0x44, 0x61, 0x74, 0x61, 0x22, 0x8f, 0x14, 0x0a, 0x0e, 0x54, 0x48, 0x53, 0x75, 0x62, 0x6d, 0x69, | |||||
| 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, | |||||
| 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, | |||||
| 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x74, 0x67, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x18, | |||||
| 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x74, 0x67, 0x46, 0x72, 0x65, 0x71, | |||||
| 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x03, | |||||
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x12, | |||||
| 0x26, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x5f, 0x70, 0x6f, | |||||
| 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x52, | |||||
| 0x65, 0x73, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x63, | |||||
| 0x5f, 0x73, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x6c, 0x6c, 0x6f, | |||||
| 0x63, 0x53, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x63, 0x18, 0x06, 0x20, 0x01, | |||||
| 0x28, 0x0d, 0x52, 0x04, 0x61, 0x72, 0x67, 0x63, 0x12, 0x22, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x76, | |||||
| 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, | |||||
| 0x65, 0x2e, 0x41, 0x72, 0x67, 0x76, 0x52, 0x04, 0x61, 0x72, 0x67, 0x76, 0x12, 0x1b, 0x0a, 0x09, | |||||
| 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, | |||||
| 0x08, 0x61, 0x72, 0x72, 0x61, 0x79, 0x49, 0x6e, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x65, 0x67, | |||||
| 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, | |||||
| 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6b, 0x70, 0x74, | |||||
| 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, | |||||
| 0x0c, 0x63, 0x6b, 0x70, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x19, 0x0a, | |||||
| 0x08, 0x63, 0x6b, 0x70, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, | |||||
| 0x07, 0x63, 0x6b, 0x70, 0x74, 0x44, 0x69, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, | |||||
| 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, | |||||
| 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, | |||||
| 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, | |||||
| 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x70, 0x75, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x18, 0x0e, | |||||
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x70, 0x75, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x22, 0x0a, | |||||
| 0x0d, 0x63, 0x70, 0x75, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, | |||||
| 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x70, 0x75, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x79, 0x70, | |||||
| 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, | |||||
| 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, | |||||
| 0x79, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, | |||||
| 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0b, | |||||
| 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x03, 0x28, | |||||
| 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x76, | |||||
| 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, | |||||
| 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x76, 0x5f, 0x73, 0x69, 0x7a, | |||||
| 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x6e, 0x76, 0x53, 0x69, 0x7a, 0x65, | |||||
| 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x63, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x14, 0x20, | |||||
| 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1a, 0x0a, | |||||
| 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, | |||||
| 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x72, 0x65, | |||||
| 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x72, 0x65, 0x73, 0x12, 0x19, 0x0a, | |||||
| 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, | |||||
| 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x6d, 0x65, | |||||
| 0x64, 0x69, 0x61, 0x74, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x69, 0x6d, 0x6d, | |||||
| 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, | |||||
| 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x29, 0x0a, | |||||
| 0x11, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x66, 0x61, | |||||
| 0x69, 0x6c, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6b, 0x69, 0x6c, 0x6c, 0x4f, 0x6e, | |||||
| 0x4e, 0x6f, 0x64, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x63, 0x65, | |||||
| 0x6e, 0x73, 0x65, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, 0x63, 0x65, | |||||
| 0x6e, 0x73, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x74, 0x79, 0x70, | |||||
| 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, | |||||
| 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x1d, | |||||
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x69, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x12, 0x19, | |||||
| 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, | |||||
| 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x65, 0x6d, | |||||
| 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, | |||||
| 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, | |||||
| 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, | |||||
| 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x21, 0x20, 0x01, | |||||
| 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, | |||||
| 0x69, 0x63, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x65, 0x12, | |||||
| 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x23, 0x20, 0x01, | |||||
| 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1b, 0x0a, 0x09, | |||||
| 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0d, 0x52, | |||||
| 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x74, 0x68, | |||||
| 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6f, | |||||
| 0x74, 0x68, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x76, 0x65, 0x72, | |||||
| 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6f, 0x76, | |||||
| 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, | |||||
| 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72, | |||||
| 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, | |||||
| 0x73, 0x69, 0x7a, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x6e, | |||||
| 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, | |||||
| 0x79, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, | |||||
| 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x2a, 0x20, 0x01, | |||||
| 0x28, 0x0d, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x71, | |||||
| 0x6f, 0x73, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x71, 0x6f, 0x73, 0x12, 0x1b, 0x0a, | |||||
| 0x09, 0x72, 0x65, 0x73, 0x70, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, | |||||
| 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, | |||||
| 0x71, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, | |||||
| 0x65, 0x71, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, | |||||
| 0x75, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, | |||||
| 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, | |||||
| 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, | |||||
| 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x30, 0x20, | |||||
| 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, | |||||
| 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x68, 0x61, | |||||
| 0x72, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x73, 0x70, 0x61, 0x6e, 0x6b, 0x5f, 0x6a, 0x6f, 0x62, | |||||
| 0x5f, 0x65, 0x6e, 0x76, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0d, 0x52, | |||||
| 0x0f, 0x73, 0x70, 0x61, 0x6e, 0x6b, 0x4a, 0x6f, 0x62, 0x45, 0x6e, 0x76, 0x53, 0x69, 0x7a, 0x65, | |||||
| 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x18, 0x33, 0x20, | |||||
| 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, | |||||
| 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x34, 0x20, 0x01, 0x28, | |||||
| 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, | |||||
| 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, | |||||
| 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, | |||||
| 0x69, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, | |||||
| 0x12, 0x24, 0x0a, 0x0e, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, | |||||
| 0x65, 0x73, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x41, 0x6c, | |||||
| 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x61, 0x72, 0x6e, 0x5f, 0x73, | |||||
| 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x61, 0x72, | |||||
| 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x61, 0x72, 0x6e, 0x5f, | |||||
| 0x74, 0x69, 0x6d, 0x65, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, | |||||
| 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x69, 0x72, | |||||
| 0x18, 0x3a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x12, | |||||
| 0x22, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x73, 0x6b, | |||||
| 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, 0x54, | |||||
| 0x61, 0x73, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, | |||||
| 0x3c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x43, 0x70, 0x75, 0x73, 0x12, 0x19, | |||||
| 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0d, | |||||
| 0x52, 0x07, 0x6d, 0x61, 0x78, 0x43, 0x70, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, | |||||
| 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x69, | |||||
| 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x6f, | |||||
| 0x64, 0x65, 0x73, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x4e, 0x6f, | |||||
| 0x64, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, 0x65, | |||||
| 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x6f, | |||||
| 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, | |||||
| 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, | |||||
| 0x18, 0x41, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, | |||||
| 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x63, 0x6b, 0x65, | |||||
| 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, | |||||
| 0x0d, 0x52, 0x0e, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, | |||||
| 0x65, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, | |||||
| 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x72, | |||||
| 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x74, | |||||
| 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18, | |||||
| 0x44, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x50, 0x65, | |||||
| 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, | |||||
| 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, | |||||
| 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, | |||||
| 0x11, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, | |||||
| 0x65, 0x74, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, | |||||
| 0x50, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x74, 0x61, | |||||
| 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x47, 0x20, 0x01, | |||||
| 0x28, 0x0d, 0x52, 0x0d, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x43, 0x6f, 0x72, | |||||
| 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, | |||||
| 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6e, 0x74, 0x61, | |||||
| 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x70, | |||||
| 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0d, | |||||
| 0x52, 0x09, 0x70, 0x6e, 0x4d, 0x69, 0x6e, 0x43, 0x70, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x70, | |||||
| 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x4a, 0x20, 0x01, | |||||
| 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x6e, 0x4d, 0x69, 0x6e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, | |||||
| 0x25, 0x0a, 0x0f, 0x70, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6d, 0x70, 0x5f, 0x64, 0x69, | |||||
| 0x73, 0x6b, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x6e, 0x4d, 0x69, 0x6e, 0x54, | |||||
| 0x6d, 0x70, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, | |||||
| 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x16, | |||||
| 0x0a, 0x06, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, | |||||
| 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x77, | |||||
| 0x69, 0x74, 0x63, 0x68, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x71, 0x53, | |||||
| 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x64, 0x5f, 0x65, 0x72, 0x72, | |||||
| 0x18, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x64, 0x45, 0x72, 0x72, 0x12, 0x15, | |||||
| 0x0a, 0x06, 0x73, 0x74, 0x64, 0x5f, 0x69, 0x6e, 0x18, 0x50, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, | |||||
| 0x73, 0x74, 0x64, 0x49, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x64, 0x5f, 0x6f, 0x75, 0x74, | |||||
| 0x18, 0x51, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x64, 0x4f, 0x75, 0x74, 0x12, 0x20, | |||||
| 0x0a, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x34, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x52, 0x20, | |||||
| 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x34, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, | |||||
| 0x12, 0x14, 0x0a, 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x18, 0x53, 0x20, 0x01, 0x28, 0x09, 0x52, | |||||
| 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x22, 0x60, 0x0a, 0x0f, 0x54, 0x48, 0x53, 0x75, 0x62, 0x6d, | |||||
| 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4d, 0x0a, 0x13, 0x73, 0x75, 0x62, | |||||
| 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, 0x73, 0x67, | |||||
| 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, | |||||
| 0x65, 0x2e, 0x54, 0x48, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, | |||||
| 0x73, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x11, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, | |||||
| 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, 0x22, 0x64, 0x0a, 0x13, 0x54, 0x48, 0x53, 0x75, | |||||
| 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, 0x12, | |||||
| 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, | |||||
| 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x69, | |||||
| 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x65, 0x70, 0x49, 0x64, 0x12, | |||||
| 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, | |||||
| 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x1a, | |||||
| 0x0a, 0x04, 0x41, 0x72, 0x67, 0x76, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x76, 0x18, 0x01, | |||||
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x76, 0x22, 0x2f, 0x0a, 0x0b, 0x45, 0x6e, | |||||
| 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, | |||||
| 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, | |||||
| 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xad, 0x01, 0x0a, 0x0e, | |||||
| 0x41, 0x43, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x18, | |||||
| 0x0a, 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, | |||||
| 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x6e, | |||||
| 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6e, 0x61, | |||||
| 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, | |||||
| 0x67, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x72, | |||||
| 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x0d, | |||||
| 0x6d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, | |||||
| 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x4d, | |||||
| 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, 0x61, | |||||
| 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x4b, 0x0a, 0x0f, 0x41, | |||||
| 0x43, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, | |||||
| 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, | |||||
| 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, | |||||
| 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, | |||||
| 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0xeb, 0x04, 0x0a, 0x0d, 0x4d, 0x61, 0x70, | |||||
| 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0c, 0x47, 0x41, | |||||
| 0x50, 0x5f, 0x43, 0x4d, 0x44, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, | |||||
| 0x52, 0x0a, 0x47, 0x41, 0x50, 0x43, 0x4d, 0x44, 0x46, 0x49, 0x4c, 0x45, 0x12, 0x1b, 0x0a, 0x09, | |||||
| 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x4e, 0x4f, 0x44, 0x45, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, | |||||
| 0x08, 0x47, 0x41, 0x50, 0x4e, 0x4e, 0x4f, 0x44, 0x45, 0x12, 0x26, 0x0a, 0x0f, 0x47, 0x41, 0x50, | |||||
| 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x18, 0x03, 0x20, 0x01, | |||||
| 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x4e, 0x4f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x49, 0x4e, | |||||
| 0x47, 0x12, 0x26, 0x0a, 0x0f, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x5f, | |||||
| 0x54, 0x59, 0x50, 0x45, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, | |||||
| 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x59, 0x50, 0x45, 0x12, 0x20, 0x0a, 0x0c, 0x47, 0x41, 0x50, | |||||
| 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, | |||||
| 0x0a, 0x47, 0x41, 0x50, 0x4a, 0x4f, 0x42, 0x4e, 0x41, 0x4d, 0x45, 0x12, 0x20, 0x0a, 0x0c, 0x47, | |||||
| 0x41, 0x50, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x52, 0x18, 0x06, 0x20, 0x01, 0x28, | |||||
| 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x57, 0x4f, 0x52, 0x4b, 0x44, 0x49, 0x52, 0x12, 0x1b, 0x0a, | |||||
| 0x09, 0x47, 0x41, 0x50, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, | |||||
| 0x52, 0x08, 0x47, 0x41, 0x50, 0x51, 0x55, 0x45, 0x55, 0x45, 0x12, 0x1b, 0x0a, 0x09, 0x47, 0x41, | |||||
| 0x50, 0x5f, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, | |||||
| 0x41, 0x50, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x12, 0x17, 0x0a, 0x07, 0x47, 0x41, 0x50, 0x5f, 0x50, | |||||
| 0x50, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x47, 0x41, 0x50, 0x50, 0x50, 0x4e, | |||||
| 0x12, 0x19, 0x0a, 0x08, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x47, 0x50, 0x55, 0x18, 0x0a, 0x20, 0x01, | |||||
| 0x28, 0x09, 0x52, 0x07, 0x47, 0x41, 0x50, 0x4e, 0x47, 0x50, 0x55, 0x12, 0x19, 0x0a, 0x08, 0x47, | |||||
| 0x41, 0x50, 0x5f, 0x4e, 0x44, 0x43, 0x55, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, | |||||
| 0x41, 0x50, 0x4e, 0x44, 0x43, 0x55, 0x12, 0x1e, 0x0a, 0x0b, 0x47, 0x41, 0x50, 0x5f, 0x4a, 0x4f, | |||||
| 0x42, 0x5f, 0x4d, 0x45, 0x4d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x41, 0x50, | |||||
| 0x4a, 0x4f, 0x42, 0x4d, 0x45, 0x4d, 0x12, 0x22, 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, 0x57, 0x41, | |||||
| 0x4c, 0x4c, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x47, | |||||
| 0x41, 0x50, 0x57, 0x41, 0x4c, 0x4c, 0x54, 0x49, 0x4d, 0x45, 0x12, 0x23, 0x0a, 0x0d, 0x47, 0x41, | |||||
| 0x50, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x56, 0x45, 0x18, 0x0e, 0x20, 0x01, 0x28, | |||||
| 0x09, 0x52, 0x0c, 0x47, 0x41, 0x50, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x56, 0x45, 0x12, | |||||
| 0x1f, 0x0a, 0x0b, 0x47, 0x41, 0x50, 0x5f, 0x41, 0x50, 0x50, 0x4e, 0x41, 0x4d, 0x45, 0x18, 0x0f, | |||||
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x41, 0x50, 0x50, 0x4e, 0x41, 0x4d, 0x45, | |||||
| 0x12, 0x22, 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x53, 0x55, | |||||
| 0x42, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x47, 0x41, 0x50, 0x4d, 0x55, 0x4c, 0x54, | |||||
| 0x49, 0x53, 0x55, 0x42, 0x12, 0x27, 0x0a, 0x10, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x54, 0x44, 0x5f, | |||||
| 0x4f, 0x55, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, | |||||
| 0x47, 0x41, 0x50, 0x53, 0x54, 0x44, 0x4f, 0x55, 0x54, 0x46, 0x49, 0x4c, 0x45, 0x12, 0x27, 0x0a, | |||||
| 0x10, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x54, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x46, 0x49, 0x4c, | |||||
| 0x45, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, 0x54, 0x44, 0x45, | |||||
| 0x52, 0x52, 0x46, 0x49, 0x4c, 0x45, 0x32, 0x47, 0x0a, 0x07, 0x68, 0x70, 0x63, 0x43, 0x6f, 0x72, | |||||
| 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x16, | |||||
| 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, | |||||
| 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, | |||||
| 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, | |||||
| 0x6e, 0x12, 0x2e, 0x0a, 0x05, 0x74, 0x68, 0x52, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, | |||||
| 0x32, 0x18, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x48, 0x53, 0x75, | |||||
| 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x52, 0x05, 0x74, 0x68, 0x52, 0x65, | |||||
| 0x71, 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x63, 0x52, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, | |||||
| 0x32, 0x18, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x43, 0x53, 0x75, | |||||
| 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x52, 0x05, 0x61, 0x63, 0x52, 0x65, | |||||
| 0x71, 0x22, 0x49, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, | |||||
| 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, | |||||
| 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, | |||||
| 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, | |||||
| 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x8f, 0x14, 0x0a, | |||||
| 0x0e, 0x54, 0x48, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, | |||||
| 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, | |||||
| 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, | |||||
| 0x74, 0x67, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, | |||||
| 0x63, 0x63, 0x74, 0x67, 0x46, 0x72, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, | |||||
| 0x63, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, | |||||
| 0x6c, 0x6f, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, | |||||
| 0x5f, 0x72, 0x65, 0x73, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, | |||||
| 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x52, 0x65, 0x73, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, | |||||
| 0x1b, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, | |||||
| 0x28, 0x0d, 0x52, 0x08, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x53, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, | |||||
| 0x61, 0x72, 0x67, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x61, 0x72, 0x67, 0x63, | |||||
| 0x12, 0x22, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x76, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, | |||||
| 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x72, 0x67, 0x76, 0x52, 0x04, | |||||
| 0x61, 0x72, 0x67, 0x76, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x69, 0x6e, | |||||
| 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x72, 0x61, 0x79, 0x49, 0x6e, | |||||
| 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, | |||||
| 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, | |||||
| 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6b, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, | |||||
| 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6b, 0x70, 0x74, 0x49, 0x6e, 0x74, | |||||
| 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6b, 0x70, 0x74, 0x5f, 0x64, 0x69, | |||||
| 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6b, 0x70, 0x74, 0x44, 0x69, 0x72, | |||||
| 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, | |||||
| 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, | |||||
| 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, | |||||
| 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x70, | |||||
| 0x75, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x70, | |||||
| 0x75, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x5f, 0x62, 0x69, 0x6e, | |||||
| 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x70, | |||||
| 0x75, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, | |||||
| 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, | |||||
| 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, | |||||
| 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, | |||||
| 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, | |||||
| 0x65, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x65, 0x6d, 0x70, | |||||
| 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, | |||||
| 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, | |||||
| 0x08, 0x65, 0x6e, 0x76, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, | |||||
| 0x07, 0x65, 0x6e, 0x76, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x63, 0x5f, | |||||
| 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, | |||||
| 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, | |||||
| 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, | |||||
| 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x72, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, | |||||
| 0x04, 0x67, 0x72, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, | |||||
| 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, | |||||
| 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x18, 0x18, 0x20, | |||||
| 0x01, 0x28, 0x0d, 0x52, 0x09, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x12, 0x15, | |||||
| 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, | |||||
| 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x11, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x6f, 0x6e, | |||||
| 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, | |||||
| 0x52, 0x0e, 0x6b, 0x69, 0x6c, 0x6c, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x46, 0x61, 0x69, 0x6c, | |||||
| 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x1b, 0x20, 0x01, | |||||
| 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, | |||||
| 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x52, | |||||
| 0x08, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x69, | |||||
| 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, | |||||
| 0x69, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x5f, 0x62, 0x69, | |||||
| 0x6e, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x42, 0x69, 0x6e, | |||||
| 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x65, 0x6d, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x79, | |||||
| 0x70, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x42, 0x69, 0x6e, | |||||
| 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x20, 0x20, | |||||
| 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, | |||||
| 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, | |||||
| 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, | |||||
| 0x0d, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x74, | |||||
| 0x61, 0x73, 0x6b, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x54, | |||||
| 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, | |||||
| 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x4d, 0x6f, 0x64, | |||||
| 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, | |||||
| 0x25, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, | |||||
| 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x76, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x26, | |||||
| 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6f, 0x76, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, | |||||
| 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x27, 0x20, | |||||
| 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, | |||||
| 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x28, 0x20, 0x01, | |||||
| 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, | |||||
| 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0d, 0x52, | |||||
| 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, | |||||
| 0x66, 0x69, 0x6c, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, | |||||
| 0x69, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x71, 0x6f, 0x73, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, | |||||
| 0x52, 0x03, 0x71, 0x6f, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x5f, 0x68, 0x6f, | |||||
| 0x73, 0x74, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x48, 0x6f, | |||||
| 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, | |||||
| 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, | |||||
| 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0d, | |||||
| 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, | |||||
| 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, | |||||
| 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, | |||||
| 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x30, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x72, | |||||
| 0x69, 0x70, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x31, 0x20, | |||||
| 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x73, | |||||
| 0x70, 0x61, 0x6e, 0x6b, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x65, 0x6e, 0x76, 0x5f, 0x73, 0x69, 0x7a, | |||||
| 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x70, 0x61, 0x6e, 0x6b, 0x4a, 0x6f, | |||||
| 0x62, 0x45, 0x6e, 0x76, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, | |||||
| 0x5f, 0x64, 0x69, 0x73, 0x74, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x61, 0x73, | |||||
| 0x6b, 0x44, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x69, | |||||
| 0x6d, 0x69, 0x74, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x4c, | |||||
| 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x6e, | |||||
| 0x18, 0x35, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6e, 0x12, | |||||
| 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0d, | |||||
| 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x77, 0x61, 0x69, 0x74, | |||||
| 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0d, | |||||
| 0x52, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1f, | |||||
| 0x0a, 0x0b, 0x77, 0x61, 0x72, 0x6e, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x38, 0x20, | |||||
| 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x61, 0x72, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, | |||||
| 0x1b, 0x0a, 0x09, 0x77, 0x61, 0x72, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x39, 0x20, 0x01, | |||||
| 0x28, 0x0d, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, | |||||
| 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, | |||||
| 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x73, 0x5f, | |||||
| 0x70, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, | |||||
| 0x63, 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x6d, | |||||
| 0x69, 0x6e, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, | |||||
| 0x69, 0x6e, 0x43, 0x70, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, | |||||
| 0x75, 0x73, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x43, 0x70, 0x75, | |||||
| 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x3e, | |||||
| 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1b, | |||||
| 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x3f, 0x20, 0x01, 0x28, | |||||
| 0x0d, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x62, | |||||
| 0x6f, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x40, | |||||
| 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x4e, | |||||
| 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, | |||||
| 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, | |||||
| 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, | |||||
| 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, | |||||
| 0x6f, 0x64, 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x73, 0x6f, 0x63, 0x6b, 0x65, | |||||
| 0x74, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x6f, 0x72, | |||||
| 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x43, 0x20, | |||||
| 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x6f, 0x63, | |||||
| 0x6b, 0x65, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x5f, 0x70, | |||||
| 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, | |||||
| 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x50, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, | |||||
| 0x0f, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, | |||||
| 0x18, 0x45, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, | |||||
| 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, | |||||
| 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0d, | |||||
| 0x52, 0x0f, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x65, | |||||
| 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, | |||||
| 0x63, 0x6f, 0x72, 0x65, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6e, 0x74, 0x61, 0x73, | |||||
| 0x6b, 0x73, 0x50, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x74, 0x61, | |||||
| 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x48, 0x20, | |||||
| 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6f, | |||||
| 0x61, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x70, | |||||
| 0x75, 0x73, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6e, 0x4d, 0x69, 0x6e, 0x43, | |||||
| 0x70, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x65, | |||||
| 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x6e, 0x4d, 0x69, | |||||
| 0x6e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0f, 0x70, 0x6e, 0x5f, 0x6d, 0x69, | |||||
| 0x6e, 0x5f, 0x74, 0x6d, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0d, | |||||
| 0x52, 0x0c, 0x70, 0x6e, 0x4d, 0x69, 0x6e, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x16, | |||||
| 0x0a, 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, | |||||
| 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, | |||||
| 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, | |||||
| 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x4e, 0x20, 0x01, | |||||
| 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x71, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x17, 0x0a, | |||||
| 0x07, 0x73, 0x74, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, | |||||
| 0x73, 0x74, 0x64, 0x45, 0x72, 0x72, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x5f, 0x69, 0x6e, | |||||
| 0x18, 0x50, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x64, 0x49, 0x6e, 0x12, 0x17, 0x0a, | |||||
| 0x07, 0x73, 0x74, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x51, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, | |||||
| 0x73, 0x74, 0x64, 0x4f, 0x75, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x34, 0x73, | |||||
| 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x52, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x77, 0x61, 0x69, | |||||
| 0x74, 0x34, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x63, 0x6b, 0x65, | |||||
| 0x79, 0x18, 0x53, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x22, 0x60, | |||||
| 0x0a, 0x0f, 0x54, 0x48, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, | |||||
| 0x70, 0x12, 0x4d, 0x0a, 0x13, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, | |||||
| 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, | |||||
| 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x48, 0x53, 0x75, 0x62, 0x6d, | |||||
| 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x11, 0x73, | |||||
| 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, | |||||
| 0x22, 0x64, 0x0a, 0x13, 0x54, 0x48, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, | |||||
| 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, | |||||
| 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x17, | |||||
| 0x0a, 0x07, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, | |||||
| 0x06, 0x73, 0x74, 0x65, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, | |||||
| 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x72, 0x72, | |||||
| 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x1a, 0x0a, 0x04, 0x41, 0x72, 0x67, 0x76, 0x12, 0x12, | |||||
| 0x0a, 0x04, 0x61, 0x72, 0x67, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, | |||||
| 0x67, 0x76, 0x22, 0x2f, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, | |||||
| 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, | |||||
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, | |||||
| 0x65, 0x6e, 0x74, 0x22, 0xad, 0x01, 0x0a, 0x0e, 0x41, 0x43, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, | |||||
| 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, 0x70, | |||||
| 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, 0x70, 0x65, | |||||
| 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, | |||||
| 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, | |||||
| 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, | |||||
| 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, | |||||
| 0x65, 0x72, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, | |||||
| 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x65, | |||||
| 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, | |||||
| 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, | |||||
| 0x6e, 0x66, 0x6f, 0x22, 0x4b, 0x0a, 0x0f, 0x41, 0x43, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, | |||||
| 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, | |||||
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, | |||||
| 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, | |||||
| 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, | |||||
| 0x22, 0xeb, 0x04, 0x0a, 0x0d, 0x4d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, | |||||
| 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0c, 0x47, 0x41, 0x50, 0x5f, 0x43, 0x4d, 0x44, 0x5f, 0x46, 0x49, | |||||
| 0x4c, 0x45, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x43, 0x4d, 0x44, | |||||
| 0x46, 0x49, 0x4c, 0x45, 0x12, 0x1b, 0x0a, 0x09, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x4e, 0x4f, 0x44, | |||||
| 0x45, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, 0x41, 0x50, 0x4e, 0x4e, 0x4f, 0x44, | |||||
| 0x45, 0x12, 0x26, 0x0a, 0x0f, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, | |||||
| 0x52, 0x49, 0x4e, 0x47, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x4e, | |||||
| 0x4f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x12, 0x26, 0x0a, 0x0f, 0x47, 0x41, 0x50, | |||||
| 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x18, 0x04, 0x20, 0x01, | |||||
| 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x59, 0x50, | |||||
| 0x45, 0x12, 0x20, 0x0a, 0x0c, 0x47, 0x41, 0x50, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x4e, 0x41, 0x4d, | |||||
| 0x45, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x4a, 0x4f, 0x42, 0x4e, | |||||
| 0x41, 0x4d, 0x45, 0x12, 0x20, 0x0a, 0x0c, 0x47, 0x41, 0x50, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x5f, | |||||
| 0x44, 0x49, 0x52, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x57, 0x4f, | |||||
| 0x52, 0x4b, 0x44, 0x49, 0x52, 0x12, 0x1b, 0x0a, 0x09, 0x47, 0x41, 0x50, 0x5f, 0x51, 0x55, 0x45, | |||||
| 0x55, 0x45, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, 0x41, 0x50, 0x51, 0x55, 0x45, | |||||
| 0x55, 0x45, 0x12, 0x1b, 0x0a, 0x09, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x18, | |||||
| 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, 0x41, 0x50, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x12, | |||||
| 0x17, 0x0a, 0x07, 0x47, 0x41, 0x50, 0x5f, 0x50, 0x50, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, | |||||
| 0x52, 0x06, 0x47, 0x41, 0x50, 0x50, 0x50, 0x4e, 0x12, 0x19, 0x0a, 0x08, 0x47, 0x41, 0x50, 0x5f, | |||||
| 0x4e, 0x47, 0x50, 0x55, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x41, 0x50, 0x4e, | |||||
| 0x47, 0x50, 0x55, 0x12, 0x19, 0x0a, 0x08, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x44, 0x43, 0x55, 0x18, | |||||
| 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x41, 0x50, 0x4e, 0x44, 0x43, 0x55, 0x12, 0x1e, | |||||
| 0x0a, 0x0b, 0x47, 0x41, 0x50, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x4d, 0x45, 0x4d, 0x18, 0x0c, 0x20, | |||||
| 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x41, 0x50, 0x4a, 0x4f, 0x42, 0x4d, 0x45, 0x4d, 0x12, 0x22, | |||||
| 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, 0x57, 0x41, 0x4c, 0x4c, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x18, | |||||
| 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x47, 0x41, 0x50, 0x57, 0x41, 0x4c, 0x4c, 0x54, 0x49, | |||||
| 0x4d, 0x45, 0x12, 0x23, 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, | |||||
| 0x49, 0x56, 0x45, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x47, 0x41, 0x50, 0x45, 0x58, | |||||
| 0x43, 0x4c, 0x55, 0x53, 0x49, 0x56, 0x45, 0x12, 0x1f, 0x0a, 0x0b, 0x47, 0x41, 0x50, 0x5f, 0x41, | |||||
| 0x50, 0x50, 0x4e, 0x41, 0x4d, 0x45, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, | |||||
| 0x50, 0x41, 0x50, 0x50, 0x4e, 0x41, 0x4d, 0x45, 0x12, 0x22, 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, | |||||
| 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x53, 0x55, 0x42, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, | |||||
| 0x0b, 0x47, 0x41, 0x50, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x53, 0x55, 0x42, 0x12, 0x27, 0x0a, 0x10, | |||||
| 0x47, 0x41, 0x50, 0x5f, 0x53, 0x54, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, | |||||
| 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, 0x54, 0x44, 0x4f, 0x55, | |||||
| 0x54, 0x46, 0x49, 0x4c, 0x45, 0x12, 0x27, 0x0a, 0x10, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x54, 0x44, | |||||
| 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, | |||||
| 0x0d, 0x47, 0x41, 0x50, 0x53, 0x54, 0x44, 0x45, 0x52, 0x52, 0x46, 0x49, 0x4c, 0x45, 0x32, 0x47, | |||||
| 0x0a, 0x07, 0x68, 0x70, 0x63, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x53, 0x75, 0x62, | |||||
| 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x16, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, | |||||
| 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x17, | |||||
| 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, | 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, | ||||
| 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, | |||||
| 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x42, | |||||
| 0x0a, 0x5a, 0x08, 0x2f, 0x68, 0x70, 0x63, 0x43, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, | |||||
| 0x74, 0x6f, 0x33, | |||||
| 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0a, 0x5a, 0x08, 0x2f, 0x68, 0x70, 0x63, 0x43, | |||||
| 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, | |||||
| } | } | ||||
| var ( | var ( | ||||
| @@ -37,11 +37,9 @@ func (l *SubmitJobLogic) SubmitJob(in *hpcCore.SubmitJobReq) (resp *hpcCore.Subm | |||||
| version := in.Version | version := in.Version | ||||
| switch version { | switch version { | ||||
| case "ac": | case "ac": | ||||
| acReq := in.AcReq | |||||
| req := &hpcAC.SubmitJobReq{} | |||||
| err = copier.CopyWithOption(acReq, req, copier.Option{Converters: tool.Converters}) | |||||
| acResp, err := l.svcCtx.ACRpc.SubmitJob(l.ctx, req) | |||||
| req := hpcAC.SubmitJobReq{} | |||||
| tool.Convert(in.AcReq, &req) | |||||
| acResp, err := l.svcCtx.ACRpc.SubmitJob(l.ctx, &req) | |||||
| if err != nil { | if err != nil { | ||||
| return nil, errors.Wrapf(xerr.NewErrMsg("Failed to submit job to AC"), "Failed to submit job to Shuguang err : %v ,req:%+v", err, req) | return nil, errors.Wrapf(xerr.NewErrMsg("Failed to submit job to AC"), "Failed to submit job to Shuguang err : %v ,req:%+v", err, req) | ||||
| } | } | ||||
| @@ -4,9 +4,10 @@ package template; | |||||
| option go_package = "/hpcCore"; | option go_package = "/hpcCore"; | ||||
| message SubmitJobReq{ | message SubmitJobReq{ | ||||
| string version = 1; | |||||
| THSubmitJobReq thReq = 2; | |||||
| ACSubmitJobReq acReq = 3; | |||||
| int64 taskId = 1;// @gotags: copier:"TaskId" | |||||
| string version = 2; | |||||
| THSubmitJobReq thReq = 3; | |||||
| ACSubmitJobReq acReq = 4; | |||||
| } | } | ||||
| message SubmitJobResp{ | message SubmitJobResp{ | ||||
| @@ -16,7 +16,7 @@ import ( | |||||
| "google.golang.org/grpc/reflection" | "google.golang.org/grpc/reflection" | ||||
| ) | ) | ||||
| var configFile = flag.String("f", "etc/pcmhpccore.yaml", "the config file") | |||||
| var configFile = flag.String("f", "adaptor/PCM-HPC/PCM-HPC-CORE/api/etc/hpccore.yaml", "the config file") | |||||
| func main() { | func main() { | ||||
| flag.Parse() | flag.Parse() | ||||
| @@ -0,0 +1,18 @@ | |||||
| package constant | |||||
| // 任务类型 | |||||
| const ( | |||||
| TASK_TYPE_CLOUD = 1 | |||||
| TASK_TYPE_HPC = 2 | |||||
| TASK_TYPE_AI = 3 | |||||
| ) | |||||
| // 任务状态 | |||||
| const ( | |||||
| TASK_STATUS_SAVED = 1 | |||||
| TASK_STATUS_INIT = 2 | |||||
| TASK_STATUS_RUNNING = 3 | |||||
| TASK_STATUS_FAILED = 4 | |||||
| TASK_STATUS_END = 5 | |||||
| TASK_STATUS_UNKNOW = 6 | |||||
| ) | |||||
| @@ -0,0 +1,124 @@ | |||||
| // KqMessage | |||||
| package message | |||||
| // Hpc-ac | |||||
| type HpcSubmitMessage struct { | |||||
| TaskId int64 `json:"taskId"` | |||||
| SlurmVersion string `json:"slurmVersion"` | |||||
| Apptype string `json:"apptype,optional"` | |||||
| Appname string `json:"appname,optional"` | |||||
| StrJobManagerID int64 `json:"strJobManagerID,optional"` | |||||
| MapAppJobInfo MapAppJobInfo `json:"mapAppJobInfo,optional"` | |||||
| Account string `json:"account,optional"` // | |||||
| Acctg_freq string `json:"acctg_freq,optional"` | |||||
| Alloc_node string `json:"alloc_node,optional"` | |||||
| Alloc_resp_port int32 `json:"alloc_resp_port,optional"` | |||||
| Alloc_sid int32 `json:"alloc_sid,optional"` | |||||
| Argc int32 `json:"argc,optional"` | |||||
| Argv []Argv `json:"Argv,optional"` | |||||
| Array_inx string `json:"array_inx,optional"` | |||||
| Begin_time int64 `json:"begin_time,optional"` | |||||
| Ckpt_interval int32 `json:"ckpt_interval,optional"` | |||||
| Ckpt_dir string `json:"ckpt_dir,optional"` | |||||
| Comment string `json:"comment,optional"` | |||||
| Contiguous int32 `json:"contiguous,optional"` | |||||
| Cpu_bind string `json:"cpu_bind,optional"` | |||||
| Cpu_bind_type int32 `json:"cpu_bind_type,optional"` | |||||
| Dependency string `json:"dependency,optional"` | |||||
| End_time int64 `json:"end_time,optional"` | |||||
| Environment []Environment `json:"Environment,optional"` | |||||
| Env_size int32 `json:"env_size,optional"` | |||||
| Exc_nodes string `json:"exc_nodes,optional"` | |||||
| Features string `json:"features,optional"` | |||||
| Gres string `json:"gres,optional"` | |||||
| Group_id int32 `json:"group_id,optional"` | |||||
| Immediate int32 `json:"immediate,optional"` | |||||
| Job_id int32 `json:"job_id,optional"` | |||||
| Kill_on_node_fail int32 `json:"kill_on_node_fail,optional"` | |||||
| Licenses string `json:"licenses,optional"` | |||||
| Mail_type int32 `json:"mail_type,optional"` | |||||
| Mail_user string `json:"mail_user,optional"` | |||||
| Mem_bind string `json:"mem_bind,optional"` | |||||
| Mem_bind_type int32 `json:"mem_bind_type,optional"` | |||||
| Name string `json:"name,optional"` // | |||||
| Network string `json:"network,optional"` | |||||
| Nice int32 `json:"nice,optional"` | |||||
| Num_tasks int32 `json:"num_tasks,optional"` | |||||
| Open_mode int32 `json:"open_mode,optional"` | |||||
| Other_port int32 `json:"other_port,optional"` | |||||
| Overcommit int32 `json:"overcommit,optional"` | |||||
| Partition string `json:"partition,optional"` | |||||
| Plane_size int32 `json:"plane_size,optional"` | |||||
| Priority int32 `json:"priority,optional"` | |||||
| Profile int32 `json:"profile,optional"` | |||||
| Qos string `json:"qos,optional"` | |||||
| Resp_host string `json:"resp_host,optional"` | |||||
| Req_nodes string `json:"req_nodes,optional"` | |||||
| Requeue int32 `json:"requeue,optional"` | |||||
| Reservation string `json:"reservation,optional"` | |||||
| Script string `json:"script,optional"` // | |||||
| Shared int32 `json:"shared,optional"` | |||||
| Spank_job_env_size int32 `json:"spank_job_env_size,optional"` | |||||
| Task_dist int32 `json:"task_dist,optional"` | |||||
| Time_limit int32 `json:"time_limit,optional"` | |||||
| Time_min int32 `json:"time_min,optional"` | |||||
| User_id int32 `json:"user_id,optional"` // | |||||
| Wait_all_nodes int32 `json:"wait_all_nodes,optional"` | |||||
| Warn_signal int32 `json:"warn_signal,optional"` | |||||
| Warn_time int32 `json:"warn_time,optional"` | |||||
| Work_dir string `json:"work_dir,optional"` | |||||
| Cpus_per_task int32 `json:"cpus_per_task,optional"` | |||||
| Min_cpus int32 `json:"min_cpus,optional"` // | |||||
| Max_cpus int32 `json:"max_cpus,optional"` | |||||
| Min_nodes int32 `json:"min_nodes,optional"` | |||||
| Max_nodes int32 `json:"max_nodes,optional"` | |||||
| Boards_per_node int32 `json:"boards_per_node,optional"` | |||||
| Sockets_per_board int32 `json:"sockets_per_board,optional"` | |||||
| Sockets_per_node int32 `json:"sockets_per_node,optional"` | |||||
| Cores_per_socket int32 `json:"cores_per_socket,optional"` | |||||
| Threads_per_core int32 `json:"threads_per_core,optional"` | |||||
| Ntasks_per_node int32 `json:"ntasks_per_node,optional"` | |||||
| Ntasks_per_socket int32 `json:"ntasks_per_socket,optional"` | |||||
| Ntasks_per_core int32 `json:"ntasks_per_core,optional"` | |||||
| Ntasks_per_board int32 `json:"ntasks_per_board,optional"` | |||||
| Pn_min_cpus int32 `json:"pn_min_cpus,optional"` | |||||
| Pn_min_memory int32 `json:"pn_min_memory,optional"` | |||||
| Pn_min_tmp_disk int32 `json:"pn_min_tmp_disk,optional"` | |||||
| Reboot int32 `json:"reboot,optional"` | |||||
| Rotate int32 `json:"rotate,optional"` | |||||
| Req_switch int32 `json:"req_switch,optional"` | |||||
| Std_err string `json:"std_err,optional"` | |||||
| Std_in string `json:"std_in,optional"` | |||||
| Std_out string `json:"std_out,optional"` | |||||
| Wait4switch int32 `json:"wait4switch,optional"` | |||||
| Wckey string `json:"wckey,optional"` | |||||
| } | |||||
| type Argv struct { | |||||
| Argv string `json:"argv,optional"` | |||||
| } | |||||
| type Environment struct { | |||||
| Environment string `json:"environment,optional"` | |||||
| } | |||||
| type MapAppJobInfo struct { | |||||
| GAP_CMD_FILE string `json:"GAP_CMD_FILE"` //命令行内容 | |||||
| GAP_NNODE string `json:"GAP_NNODE"` //节点个数(当指定该参数时,GAP_NODE_STRING必须为"") | |||||
| GAP_NODE_STRING string `json:"GAP_NODE_STRING,optional"` //指定节点(当指定该参数时,GAP_NNODE必须为"") | |||||
| GAP_SUBMIT_TYPE string `json:"GAP_SUBMIT_TYPE"` //cmd(命令行模式) | |||||
| GAP_JOB_NAME string `json:"GAP_JOB_NAME"` //作业名称 | |||||
| GAP_WORK_DIR string `json:"GAP_WORK_DIR"` //工作路径 | |||||
| GAP_QUEUE string `json:"GAP_QUEUE"` //队列名称 | |||||
| GAP_NPROC string `json:"GAP_NPROC,optional"` //总核心数(GAP_NPROC和GAP_PPN选其一填写) | |||||
| GAP_PPN string `json:"GAP_PPN,optional"` //CPU核心/节点(GAP_NPROC和GAP_PPN选其一填写) | |||||
| GAP_NGPU string `json:"GAP_NGPU,optional"` //GPU卡数/节点 | |||||
| GAP_NDCU string `json:"GAP_NDCU,optional"` //DCU卡数/节点 | |||||
| GAP_JOB_MEM string `json:"GAP_JOB_MEM,optional"` //每个节点内存值,单位为MB/GB | |||||
| GAP_WALL_TIME string `json:"GAP_WALL_TIME"` //最大运行时长(HH:MM:ss) | |||||
| GAP_EXCLUSIVE string `json:"GAP_EXCLUSIVE,optional"` // 是否独占节点,1为独占,空为非独占 | |||||
| GAP_APPNAME string `json:"GAP_APPNAME"` //BASE(基础应用),支持填写具体的应用英文名称 | |||||
| GAP_MULTI_SUB string `json:"GAP_MULTI_SUB,optional"` //作业组长度,建议为小于等于50的正整数 | |||||
| GAP_STD_OUT_FILE string `json:"GAP_STD_OUT_FILE"` //工作路径/std.out.%j | |||||
| GAP_STD_ERR_FILE string `json:"GAP_STD_ERR_FILE"` //工作路径/std.err.%j | |||||
| } | |||||
| @@ -0,0 +1,28 @@ | |||||
| package tool | |||||
| import ( | |||||
| "encoding/json" | |||||
| "github.com/robfig/cron/v3" | |||||
| "strconv" | |||||
| ) | |||||
| // Convert 通过JSON赋值 | |||||
| func Convert(source interface{}, target interface{}) { | |||||
| jsonByte, _ := json.Marshal(source) | |||||
| json.Unmarshal(jsonByte, &target) | |||||
| } | |||||
| // Int64ToString int64转string | |||||
| func Int64ToString(value int64) string { | |||||
| return strconv.FormatInt(value, 10) | |||||
| } | |||||
| // EntryIdToString EntryID转string | |||||
| func EntryIdToString(id cron.EntryID) string { | |||||
| return strconv.Itoa(int(id)) | |||||
| } | |||||
| func StringToInt(value string) int { | |||||
| intValue, _ := strconv.Atoi(value) | |||||
| return intValue | |||||
| } | |||||
| @@ -1,7 +1,6 @@ | |||||
| package tool | package tool | ||||
| import ( | import ( | ||||
| "encoding/json" | |||||
| "github.com/jinzhu/copier" | "github.com/jinzhu/copier" | ||||
| "github.com/pkg/errors" | "github.com/pkg/errors" | ||||
| "strconv" | "strconv" | ||||
| @@ -49,9 +48,3 @@ var Converters = []copier.TypeConverter{ | |||||
| }, | }, | ||||
| }, | }, | ||||
| } | } | ||||
| // Convert 通过JSON赋值 | |||||
| func Convert(source interface{}, target interface{}) { | |||||
| jsonByte, _ := json.Marshal(source) | |||||
| json.Unmarshal(jsonByte, &target) | |||||
| } | |||||
| @@ -4,11 +4,14 @@ go 1.19 | |||||
| require ( | require ( | ||||
| github.com/bitly/go-simplejson v0.5.0 | github.com/bitly/go-simplejson v0.5.0 | ||||
| github.com/go-redis/redis/v8 v8.11.5 | |||||
| github.com/go-resty/resty/v2 v2.7.0 | github.com/go-resty/resty/v2 v2.7.0 | ||||
| github.com/jinzhu/copier v0.3.5 | github.com/jinzhu/copier v0.3.5 | ||||
| github.com/pkg/errors v0.9.1 | github.com/pkg/errors v0.9.1 | ||||
| github.com/robfig/cron/v3 v3.0.1 | |||||
| github.com/shopspring/decimal v1.3.1 | github.com/shopspring/decimal v1.3.1 | ||||
| github.com/sony/sonyflake v1.1.0 | github.com/sony/sonyflake v1.1.0 | ||||
| github.com/zeromicro/go-queue v1.1.8 | |||||
| github.com/zeromicro/go-zero v1.4.4 | github.com/zeromicro/go-zero v1.4.4 | ||||
| google.golang.org/grpc v1.50.1 | google.golang.org/grpc v1.50.1 | ||||
| google.golang.org/protobuf v1.28.1 | google.golang.org/protobuf v1.28.1 | ||||
| @@ -31,7 +34,6 @@ require ( | |||||
| github.com/felixge/fgprof v0.9.3 // indirect | github.com/felixge/fgprof v0.9.3 // indirect | ||||
| github.com/go-logr/logr v1.2.3 // indirect | github.com/go-logr/logr v1.2.3 // indirect | ||||
| github.com/go-logr/stdr v1.2.2 // indirect | github.com/go-logr/stdr v1.2.2 // indirect | ||||
| github.com/go-redis/redis/v8 v8.11.5 // indirect | |||||
| github.com/go-sql-driver/mysql v1.7.0 // indirect | github.com/go-sql-driver/mysql v1.7.0 // indirect | ||||
| github.com/gogo/protobuf v1.3.2 // indirect | github.com/gogo/protobuf v1.3.2 // indirect | ||||
| github.com/golang-jwt/jwt/v4 v4.4.3 // indirect | github.com/golang-jwt/jwt/v4 v4.4.3 // indirect | ||||
| @@ -46,6 +48,7 @@ require ( | |||||
| github.com/jinzhu/inflection v1.0.0 // indirect | github.com/jinzhu/inflection v1.0.0 // indirect | ||||
| github.com/jinzhu/now v1.1.5 // indirect | github.com/jinzhu/now v1.1.5 // indirect | ||||
| github.com/json-iterator/go v1.1.12 // indirect | github.com/json-iterator/go v1.1.12 // indirect | ||||
| github.com/klauspost/compress v1.15.9 // indirect | |||||
| github.com/mattn/go-colorable v0.1.9 // indirect | github.com/mattn/go-colorable v0.1.9 // indirect | ||||
| github.com/mattn/go-isatty v0.0.14 // indirect | github.com/mattn/go-isatty v0.0.14 // indirect | ||||
| github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect | github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect | ||||
| @@ -53,10 +56,12 @@ require ( | |||||
| github.com/modern-go/reflect2 v1.0.2 // indirect | github.com/modern-go/reflect2 v1.0.2 // indirect | ||||
| github.com/openzipkin/zipkin-go v0.4.0 // indirect | github.com/openzipkin/zipkin-go v0.4.0 // indirect | ||||
| github.com/pelletier/go-toml/v2 v2.0.6 // indirect | github.com/pelletier/go-toml/v2 v2.0.6 // indirect | ||||
| github.com/pierrec/lz4/v4 v4.1.15 // indirect | |||||
| github.com/prometheus/client_golang v1.13.0 // indirect | github.com/prometheus/client_golang v1.13.0 // indirect | ||||
| github.com/prometheus/client_model v0.2.0 // indirect | github.com/prometheus/client_model v0.2.0 // indirect | ||||
| github.com/prometheus/common v0.37.0 // indirect | github.com/prometheus/common v0.37.0 // indirect | ||||
| github.com/prometheus/procfs v0.8.0 // indirect | github.com/prometheus/procfs v0.8.0 // indirect | ||||
| github.com/segmentio/kafka-go v0.4.38 // indirect | |||||
| github.com/spaolacci/murmur3 v1.1.0 // indirect | github.com/spaolacci/murmur3 v1.1.0 // indirect | ||||
| go.etcd.io/etcd/api/v3 v3.5.5 // indirect | go.etcd.io/etcd/api/v3 v3.5.5 // indirect | ||||
| go.etcd.io/etcd/client/pkg/v3 v3.5.5 // indirect | go.etcd.io/etcd/client/pkg/v3 v3.5.5 // indirect | ||||
| @@ -387,10 +387,12 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF | |||||
| github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= | github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= | ||||
| github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a h1:HbKu58rmZpUGpz5+4FfNmIU+FmZg2P3Xaj2v2bfNWmk= | github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a h1:HbKu58rmZpUGpz5+4FfNmIU+FmZg2P3Xaj2v2bfNWmk= | ||||
| github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc= | github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc= | ||||
| github.com/alicebob/miniredis/v2 v2.23.1/go.mod h1:84TWKZlxYkfgMucPBf5SOQBYJceZeQRFIaQgNMiCX6Q= | |||||
| github.com/alicebob/miniredis/v2 v2.30.0 h1:uA3uhDbCxfO9+DI/DuGeAMr9qI+noVWwGPNTFuKID5M= | github.com/alicebob/miniredis/v2 v2.30.0 h1:uA3uhDbCxfO9+DI/DuGeAMr9qI+noVWwGPNTFuKID5M= | ||||
| github.com/alicebob/miniredis/v2 v2.30.0/go.mod h1:84TWKZlxYkfgMucPBf5SOQBYJceZeQRFIaQgNMiCX6Q= | github.com/alicebob/miniredis/v2 v2.30.0/go.mod h1:84TWKZlxYkfgMucPBf5SOQBYJceZeQRFIaQgNMiCX6Q= | ||||
| github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= | github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= | ||||
| github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= | github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= | ||||
| github.com/beanstalkd/go-beanstalk v0.2.0/go.mod h1:/G8YTyChOtpOArwLTQPY1CHB+i212+av35bkPXXj56Y= | |||||
| github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= | github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= | ||||
| github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= | github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= | ||||
| github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= | github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= | ||||
| @@ -465,6 +467,7 @@ github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWo | |||||
| github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= | github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= | ||||
| github.com/fullstorydev/grpcurl v1.8.7/go.mod h1:pVtM4qe3CMoLaIzYS8uvTuDj2jVYmXqMUkZeijnXp/E= | github.com/fullstorydev/grpcurl v1.8.7/go.mod h1:pVtM4qe3CMoLaIzYS8uvTuDj2jVYmXqMUkZeijnXp/E= | ||||
| github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= | github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= | ||||
| github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= | |||||
| github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= | github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= | ||||
| github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= | ||||
| github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= | ||||
| @@ -638,6 +641,7 @@ github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+ | |||||
| github.com/jhump/goprotoc v0.5.0/go.mod h1:VrbvcYrQOrTi3i0Vf+m+oqQWk9l72mjkJCYo7UvLHRQ= | github.com/jhump/goprotoc v0.5.0/go.mod h1:VrbvcYrQOrTi3i0Vf+m+oqQWk9l72mjkJCYo7UvLHRQ= | ||||
| github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E= | github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E= | ||||
| github.com/jhump/protoreflect v1.12.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI= | github.com/jhump/protoreflect v1.12.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI= | ||||
| github.com/jhump/protoreflect v1.14.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI= | |||||
| github.com/jhump/protoreflect v1.14.1/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI= | github.com/jhump/protoreflect v1.14.1/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI= | ||||
| github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg= | github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg= | ||||
| github.com/jinzhu/copier v0.3.5/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= | github.com/jinzhu/copier v0.3.5/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= | ||||
| @@ -660,6 +664,8 @@ github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8 | |||||
| github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= | github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= | ||||
| github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= | github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= | ||||
| github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= | github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= | ||||
| github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= | |||||
| github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= | |||||
| github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||
| github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||
| github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= | github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= | ||||
| @@ -732,6 +738,8 @@ github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR | |||||
| github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= | github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= | ||||
| github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= | github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= | ||||
| github.com/pierrec/lz4/v4 v4.1.14/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= | github.com/pierrec/lz4/v4 v4.1.14/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= | ||||
| github.com/pierrec/lz4/v4 v4.1.15 h1:MO0/ucJhngq7299dKLwIMtgTfbkoSPF6AoMYDd8Q4q0= | |||||
| github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= | |||||
| github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||
| github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||
| github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= | github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= | ||||
| @@ -769,9 +777,13 @@ github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0ua | |||||
| github.com/rabbitmq/amqp091-go v1.1.0/go.mod h1:ogQDLSOACsLPsIq0NpbtiifNZi2YOz0VTJ0kHRghqbM= | github.com/rabbitmq/amqp091-go v1.1.0/go.mod h1:ogQDLSOACsLPsIq0NpbtiifNZi2YOz0VTJ0kHRghqbM= | ||||
| github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= | github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= | ||||
| github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= | github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= | ||||
| github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= | |||||
| github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= | |||||
| github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= | github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= | ||||
| github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||
| github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | ||||
| github.com/segmentio/kafka-go v0.4.38 h1:iQdOBbUSdfuYlFpvjuALgj7N6DrdPA0HfB4AhREOdtg= | |||||
| github.com/segmentio/kafka-go v0.4.38/go.mod h1:ikyuGon/60MN/vXFgykf7Zm8P5Be49gJU6vezwjnnhU= | |||||
| github.com/shirou/gopsutil v2.19.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= | github.com/shirou/gopsutil v2.19.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= | ||||
| github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= | github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= | ||||
| github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= | github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= | ||||
| @@ -792,6 +804,7 @@ github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzu | |||||
| github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= | github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= | ||||
| github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= | github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= | ||||
| github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= | github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= | ||||
| github.com/streadway/amqp v1.0.0/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= | |||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||
| github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||
| github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= | github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= | ||||
| @@ -816,6 +829,10 @@ github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+ | |||||
| github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= | github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= | ||||
| github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= | github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= | ||||
| github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= | github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= | ||||
| github.com/xdg/scram v1.0.5 h1:TuS0RFmt5Is5qm9Tm2SoD89OPqe4IRiFtyFY4iwWXsw= | |||||
| github.com/xdg/scram v1.0.5/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= | |||||
| github.com/xdg/stringprep v1.0.3 h1:cmL5Enob4W83ti/ZHuZLuKD/xqJfus4fVPwE+/BDm+4= | |||||
| github.com/xdg/stringprep v1.0.3/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= | |||||
| github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= | github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= | ||||
| github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | ||||
| github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | ||||
| @@ -825,6 +842,9 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 | |||||
| github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= | github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= | ||||
| github.com/yuin/gopher-lua v0.0.0-20220504180219-658193537a64 h1:5mLPGnFdSsevFRFc9q3yYbBkB6tsm4aCwwQV/j1JQAQ= | github.com/yuin/gopher-lua v0.0.0-20220504180219-658193537a64 h1:5mLPGnFdSsevFRFc9q3yYbBkB6tsm4aCwwQV/j1JQAQ= | ||||
| github.com/yuin/gopher-lua v0.0.0-20220504180219-658193537a64/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw= | github.com/yuin/gopher-lua v0.0.0-20220504180219-658193537a64/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw= | ||||
| github.com/zeromicro/go-queue v1.1.8 h1:DSzOYh6tSr0Flw9FqnaBX2fxR0T3vgEwVNItobLwQgE= | |||||
| github.com/zeromicro/go-queue v1.1.8/go.mod h1:sKF0fI9cKmqY/Y9Pr2aRnt3zllnPglBJ1yl4ByOEhiw= | |||||
| github.com/zeromicro/go-zero v1.4.3/go.mod h1:UmDjuW7LHd9j7+nnnPBcXF0HLNmjJw6OjHPTlSp7X7Y= | |||||
| github.com/zeromicro/go-zero v1.4.4 h1:J8M768EVFNtIQJ/GCEsoIQPanxbx2HHT0it7r69U76Y= | github.com/zeromicro/go-zero v1.4.4 h1:J8M768EVFNtIQJ/GCEsoIQPanxbx2HHT0it7r69U76Y= | ||||
| github.com/zeromicro/go-zero v1.4.4/go.mod h1:5WSUwtJm0bYdDZ69GlckigcT6D0EyAPbDaX3unbSY/4= | github.com/zeromicro/go-zero v1.4.4/go.mod h1:5WSUwtJm0bYdDZ69GlckigcT6D0EyAPbDaX3unbSY/4= | ||||
| go.etcd.io/etcd/api/v3 v3.5.5 h1:BX4JIbQ7hl7+jL+g+2j5UAr0o1bctCm6/Ct+ArBGkf0= | go.etcd.io/etcd/api/v3 v3.5.5 h1:BX4JIbQ7hl7+jL+g+2j5UAr0o1bctCm6/Ct+ArBGkf0= | ||||
| @@ -890,6 +910,7 @@ golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPh | |||||
| golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= | golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= | ||||
| golang.org/x/crypto v0.0.0-20210920023735-84f357641f63/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | golang.org/x/crypto v0.0.0-20210920023735-84f357641f63/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | ||||
| golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | ||||
| golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY= | |||||
| golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= | golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= | ||||
| golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | ||||
| golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | ||||
| @@ -981,6 +1002,7 @@ golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su | |||||
| golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | ||||
| golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | ||||
| golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | ||||
| golang.org/x/net v0.0.0-20220706163947-c90051bbdb60/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | |||||
| golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | ||||
| golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= | golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= | ||||
| golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= | golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= | ||||