10383: Merge branch 'master' into 10383-arv-put-incremental-upload
[arvados.git] / services / crunch-dispatch-slurm / crunch-dispatch-slurm.go
index 5a1ebc54e017069507e0778f5a20c990a6d001c8..3c4f281912842a0ceedb6df409aa61e80fa38fa2 100644 (file)
@@ -79,11 +79,11 @@ func doMain() error {
                // propagated to crunch-run via SLURM.
                os.Setenv("ARVADOS_API_HOST", theConfig.Client.APIHost)
                os.Setenv("ARVADOS_API_TOKEN", theConfig.Client.AuthToken)
-               os.Setenv("ARVADOS_API_INSECURE", "")
+               os.Setenv("ARVADOS_API_HOST_INSECURE", "")
                if theConfig.Client.Insecure {
-                       os.Setenv("ARVADOS_API_INSECURE", "1")
+                       os.Setenv("ARVADOS_API_HOST_INSECURE", "1")
                }
-               os.Setenv("ARVADOS_KEEP_SERVICES", "")
+               os.Setenv("ARVADOS_KEEP_SERVICES", strings.Join(theConfig.Client.KeepServiceURIs, " "))
                os.Setenv("ARVADOS_EXTERNAL_CLIENT", "")
        } else {
                log.Printf("warning: Client credentials missing from config, so falling back on environment variables (deprecated).")
@@ -105,7 +105,7 @@ func doMain() error {
                PollInterval:   time.Duration(theConfig.PollPeriod),
                DoneProcessing: make(chan struct{})}
 
-       if _, err := daemon.SdNotify("READY=1"); err != nil {
+       if _, err := daemon.SdNotify(false, "READY=1"); err != nil {
                log.Printf("Error notifying init daemon: %v", err)
        }
 
@@ -127,6 +127,9 @@ func sbatchFunc(container arvados.Container) *exec.Cmd {
        sbatchArgs = append(sbatchArgs, fmt.Sprintf("--job-name=%s", container.UUID))
        sbatchArgs = append(sbatchArgs, fmt.Sprintf("--mem-per-cpu=%d", int(memPerCPU)))
        sbatchArgs = append(sbatchArgs, fmt.Sprintf("--cpus-per-task=%d", container.RuntimeConstraints.VCPUs))
+       if container.SchedulingParameters.Partitions != nil {
+               sbatchArgs = append(sbatchArgs, fmt.Sprintf("--partition=%s", strings.Join(container.SchedulingParameters.Partitions, ",")))
+       }
 
        return exec.Command("sbatch", sbatchArgs...)
 }
@@ -180,9 +183,10 @@ func submit(dispatcher *dispatch.Dispatcher,
        squeueUpdater.SlurmLock.Lock()
        defer squeueUpdater.SlurmLock.Unlock()
 
+       log.Printf("sbatch starting: %+q", cmd.Args)
        err := cmd.Start()
        if err != nil {
-               submitErr = fmt.Errorf("Error starting %v: %v", cmd.Args, err)
+               submitErr = fmt.Errorf("Error starting sbatch: %v", err)
                return
        }