feat(model): add task defaults, job queries, and refine file/task DTOs
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -1,19 +1,42 @@
|
||||
package model
|
||||
|
||||
// SubmitJobRequest is the API request for submitting a job.
|
||||
// SubmitJobRequest 是提交作业的 API 请求。
|
||||
type SubmitJobRequest struct {
|
||||
Script string `json:"script"` // 作业脚本内容
|
||||
Partition string `json:"partition,omitempty"` // 提交到的分区
|
||||
QOS string `json:"qos,omitempty"` // 使用的 QOS 策略
|
||||
CPUs int32 `json:"cpus,omitempty"` // 请求的 CPU 核数
|
||||
Memory string `json:"memory,omitempty"` // 请求的内存大小
|
||||
Memory string `json:"memory,omitempty"` // Deprecated: Use MemoryPerNode or MemoryPerCpu instead
|
||||
TimeLimit string `json:"time_limit,omitempty"` // 运行时间限制 (分钟)
|
||||
JobName string `json:"job_name,omitempty"` // 作业名称
|
||||
Environment map[string]string `json:"environment,omitempty"` // 环境变量键值对
|
||||
WorkDir string `json:"work_dir,omitempty"` // 作业工作目录
|
||||
|
||||
MemoryPerNode *int64 `json:"memory_per_node,omitempty"` // 每节点内存(MB)
|
||||
MemoryPerCpu *int64 `json:"memory_per_cpu,omitempty"` // 每CPU内存(MB)
|
||||
Nodes *string `json:"nodes,omitempty"` // 请求的节点数(支持范围如"2-4")
|
||||
Tasks *int32 `json:"tasks,omitempty"` // 任务数
|
||||
CpusPerTask *int32 `json:"cpus_per_task,omitempty"` // 每任务CPU核数
|
||||
Constraints *string `json:"constraints,omitempty"` // 节点特性约束
|
||||
Reservation *string `json:"reservation,omitempty"` // 预约名称
|
||||
Account *string `json:"account,omitempty"` // 计费账户
|
||||
Nice *int32 `json:"nice,omitempty"` // nice调整值
|
||||
MailType *string `json:"mail_type,omitempty"` // 邮件通知类型(逗号分隔)
|
||||
MailUser *string `json:"mail_user,omitempty"` // 邮件地址
|
||||
StandardOutput *string `json:"standard_output,omitempty"` // 标准输出路径
|
||||
StandardError *string `json:"standard_error,omitempty"` // 标准错误路径
|
||||
StandardInput *string `json:"standard_input,omitempty"` // 标准输入路径
|
||||
RequiredNodes *string `json:"required_nodes,omitempty"` // 指定运行的节点(逗号分隔)
|
||||
ExcludedNodes *string `json:"excluded_nodes,omitempty"` // 排除的节点(逗号分隔)
|
||||
BeginTime *int64 `json:"begin_time,omitempty"` // 最早开始时间(Unix时间戳)
|
||||
Deadline *int64 `json:"deadline,omitempty"` // 截止时间(Unix时间戳)
|
||||
Array *string `json:"array,omitempty"` // 数组作业规格
|
||||
Dependency *string `json:"dependency,omitempty"` // 作业依赖关系
|
||||
Requeue *bool `json:"requeue,omitempty"` // 失败后是否重新排队
|
||||
KillOnNodeFail *bool `json:"kill_on_node_fail,omitempty"` // 节点故障时是否终止作业
|
||||
}
|
||||
|
||||
// JobResponse is the API response for a job.
|
||||
// JobResponse 是作业查询 API 响应。
|
||||
type JobResponse struct {
|
||||
// Identity
|
||||
JobID int32 `json:"job_id"` // Slurm 作业 ID
|
||||
@@ -59,7 +82,7 @@ type JobResponse struct {
|
||||
ArrayTaskID *int32 `json:"array_task_id,omitempty"` // 数组作业中的子任务 ID
|
||||
}
|
||||
|
||||
// JobListResponse is the paginated response for job listings.
|
||||
// JobListResponse 是作业列表分页响应。
|
||||
type JobListResponse struct {
|
||||
Jobs []JobResponse `json:"jobs"` // 作业列表
|
||||
Total int `json:"total"` // 符合条件的作业总数
|
||||
@@ -67,13 +90,13 @@ type JobListResponse struct {
|
||||
PageSize int `json:"page_size"` // 每页条数
|
||||
}
|
||||
|
||||
// JobListQuery contains pagination parameters for active job listing.
|
||||
// JobListQuery 是活跃作业列表查询参数。
|
||||
type JobListQuery struct {
|
||||
Page int `form:"page,default=1" json:"page,omitempty"` // 页码 (从 1 开始)
|
||||
PageSize int `form:"page_size,default=20" json:"page_size,omitempty"` // 每页条数
|
||||
}
|
||||
|
||||
// JobHistoryQuery contains query parameters for job history.
|
||||
// JobHistoryQuery 是作业历史查询参数。
|
||||
type JobHistoryQuery struct {
|
||||
Users string `form:"users" json:"users,omitempty"` // 按用户名过滤 (逗号分隔)
|
||||
StartTime string `form:"start_time" json:"start_time,omitempty"` // 作业开始时间下限 (Unix 时间戳)
|
||||
|
||||
Reference in New Issue
Block a user