Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Okstad <pokstad@gitlab.com>2019-03-06 21:44:40 +0300
committerPaul Okstad <pokstad@gitlab.com>2019-03-06 21:44:40 +0300
commit35a0d3ebf0fd0418218875a34c54beb5b4e01b34 (patch)
treed5f46a03b117eafaaeab418be4ba9e07fdd22278
parent51e94133a6d89f1f6f2d812c0d223bd22b3df428 (diff)
parent77fee8f6cf539ceec5389a6322dbd9ade8f8676b (diff)
Merge branch 'zj-start-without-config' into 'master'
Fix undefined logger panicing See merge request gitlab-org/gitaly!1114
-rw-r--r--changelogs/unreleased/zj-start-without-config.yml5
-rw-r--r--cmd/praefect/main.go36
-rw-r--r--cmd/praefect/main_test.go13
3 files changed, 44 insertions, 10 deletions
diff --git a/changelogs/unreleased/zj-start-without-config.yml b/changelogs/unreleased/zj-start-without-config.yml
new file mode 100644
index 000000000..4df37ca0a
--- /dev/null
+++ b/changelogs/unreleased/zj-start-without-config.yml
@@ -0,0 +1,5 @@
+---
+title: Fix undefined logger panicing
+merge_request: 1114
+author:
+type: fixed
diff --git a/cmd/praefect/main.go b/cmd/praefect/main.go
index 6d4189e17..23e5aa89e 100644
--- a/cmd/praefect/main.go
+++ b/cmd/praefect/main.go
@@ -2,6 +2,7 @@ package main
import (
"context"
+ "errors"
"flag"
"fmt"
"net"
@@ -18,33 +19,48 @@ import (
var (
flagConfig = flag.String("config", "", "Location for the config.toml")
- logger *logrus.Logger
+ logger = logrus.New()
+
+ errNoConfigFile = errors.New("the config flag must be passed")
)
func main() {
flag.Parse()
- conf, err := config.FromFile(*flagConfig)
+ conf, err := configure()
if err != nil {
- logger.Fatalf("%s", err)
+ logger.Fatal(err)
}
- if err := conf.Validate(); err != nil {
+ l, err := net.Listen("tcp", conf.ListenAddr)
+ if err != nil {
logger.Fatalf("%s", err)
}
- logger := conf.ConfigureLogger()
+ logger.WithField("address", conf.ListenAddr).Info("listening at tcp address")
+ logger.Fatalf("%v", run(l, conf))
+}
- tracing.Initialize(tracing.WithServiceName("praefect"))
+func configure() (config.Config, error) {
+ var conf config.Config
- l, err := net.Listen("tcp", conf.ListenAddr)
+ if *flagConfig == "" {
+ return conf, errNoConfigFile
+ }
+
+ conf, err := config.FromFile(*flagConfig)
if err != nil {
- logger.Fatalf("%s", err)
+ return conf, fmt.Errorf("error reading config file: %v", err)
}
- logger.WithField("address", conf.ListenAddr).Info("listening at tcp address")
+ if err := conf.Validate(); err != nil {
+ return conf, err
+ }
- logger.Fatalf("%v", run(l, conf))
+ logger = conf.ConfigureLogger()
+ tracing.Initialize(tracing.WithServiceName("praefect"))
+
+ return conf, nil
}
func run(l net.Listener, conf config.Config) error {
diff --git a/cmd/praefect/main_test.go b/cmd/praefect/main_test.go
new file mode 100644
index 000000000..65d16a86c
--- /dev/null
+++ b/cmd/praefect/main_test.go
@@ -0,0 +1,13 @@
+package main
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestNoConfigFlag(t *testing.T) {
+ _, err := configure()
+
+ assert.Equal(t, err, errNoConfigFile)
+}