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.

pcm-hpc.api 6.8 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. syntax = "v1"
  2. info(
  3. title: "type title here"
  4. desc: "type desc here"
  5. author: "type author here"
  6. email: "type email here"
  7. version: "type version here"
  8. )
  9. type (
  10. commitHpcTaskReq {
  11. Name string `json:"name"`
  12. Backend string `json:"backend"`
  13. ClusterId string `json:"clusterId"`
  14. App string `json:"app"`
  15. Description string `json:"description,optional"`
  16. OperateType string `json:"operateType,optional"`
  17. Parameters map[string]string `json:"parameters"`
  18. CustomParams map[string]string `json:"customParams"`
  19. ScriptContent string `json:"scriptContent,optional"`
  20. }
  21. )
  22. type (
  23. commitHpcTaskResp {
  24. Code int `json:"code"`
  25. Data Data `json:"data"`
  26. Msg string `json:"msg"`
  27. TraceId string `json:"trace_id"`
  28. }
  29. Data {
  30. Backend string `json:"backend"`
  31. JobInfo map[string]string `json:"jobInfo"`
  32. }
  33. )
  34. type (
  35. hpcOverViewReq {
  36. }
  37. hpcOverViewResp {
  38. Code int32 `json:"code"`
  39. Msg string `json:"msg"`
  40. Data HPCOverView `json:"data"`
  41. }
  42. HPCOverView {
  43. AdapterCount int32 `json:"adapterCount"`
  44. StackCount int32 `json:"stackCount"`
  45. ClusterCount int32 `json:"clusterCount"`
  46. TaskCount int32 `json:"taskCount"`
  47. }
  48. )
  49. type (
  50. hpcAdapterSummaryReq {
  51. }
  52. hpcAdapterSummaryResp {
  53. Code int32 `json:"code"`
  54. Msg string `json:"msg"`
  55. Data []HPCAdapterSummary `json:"data"`
  56. }
  57. HPCAdapterSummary {
  58. AdapterName string `json:"adapterName"`
  59. StackCount int32 `json:"stackCount"`
  60. ClusterCount int32 `json:"clusterCount"`
  61. TaskCount int32 `json:"taskCount"`
  62. }
  63. )
  64. type (
  65. hpcJobReq {
  66. }
  67. hpcJobResp {
  68. Code int32 `json:"code"`
  69. Msg string `json:"msg"`
  70. Data []Job `json:"data"`
  71. }
  72. Job {
  73. JobName string `json:"jobName"`
  74. JobDesc string `json:"jobDesc"`
  75. SubmitTime string `json:"submitTime"`
  76. JobStatus string `json:"jobStatus"`
  77. AdapterName string `json:"adapterName"`
  78. ClusterName string `json:"clusterName"`
  79. ClusterType string `json:"clusterType"`
  80. }
  81. )
  82. type (
  83. hpcResourceReq {
  84. }
  85. hpcResourceResp {
  86. Code int32 `json:"code"`
  87. Msg string `json:"msg"`
  88. Data HPCResource `json:"data"`
  89. }
  90. HPCResource {
  91. GPUCardsTotal float64 `json:"gpuCoresTotal"`
  92. CPUCoresTotal float64 `json:"cpuCoresTotal"`
  93. RAMTotal float64 `json:"ramTotal"`
  94. GPUCardsUsed float64 `json:"gpuCoresUsed"`
  95. CPUCoresUsed float64 `json:"cpuCoresUsed"`
  96. RAMUsed float64 `json:"ramUsed"`
  97. GPURate float64 `json:"gpuRate"`
  98. CPURate float64 `json:"cpuRate"`
  99. RAMRate float64 `json:"ramRate"`
  100. }
  101. )
  102. type cancelJobReq {
  103. ClusterId int64 `form:"clusterId,optional"`
  104. JobId string `form:"jobId,optional"`
  105. taskId string `form:"taskId"`
  106. }
  107. type jobInfoReq {
  108. ClusterId int64 `form:"clusterId"`
  109. JobId string `form:"jobId"`
  110. }
  111. type jobInfoResp {
  112. JobId string `form:"jobId"`
  113. JobState string `json:"jobState"`
  114. CurrentWorkingDirectory string `json:"currentWorkingDirectory"`
  115. }
  116. type QueueAssetsResp {
  117. QueueAssets []QueueAsset `json:"queueAsset"`
  118. }
  119. type QueueAsset {
  120. TenantName string `json:"tenantName"` //租户名称
  121. ParticipantId int64 `json:"participantId"`
  122. AclHosts string `json:"aclHosts"` // 可用节点,多个节点用逗号隔开
  123. QueNodes string `json:"queNodes"` //队列节点总数
  124. QueMinNodect string `json:"queMinNodect,omitempty"` //队列最小节点数
  125. QueMaxNgpus string `json:"queMaxNgpus,omitempty"` //队列最大GPU卡数
  126. QueMaxPPN string `json:"queMaxPPN,omitempty"` //使用该队列作业最大CPU核心数
  127. QueChargeRate string `json:"queChargeRate,omitempty"` //费率
  128. QueMaxNcpus string `json:"queMaxNcpus,omitempty"` //用户最大可用核心数
  129. QueMaxNdcus string `json:"queMaxNdcus,omitempty"` //队列总DCU卡数
  130. QueueName string `json:"queueName,omitempty"` //队列名称
  131. QueMinNcpus string `json:"queMinNcpus,omitempty"` //队列最小CPU核数
  132. QueFreeNodes string `json:"queFreeNodes,omitempty"` //队列空闲节点数
  133. QueMaxNodect string `json:"queMaxNodect,omitempty"` //队列作业最大节点数
  134. QueMaxGpuPN string `json:"queMaxGpuPN,omitempty"` //队列单作业最大GPU卡数
  135. QueMaxWalltime string `json:"queMaxWalltime,omitempty"` //队列最大运行时间
  136. QueMaxDcuPN string `json:"queMaxDcuPN,omitempty"` //队列单作业最大DCU卡数
  137. QueFreeNcpus string `json:"queFreeNcpus"` //队列空闲cpu数
  138. QueNcpus string `json:"queNcpus"` //队列cpu数
  139. }
  140. type (
  141. /******************instance center*************************/
  142. HpcInstanceCenterReq {
  143. PageInfo
  144. InstanceType int32 `form:"instanceType,optional"`
  145. InstanceClass string `form:"instanceClass,optional"`
  146. InstanceName string `form:"instanceName,optional"`
  147. }
  148. HpcInstanceCenterResp {
  149. InstanceCenterList []HpcInstanceCenterList `json:"instanceCenterList" copier:"InstanceCenterList"`
  150. TotalCount int `json:"totalCount"`
  151. }
  152. HpcInstanceCenterList {
  153. LogoPath string `json:"logo_path"`
  154. InstanceName string `json:"instance_name"`
  155. InstanceType int32 `json:"instance_type"`
  156. InstanceClass string `json:"instance_class"`
  157. InstanceClassChinese string `json:"instance_class_chinese"`
  158. Description string `json:"description"`
  159. Version string `json:"version"`
  160. }
  161. /******************instance center*************************/
  162. )
  163. type(
  164. HpcTaskLogResp{
  165. Code int32 `json:"code"`
  166. Msg string `json:"msg"`
  167. Data interface{} `json:"data"`
  168. }
  169. )
  170. type(
  171. HpcTaskLogReq{
  172. TaskId string `path:"taskId"`
  173. }
  174. )
  175. type (
  176. HpcAppTemplateInfo {
  177. Id int64 `json:"id"`
  178. Name string `json:"name"`
  179. App string `json:"app"`
  180. AppType string `json:"app_type"`
  181. ClusterId int64 `json:"cluster_id"`
  182. Content string `json:"content"`
  183. Description string `json:"description"`
  184. Status int32 `json:"status"`
  185. CreateTime string `json:"create_time"`
  186. UpdateTime string `json:"update_time"`
  187. }
  188. SubmitHpcTaskReq {
  189. App string `json:"app"`
  190. ClusterId string `json:"clusterId"`
  191. JobName string `json:"jobName"`
  192. ScriptContent string `json:"scriptContent"`
  193. Parameters map[string]string `json:"parameters"`
  194. Backend string `json:"backend"`
  195. }
  196. )
  197. type HpcAppClusterReq {
  198. App string `form:"app"`
  199. }

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.