From cbcca9ed6c89d26837858234dcfbf3ba55ab3dff Mon Sep 17 00:00:00 2001 From: Malte Bauch <malte.bauch@h-da.de> Date: Mon, 21 Oct 2024 15:06:18 +0200 Subject: [PATCH] Do not create different clients if already created --- controller/nucleus/gnmi_transport.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/controller/nucleus/gnmi_transport.go b/controller/nucleus/gnmi_transport.go index a51770d76..f25f8c009 100644 --- a/controller/nucleus/gnmi_transport.go +++ b/controller/nucleus/gnmi_transport.go @@ -20,6 +20,8 @@ import ( tpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/transport" ) +var gnmiClients = make(map[string]gpb.GNMIClient, 0) + // Gnmi implements the Transport interface and provides an SBI with the // possibility to access a gNMI endpoint. type Gnmi struct { @@ -64,9 +66,14 @@ func newGnmiTransport(opts *tpb.TransportOption, model shared.DeviceModel) (*Gnm } } - c, err := gnmi.Dial(gnmiConfig) - if err != nil { - return nil, err + var err error + c, ok := gnmiClients[opts.GetAddress()] + if !ok { + c, err = gnmi.Dial(gnmiConfig) + if err != nil { + return nil, err + } + gnmiClients[opts.GetAddress()] = c } log.WithFields(log.Fields{ -- GitLab