10666: Formatting fixes.
[arvados.git] / services / crunch-dispatch-slurm / crunch-dispatch-slurm.go
index 296c0a3f40a0af1919f1951975f2c1a1ced81c12..d322b0f3f6dcf53735df8e920f07d0329397bbbf 100644 (file)
@@ -1,3 +1,7 @@
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
 package main
 
 // Dispatcher service for Crunch that submits containers to the slurm queue.
@@ -22,6 +26,8 @@ import (
        "github.com/coreos/go-systemd/daemon"
 )
 
+var version = "dev"
+
 // Config used by crunch-dispatch-slurm
 type Config struct {
        Client arvados.Client
@@ -65,10 +71,21 @@ func doMain() error {
                "dump-config",
                false,
                "write current configuration to stdout and exit")
-
+       getVersion := flags.Bool(
+               "version",
+               false,
+               "Print version information and exit.")
        // Parse args; omit the first arg which is the command name
        flags.Parse(os.Args[1:])
 
+       // Print version information if requested
+       if *getVersion {
+               fmt.Printf("crunch-dispatch-slurm %s\n", version)
+               return nil
+       }
+
+       log.Printf("crunch-dispatch-slurm %s started", version)
+
        err := readConfig(&theConfig, *configPath)
        if err != nil {
                return err
@@ -227,7 +244,7 @@ func run(disp *dispatch.Dispatcher, ctr arvados.Container, status <-chan arvados
                log.Printf("Submitting container %s to slurm", ctr.UUID)
                if err := submit(disp, ctr, theConfig.CrunchRunCommand); err != nil {
                        text := fmt.Sprintf("Error submitting container %s to slurm: %s", ctr.UUID, err)
-                       log.Printf(text)
+                       log.Print(text)
 
                        lr := arvadosclient.Dict{"log": arvadosclient.Dict{
                                "object_uuid": ctr.UUID,