package main
import (
- "encoding/json"
"errors"
"flag"
"fmt"
"git.curoverse.com/arvados.git/sdk/go/config"
"git.curoverse.com/arvados.git/sdk/go/keepclient"
"github.com/coreos/go-systemd/daemon"
+ "github.com/ghodss/yaml"
"github.com/gorilla/mux"
)
timeoutSeconds := flagset.Int("timeout", int(time.Duration(cfg.Timeout)/time.Second), "Timeout (in seconds) on requests to internal Keep services."+deprecated)
var cfgPath string
- const defaultCfgPath = "/etc/arvados/keepproxy/config.json"
+ const defaultCfgPath = "/etc/arvados/keepproxy/keepproxy.yml"
flagset.StringVar(&cfgPath, "config", defaultCfgPath, "Configuration file `path`")
+ dumpConfig := flagset.Bool("dump-config", false, "write current configuration to stdout and exit")
flagset.Parse(os.Args[1:])
err := config.LoadFile(cfg, cfgPath)
if regexp.MustCompile("^(?i:1|yes|true)$").MatchString(os.Getenv("ARVADOS_API_HOST_INSECURE")) {
cfg.Client.Insecure = true
}
- if j, err := json.MarshalIndent(cfg, "", " "); err == nil {
- log.Print("Current configuration:\n", string(j))
+ if y, err := yaml.Marshal(cfg); err == nil && !*dumpConfig {
+ log.Print("Current configuration:\n", string(y))
}
cfg.Timeout = arvados.Duration(time.Duration(*timeoutSeconds) * time.Second)
}
+ if *dumpConfig {
+ log.Fatal(config.DumpAndExit(cfg))
+ }
+
arv, err := arvadosclient.New(&cfg.Client)
if err != nil {
log.Fatalf("Error setting up arvados client %s", err.Error())
if err != nil {
log.Fatalf("listen(%s): %s", cfg.Listen, err)
}
- 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)
}
log.Println("Listening at", listener.Addr())