From 0bf6d71f4817dc4eb12ffa114ce5e7d7db29c007 Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Fri, 30 Sep 2022 22:25:58 +0000 Subject: [PATCH 01/10] Added code to ignore test event, which internal monitor code uses for testing --- gnmi_server/server_test.go | 15 +++++++++++---- sonic_data_client/events_client.go | 28 +++++++++++++++++----------- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/gnmi_server/server_test.go b/gnmi_server/server_test.go index 4d2f2b8a..82835335 100644 --- a/gnmi_server/server_test.go +++ b/gnmi_server/server_test.go @@ -2603,9 +2603,13 @@ func TestAuthCapabilities(t *testing.T) { } func TestClient(t *testing.T) { + // sonic-host:device-test-event is a test event. + // Events client will drop it on floor. + // events := [] sdc.Evt_rcvd { { "test0", 7, 777 }, { "test1", 6, 677 }, + { "{\"sonic-host:device-test-event\"", 5, 577 }, { "test2", 5, 577 }, { "test3", 4, 477 }, } @@ -2653,7 +2657,6 @@ func TestClient(t *testing.T) { qstr := fmt.Sprintf("all[heartbeat=%d]", HEARTBEAT_SET) q := createEventsQuery(t, qstr) - // q := createEventsQuery(t, "all") q.Addrs = []string{"127.0.0.1:8081"} tests := []struct { @@ -2694,16 +2697,20 @@ func TestClient(t *testing.T) { }() // wait for half second for subscribeRequest to sync + // and to receive events via notification handler. + // time.Sleep(time.Millisecond * 2000) - if len(events) != len(gotNoti) { - t.Errorf("noti[%d] != events[%d]", len(gotNoti), len(events)) + // -1 to discount test event, which receiver would drop. + // + if (len(events) - 1) != len(gotNoti) { + t.Errorf("noti[%d] != events[%d]", len(gotNoti), len(events)-1) } if (heartbeat != HEARTBEAT_SET) { t.Errorf("Heartbeat is not set %d != expected:%d", heartbeat, HEARTBEAT_SET) } - fmt.Printf("DONE: events:%d gotNoti=%d\n", len(events), len(gotNoti)) + fmt.Printf("DONE: Expect events:%d - 1 gotNoti=%d\n", len(events), len(gotNoti)) }) time.Sleep(time.Millisecond * 1000) diff --git a/sonic_data_client/events_client.go b/sonic_data_client/events_client.go index f478c164..bd8f04cb 100644 --- a/sonic_data_client/events_client.go +++ b/sonic_data_client/events_client.go @@ -14,6 +14,7 @@ import ( "strconv" "fmt" "reflect" + "strings" "sync" "time" "unsafe" @@ -45,6 +46,8 @@ const STATS_FIELD_NAME = "value" const EVENTD_PUBLISHER_SOURCE = "{\"sonic-events-eventd" +const TEST_EVENT = "{\"sonic-host:device-test-event" + // Path parameter const PARAM_HEARTBEAT = "heartbeat" @@ -279,18 +282,21 @@ func get_events(evtc *EventClient) { if rc == 0 { evtc.counters[MISSED] += (uint64)(evt.Missed_cnt) - qlen := evtc.q.Len() - - if (qlen < PQ_MAX_SIZE) { - evtTv := &gnmipb.TypedValue { - Value: &gnmipb.TypedValue_StringVal { - StringVal: evt.Event_str, - }} - if err := send_event(evtc, evtTv, evt.Publish_epoch_ms); err != nil { - return + + if ! strings.HasPrefix(evt.Event_str, TEST_EVENT) { + qlen := evtc.q.Len() + + if (qlen < PQ_MAX_SIZE) { + evtTv := &gnmipb.TypedValue { + Value: &gnmipb.TypedValue_StringVal { + StringVal: evt.Event_str, + }} + if err := send_event(evtc, evtTv, evt.Publish_epoch_ms); err != nil { + return + } + } else { + evtc.counters[DROPPED] += 1 } - } else { - evtc.counters[DROPPED] += 1 } } if evtc.stopped == 1 { From ffd783b9af8378c8665e6cf55b89f8f799eb5bf2 Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Sat, 1 Oct 2022 02:29:56 +0000 Subject: [PATCH 02/10] ignore test-event; publish event as JsonIetfVal; make pqmax configurable via DB --- gnmi_server/client_subscribe.go | 7 +++++- gnmi_server/server.go | 2 ++ sonic_data_client/events_client.go | 34 +++++++++++++++++++++++------- telemetry/telemetry.go | 6 ++++++ 4 files changed, 40 insertions(+), 9 deletions(-) diff --git a/gnmi_server/client_subscribe.go b/gnmi_server/client_subscribe.go index 54c69de4..9160d049 100644 --- a/gnmi_server/client_subscribe.go +++ b/gnmi_server/client_subscribe.go @@ -31,6 +31,7 @@ type Client struct { w sync.WaitGroup fatal bool logLevel int + pqMax int } // Syslog level for error @@ -52,6 +53,10 @@ func (c *Client) setLogLevel(lvl int) { c.logLevel = lvl } +func (c *Client) setPqMax(lvl int) { + c.PqMax = lvl +} + // String returns the target the client is querying. func (c *Client) String() string { return c.addr.String() @@ -137,7 +142,7 @@ func (c *Client) Run(stream gnmipb.GNMI_SubscribeServer) (err error) { if target == "OTHERS" { dc, err = sdc.NewNonDbClient(paths, prefix) } else if ((target == "EVENTS") && (mode == gnmipb.SubscriptionList_STREAM)) { - dc, err = sdc.NewEventClient(paths, prefix, c.logLevel) + dc, err = sdc.NewEventClient(paths, prefix, c.logLevel, c.pqMax) } else if _, ok, _, _ := sdc.IsTargetDb(target); ok { dc, err = sdc.NewDbClient(paths, prefix) } else { diff --git a/gnmi_server/server.go b/gnmi_server/server.go index 7717e1d9..6e830962 100644 --- a/gnmi_server/server.go +++ b/gnmi_server/server.go @@ -48,6 +48,7 @@ type Config struct { // for this Server. Port int64 LogLevel int + PqMax int UserAuth AuthTypes EnableTranslibWrite bool } @@ -237,6 +238,7 @@ func (s *Server) Subscribe(stream gnmipb.GNMI_SubscribeServer) error { c := NewClient(pr.Addr) c.setLogLevel(s.config.LogLevel) + c.setPqMax(s.config.PqMax) s.cMu.Lock() if oc, ok := s.clients[c.String()]; ok { diff --git a/sonic_data_client/events_client.go b/sonic_data_client/events_client.go index bd8f04cb..682c8e4a 100644 --- a/sonic_data_client/events_client.go +++ b/sonic_data_client/events_client.go @@ -57,6 +57,7 @@ type EventClient struct { path *gnmipb.Path q *queue.PriorityQueue + pq_max int channel chan struct{} wg *sync.WaitGroup // wait for all sub go routines to finish @@ -87,9 +88,17 @@ func C_init_subs() unsafe.Pointer { return C.events_init_subscriber_wrap(true, C.int(SUBSCRIBER_TIMEOUT)) } -func NewEventClient(paths []*gnmipb.Path, prefix *gnmipb.Path, logLevel int) (Client, error) { +func NewEventClient(paths []*gnmipb.Path, prefix *gnmipb.Path, logLevel int, pq_max int) (Client, error) { var evtc EventClient evtc.prefix = prefix + if pq_max != 0 { + evtc.pq_max = pq_max + log.V(1).Infof("Events priority Q max set to %v", evtc.pq_max) + } else { + evtc.pq_max = PQ_MAX_SIZE + log.V(4).Infof("Events priority Q max set default = %v", evtc.pq_max) + } + for _, path := range paths { // Only one path is expected. Take the last if many evtc.path = path @@ -286,13 +295,22 @@ func get_events(evtc *EventClient) { if ! strings.HasPrefix(evt.Event_str, TEST_EVENT) { qlen := evtc.q.Len() - if (qlen < PQ_MAX_SIZE) { - evtTv := &gnmipb.TypedValue { - Value: &gnmipb.TypedValue_StringVal { - StringVal: evt.Event_str, - }} - if err := send_event(evtc, evtTv, evt.Publish_epoch_ms); err != nil { - return + if (qlen < evtc.pq_max) { + var fvp map[string]interface{} + json.Unmarshal([]byte(evt.Event_str ), &fvp) + + jv, err := json.Marshal(fvp) + + if err == nil { + evtTv := &gnmipb.TypedValue { + Value: &gnmipb.TypedValue_JsonIetfVal { + JsonIetfVal: jv, + }} + if err := send_event(evtc, evtTv, evt.Publish_epoch_ms); err != nil { + return + } + } else { + log.V(1).Infof("Invalid event string: %v", evt.Event_str) } } else { evtc.counters[DROPPED] += 1 diff --git a/telemetry/telemetry.go b/telemetry/telemetry.go index cbe8cf0d..1ba10e16 100644 --- a/telemetry/telemetry.go +++ b/telemetry/telemetry.go @@ -62,6 +62,7 @@ func main() { cfg.Port = int64(*port) cfg.EnableTranslibWrite = bool(*gnmi_translib_write) cfg.LogLevel = 3 + cfg.PqMax = 0 var opts []grpc.ServerOption if val, err := strconv.Atoi(getflag("v")); err == nil { @@ -69,6 +70,11 @@ func main() { log.Errorf("flag: log level %v", cfg.LogLevel) } + if val, err := strconv.Atoi(getflag("q")); err == nil { + cfg.PqMax = val + log.Errorf("flag: PQ max %v", val) + } + if !*noTLS { var certificate tls.Certificate var err error From ee6d0cd101dc5d2a86326637f299e8f22d19fe6d Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Sun, 2 Oct 2022 22:44:41 +0000 Subject: [PATCH 03/10] syntax fix --- sonic_data_client/events_client.go | 1 + telemetry/telemetry.go | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/sonic_data_client/events_client.go b/sonic_data_client/events_client.go index 682c8e4a..c9a13756 100644 --- a/sonic_data_client/events_client.go +++ b/sonic_data_client/events_client.go @@ -12,6 +12,7 @@ import "C" import ( "strconv" + "encoding/json" "fmt" "reflect" "strings" diff --git a/telemetry/telemetry.go b/telemetry/telemetry.go index 1ba10e16..a9a737bd 100644 --- a/telemetry/telemetry.go +++ b/telemetry/telemetry.go @@ -62,7 +62,7 @@ func main() { cfg.Port = int64(*port) cfg.EnableTranslibWrite = bool(*gnmi_translib_write) cfg.LogLevel = 3 - cfg.PqMax = 0 + cfg.PqMax = 0 var opts []grpc.ServerOption if val, err := strconv.Atoi(getflag("v")); err == nil { @@ -73,7 +73,7 @@ func main() { if val, err := strconv.Atoi(getflag("q")); err == nil { cfg.PqMax = val log.Errorf("flag: PQ max %v", val) - } + } if !*noTLS { var certificate tls.Certificate From 3d3fde873548d7ecfeb57d7b43e4660bacadc8bf Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Sun, 2 Oct 2022 22:50:09 +0000 Subject: [PATCH 04/10] syntax --- gnmi_server/client_subscribe.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnmi_server/client_subscribe.go b/gnmi_server/client_subscribe.go index 9160d049..955ed423 100644 --- a/gnmi_server/client_subscribe.go +++ b/gnmi_server/client_subscribe.go @@ -54,7 +54,7 @@ func (c *Client) setLogLevel(lvl int) { } func (c *Client) setPqMax(lvl int) { - c.PqMax = lvl + c.pqMax = lvl } // String returns the target the client is querying. From cecdba6e4b0d9c2ec83e0280620366be33b45b6a Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Tue, 4 Oct 2022 17:36:33 +0000 Subject: [PATCH 05/10] Fix flags --- telemetry/telemetry.go | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/telemetry/telemetry.go b/telemetry/telemetry.go index a9a737bd..24a110e5 100644 --- a/telemetry/telemetry.go +++ b/telemetry/telemetry.go @@ -24,6 +24,7 @@ var ( serverCert = flag.String("server_crt", "", "TLS server certificate") serverKey = flag.String("server_key", "", "TLS server private key") insecure = flag.Bool("insecure", false, "Skip providing TLS cert and key, for testing only!") + qsize = flag.Uint32("qsize", 0, "Change default Q Max size") noTLS = flag.Bool("noTLS", false, "disable TLS, for testing only!") allowNoClientCert = flag.Bool("allow_no_client_auth", false, "When set, telemetry server will request but not require a client certificate.") jwtRefInt = flag.Uint64("jwt_refresh_int", 900, "Seconds before JWT expiry the token can be refreshed.") @@ -62,7 +63,7 @@ func main() { cfg.Port = int64(*port) cfg.EnableTranslibWrite = bool(*gnmi_translib_write) cfg.LogLevel = 3 - cfg.PqMax = 0 + cfg.PqMax = *qsize var opts []grpc.ServerOption if val, err := strconv.Atoi(getflag("v")); err == nil { @@ -70,11 +71,6 @@ func main() { log.Errorf("flag: log level %v", cfg.LogLevel) } - if val, err := strconv.Atoi(getflag("q")); err == nil { - cfg.PqMax = val - log.Errorf("flag: PQ max %v", val) - } - if !*noTLS { var certificate tls.Certificate var err error From 1843c9480192c0eefa5d3477301d52692408b8d2 Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Tue, 4 Oct 2022 17:45:43 +0000 Subject: [PATCH 06/10] syntax --- telemetry/telemetry.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/telemetry/telemetry.go b/telemetry/telemetry.go index 24a110e5..00e686b9 100644 --- a/telemetry/telemetry.go +++ b/telemetry/telemetry.go @@ -24,7 +24,7 @@ var ( serverCert = flag.String("server_crt", "", "TLS server certificate") serverKey = flag.String("server_key", "", "TLS server private key") insecure = flag.Bool("insecure", false, "Skip providing TLS cert and key, for testing only!") - qsize = flag.Uint32("qsize", 0, "Change default Q Max size") + qsize = flag.Uint64("qsize", 0, "Change default Q Max size") noTLS = flag.Bool("noTLS", false, "disable TLS, for testing only!") allowNoClientCert = flag.Bool("allow_no_client_auth", false, "When set, telemetry server will request but not require a client certificate.") jwtRefInt = flag.Uint64("jwt_refresh_int", 900, "Seconds before JWT expiry the token can be refreshed.") From 6d0283bb40ca9561c0c2a6a1b5ad293b4225ef63 Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Tue, 4 Oct 2022 17:57:07 +0000 Subject: [PATCH 07/10] syntax --- telemetry/telemetry.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/telemetry/telemetry.go b/telemetry/telemetry.go index 00e686b9..d097e3c8 100644 --- a/telemetry/telemetry.go +++ b/telemetry/telemetry.go @@ -24,7 +24,7 @@ var ( serverCert = flag.String("server_crt", "", "TLS server certificate") serverKey = flag.String("server_key", "", "TLS server private key") insecure = flag.Bool("insecure", false, "Skip providing TLS cert and key, for testing only!") - qsize = flag.Uint64("qsize", 0, "Change default Q Max size") + qsize = flag.Int("qsize", 0, "Change default Q Max size") noTLS = flag.Bool("noTLS", false, "disable TLS, for testing only!") allowNoClientCert = flag.Bool("allow_no_client_auth", false, "When set, telemetry server will request but not require a client certificate.") jwtRefInt = flag.Uint64("jwt_refresh_int", 900, "Seconds before JWT expiry the token can be refreshed.") From 99d36257f3844267f8eb2c06f238df786a967897 Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Tue, 4 Oct 2022 20:21:30 +0000 Subject: [PATCH 08/10] Make pqmax configurable via query params --- gnmi_server/client_subscribe.go | 7 +------ gnmi_server/server.go | 2 -- sonic_data_client/events_client.go | 18 +++++++++--------- telemetry/telemetry.go | 2 -- 4 files changed, 10 insertions(+), 19 deletions(-) diff --git a/gnmi_server/client_subscribe.go b/gnmi_server/client_subscribe.go index 955ed423..54c69de4 100644 --- a/gnmi_server/client_subscribe.go +++ b/gnmi_server/client_subscribe.go @@ -31,7 +31,6 @@ type Client struct { w sync.WaitGroup fatal bool logLevel int - pqMax int } // Syslog level for error @@ -53,10 +52,6 @@ func (c *Client) setLogLevel(lvl int) { c.logLevel = lvl } -func (c *Client) setPqMax(lvl int) { - c.pqMax = lvl -} - // String returns the target the client is querying. func (c *Client) String() string { return c.addr.String() @@ -142,7 +137,7 @@ func (c *Client) Run(stream gnmipb.GNMI_SubscribeServer) (err error) { if target == "OTHERS" { dc, err = sdc.NewNonDbClient(paths, prefix) } else if ((target == "EVENTS") && (mode == gnmipb.SubscriptionList_STREAM)) { - dc, err = sdc.NewEventClient(paths, prefix, c.logLevel, c.pqMax) + dc, err = sdc.NewEventClient(paths, prefix, c.logLevel) } else if _, ok, _, _ := sdc.IsTargetDb(target); ok { dc, err = sdc.NewDbClient(paths, prefix) } else { diff --git a/gnmi_server/server.go b/gnmi_server/server.go index 6e830962..7717e1d9 100644 --- a/gnmi_server/server.go +++ b/gnmi_server/server.go @@ -48,7 +48,6 @@ type Config struct { // for this Server. Port int64 LogLevel int - PqMax int UserAuth AuthTypes EnableTranslibWrite bool } @@ -238,7 +237,6 @@ func (s *Server) Subscribe(stream gnmipb.GNMI_SubscribeServer) error { c := NewClient(pr.Addr) c.setLogLevel(s.config.LogLevel) - c.setPqMax(s.config.PqMax) s.cMu.Lock() if oc, ok := s.clients[c.String()]; ok { diff --git a/sonic_data_client/events_client.go b/sonic_data_client/events_client.go index c9a13756..dafcee4a 100644 --- a/sonic_data_client/events_client.go +++ b/sonic_data_client/events_client.go @@ -51,6 +51,7 @@ const TEST_EVENT = "{\"sonic-host:device-test-event" // Path parameter const PARAM_HEARTBEAT = "heartbeat" +const PARAM_QSIZE = "qsize" type EventClient struct { @@ -89,16 +90,11 @@ func C_init_subs() unsafe.Pointer { return C.events_init_subscriber_wrap(true, C.int(SUBSCRIBER_TIMEOUT)) } -func NewEventClient(paths []*gnmipb.Path, prefix *gnmipb.Path, logLevel int, pq_max int) (Client, error) { +func NewEventClient(paths []*gnmipb.Path, prefix *gnmipb.Path, logLevel int) (Client, error) { var evtc EventClient evtc.prefix = prefix - if pq_max != 0 { - evtc.pq_max = pq_max - log.V(1).Infof("Events priority Q max set to %v", evtc.pq_max) - } else { - evtc.pq_max = PQ_MAX_SIZE - log.V(4).Infof("Events priority Q max set default = %v", evtc.pq_max) - } + evtc.pq_max = PQ_MAX_SIZE + log.V(4).Infof("Events priority Q max set default = %v", evtc.pq_max) for _, path := range paths { // Only one path is expected. Take the last if many @@ -113,7 +109,11 @@ func NewEventClient(paths []*gnmipb.Path, prefix *gnmipb.Path, logLevel int, pq_ log.V(7).Infof("evtc.heartbeat_interval is set to %d", val) Set_heartbeat(val) } - break + } else if (k == PARAM_QSIZE) { + if val, err := strconv.Atoi(v); err == nil { + evtc.pq_max = val + log.V(7).Infof("Events priority Q max set by qsize param = %v", evtc.pq_max) + } } } } diff --git a/telemetry/telemetry.go b/telemetry/telemetry.go index d097e3c8..cbe8cf0d 100644 --- a/telemetry/telemetry.go +++ b/telemetry/telemetry.go @@ -24,7 +24,6 @@ var ( serverCert = flag.String("server_crt", "", "TLS server certificate") serverKey = flag.String("server_key", "", "TLS server private key") insecure = flag.Bool("insecure", false, "Skip providing TLS cert and key, for testing only!") - qsize = flag.Int("qsize", 0, "Change default Q Max size") noTLS = flag.Bool("noTLS", false, "disable TLS, for testing only!") allowNoClientCert = flag.Bool("allow_no_client_auth", false, "When set, telemetry server will request but not require a client certificate.") jwtRefInt = flag.Uint64("jwt_refresh_int", 900, "Seconds before JWT expiry the token can be refreshed.") @@ -63,7 +62,6 @@ func main() { cfg.Port = int64(*port) cfg.EnableTranslibWrite = bool(*gnmi_translib_write) cfg.LogLevel = 3 - cfg.PqMax = *qsize var opts []grpc.ServerOption if val, err := strconv.Atoi(getflag("v")); err == nil { From 5305f0ab1d55c479eddb01b3ffebb47d3493dde0 Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Wed, 5 Oct 2022 18:32:42 +0000 Subject: [PATCH 09/10] updater per comments --- sonic_data_client/events_client.go | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/sonic_data_client/events_client.go b/sonic_data_client/events_client.go index dafcee4a..e20a4cc5 100644 --- a/sonic_data_client/events_client.go +++ b/sonic_data_client/events_client.go @@ -33,7 +33,11 @@ const SUBSCRIBER_TIMEOUT = (2 * 1000) // 2 seconds const EVENT_BUFFSZ = 4096 const LATENCY_LIST_SIZE = 10 // Size of list of latencies. -const PQ_MAX_SIZE = 10240 // Max cnt of pending events in PQ. +const PQ_DEF_SIZE = 10240 // Def size for pending events in PQ. +const PQ_MIN_SIZE = 1024 // Min size for pending events in PQ. +const PQ_MAX_SIZE = 102400 // Max size for pending events in PQ. + +const HEARTBEAT_MAX = 600 // 10 mins // STATS counters const MISSED = "COUNTERS_EVENTS:missed_internal" @@ -93,7 +97,7 @@ func C_init_subs() unsafe.Pointer { func NewEventClient(paths []*gnmipb.Path, prefix *gnmipb.Path, logLevel int) (Client, error) { var evtc EventClient evtc.prefix = prefix - evtc.pq_max = PQ_MAX_SIZE + evtc.pq_max = PQ_DEF_SIZE log.V(4).Infof("Events priority Q max set default = %v", evtc.pq_max) for _, path := range paths { @@ -106,11 +110,25 @@ func NewEventClient(paths []*gnmipb.Path, prefix *gnmipb.Path, logLevel int) (Cl for k, v := range keys { if (k == PARAM_HEARTBEAT) { if val, err := strconv.Atoi(v); err == nil { + if (val > HEARTBEAT_MAX) { + log.V(4).Infof("heartbeat req %v > max %v; default to max", val, HEARTBEAT_MAX) + val = HEARTBEAT_MAX + } log.V(7).Infof("evtc.heartbeat_interval is set to %d", val) Set_heartbeat(val) } } else if (k == PARAM_QSIZE) { if val, err := strconv.Atoi(v); err == nil { + qval := val + if (val < PQ_MIN_SIZE) { + val = PQ_MIN_SIZE + } else if val > PQ_MAX_SIZE) { + val = PQ_MAX_SIZE + } + if val != qval { + log.V(4).Infof("Events priority Q request %v updated to nearest limit %v", + qval, val) + } evtc.pq_max = val log.V(7).Infof("Events priority Q max set by qsize param = %v", evtc.pq_max) } @@ -293,12 +311,12 @@ func get_events(evtc *EventClient) { if rc == 0 { evtc.counters[MISSED] += (uint64)(evt.Missed_cnt) - if ! strings.HasPrefix(evt.Event_str, TEST_EVENT) { + if !strings.HasPrefix(evt.Event_str, TEST_EVENT) { qlen := evtc.q.Len() if (qlen < evtc.pq_max) { var fvp map[string]interface{} - json.Unmarshal([]byte(evt.Event_str ), &fvp) + json.Unmarshal([]byte(evt.Event_str), &fvp) jv, err := json.Marshal(fvp) From 39d4be8df2e394441d2eb5a8a347c3136b87d65b Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Wed, 5 Oct 2022 19:45:59 +0000 Subject: [PATCH 10/10] removed empty comments --- gnmi_server/server_test.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/gnmi_server/server_test.go b/gnmi_server/server_test.go index 36082af5..96fac975 100644 --- a/gnmi_server/server_test.go +++ b/gnmi_server/server_test.go @@ -2605,7 +2605,6 @@ func TestAuthCapabilities(t *testing.T) { func TestClient(t *testing.T) { // sonic-host:device-test-event is a test event. // Events client will drop it on floor. - // events := [] sdc.Evt_rcvd { { "test0", 7, 777 }, { "test1", 6, 677 }, @@ -2698,11 +2697,9 @@ func TestClient(t *testing.T) { // wait for half second for subscribeRequest to sync // and to receive events via notification handler. - // time.Sleep(time.Millisecond * 2000) // -1 to discount test event, which receiver would drop. - // if (len(events) - 1) != len(gotNoti) { t.Errorf("noti[%d] != events[%d]", len(gotNoti), len(events)-1) }