Browse Source

提交任务代码调整

pull/9/head
tzwang 2 years ago
parent
commit
4d1b9612b7
7 changed files with 359 additions and 256 deletions
  1. +103
    -95
      adaptor/slurm/slurmCore/api/internal/types/types.go
  2. +103
    -95
      adaptor/slurm/slurmCore/api/slurmCore.api
  3. +1
    -1
      adaptor/slurm/slurmCore/api/slurmcore.go
  4. +4
    -5
      adaptor/slurm/slurmShuguang/rpc/internal/logic/submitjoblogic.go
  5. +7
    -7
      adaptor/slurm/slurmShuguang/rpc/internal/util/shuguangAuth.go
  6. +17
    -9
      adaptor/slurm/slurmShuguang/rpc/pb/slurmShuguang.proto
  7. +124
    -44
      adaptor/slurm/slurmShuguang/rpc/slurmShuguang/slurmShuguang.pb.go

+ 103
- 95
adaptor/slurm/slurmCore/api/internal/types/types.go View File

@@ -181,89 +181,89 @@ type SubmitJobReq struct {
Appname string `json:"appname"`
StrJobManagerID int64 `json:"strJobManagerID"`
MapAppJobInfo MapAppJobInfo `json:"mapAppJobInfo"`
Account string `json:"account,omitempty"`
Acctg_freq string `json:"acctg_freq,omitempty"`
Alloc_node string `json:"alloc_node,omitempty"`
Alloc_resp_port int32 `json:"alloc_resp_port,omitempty"`
Alloc_sid int32 `json:"alloc_sid,omitempty"`
Argc int32 `json:"argc,omitempty"`
Argv []Argv `json:"Argv,omitempty"`
Array_inx string `json:"array_inx,omitempty"`
Begin_time int64 `json:"begin_time,omitempty"`
Ckpt_interval int32 `json:"ckpt_interval,omitempty"`
Ckpt_dir string `json:"ckpt_dir,omitempty"`
Comment string `json:"comment,omitempty"`
Contiguous int32 `json:"contiguous,omitempty"`
Cpu_bind string `json:"cpu_bind,omitempty"`
Cpu_bind_type int32 `json:"cpu_bind_type,omitempty"`
Dependency string `json:"dependency,omitempty"`
End_time int64 `json:"end_time,omitempty"`
Environment []Environment `json:"Environment,omitempty"`
Env_size int32 `json:"env_size,omitempty"`
Exc_nodes string `json:"exc_nodes,omitempty"`
Features string `json:"features,omitempty"`
Gres string `json:"gres,omitempty"`
Group_id int32 `json:"group_id,omitempty"`
Immediate int32 `json:"immediate,omitempty"`
Job_id int32 `json:"job_id,omitempty"`
Kill_on_node_fail int32 `json:"kill_on_node_fail,omitempty"`
Licenses string `json:"licenses,omitempty"`
Mail_type int32 `json:"mail_type,omitempty"`
Mail_user string `json:"mail_user,omitempty"`
Mem_bind string `json:"mem_bind,omitempty"`
Mem_bind_type int32 `json:"mem_bind_type,omitempty"`
Name string `json:"name,omitempty"`
Network string `json:"network,omitempty"`
Nice int32 `json:"nice,omitempty"`
Num_tasks int32 `json:"num_tasks,omitempty"`
Open_mode int32 `json:"open_mode,omitempty"`
Other_port int32 `json:"other_port,omitempty"`
Overcommit int32 `json:"overcommit,omitempty"`
Partition string `json:"partition,omitempty"`
Plane_size int32 `json:"plane_size,omitempty"`
Priority int32 `json:"priority,omitempty"`
Profile int32 `json:"profile,omitempty"`
Qos string `json:"qos,omitempty"`
Resp_host string `json:"resp_host,omitempty"`
Req_nodes string `json:"req_nodes,omitempty"`
Requeue int32 `json:"requeue,omitempty"`
Reservation string `json:"reservation,omitempty"`
Script string `json:"script,omitempty"`
Shared int32 `json:"shared,omitempty"`
Spank_job_env_size int32 `json:"spank_job_env_size,omitempty"`
Task_dist int32 `json:"task_dist,omitempty"`
Time_limit int32 `json:"time_limit,omitempty"`
Time_min int32 `json:"time_min,omitempty"`
User_id int32 `json:"user_id,omitempty"`
Wait_all_nodes int32 `json:"wait_all_nodes,omitempty"`
Warn_signal int32 `json:"warn_signal,omitempty"`
Warn_time int32 `json:"warn_time,omitempty"`
Work_dir string `json:"work_dir,omitempty"`
Cpus_per_task int32 `json:"cpus_per_task,omitempty"`
Min_cpus int32 `json:"min_cpus,omitempty"`
Max_cpus int32 `json:"max_cpus,omitempty"`
Min_nodes int32 `json:"min_nodes,omitempty"`
Max_nodes int32 `json:"max_nodes,omitempty"`
Boards_per_node int32 `json:"boards_per_node,omitempty"`
Sockets_per_board int32 `json:"sockets_per_board,omitempty"`
Sockets_per_node int32 `json:"sockets_per_node,omitempty"`
Cores_per_socket int32 `json:"cores_per_socket,omitempty"`
Threads_per_core int32 `json:"threads_per_core,omitempty"`
Ntasks_per_node int32 `json:"ntasks_per_node,omitempty"`
Ntasks_per_socket int32 `json:"ntasks_per_socket,omitempty"`
Ntasks_per_core int32 `json:"ntasks_per_core,omitempty"`
Ntasks_per_board int32 `json:"ntasks_per_board,omitempty"`
Pn_min_cpus int32 `json:"pn_min_cpus,omitempty"`
Pn_min_memory int32 `json:"pn_min_memory,omitempty"`
Pn_min_tmp_disk int32 `json:"pn_min_tmp_disk,omitempty"`
Reboot int32 `json:"reboot,omitempty"`
Rotate int32 `json:"rotate,omitempty"`
Req_switch int32 `json:"req_switch,omitempty"`
Std_err string `json:"std_err,omitempty"`
Std_in string `json:"std_in,omitempty"`
Std_out string `json:"std_out,omitempty"`
Wait4switch int32 `json:"wait4switch,omitempty"`
Wckey string `json:"wckey,omitempty"`
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 SubmitJobResp struct {
@@ -273,24 +273,32 @@ type SubmitJobResp struct {
}

type MapAppJobInfo struct {
GAP_CMD_FILE string `json:"GAP_CMD_FILE"` //命令行内容
GAP_NNODE string `json:"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_WALL_TIME string `json:"GAP_WALL_TIME"` //最大运行时长(HH:MM:ss)
GAP_APPNAME string `json:"GAP_APPNAME"` //BASE(基础应用),支持填写具体的应用英文名称
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
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
}

type Argv struct {
Argv string `json:"argv,omitempty"`
Argv string `json:"argv,optional"`
}

type Environment struct {
Environment string `json:"environment,omitempty"`
Environment string `json:"environment,optional"`
}

type GetRegionResp struct {


+ 103
- 95
adaptor/slurm/slurmCore/api/slurmCore.api View File

@@ -200,89 +200,89 @@ type (
MapAppJobInfo MapAppJobInfo `json:"mapAppJobInfo"`
/****************parmas from shuguang********************/

Account string `json:"account,omitempty"`
Acctg_freq string `json:"acctg_freq,omitempty"`
Alloc_node string `json:"alloc_node,omitempty"`
Alloc_resp_port int32 `json:"alloc_resp_port,omitempty"`
Alloc_sid int32 `json:"alloc_sid,omitempty"`
Argc int32 `json:"argc,omitempty"`
Argv []Argv `json:"Argv,omitempty"`
Array_inx string `json:"array_inx,omitempty"`
Begin_time int64 `json:"begin_time,omitempty"`
Ckpt_interval int32 `json:"ckpt_interval,omitempty"`
Ckpt_dir string `json:"ckpt_dir,omitempty"`
Comment string `json:"comment,omitempty"`
Contiguous int32 `json:"contiguous,omitempty"`
Cpu_bind string `json:"cpu_bind,omitempty"`
Cpu_bind_type int32 `json:"cpu_bind_type,omitempty"`
Dependency string `json:"dependency,omitempty"`
End_time int64 `json:"end_time,omitempty"`
Environment []Environment `json:"Environment,omitempty"`
Env_size int32 `json:"env_size,omitempty"`
Exc_nodes string `json:"exc_nodes,omitempty"`
Features string `json:"features,omitempty"`
Gres string `json:"gres,omitempty"`
Group_id int32 `json:"group_id,omitempty"`
Immediate int32 `json:"immediate,omitempty"`
Job_id int32 `json:"job_id,omitempty"`
Kill_on_node_fail int32 `json:"kill_on_node_fail,omitempty"`
Licenses string `json:"licenses,omitempty"`
Mail_type int32 `json:"mail_type,omitempty"`
Mail_user string `json:"mail_user,omitempty"`
Mem_bind string `json:"mem_bind,omitempty"`
Mem_bind_type int32 `json:"mem_bind_type,omitempty"`
Name string `json:"name,omitempty"`
Network string `json:"network,omitempty"`
Nice int32 `json:"nice,omitempty"`
Num_tasks int32 `json:"num_tasks,omitempty"`
Open_mode int32 `json:"open_mode,omitempty"`
Other_port int32 `json:"other_port,omitempty"`
Overcommit int32 `json:"overcommit,omitempty"`
Partition string `json:"partition,omitempty"`
Plane_size int32 `json:"plane_size,omitempty"`
Priority int32 `json:"priority,omitempty"`
Profile int32 `json:"profile,omitempty"`
Qos string `json:"qos,omitempty"`
Resp_host string `json:"resp_host,omitempty"`
Req_nodes string `json:"req_nodes,omitempty"`
Requeue int32 `json:"requeue,omitempty"`
Reservation string `json:"reservation,omitempty"`
Script string `json:"script,omitempty"`
Shared int32 `json:"shared,omitempty"`
Spank_job_env_size int32 `json:"spank_job_env_size,omitempty"`
Task_dist int32 `json:"task_dist,omitempty"`
Time_limit int32 `json:"time_limit,omitempty"`
Time_min int32 `json:"time_min,omitempty"`
User_id int32 `json:"user_id,omitempty"`
Wait_all_nodes int32 `json:"wait_all_nodes,omitempty"`
Warn_signal int32 `json:"warn_signal,omitempty"`
Warn_time int32 `json:"warn_time,omitempty"`
Work_dir string `json:"work_dir,omitempty"`
Cpus_per_task int32 `json:"cpus_per_task,omitempty"`
Min_cpus int32 `json:"min_cpus,omitempty"`
Max_cpus int32 `json:"max_cpus,omitempty"`
Min_nodes int32 `json:"min_nodes,omitempty"`
Max_nodes int32 `json:"max_nodes,omitempty"`
Boards_per_node int32 `json:"boards_per_node,omitempty"`
Sockets_per_board int32 `json:"sockets_per_board,omitempty"`
Sockets_per_node int32 `json:"sockets_per_node,omitempty"`
Cores_per_socket int32 `json:"cores_per_socket,omitempty"`
Threads_per_core int32 `json:"threads_per_core,omitempty"`
Ntasks_per_node int32 `json:"ntasks_per_node,omitempty"`
Ntasks_per_socket int32 `json:"ntasks_per_socket,omitempty"`
Ntasks_per_core int32 `json:"ntasks_per_core,omitempty"`
Ntasks_per_board int32 `json:"ntasks_per_board,omitempty"`
Pn_min_cpus int32 `json:"pn_min_cpus,omitempty"`
Pn_min_memory int32 `json:"pn_min_memory,omitempty"`
Pn_min_tmp_disk int32 `json:"pn_min_tmp_disk,omitempty"`
Reboot int32 `json:"reboot,omitempty"`
Rotate int32 `json:"rotate,omitempty"`
Req_switch int32 `json:"req_switch,omitempty"`
Std_err string `json:"std_err,omitempty"`
Std_in string `json:"std_in,omitempty"`
Std_out string `json:"std_out,omitempty"`
Wait4switch int32 `json:"wait4switch,omitempty"`
Wckey string `json:"wckey,omitempty"`
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"`
}

submitJobResp {
@@ -296,24 +296,32 @@ type (
}

MapAppJobInfo {
GAP_CMD_FILE string `json:"GAP_CMD_FILE"` //命令行内容
GAP_NNODE string `json:"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_WALL_TIME string `json:"GAP_WALL_TIME"` //最大运行时长(HH:MM:ss)
GAP_APPNAME string `json:"GAP_APPNAME"` //BASE(基础应用),支持填写具体的应用英文名称
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
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
}

Argv {
Argv string `json:"argv,omitempty"`
Argv string `json:"argv,optional"`
}

Environment {
Environment string `json:"environment,omitempty"`
Environment string `json:"environment,optional"`
}
)



+ 1
- 1
adaptor/slurm/slurmCore/api/slurmcore.go View File

@@ -12,7 +12,7 @@ import (
"github.com/zeromicro/go-zero/rest"
)

var configFile = flag.String("f", "adaptor/slurm/slurmCore/api/etc/slurmcore-api.yaml", "the config file")
var configFile = flag.String("f", "C:\\Users\\admin\\Documents\\122\\jcce\\PCM\\adaptor\\slurm\\slurmCore\\api\\etc\\slurmcore-api.yaml", "the config file")

func main() {
flag.Parse()


+ 4
- 5
adaptor/slurm/slurmShuguang/rpc/internal/logic/submitjoblogic.go View File

@@ -41,13 +41,12 @@ func (l *SubmitJobLogic) SubmitJob(in *slurmShuguang.SubmitJobReq) (*slurmShugua
jsonStr, _ := json.Marshal(in)
req_url, err := http.NewRequest("POST", "https://api01.hpccube.com:65106/"+jobSubmitUrl, bytes.NewBuffer(jsonStr))

Gtoken := util.GetToken()
var token string
if util.GetTokenState(Gtoken) {
token = Gtoken
if util.GetTokenState(util.Gtoken) {
token = util.Gtoken
} else {
token = util.GetToken()
Gtoken = token
util.Gtoken = token
}

req_url.Header.Add("content-type", "application/json")
@@ -65,7 +64,7 @@ func (l *SubmitJobLogic) SubmitJob(in *slurmShuguang.SubmitJobReq) (*slurmShugua
defer respUrl.Body.Close()

if err != nil {
log.Fatal(err)
return resp, err
}

result, _ := ioutil.ReadAll(respUrl.Body)


+ 7
- 7
adaptor/slurm/slurmShuguang/rpc/internal/util/shuguangAuth.go View File

@@ -69,10 +69,10 @@ type dataToken struct {
Token string `json:"token"`
}

var configFile = flag.String("flll", "adaptor/slurm/slurmShuguang/rpc/etc/slurmshuguang.yaml", "the config file")
var configFile = flag.String("flll", "C:\\Users\\admin\\Documents\\122\\jcce\\pcm\\adaptor\\slurm\\slurmShuguang\\rpc\\etc\\slurmshuguang.yaml", "the config file")

func GetClusterId() int {
httpClient := http.Client{Timeout: time.Duration(5) * time.Second}
httpClient := http.Client{Timeout: time.Duration(3) * time.Second}
var cf config.Config
conf.MustLoad(*configFile, &cf)
ctx := svc.NewServiceContext(cf)
@@ -94,7 +94,7 @@ func GetClusterId() int {
req.Header.Add("token", token)
resp, err := httpClient.Do(req)
if err != nil {
log.Fatal(err)
return 0
}
body, err := io.ReadAll(resp.Body)
var res cluster
@@ -118,7 +118,7 @@ func GetClusterId() int {
}

func GetToken() string {
httpClient := http.Client{Timeout: time.Duration(5) * time.Second}
httpClient := http.Client{Timeout: time.Duration(3) * time.Second}
var cf config.Config
conf.MustLoad(*configFile, &cf)
ctx := svc.NewServiceContext(cf)
@@ -133,7 +133,7 @@ func GetToken() string {

resp, err := httpClient.Do(req)
if err != nil {
log.Fatal(err)
return ""
}

body, err := io.ReadAll(resp.Body)
@@ -158,7 +158,7 @@ func GetToken() string {
}

func GetTokenState(token string) bool {
httpClient := http.Client{Timeout: time.Duration(5) * time.Second}
httpClient := http.Client{Timeout: time.Duration(3) * time.Second}
var cf config.Config
conf.MustLoad(*configFile, &cf)
ctx := svc.NewServiceContext(cf)
@@ -171,7 +171,7 @@ func GetTokenState(token string) bool {
resp, err := httpClient.Do(req)
var res stateToken
if err != nil {
log.Fatal(err)
return false
}
body, err := io.ReadAll(resp.Body)
err = json.Unmarshal(body, &res)


+ 17
- 9
adaptor/slurm/slurmShuguang/rpc/pb/slurmShuguang.proto View File

@@ -91,15 +91,23 @@ message SubmitJobResp{

message MapAppJobInfo{
string GAP_CMD_FILE = 1; // @gotags: copier:"GAP_CMD_FILE" //命令行内容
string GAP_NNODE = 2; // @gotags: copier:"GAP_NNODE" //节点个数
string GAP_SUBMIT_TYPE = 3; // @gotags: copier:"GAP_SUBMIT_TYPE" //cmd(命令行模式)
string GAP_JOB_NAME = 4; // @gotags: copier:"GAP_JOB_NAME" //作业名称
string GAP_WORK_DIR = 5; // @gotags: copier:"GAP_WORK_DIR" //工作路径
string GAP_QUEUE = 6; // @gotags: copier:"GAP_QUEUE" //队列名称
string GAP_WALL_TIME = 7; // @gotags: copier:"GAP_WALL_TIME" //最大运行时长(HH:MM:ss)
string GAP_APPNAME = 8; // @gotags: copier:"GAP_APPNAME" //BASE(基础应用),支持填写具体的应用英文名称
string GAP_STD_OUT_FILE = 9; // @gotags: copier:"GAP_STD_OUT_FILE" //工作路径/std.out.%j
string GAP_STD_ERR_FILE = 10; // @gotags: copier:"GAP_STD_ERR_FILE" //工作路径/std.err.%j
string GAP_NNODE = 2; // @gotags: copier:"GAP_NNODE" //节点个数(当指定该参数时,GAP_NODE_STRING必须为"")
string GAP_NODE_STRING = 3; // @gotags: copier:"GAP_NODE_STRING" //指定节点(当指定该参数时,GAP_NNODE必须为"")
string GAP_SUBMIT_TYPE = 4; // @gotags: copier:"GAP_SUBMIT_TYPE" //cmd(命令行模式)
string GAP_JOB_NAME = 5; // @gotags: copier:"GAP_JOB_NAME" //作业名称
string GAP_WORK_DIR = 6; // @gotags: copier:"GAP_WORK_DIR" //工作路径
string GAP_QUEUE = 7; // @gotags: copier:"GAP_QUEUE" //队列名称
string GAP_NPROC = 8; // @gotags: copier:"GAP_NPROC" //总核心数(GAP_NPROC和GAP_PPN选其一填写)
string GAP_PPN = 9; // @gotags: copier:"GAP_PPN" //CPU核心/节点(GAP_NPROC和GAP_PPN选其一填写)
string GAP_NGPU = 10; // @gotags: copier:"GAP_NGPU" //GPU卡数/节点
string GAP_NDCU = 11; // @gotags: copier:"GAP_NDCU" //DCU卡数/节点
string GAP_JOB_MEM = 12; // @gotags: copier:"GAP_JOB_MEM" //每个节点内存值,单位为MB/GB
string GAP_WALL_TIME = 13; // @gotags: copier:"GAP_WALL_TIME" //最大运行时长(HH:MM:ss)
string GAP_EXCLUSIVE = 14; // @gotags: copier:"GAP_EXCLUSIVE" // 是否独占节点,1为独占,空为非独占
string GAP_APPNAME = 15; // @gotags: copier:"GAP_APPNAME" //BASE(基础应用),支持填写具体的应用英文名称
string GAP_MULTI_SUB = 16; // @gotags: copier:"GAP_MULTI_SUB" //作业组长度,建议为小于等于50的正整数
string GAP_STD_OUT_FILE = 17; // @gotags: copier:"GAP_STD_OUT_FILE" //工作路径/std.out.%j
string GAP_STD_ERR_FILE = 18; // @gotags: copier:"GAP_STD_ERR_FILE" //工作路径/std.err.%j
}
/******************Job(Submit) End*************************/



+ 124
- 44
adaptor/slurm/slurmShuguang/rpc/slurmShuguang/slurmShuguang.pb.go View File

@@ -772,15 +772,23 @@ type MapAppJobInfo struct {
unknownFields protoimpl.UnknownFields

GAP_CMD_FILE string `protobuf:"bytes,1,opt,name=GAP_CMD_FILE,json=GAPCMDFILE,proto3" json:"GAP_CMD_FILE,omitempty"` // @gotags: copier:"GAP_CMD_FILE" //命令行内容
GAP_NNODE string `protobuf:"bytes,2,opt,name=GAP_NNODE,json=GAPNNODE,proto3" json:"GAP_NNODE,omitempty"` // @gotags: copier:"GAP_NNODE" //节点个数
GAP_SUBMIT_TYPE string `protobuf:"bytes,3,opt,name=GAP_SUBMIT_TYPE,json=GAPSUBMITTYPE,proto3" json:"GAP_SUBMIT_TYPE,omitempty"` // @gotags: copier:"GAP_SUBMIT_TYPE" //cmd(命令行模式)
GAP_JOB_NAME string `protobuf:"bytes,4,opt,name=GAP_JOB_NAME,json=GAPJOBNAME,proto3" json:"GAP_JOB_NAME,omitempty"` // @gotags: copier:"GAP_JOB_NAME" //作业名称
GAP_WORK_DIR string `protobuf:"bytes,5,opt,name=GAP_WORK_DIR,json=GAPWORKDIR,proto3" json:"GAP_WORK_DIR,omitempty"` // @gotags: copier:"GAP_WORK_DIR" //工作路径
GAP_QUEUE string `protobuf:"bytes,6,opt,name=GAP_QUEUE,json=GAPQUEUE,proto3" json:"GAP_QUEUE,omitempty"` // @gotags: copier:"GAP_QUEUE" //队列名称
GAP_WALL_TIME string `protobuf:"bytes,7,opt,name=GAP_WALL_TIME,json=GAPWALLTIME,proto3" json:"GAP_WALL_TIME,omitempty"` // @gotags: copier:"GAP_WALL_TIME" //最大运行时长(HH:MM:ss)
GAP_APPNAME string `protobuf:"bytes,8,opt,name=GAP_APPNAME,json=GAPAPPNAME,proto3" json:"GAP_APPNAME,omitempty"` // @gotags: copier:"GAP_APPNAME" //BASE(基础应用),支持填写具体的应用英文名称
GAP_STD_OUT_FILE string `protobuf:"bytes,9,opt,name=GAP_STD_OUT_FILE,json=GAPSTDOUTFILE,proto3" json:"GAP_STD_OUT_FILE,omitempty"` // @gotags: copier:"GAP_STD_OUT_FILE" //工作路径/std.out.%j
GAP_STD_ERR_FILE string `protobuf:"bytes,10,opt,name=GAP_STD_ERR_FILE,json=GAPSTDERRFILE,proto3" json:"GAP_STD_ERR_FILE,omitempty"` // @gotags: copier:"GAP_STD_ERR_FILE" //工作路径/std.err.%j
GAP_NNODE string `protobuf:"bytes,2,opt,name=GAP_NNODE,json=GAPNNODE,proto3" json:"GAP_NNODE,omitempty"` // @gotags: copier:"GAP_NNODE" //节点个数(当指定该参数时,GAP_NODE_STRING必须为"")
GAP_NODE_STRING string `protobuf:"bytes,3,opt,name=GAP_NODE_STRING,json=GAPNODESTRING,proto3" json:"GAP_NODE_STRING,omitempty"` // @gotags: copier:"GAP_NODE_STRING" //指定节点(当指定该参数时,GAP_NNODE必须为"")
GAP_SUBMIT_TYPE string `protobuf:"bytes,4,opt,name=GAP_SUBMIT_TYPE,json=GAPSUBMITTYPE,proto3" json:"GAP_SUBMIT_TYPE,omitempty"` // @gotags: copier:"GAP_SUBMIT_TYPE" //cmd(命令行模式)
GAP_JOB_NAME string `protobuf:"bytes,5,opt,name=GAP_JOB_NAME,json=GAPJOBNAME,proto3" json:"GAP_JOB_NAME,omitempty"` // @gotags: copier:"GAP_JOB_NAME" //作业名称
GAP_WORK_DIR string `protobuf:"bytes,6,opt,name=GAP_WORK_DIR,json=GAPWORKDIR,proto3" json:"GAP_WORK_DIR,omitempty"` // @gotags: copier:"GAP_WORK_DIR" //工作路径
GAP_QUEUE string `protobuf:"bytes,7,opt,name=GAP_QUEUE,json=GAPQUEUE,proto3" json:"GAP_QUEUE,omitempty"` // @gotags: copier:"GAP_QUEUE" //队列名称
GAP_NPROC string `protobuf:"bytes,8,opt,name=GAP_NPROC,json=GAPNPROC,proto3" json:"GAP_NPROC,omitempty"` // @gotags: copier:"GAP_NPROC" //总核心数(GAP_NPROC和GAP_PPN选其一填写)
GAP_PPN string `protobuf:"bytes,9,opt,name=GAP_PPN,json=GAPPPN,proto3" json:"GAP_PPN,omitempty"` // @gotags: copier:"GAP_PPN" //CPU核心/节点(GAP_NPROC和GAP_PPN选其一填写)
GAP_NGPU string `protobuf:"bytes,10,opt,name=GAP_NGPU,json=GAPNGPU,proto3" json:"GAP_NGPU,omitempty"` // @gotags: copier:"GAP_NGPU" //GPU卡数/节点
GAP_NDCU string `protobuf:"bytes,11,opt,name=GAP_NDCU,json=GAPNDCU,proto3" json:"GAP_NDCU,omitempty"` // @gotags: copier:"GAP_NDCU" //DCU卡数/节点
GAP_JOB_MEM string `protobuf:"bytes,12,opt,name=GAP_JOB_MEM,json=GAPJOBMEM,proto3" json:"GAP_JOB_MEM,omitempty"` // @gotags: copier:"GAP_JOB_MEM" //每个节点内存值,单位为MB/GB
GAP_WALL_TIME string `protobuf:"bytes,13,opt,name=GAP_WALL_TIME,json=GAPWALLTIME,proto3" json:"GAP_WALL_TIME,omitempty"` // @gotags: copier:"GAP_WALL_TIME" //最大运行时长(HH:MM:ss)
GAP_EXCLUSIVE string `protobuf:"bytes,14,opt,name=GAP_EXCLUSIVE,json=GAPEXCLUSIVE,proto3" json:"GAP_EXCLUSIVE,omitempty"` // @gotags: copier:"GAP_EXCLUSIVE" // 是否独占节点,1为独占,空为非独占
GAP_APPNAME string `protobuf:"bytes,15,opt,name=GAP_APPNAME,json=GAPAPPNAME,proto3" json:"GAP_APPNAME,omitempty"` // @gotags: copier:"GAP_APPNAME" //BASE(基础应用),支持填写具体的应用英文名称
GAP_MULTI_SUB string `protobuf:"bytes,16,opt,name=GAP_MULTI_SUB,json=GAPMULTISUB,proto3" json:"GAP_MULTI_SUB,omitempty"` // @gotags: copier:"GAP_MULTI_SUB" //作业组长度,建议为小于等于50的正整数
GAP_STD_OUT_FILE string `protobuf:"bytes,17,opt,name=GAP_STD_OUT_FILE,json=GAPSTDOUTFILE,proto3" json:"GAP_STD_OUT_FILE,omitempty"` // @gotags: copier:"GAP_STD_OUT_FILE" //工作路径/std.out.%j
GAP_STD_ERR_FILE string `protobuf:"bytes,18,opt,name=GAP_STD_ERR_FILE,json=GAPSTDERRFILE,proto3" json:"GAP_STD_ERR_FILE,omitempty"` // @gotags: copier:"GAP_STD_ERR_FILE" //工作路径/std.err.%j
}

func (x *MapAppJobInfo) Reset() {
@@ -829,6 +837,13 @@ func (x *MapAppJobInfo) GetGAP_NNODE() string {
return ""
}

func (x *MapAppJobInfo) GetGAP_NODE_STRING() string {
if x != nil {
return x.GAP_NODE_STRING
}
return ""
}

func (x *MapAppJobInfo) GetGAP_SUBMIT_TYPE() string {
if x != nil {
return x.GAP_SUBMIT_TYPE
@@ -857,6 +872,41 @@ func (x *MapAppJobInfo) GetGAP_QUEUE() string {
return ""
}

func (x *MapAppJobInfo) GetGAP_NPROC() string {
if x != nil {
return x.GAP_NPROC
}
return ""
}

func (x *MapAppJobInfo) GetGAP_PPN() string {
if x != nil {
return x.GAP_PPN
}
return ""
}

func (x *MapAppJobInfo) GetGAP_NGPU() string {
if x != nil {
return x.GAP_NGPU
}
return ""
}

func (x *MapAppJobInfo) GetGAP_NDCU() string {
if x != nil {
return x.GAP_NDCU
}
return ""
}

func (x *MapAppJobInfo) GetGAP_JOB_MEM() string {
if x != nil {
return x.GAP_JOB_MEM
}
return ""
}

func (x *MapAppJobInfo) GetGAP_WALL_TIME() string {
if x != nil {
return x.GAP_WALL_TIME
@@ -864,6 +914,13 @@ func (x *MapAppJobInfo) GetGAP_WALL_TIME() string {
return ""
}

func (x *MapAppJobInfo) GetGAP_EXCLUSIVE() string {
if x != nil {
return x.GAP_EXCLUSIVE
}
return ""
}

func (x *MapAppJobInfo) GetGAP_APPNAME() string {
if x != nil {
return x.GAP_APPNAME
@@ -871,6 +928,13 @@ func (x *MapAppJobInfo) GetGAP_APPNAME() string {
return ""
}

func (x *MapAppJobInfo) GetGAP_MULTI_SUB() string {
if x != nil {
return x.GAP_MULTI_SUB
}
return ""
}

func (x *MapAppJobInfo) GetGAP_STD_OUT_FILE() string {
if x != nil {
return x.GAP_STD_OUT_FILE
@@ -1003,46 +1067,62 @@ var file_slurmShuguang_proto_rawDesc = []byte{
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, 0xee, 0x02, 0x0a, 0x0d, 0x4d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e,
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, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x5f,
0x54, 0x59, 0x50, 0x45, 0x18, 0x03, 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, 0x04, 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, 0x05, 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, 0x06, 0x20, 0x01, 0x28, 0x09,
0x52, 0x08, 0x47, 0x41, 0x50, 0x51, 0x55, 0x45, 0x55, 0x45, 0x12, 0x22, 0x0a, 0x0d, 0x47, 0x41,
0x50, 0x5f, 0x57, 0x41, 0x4c, 0x4c, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x18, 0x07, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0b, 0x47, 0x41, 0x50, 0x57, 0x41, 0x4c, 0x4c, 0x54, 0x49, 0x4d, 0x45, 0x12, 0x1f,
0x0a, 0x0b, 0x47, 0x41, 0x50, 0x5f, 0x41, 0x50, 0x50, 0x4e, 0x41, 0x4d, 0x45, 0x18, 0x08, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x41, 0x50, 0x50, 0x4e, 0x41, 0x4d, 0x45, 0x12,
0x27, 0x0a, 0x10, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x54, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x46,
0x49, 0x4c, 0x45, 0x18, 0x09, 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, 0x0a, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, 0x54, 0x44, 0x45, 0x52, 0x52, 0x46, 0x49, 0x4c,
0x45, 0x32, 0xf0, 0x01, 0x0a, 0x0d, 0x53, 0x6c, 0x75, 0x72, 0x6d, 0x53, 0x68, 0x75, 0x67, 0x75,
0x61, 0x6e, 0x67, 0x12, 0x40, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x19,
0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x53, 0x68, 0x75, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x2e, 0x4c,
0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x73, 0x6c, 0x75, 0x72,
0x6d, 0x53, 0x68, 0x75, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f,
0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73,
0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x12, 0x20, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x53,
0x68, 0x75, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74,
0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x73, 0x6c, 0x75, 0x72,
0x6d, 0x53, 0x68, 0x75, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69,
0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x09,
0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1b, 0x2e, 0x73, 0x6c, 0x75, 0x72,
0x6d, 0x53, 0x68, 0x75, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74,
0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x53, 0x68,
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, 0xf0,
0x01, 0x0a, 0x0d, 0x53, 0x6c, 0x75, 0x72, 0x6d, 0x53, 0x68, 0x75, 0x67, 0x75, 0x61, 0x6e, 0x67,
0x12, 0x40, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x19, 0x2e, 0x73, 0x6c,
0x75, 0x72, 0x6d, 0x53, 0x68, 0x75, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x2e, 0x4c, 0x69, 0x73, 0x74,
0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x53, 0x68,
0x75, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65,
0x73, 0x70, 0x12, 0x55, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
0x79, 0x4a, 0x6f, 0x62, 0x12, 0x20, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x53, 0x68, 0x75, 0x67,
0x75, 0x61, 0x6e, 0x67, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79,
0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x53, 0x68,
0x75, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f,
0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x09, 0x53, 0x75, 0x62,
0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1b, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x53, 0x68,
0x75, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62,
0x52, 0x65, 0x73, 0x70, 0x42, 0x10, 0x5a, 0x0e, 0x2f, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x53, 0x68,
0x75, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x53, 0x68, 0x75, 0x67, 0x75,
0x61, 0x6e, 0x67, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73,
0x70, 0x42, 0x10, 0x5a, 0x0e, 0x2f, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x53, 0x68, 0x75, 0x67, 0x75,
0x61, 0x6e, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (


Loading…
Cancel
Save