mirror of
https://github.com/gogrlx/nats-server.git
synced 2026-04-15 10:40:41 -07:00
Add Name to Observable info
Signed-off-by: Derek Collison <derek@nats.io>
This commit is contained in:
1
go.sum
1
go.sum
@@ -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=
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user