Add Name to Observable info

Signed-off-by: Derek Collison <derek@nats.io>
This commit is contained in:
Derek Collison
2020-01-06 17:44:17 -08:00
parent aa2fe462ba
commit f78efe2d91
3 changed files with 24 additions and 3 deletions

1
go.sum
View File

@@ -12,6 +12,7 @@ github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/minio/highwayhash v1.0.0 h1:iMSDhgUILCr0TNm8LWlSjF8N0ZIj2qbO8WHp6Q/J2BA=
github.com/minio/highwayhash v1.0.0/go.mod h1:xQboMTeM9nY9v/LlAOxFctujiv5+Aq2hR5dxBpaMbdc=
github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg=
github.com/nats-io/jwt v0.3.2 h1:+RB5hMpXUUA2dfxuhBTEkMOrYmM+gKIZYS1KjSostMI=
github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU=
github.com/nats-io/jwt v0.3.3-0.20200519195258-f2bf5ce574c7 h1:RnGotxlghqR5D2KDAu4TyuLqyjuylOsJiAFhXvMvQIc=

View File

@@ -28,6 +28,7 @@ import (
)
type ObservableInfo struct {
Name string `json:"name"`
Config ObservableConfig `json:"configuration"`
State ObservableState `json:"state"`
}
@@ -588,6 +589,7 @@ func (o *Observable) Info() *ObservableInfo {
o.mu.Lock()
defer o.mu.Unlock()
info := &ObservableInfo{
Name: o.name,
Config: o.config,
State: ObservableState{
Delivered: SequencePair{
@@ -601,7 +603,6 @@ func (o *Observable) Info() *ObservableInfo {
},
}
info.Config.Durable = o.name
if len(o.pending) > 0 {
p := make(map[uint64]int64, len(o.pending))
for k, v := range o.pending {

View File

@@ -3088,10 +3088,29 @@ func TestJetStreamRequestAPI(t *testing.T) {
// Now let's get info about our observable.
req = []byte(fmt.Sprintf("%s %s", msetCfg.Name, onames[0]))
resp, _ = nc.Request(server.JetStreamObservableInfo, req, time.Second)
var ostate server.ObservableState
if err = json.Unmarshal(resp.Data, &ostate); err != nil {
var oinfo server.ObservableInfo
if err = json.Unmarshal(resp.Data, &oinfo); err != nil {
t.Fatalf("Unexpected error: %v", err)
}
// Do some sanity checking.
// Must match onservable.go
const randObservableNameLen = 6
if len(oinfo.Name) != randObservableNameLen {
t.Fatalf("Expected ephemeral name, got %q", oinfo.Name)
}
if len(oinfo.Config.Durable) != 0 {
t.Fatalf("Expected no durable name, but got %q", oinfo.Config.Durable)
}
if oinfo.Config.Delivery != delivery {
t.Fatalf("Expected to have delivery subject of %q, got %q", delivery, oinfo.Config.Delivery)
}
if oinfo.State.Delivered.ObsSeq != 11 {
t.Fatalf("Expected observable delivered sequence of 11, got %d", oinfo.State.Delivered.ObsSeq)
}
if oinfo.State.AckFloor.ObsSeq != 10 {
t.Fatalf("Expected ack floor to be 10, got %d", oinfo.State.AckFloor.ObsSeq)
}
// Now delete the observable.
resp, _ = nc.Request(server.JetStreamDeleteObservable, req, time.Second)