You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

hpcAC.proto 31 kB

2 years ago
2 years ago
2 years ago
2 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583
  1. syntax = "proto3";
  2. package hpcAC;
  3. option go_package = "/hpcAC";
  4. /******************Cluster Start*************************/
  5. message JobManager{
  6. string job_manager_type = 1; // @gotags: copier:"JobManagerType", json:"JobManagerType"
  7. string job_manager_addr = 2; // @gotags: copier:"JobManagerAddr", json:"JobManagerAddr"
  8. int64 id = 3; // @gotags: copier:"ID", json:"id"
  9. string text = 4; // @gotags: copier:"Text", json:"text"
  10. string job_manager_port = 5; // @gotags: copier:"JobManagerPort", json:"JobManagerPort"
  11. }
  12. message JobManagerReq{
  13. }
  14. message ListJobManagerResp{
  15. string code = 1; // @gotags: copier:"Code", json:"code"
  16. string msg = 2; // @gotags: copier:"Msg", json:"msg"
  17. repeated JobManager data = 3; // @gotags: copier:"JobManagers", json:"data"
  18. }
  19. /******************Cluster End*************************/
  20. /******************Job Detail Start*************************/
  21. message JobInitAttr {
  22. string account = 1; // @gotags: copier:"Account", json:"Account"
  23. string accrue_time = 2; // @gotags: copier:"AccrueTime", json:"AccrueTime"
  24. string alloc_node_sid = 3; // @gotags: copier:"AllocNode:Sid", json:"AllocNode:Sid"
  25. string batch_flag = 4; // @gotags: copier:"BatchFlag", json:"BatchFlag"
  26. string cpus_task = 5; // @gotags: copier:"CPUs/Task", json:"CPUs/Task"
  27. string command = 6; // @gotags: copier:"Command", json:"Command"
  28. string command_exist = 7; // @gotags: copier:"CommandExist", json:"CommandExist"
  29. string comment = 8; // @gotags: copier:"Comment", json:"Comment"
  30. string contiguous = 9; // @gotags: copier:"Contiguous", json:"Contiguous"
  31. string core_spec = 10; // @gotags: copier:"CoreSpec", json:"CoreSpec"
  32. string deadline = 11; // @gotags: copier:"Deadline", json:"Deadline"
  33. string delay_boot = 12; // @gotags: copier:"DelayBoot", json:"DelayBoot"
  34. string dependency = 13; // @gotags: copier:"Dependency", json:"Dependency"
  35. string eligible_time = 14; // @gotags: copier:"EligibleTime", json:"EligibleTime"
  36. string end_time = 15; // @gotags: copier:"EndTime", json:"EndTime"
  37. string exc_node_list = 16; // @gotags: copier:"ExcNodeList", json:"ExcNodeList"
  38. string exit_code = 17; // @gotags: copier:"ExitCode", json:"ExitCode"
  39. string features = 18; // @gotags: copier:"Features", json:"Features"
  40. string group_id = 19; // @gotags: copier:"GroupId", json:"GroupId"
  41. string job_id = 20; // @gotags: copier:"JobId", json:"JobId"
  42. string job_name = 21; // @gotags: copier:"JobName", json:"JobName"
  43. string job_state = 22; // @gotags: copier:"JobState", json:"JobState"
  44. string licenses = 23; // @gotags: copier:"Licenses", json:"Licenses"
  45. string mcs_label = 24; // @gotags: copier:"MCS_label", json:"MCS_label"
  46. string min_cpus_node = 25; // @gotags: copier:"MinCPUsNode", json:"MinCPUsNode"
  47. string min_tmp_disk_node = 26; // @gotags: copier:"MinTmpDiskNode", json:"MinTmpDiskNode"
  48. string network = 27; // @gotags: copier:"Network", json:"Network"
  49. string nice = 28; // @gotags: copier:"Nice", json:"Nice"
  50. string node_list = 29; // @gotags: copier:"NodeList", json:"NodeList"
  51. string ntasks_per_nbsc = 30; // @gotags: copier:"NtasksPerN:B:S:C", json:"NtasksPerN:B:S:C"
  52. string num_cpus = 31; // @gotags: copier:"NumCPUs", json:"NumCPUs"
  53. string num_nodes = 32; // @gotags: copier:"NumNodes", json:"NumNodes"
  54. string num_tasks = 33; // @gotags: copier:"NumTasks", json:"NumTasks"
  55. string over_subscribe = 34; // @gotags: copier:"OverSubscribe", json:"OverSubscribe"
  56. string partition = 35; // @gotags: copier:"Partition", json:"Partition"
  57. string power = 36; // @gotags: copier:"Power", json:"Power"
  58. string priority = 37; // @gotags: copier:"Priority", json:"Priority"
  59. string qos = 38; // @gotags: copier:"QOS", json:"QOS"
  60. string reason = 39; // @gotags: copier:"Reason", json:"Reason"
  61. string reboot = 40; // @gotags: copier:"Reboot", json:"Reboot"
  62. string req_bsct = 41; // @gotags: copier:"ReqB:S:C:T", json:"ReqB:S:C:T"
  63. string ReqNodeList = 42; // @gotags: copier:"ReqNodeList", json:"ReqNodeList"
  64. string requeue = 43; // @gotags: copier:"Requeue", json:"Requeue"
  65. string restarts = 44; // @gotags: copier:"Restarts", json:"Restarts"
  66. string run_time = 45; // @gotags: copier:"RunTime", json:"RunTime"
  67. string batch_host = 46; // @gotags: copier:"BatchHost", json:"BatchHost"
  68. string secs_pre_suspend = 47; // @gotags: copier:"SecsPreSuspend", json:"SecsPreSuspend"
  69. string socks_node = 48; // @gotags: copier:"Socks/Node", json:"Socks/Node"
  70. string start_time = 49; // @gotags: copier:"StartTime", json:"StartTime"
  71. string std_err = 50; // @gotags: copier:"StdErr", json:"StdErr"
  72. string std_in = 51; // @gotags: copier:"StdIn", json:"StdIn"
  73. string std_out = 52; // @gotags: copier:"StdOut", json:"StdOut"
  74. string submit_time = 53; // @gotags: copier:"SubmitTime", json:"SubmitTime"
  75. string suspend_time = 54; // @gotags: copier:"SuspendTime", json:"SuspendTime"
  76. string tres = 55; // @gotags: copier:"TRES", json:"TRES"
  77. string time_limit = 56; // @gotags: copier:"TimeLimit", json:"TimeLimit"
  78. string time_min = 57; // @gotags: copier:"TimeMin", json:"TimeMin"
  79. string user_id = 58; // @gotags: copier:"UserId", json:"UserId"
  80. string work_dir = 59; // @gotags: copier:"WorkDir", json:"WorkDir"
  81. }
  82. message JobVncSessionInfo {
  83. string archive = 1; // @gotags: copier:"archive", json:"archive"
  84. uint32 i_client_number = 2; // @gotags: copier:"iClientNumber", json:"iClientNumber"
  85. string i_pixel_depth = 3; // @gotags: copier:"iPixelDepth", json:"iPixelDepth"
  86. string list_clients = 4; // @gotags: copier:"listClients", json:"listClients"
  87. string locale = 5; // @gotags: copier:"locale", json:"locale"
  88. string loginPasswd = 6; // @gotags: copier:"loginPasswd", json:"loginPasswd"
  89. string map_session_extra_attrs = 7; // @gotags: copier:"mapSessionExtraAttrs", json:"mapSessionExtraAttrs"
  90. string str_auth_type = 8; // @gotags: copier:"strAuthType", json:"strAuthType"
  91. string str_geometry = 9; // @gotags: copier:"strGeometry", json:"strGeometry"
  92. string str_job_manager_addr = 10; // @gotags: copier:"strJobManagerAddr", json:"strJobManagerAddr"
  93. string str_job_manager_id = 11; // @gotags: copier:"strJobManagerID", json:"strJobManagerID"
  94. string str_job_manager_name = 12; // @gotags: copier:"strJobManagerName", json:"strJobManagerName"
  95. string str_relate_job_id = 13; // @gotags: copier:"strRelateJobID", json:"strRelateJobID"
  96. string str_server_addr = 14; // @gotags: copier:"strServerAddr", json:"strServerAddr"
  97. string str_server_name = 15; // @gotags: copier:"strServerName", json:"strServerName"
  98. string str_session_ctime = 16; // @gotags: copier:"strSessionCTime", json:"strSessionCTime"
  99. string str_session_height = 17; // @gotags: copier:"strSessionHeight", json:"strSessionHeight"
  100. string str_session_id = 18; // @gotags: copier:"strSessionID", json:"strSessionID"
  101. string str_session_owner = 19; // @gotags: copier:"strSessionOwner", json:"strSessionOwner"
  102. string str_session_type = 20; // @gotags: copier:"strSessionType", json:"strSessionType"
  103. string str_session_width = 21; // @gotags: copier:"strSessionWidth", json:"strSessionWidth"
  104. string vnc_code = 22; // @gotags: copier:"vncCode", json:"vncCode"
  105. }
  106. message JobDetail{
  107. string app_type = 1; // @gotags: copier:"AppType", json:"appType"
  108. string ave_rss = 2; // @gotags: copier:"AveRSS", json:"aveRSS"
  109. string ave_vm_size = 3; // @gotags: copier:"AveVMSize", json:"aveVMSize"
  110. string cpu_time_used = 4; // @gotags: copier:"CpuTimeUsed", json:"cpuTimeUsed"
  111. uint32 dcu_num_req = 5; // @gotags: copier:"DcuNumReq", json:"dcuNumReq"
  112. uint32 dcu_num_used = 6; // @gotags: copier:"DcuNumUsed", json:"dcuNumUsed"
  113. string error_path = 7; // @gotags: copier:"ErrorPath", json:"errorPath"
  114. string exit_code = 8; // @gotags: copier:"ExitCode", json:"exitCode"
  115. uint32 gpu_num_req = 9; // @gotags: copier:"GpuNumReq", json:"gpuNumReq"
  116. uint32 gpu_num_used = 10; // @gotags: copier:"GpuNumUsed", json:"gpuNumUsed"
  117. string job_end_time = 11; // @gotags: copier:"JobEndTime", json:"jobEndTime"
  118. string job_id = 12; // @gotags: copier:"JobId", json:"jobId"
  119. JobInitAttr job_init_attr = 13; // @gotags: copier:"JobInitAttr", json:"JobInitAttr"
  120. string job_name = 14; // @gotags: copier:"JobName", json:"jobName"
  121. string job_run_time = 15; // @gotags: copier:"JobRunTime", json:"jobRunTime"
  122. string job_start_time = 16; // @gotags: copier:"JobStartTime", json:"jobStartTime"
  123. string job_status = 17; // @gotags: copier:"JobStatus", json:"jobStatus"
  124. string job_submit_time = 18; // @gotags: copier:"JobSubmitTime", json:"jobSubmitTime"
  125. JobVncSessionInfo job_session_info = 19; // @gotags: copier:"JobVncSessionInfo", json:"jobVncSessionInfo"
  126. string job_manager_id = 20; // @gotags: copier:"JobManagerId", json:"jobmanagerId"
  127. string job_manager_name = 21; // @gotags: copier:"JobManagerName", json:"jobmanagerName"
  128. string job_manager_type = 22; // @gotags: copier:"JobManagerType", json:"jobmanagerType"
  129. string mem_used = 23; // @gotags: copier:"MemUsed", json:"memUsed"
  130. uint32 node_num_req = 24; // @gotags: copier:"NodeNumReq", json:"nodeNumReq"
  131. string node_used = 25; // @gotags: copier:"NodeUsed", json:"nodeUsed"
  132. string output_path = 26; // @gotags: copier:"OutputPath", json:"outputPath"
  133. string priority = 27; // @gotags: copier:"Priority", json:"priority"
  134. uint32 proc_num_req = 28; // @gotags: copier:"ProcNumReq", json:"procNumReq"
  135. uint32 proc_num_used = 29; // @gotags: copier:"procNumUsed", json:"procNumUsed"
  136. string queue = 30; // @gotags: copier:"Queue", json:"queue"
  137. string restarts = 31; // @gotags: copier:"Restarts", json:"restarts"
  138. string scale = 32; // @gotags: copier:"Scale", json:"scale"
  139. string user = 33; // @gotags: copier:"User", json:"user"
  140. string walltime_req = 34; // @gotags: copier:"WalltimeReq", json:"walltimeReq"
  141. string work_dir = 35; // @gotags: copier:"WorkDir", json:"workDir"
  142. }
  143. message JobDetailReq{
  144. string job_id =1; // @gotags: copier:"JobId", json:"jobId"
  145. }
  146. message GetJobDetailResp{
  147. string code = 1; // @gotags: copier:"Code", json:"code"
  148. string msg = 2; // @gotags: copier:"Msg", json:"msg"
  149. JobDetail job_detail = 3; // @gotags: copier:"JobDetail", json:"data"
  150. }
  151. /******************Job Detail End*************************/
  152. /******************Job(Delete) Start*************************/
  153. message DeleteJobReq{
  154. string str_job_info_map = 1; // @gotags: copier:"strJobInfoMap", json:"strJobInfoMap"
  155. }
  156. message DeleteJobResp{
  157. string code = 1; // @gotags: copier:"Code", json:"code"
  158. string msg = 2; // @gotags: copier:"Msg", json:"msg"
  159. map<string, string> result = 3; // @gotags: copier:"Result", json:"data"
  160. }
  161. /******************Job(Delete) End*************************/
  162. /******************Job Start*************************/
  163. message job{
  164. string job_id = 1; // @gotags: copier:"JobId"
  165. string job_name = 2; // @gotags: copier:"Name"
  166. string job_status = 3; // @gotags: copier:"JobState"
  167. string queue = 4; // @gotags: copier:"Partition"
  168. string user = 5; // @gotags: copier:"UserId"
  169. string node_used = 6; // @gotags: copier:"ExcNodes"
  170. int32 proc_num_used = 7; // @gotags: copier:"NumCpus"
  171. string job_start_time = 8; // @gotags: copier:"StartTime"
  172. string job_run_time = 9; // @gotags: copier:"JobRunTime"
  173. string job_manager_id = 10; // @gotags: copier:"JobmanagerId"
  174. string job_manager_name = 11; // @gotags: copier:"JobmanagerName"
  175. string job_manager_type = 12; // @gotags: copier:"JobmanagerType"
  176. string error_path = 13; // @gotags: copier:"ErrorPath"
  177. string output_path = 14; // @gotags: copier:"OutputPath"
  178. string work_dir = 15; // @gotags: copier:"WorkDir"
  179. string reason = 16; // @gotags: copier:"Reason"
  180. string app_type = 17; // @gotags: copier:"AppType"
  181. }
  182. message ListJobReq{
  183. }
  184. message ListJobResp{
  185. uint32 code = 1; // @gotags: copier:"Code"
  186. string msg = 2; // @gotags: copier:"Msg"
  187. uint32 record_count = 3; // @gotags: copier:"RecordCount"
  188. repeated job jobs = 4; // @gotags: copier:"Jobs"
  189. }
  190. /******************Job End*************************/
  191. /******************History Job Start*************************/
  192. message historyJob{
  193. string acct_time = 1; // @gotags: copier:"AcctTime"
  194. string app_type = 2; // @gotags: copier:"AppType"
  195. string job_end_time = 3; // @gotags: copier:"End"
  196. string job_exec_host = 4; // @gotags: copier:"Nodes"
  197. int32 job_exit_status = 5; // @gotags: copier:"ExitCode"
  198. int64 job_id = 6; // @gotags: copier:"JobId"
  199. string job_name = 7; // @gotags: copier:"JobName"
  200. string job_queue_time = 8; // @gotags: copier:"JobQueueTime"
  201. string job_start_time = 9; // @gotags: copier:"Start"
  202. string job_state = 10; // @gotags: copier:"State"
  203. string job_walltime_used = 11; // @gotags: copier:"JobWalltimeUsed"
  204. int64 job_manager_id = 12; // @gotags: copier:"JobManagerId"
  205. int32 node_ct = 13; // @gotags: copier:"AllocNodes"
  206. string queue = 14; // @gotags: copier:"Partition"
  207. string user_name = 15; // @gotags: copier:"User"
  208. string workdir = 16; // @gotags: copier:"WorkDir"
  209. }
  210. message ListHistoryJobReq{
  211. string startTime = 1;// @gotags: copier:"StartTime"
  212. string endTime = 2;// @gotags: copier:"EndTime"
  213. string timeType = 3;// @gotags: copier:"TimeType"
  214. int32 start = 4;// @gotags: copier:"Start"
  215. int32 limit = 5;// @gotags: copier:"Limit"
  216. int32 isQueryByQueueTime = 6;// @gotags: copier:"IsQueryByQueueTime"
  217. }
  218. message ListHistoryJobResp{
  219. uint32 code = 1; // @gotags: copier:"Code"
  220. string msg = 2; // @gotags: copier:"Msg"
  221. uint32 record_count = 3; // @gotags: copier:"RecordCount"
  222. repeated historyJob history_jobs = 4; // @gotags: copier:"HistoryJobs"
  223. }
  224. /******************History Job End*************************/
  225. /******************Job(Submit) Start*************************/
  226. message SubmitJobReq{
  227. string apptype = 1; // @gotags: copier:"Apptype"
  228. string appname = 2; // @gotags: copier:"Appname"
  229. int64 strJobManagerID = 3; // @gotags: copier:"StrJobManagerID"
  230. MapAppJobInfo mapAppJobInfo = 4; // @gotags: copier:"MapAppJobInfo"
  231. }
  232. message SubmitJobResp{
  233. string Code = 1; // @gotags: copier:"Code"
  234. string Msg = 2; // @gotags: copier:"Msg"
  235. string Data = 3; // @gotags: copier:"Data"
  236. }
  237. message MapAppJobInfo{
  238. string GAP_CMD_FILE = 1; // @gotags: copier:"GAP_CMD_FILE" //命令行内容
  239. string GAP_NNODE = 2; // @gotags: copier:"GAP_NNODE" //节点个数(当指定该参数时,GAP_NODE_STRING必须为"")
  240. string GAP_NODE_STRING = 3; // @gotags: copier:"GAP_NODE_STRING" //指定节点(当指定该参数时,GAP_NNODE必须为"")
  241. string GAP_SUBMIT_TYPE = 4; // @gotags: copier:"GAP_SUBMIT_TYPE" //cmd(命令行模式)
  242. string GAP_JOB_NAME = 5; // @gotags: copier:"GAP_JOB_NAME" //作业名称
  243. string GAP_WORK_DIR = 6; // @gotags: copier:"GAP_WORK_DIR" //工作路径
  244. string GAP_QUEUE = 7; // @gotags: copier:"GAP_QUEUE" //队列名称
  245. string GAP_NPROC = 8; // @gotags: copier:"GAP_NPROC" //总核心数(GAP_NPROC和GAP_PPN选其一填写)
  246. string GAP_PPN = 9; // @gotags: copier:"GAP_PPN" //CPU核心/节点(GAP_NPROC和GAP_PPN选其一填写)
  247. string GAP_NGPU = 10; // @gotags: copier:"GAP_NGPU" //GPU卡数/节点
  248. string GAP_NDCU = 11; // @gotags: copier:"GAP_NDCU" //DCU卡数/节点
  249. string GAP_JOB_MEM = 12; // @gotags: copier:"GAP_JOB_MEM" //每个节点内存值,单位为MB/GB
  250. string GAP_WALL_TIME = 13; // @gotags: copier:"GAP_WALL_TIME" //最大运行时长(HH:MM:ss)
  251. string GAP_EXCLUSIVE = 14; // @gotags: copier:"GAP_EXCLUSIVE" // 是否独占节点,1为独占,空为非独占
  252. string GAP_APPNAME = 15; // @gotags: copier:"GAP_APPNAME" //BASE(基础应用),支持填写具体的应用英文名称
  253. string GAP_MULTI_SUB = 16; // @gotags: copier:"GAP_MULTI_SUB" //作业组长度,建议为小于等于50的正整数
  254. string GAP_STD_OUT_FILE = 17; // @gotags: copier:"GAP_STD_OUT_FILE" //工作路径/std.out.%j
  255. string GAP_STD_ERR_FILE = 18; // @gotags: copier:"GAP_STD_ERR_FILE" //工作路径/std.err.%j
  256. }
  257. /******************Job(Submit) End*************************/
  258. message ParaStorQuotaReq{
  259. string username = 1; // @gotags: copier:"username"
  260. }
  261. message ParaStorQuotaResp{
  262. string Code = 1; // @gotags: copier:"Code"
  263. string Msg = 2; // @gotags: copier:"Msg"
  264. repeated QuotaData data = 3; // @gotags: copier:"Data"
  265. }
  266. message QuotaData{
  267. string username = 1; // @gotags: copier:"username" //用户名
  268. string path = 2; // @gotags: copier:"path" //共享存储配额路径
  269. double threshold = 3; // @gotags: copier:"threshold" //共享存储配额量,单位GB
  270. double usage = 4; // @gotags: copier:"usage" //共享存储使用量,单位GB
  271. }
  272. message WallTimeReq{
  273. string username = 1; // @gotags: copier:"username"
  274. }
  275. message WallTimeResp{
  276. string Code = 1; // @gotags: copier:"Code"
  277. string Msg = 2; // @gotags: copier:"Msg"
  278. double data = 3; // @gotags: copier:"Data"
  279. }
  280. message QueueJobsReq{
  281. string userName = 1;//@gotags: copier:"userName"
  282. }
  283. message QueueJobsResp{
  284. string Code = 1; // @gotags: copier:"Code"
  285. string Msg = 2; // @gotags: copier:"Msg"
  286. repeated Queue data = 3; // @gotags: copier:"Data"
  287. }
  288. message Queue{
  289. string name = 1; // @gotags: copier:"name"
  290. repeated Metric values = 2;// @gotags: copier:"values"
  291. }
  292. message Metric{
  293. string metricName = 1;// @gotags: copier:"metricName"
  294. string metricValue = 2;// @gotags: copier:"metricValue"
  295. }
  296. message CpuCoreReq{
  297. }
  298. message CpuCoreResp{
  299. string Code = 1; // @gotags: copier:"Code"
  300. string Msg = 2; // @gotags: copier:"Msg"
  301. repeated CpuCore data = 3; // @gotags: copier:"data"
  302. }
  303. message CpuCore{
  304. string name = 1; // @gotags: copier:"name"
  305. int32 y = 2;// @gotags: copier:"y"
  306. }
  307. message JobsReq{
  308. string userName = 1; // @gotags: copier:"userName"
  309. }
  310. message JobsResp{
  311. string Code = 1; // @gotags: copier:"Code"
  312. string Msg = 2; // @gotags: copier:"Msg"
  313. repeated JobCore data = 3; // @gotags: copier:"data"
  314. }
  315. message JobCore{
  316. string name = 1; // @gotags: copier:"name"
  317. int32 y = 2;// @gotags: copier:"y"
  318. }
  319. message HistoryJobDetailReq{
  320. string jobId = 1;
  321. string jobmanagerId = 2;
  322. string acctTime = 3;
  323. }
  324. message HistoryJobDetailResp {
  325. string code = 1;
  326. string msg = 2;
  327. message data {
  328. string acctTime = 1;// @gotags: copier:"acctTime"
  329. string appType = 2;
  330. string command = 3;
  331. string commandExist = 4;
  332. string cpuNuclearHour = 5;
  333. string cpuNuclearSec = 6;
  334. double cpuUnitPrice = 7;
  335. string dcuCardHour = 8;
  336. string dcuCardSec = 9;
  337. double dcuUnitPrice = 10;
  338. string efficiencyCpu = 11;
  339. int64 exclusiveCputime = 12;
  340. int64 exclusiveMem = 13;
  341. int64 exclusiveWalltime = 14;
  342. string goldenable = 15;
  343. string gpuCardHour = 16;
  344. string gpuCardSec = 17;
  345. double gpuUnitPrice = 18;
  346. string groupName = 19;
  347. string historyAccount = 20;
  348. string historyQueuerate = 21;
  349. string isSinglejob = 22;
  350. int64 jobCpuTime = 23;
  351. int64 jobDcuNum = 24;
  352. string jobEndTime = 25;
  353. string jobExecGpus = 26;
  354. string jobExecHost = 27;
  355. int64 jobExitStatus = 28;
  356. int64 jobGpuNum = 29;
  357. string jobId = 30;
  358. int64 jobMemUsed = 31;
  359. string jobName = 32;
  360. int64 jobProcNum = 33;
  361. string jobQueueTime = 34;
  362. double jobReqCpu = 35;
  363. double jobReqDcu = 36;
  364. double jobReqGpu = 37;
  365. string jobReqMem = 38;
  366. double jobReqNodes = 39;
  367. int64 jobResponseTime = 40;
  368. string jobStartTime = 41;
  369. string jobState = 42;
  370. int64 jobVmemUsed = 43;
  371. int64 jobWaitTime = 44;
  372. int64 jobWalltimeUsed = 45;
  373. int64 jobmanagerId = 46;
  374. string jobmanagerName = 47;
  375. string needNodes = 48;
  376. int64 nodect = 49;
  377. string owner = 50;
  378. string queue = 51;
  379. string scale = 52;
  380. int64 shareCputime = 53;
  381. int64 shareMem = 54;
  382. int64 shareWalltime = 55;
  383. string startCount = 56;
  384. string userName = 57;
  385. int64 walltime = 58;
  386. string workdir = 59;
  387. }
  388. }
  389. message FileContentResp{
  390. string code = 1; // @gotags: copier:"Code" //状态码 示例:0
  391. string msg = 2; // @gotags: copier:"Msg" //信息 示例:success
  392. FileDataResp data = 3; // @gotags: copier:"Data" //对象数据
  393. }
  394. message FileDataReq{
  395. string hostName = 1; // @gotags: copier:"HostName" //服务器hostname 示例:127.0.0.1
  396. string dirPath = 2; // @gotags: copier:"DirPath" //服务器文件绝对路径 示例:/public/home/test/BASE/STDIN_1210_114429/std.out.22
  397. int32 triggerNum = 3; // @gotags: copier:"TriggerNum" //翻页次数,第一次打开传1,文件每超过1000行,该参数累加1(类似分页,每页显示1000行数据) 示例:1
  398. string rollDirection = 4; // @gotags: copier:"RollDirection" //文件查看方向,传参UP,从文件尾向上看;传参DOWN,从文件头向下看 示例:UP
  399. }
  400. message FileDataResp{
  401. int32 allLineTotal = 1; // @gotags: copier:"AllLineTotal" //文件总行数 示例:100
  402. string success = 2; // @gotags: copier:"Success" //请求是否成功 示例:true
  403. int32 totalTriggerTimes = 3; // @gotags: copier:"TotalTriggerTimes" //总次数(类似分页总页数) 示例:1
  404. string errmsg = 4; // @gotags: copier:"Errmsg" //错误信息 示例:false
  405. string data = 5; // @gotags: copier:"Data" //返回的文件内容 示例:start time is: 2021-10-14
  406. }
  407. message QueueReq{
  408. string user = 1; // @gotags: copier:"User" //用户 示例:test
  409. string strJobManagerID = 2; // @gotags: copier:"StrJobManagerID" //调度器ID 示例:1626190154
  410. }
  411. message QueueResp{
  412. string code = 1; // @gotags: copier:"Code" //状态码 示例:0
  413. string msg = 2; // @gotags: copier:"Msg" //信息 示例:success
  414. repeated QueueData data = 3; // @gotags: copier:"Data" //队列数组
  415. }
  416. message QueueData{
  417. string aclHosts = 1; // @gotags: copier:"aclHosts" //可用节点,多个节点用逗号隔开 示例:node1,node2
  418. string id = 2; // @gotags: copier:"id" //队列名称 示例:debug
  419. string text = 3; // @gotags: copier:"text" //队列名称 示例:debug
  420. string queNodes = 4; // @gotags: copier:"queNodes" //队列节点总数 示例:3
  421. string queMinNodect = 5; // @gotags: copier:"queMinNodect" //队列最小节点数 示例:1
  422. string queMaxNgpus = 6; // @gotags: copier:"queMaxNgpus" //队列最大GPU卡数 示例:0
  423. string queMaxPPN = 7; // @gotags: copier:"queMaxPPN" //使用该队列作业最大CPU核心数 示例:4
  424. string queChargeRate = 8; // @gotags: copier:"queChargeRate" //费率 示例:1
  425. string queMaxNcpus = 9; // @gotags: copier:"queMaxNcpus" //用户最大可用核心数 示例:4
  426. string queMaxNdcus = 10; // @gotags: copier:"queMaxNdcus" //队列总DCU卡数 示例:0
  427. string queueName = 11; // @gotags: copier:"queueName" //队列名称 示例:debug
  428. string queMinNcpus = 12; // @gotags: copier:"queMinNcpus" //队列最小CPU核数 示例:1
  429. string queFreeNodes = 13; // @gotags: copier:"queFreeNodes" //队列空闲节点数 示例:1
  430. string queMaxNodect = 14; // @gotags: copier:"queMaxNodect" //队列作业最大节点数 示例:1
  431. string queMaxGpuPN = 15; // @gotags: copier:"queMaxGpuPN" //队列单作业最大GPU卡数 示例:0
  432. string queMaxWalltime = 16; // @gotags: copier:"queMaxWalltime" //队列最大运行时间 示例:unlimit
  433. string queMaxDcuPN = 17; // @gotags: copier:"queMaxDcuPN" //队列单作业最大DCU卡数 示例:0
  434. }
  435. message QueueDetailsResp{
  436. string code = 1; // @gotags: copier:"Code" //状态码 示例:0
  437. string msg = 2; // @gotags: copier:"Msg" //信息 示例:success
  438. repeated QueueDetailsData data = 3; // @gotags: copier:"Data" //队列数组
  439. }
  440. message QueueDetailsData{
  441. int32 queNodes = 1; // @gotags: copier:"queNodes" //队列节点总数 示例:3
  442. int32 queMinNodect = 2; // @gotags: copier:"queMinNodect" //队列最小节点数 示例:1
  443. int32 queMaxNgpus = 3; // @gotags: copier:"queMaxNgpus" //队列最大GPU卡数 示例:0
  444. int32 queMaxPPN = 4; // @gotags: copier:"queMaxPPN" //使用该队列作业最大CPU核心数 示例:4
  445. float queChargeRate = 5; // @gotags: copier:"queChargeRate" //费率 示例:1
  446. int32 queMaxNcpus = 6; // @gotags: copier:"queMaxNcpus" //用户最大可用核心数 示例:4
  447. int32 queMaxNdcus = 7; // @gotags: copier:"queMaxNdcus" //队列总DCU卡数 示例:0
  448. string queueName = 8; // @gotags: copier:"queueName" //队列名称 示例:debug
  449. int32 queMinNcpus = 9; // @gotags: copier:"queMinNcpus" //队列最小CPU核数 示例:1
  450. int32 queFreeNodes = 10; // @gotags: copier:"queFreeNodes" //队列空闲节点数 示例:1
  451. int32 queMaxNodect = 11; // @gotags: copier:"queMaxNodect" //队列作业最大节点数 示例:1
  452. int32 queMaxGpuPN = 12; // @gotags: copier:"queMaxGpuPN" //队列单作业最大GPU卡数 示例:0
  453. int32 queMaxWalltime = 13; // @gotags: copier:"queMaxWalltime" //队列最大运行时间 示例:unlimit
  454. int32 queMaxDcuPN = 14; // @gotags: copier:"queMaxDcuPN" //队列单作业最大DCU卡数 示例:0
  455. }
  456. message UserQuotasLimitResp{
  457. string code = 1; // @gotags: copier:"Code" //状态码 示例:0
  458. string msg = 2; // @gotags: copier:"Msg" //信息 示例:success
  459. UserQuotasLimitData data = 3; // @gotags: copier:"Data" //队列数组
  460. }
  461. message UserQuotasLimitData{
  462. string userName = 1; // @gotags: copier:"userName" //用户名称
  463. string accountName = 2; // @gotags: copier:"accountName" //用户所关联的默认的账号名
  464. int64 userMaxCpu = 3; // @gotags: copier:"userMaxCpu" //用户最大CPU核数,单位:个,如果未做限制,则值为-1
  465. int64 userMaxDcu = 4; // @gotags: copier:"userMaxDcu" //用户最大DCU卡数,单位:个,如果未做限制,则值为-1
  466. int64 userMaxGpu = 5; // @gotags: copier:"userMaxGpu" //用户最大GPU卡数,单位:个,如果未做限制,则值为-1
  467. int64 userMaxMlu = 6; // @gotags: copier:"userMaxMlu" //用户最大MLU卡数,单位:个,如果未做限制,则值为-1
  468. int64 userMaxMem = 7; // @gotags: copier:"userMaxMem" //用户最大内存,单位:m,如果未做限制,则值为-1
  469. int64 userMaxNode = 8; // @gotags: copier:"userMaxNode" //用户最大节点数,单位:个,如果未做限制,则值为-1
  470. int64 userMaxSubmitJob = 9; // @gotags: copier:"userMaxSubmitJob" //用户最大提交作业数,单位:个,如果未做限制,则值为-1
  471. int64 userMaxRunJob = 10; // @gotags: copier:"userMaxRunJob" //用户最大运行作业数,单位:个,如果未做限制,则值为-1
  472. int64 accountMaxCpu = 11; // @gotags: copier:"accountMaxCpu" //账户最大CPU核数,单位:个,如果未做限制,则值为-1
  473. int64 accountMaxDcu = 12; // @gotags: copier:"accountMaxDcu" //账户最大DCU卡数,单位:个,如果未做限制,则值为-1
  474. int64 accountMaxGpu = 13; // @gotags: copier:"accountMaxGpu" //账户最大GPU卡数,单位:个,如果未做限制,则值为-1
  475. int64 accountMaxMlu = 14; // @gotags: copier:"accountMaxMlu" //账户最大MLU卡数,单位:个,如果未做限制,则值为-1
  476. int64 accountMaxMem = 15; // @gotags: copier:"accountMaxMem" //账户最大内存,单位:m,如果未做限制,则值为-1
  477. int64 accountMaxNode = 16; // @gotags: copier:"accountMaxNode" //账户最大节点数,单位:个,如果未做限制,则值为-1
  478. int64 accountMaxSubmitJob = 17; // @gotags: copier:"accountMaxSubmitJob" //账户最大提交作业数,单位:个,如果未做限制,则值为-1
  479. int64 accountMaxRunJob = 18; // @gotags: copier:"accountMaxRunJob" //账户最大运行作业数,单位:个,如果未做限制,则值为-1
  480. int64 userMinCpu = 19; // @gotags: copier:"userMinCpu" //用户最小CPU核数,单位:个,如果未做限制,则值为-1
  481. int64 userMinNode = 20; // @gotags: copier:"userMinNode" //用户最小节点数,单位:个,如果未做限制,则值为-1
  482. int64 maxWallTime = 21; // @gotags: copier:"maxWallTime" //用户关联的glod账号的机时,机时单位:s,如果未做限制,则值为-1
  483. }
  484. // HPC Services for AC
  485. service hpcAC {
  486. //ListJob list all jobs
  487. rpc ListJob(ListJobReq) returns (ListJobResp);
  488. //ListHistoryJob list all history jobs
  489. rpc ListHistoryJob(ListHistoryJobReq) returns (ListHistoryJobResp);
  490. //Submit job
  491. rpc SubmitJob(SubmitJobReq) returns (SubmitJobResp);
  492. // ListJobManager list all job managers
  493. rpc ListJobManager(JobManagerReq) returns (ListJobManagerResp);
  494. // GetJobDetail get job detail
  495. rpc GetJobDetail(JobDetailReq) returns (GetJobDetailResp);
  496. // DeleteJob delete job
  497. rpc DeleteJob(DeleteJobReq) returns (DeleteJobResp);
  498. //FileContent 查看文件内容
  499. rpc FileContent(FileDataReq) returns (FileContentResp);
  500. //SelectQueueByUser 查询用户可访问队列列表
  501. rpc SelectQueueByUser(QueueReq) returns(QueueResp);
  502. //QueryQueueDetails 查询队列资源详细信息
  503. rpc QueryQueueDetails(QueueReq) returns(QueueDetailsResp);
  504. ///QueryUserQuotasLimit 查询用户资源限制信息
  505. rpc QueryUserQuotasLimit(QueueReq) returns(UserQuotasLimitResp);
  506. //ParaStor Quota
  507. rpc ParaStorQuota(ParaStorQuotaReq) returns (ParaStorQuotaResp);
  508. //WallTime
  509. rpc WallTime(WallTimeReq) returns (WallTimeResp);
  510. //QueueJobs
  511. rpc QueueJobs(QueueJobsReq)returns (QueueJobsResp);
  512. rpc CpuCore(CpuCoreReq) returns (CpuCoreResp);
  513. rpc jobs(JobsReq) returns (JobsResp);
  514. rpc HistoryJobDetail(HistoryJobDetailReq)returns (HistoryJobDetailResp);
  515. }

PCM is positioned as Software stack over Cloud, aiming to build the standards and ecology of heterogeneous cloud collaboration for JCC in a non intrusive and autonomous peer-to-peer manner.