Merge pull request #2309 from crosbymichael/events-closed

Correctly handle reading from events channel
This commit is contained in:
Michael Crosby 2018-04-25 13:42:14 -04:00 committed by GitHub
commit e073a48c7b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -42,38 +42,36 @@ var Command = cli.Command{
defer cancel() defer cancel()
eventsClient := client.EventService() eventsClient := client.EventService()
eventsCh, errCh := eventsClient.Subscribe(ctx, context.Args()...) eventsCh, errCh := eventsClient.Subscribe(ctx, context.Args()...)
for { open := true
for open {
var e *events.Envelope var e *events.Envelope
select { select {
case evt, closed := <-eventsCh: case e = <-eventsCh:
if closed { case err, open = <-errCh:
return nil
}
e = evt
case err := <-errCh:
return err return err
} }
if e != nil {
var out []byte var out []byte
if e.Event != nil { if e.Event != nil {
v, err := typeurl.UnmarshalAny(e.Event) v, err := typeurl.UnmarshalAny(e.Event)
if err != nil { if err != nil {
return err
}
out, err = json.Marshal(v)
if err != nil {
return err
}
}
if _, err := fmt.Println(
e.Timestamp,
e.Namespace,
e.Topic,
string(out),
); err != nil {
return err return err
} }
out, err = json.Marshal(v)
if err != nil {
return err
}
}
if _, err := fmt.Println(
e.Timestamp,
e.Namespace,
e.Topic,
string(out),
); err != nil {
return err
} }
} }
return nil
}, },
} }