Browse Source

Fix: observatory starts with empty config & fails to close (#957)

Loyalsoldier 4 years ago
parent
commit
980fb59878
2 changed files with 9 additions and 4 deletions
  1. 8 3
      app/observatory/observer.go
  2. 1 1
      infra/conf/observatory.go

+ 8 - 3
app/observatory/observer.go

@@ -44,13 +44,18 @@ func (o *Observer) Type() interface{} {
 }
 
 func (o *Observer) Start() error {
-	o.finished = done.New()
-	go o.background()
+	if o.config != nil && len(o.config.SubjectSelector) != 0 {
+		o.finished = done.New()
+		go o.background()
+	}
 	return nil
 }
 
 func (o *Observer) Close() error {
-	return o.finished.Close()
+	if o.finished != nil {
+		return o.finished.Close()
+	}
+	return nil
 }
 
 func (o *Observer) background() {

+ 1 - 1
infra/conf/observatory.go

@@ -10,6 +10,6 @@ type ObservatoryConfig struct {
 	SubjectSelector []string `json:"subjectSelector"`
 }
 
-func (o ObservatoryConfig) Build() (proto.Message, error) {
+func (o *ObservatoryConfig) Build() (proto.Message, error) {
 	return &observatory.Config{SubjectSelector: o.SubjectSelector}, nil
 }