feat(service): add task defaults, job status, and cluster helpers
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"gcy_hpc_server/internal/model"
|
||||
@@ -49,6 +50,73 @@ func (s *JobService) SubmitJob(ctx context.Context, req *model.SubmitJobRequest)
|
||||
"HOME=/root",
|
||||
}
|
||||
|
||||
if req.MemoryPerNode != nil {
|
||||
jobDesc.MemoryPerNode = &slurm.Uint64NoVal{Number: req.MemoryPerNode}
|
||||
}
|
||||
if req.MemoryPerCpu != nil {
|
||||
jobDesc.MemoryPerCpu = &slurm.Uint64NoVal{Number: req.MemoryPerCpu}
|
||||
}
|
||||
if req.Nodes != nil {
|
||||
jobDesc.Nodes = req.Nodes
|
||||
}
|
||||
if req.Tasks != nil {
|
||||
jobDesc.Tasks = req.Tasks
|
||||
}
|
||||
if req.CpusPerTask != nil {
|
||||
jobDesc.CpusPerTask = req.CpusPerTask
|
||||
}
|
||||
if req.Constraints != nil {
|
||||
jobDesc.Constraints = req.Constraints
|
||||
}
|
||||
if req.Reservation != nil {
|
||||
jobDesc.Reservation = req.Reservation
|
||||
}
|
||||
if req.Account != nil {
|
||||
jobDesc.Account = req.Account
|
||||
}
|
||||
if req.Nice != nil {
|
||||
jobDesc.Nice = req.Nice
|
||||
}
|
||||
if req.MailType != nil {
|
||||
jobDesc.MailType = strings.Split(*req.MailType, ",")
|
||||
}
|
||||
if req.MailUser != nil {
|
||||
jobDesc.MailUser = req.MailUser
|
||||
}
|
||||
if req.StandardOutput != nil {
|
||||
jobDesc.StandardOutput = req.StandardOutput
|
||||
}
|
||||
if req.StandardError != nil {
|
||||
jobDesc.StandardError = req.StandardError
|
||||
}
|
||||
if req.StandardInput != nil {
|
||||
jobDesc.StandardInput = req.StandardInput
|
||||
}
|
||||
if req.RequiredNodes != nil {
|
||||
jobDesc.RequiredNodes = strings.Split(*req.RequiredNodes, ",")
|
||||
}
|
||||
if req.ExcludedNodes != nil {
|
||||
jobDesc.ExcludedNodes = strings.Split(*req.ExcludedNodes, ",")
|
||||
}
|
||||
if req.BeginTime != nil {
|
||||
jobDesc.BeginTime = &slurm.Uint64NoVal{Number: req.BeginTime}
|
||||
}
|
||||
if req.Deadline != nil {
|
||||
jobDesc.Deadline = req.Deadline
|
||||
}
|
||||
if req.Array != nil {
|
||||
jobDesc.Array = req.Array
|
||||
}
|
||||
if req.Dependency != nil {
|
||||
jobDesc.Dependency = req.Dependency
|
||||
}
|
||||
if req.Requeue != nil {
|
||||
jobDesc.Requeue = req.Requeue
|
||||
}
|
||||
if req.KillOnNodeFail != nil {
|
||||
jobDesc.KillOnNodeFail = req.KillOnNodeFail
|
||||
}
|
||||
|
||||
submitReq := &slurm.JobSubmitReq{
|
||||
Script: &script,
|
||||
Job: jobDesc,
|
||||
|
||||
Reference in New Issue
Block a user