X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/88ab51c83676a75efbb7b83e7d17927816ecaac4..962a6b5be87305054a87b665dcc85d144840bb98:/services/ws/main.go diff --git a/services/ws/main.go b/services/ws/main.go index 33728dcae0..db33cbfd00 100644 --- a/services/ws/main.go +++ b/services/ws/main.go @@ -1,21 +1,25 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: AGPL-3.0 + package main import ( "flag" "fmt" - "net/http" - "time" "git.curoverse.com/arvados.git/sdk/go/config" - "github.com/Sirupsen/logrus" + "git.curoverse.com/arvados.git/sdk/go/ctxlog" ) +var logger = ctxlog.FromContext + func main() { log := logger(nil) configPath := flag.String("config", "/etc/arvados/ws/ws.yml", "`path` to config file") dumpConfig := flag.Bool("dump-config", false, "show current configuration and exit") - cfg := DefaultConfig() + cfg := defaultConfig() flag.Parse() err := config.LoadFile(&cfg, *configPath) @@ -23,24 +27,8 @@ func main() { log.Fatal(err) } - lvl, err := logrus.ParseLevel(cfg.LogLevel) - if err != nil { - log.Fatal(err) - } - rootLogger.Level = lvl - switch cfg.LogFormat { - case "text": - rootLogger.Formatter = &logrus.TextFormatter{ - FullTimestamp: true, - TimestampFormat: time.RFC3339Nano, - } - case "json": - rootLogger.Formatter = &logrus.JSONFormatter{ - TimestampFormat: time.RFC3339Nano, - } - default: - log.WithField("LogFormat", cfg.LogFormat).Fatal("unknown log format") - } + ctxlog.SetLevel(cfg.LogLevel) + ctxlog.SetFormat(cfg.LogFormat) if *dumpConfig { txt, err := config.Dump(&cfg) @@ -51,23 +39,7 @@ func main() { return } - eventSource := &pgEventSource{ - DataSource: cfg.Postgres.ConnectionString(), - QueueSize: cfg.ServerEventQueue, - } - srv := &http.Server{ - Addr: cfg.Listen, - ReadTimeout: time.Minute, - WriteTimeout: time.Minute, - MaxHeaderBytes: 1 << 20, - Handler: &router{ - Config: &cfg, - eventSource: eventSource, - newPermChecker: func() permChecker { return NewPermChecker(cfg.Client) }, - }, - } - eventSource.NewSink().Stop() - - log.WithField("Listen", srv.Addr).Info("listening") - log.Fatal(srv.ListenAndServe()) + log.Info("started") + srv := &server{wsConfig: &cfg} + log.Fatal(srv.Run()) }