From 542d676318aabe7c1f1cdab91304b8554c459503 Mon Sep 17 00:00:00 2001 From: Fabian Seidl <fabian.seidl@h-da.de> Date: Tue, 31 Jan 2023 15:09:42 +0000 Subject: [PATCH] fixed issue with nil sbiService --- controller/northbound/server/nbi.go | 2 +- controller/northbound/server/pnd.go | 24 +++++++++--------------- controller/northbound/server/pnd_test.go | 6 +++++- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/controller/northbound/server/nbi.go b/controller/northbound/server/nbi.go index 1d7274120..a9901650c 100644 --- a/controller/northbound/server/nbi.go +++ b/controller/northbound/server/nbi.go @@ -52,7 +52,7 @@ func NewNBI( networkDomain networkdomain.NetworkDomain, ) *NorthboundInterface { return &NorthboundInterface{ - Pnd: NewPndServer(pndService), + Pnd: NewPndServer(pndService, sbiService), Core: NewCoreServer(pndService), Csbi: NewCsbiServer(pnds), Sbi: NewSbiServer(pndService), diff --git a/controller/northbound/server/pnd.go b/controller/northbound/server/pnd.go index 0ad3c2b98..7802d97d5 100644 --- a/controller/northbound/server/pnd.go +++ b/controller/northbound/server/pnd.go @@ -7,6 +7,7 @@ import ( ppb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/pnd" spb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/southbound" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkdomain" + "code.fbi.h-da.de/danet/gosdn/controller/interfaces/southbound" "code.fbi.h-da.de/danet/gosdn/controller/metrics" "code.fbi.h-da.de/danet/gosdn/controller/nucleus" "code.fbi.h-da.de/danet/gosdn/controller/store" @@ -21,12 +22,14 @@ import ( type PndServer struct { ppb.UnimplementedPndServiceServer pndService networkdomain.Service + sbiService southbound.Service } // NewPndServer receives a pndStore and returns a new pndServer. -func NewPndServer(pndService networkdomain.Service) *PndServer { +func NewPndServer(pndService networkdomain.Service, sbiService southbound.Service) *PndServer { return &PndServer{ pndService: pndService, + sbiService: sbiService, } } @@ -51,7 +54,7 @@ func (p PndServer) GetSbi(ctx context.Context, request *ppb.GetSbiRequest) (*ppb return nil, err } - sbi, err := pnd.GetSBI(sbiID) + sbi, err := p.sbiService.Get(store.Query{ID: sbiID}) if err != nil { log.Error(err) return nil, status.Errorf(codes.Aborted, "%v", err) @@ -85,7 +88,7 @@ func (p PndServer) GetSbiList(ctx context.Context, request *ppb.GetSbiListReques log.Error(err) return nil, status.Errorf(codes.Aborted, "%v", err) } - sbis, err := fillSbis(pnd) + sbis, err := p.fillSbis() if err != nil { log.Error(err) return nil, status.Errorf(codes.Aborted, "%v", err) @@ -101,8 +104,8 @@ func (p PndServer) GetSbiList(ctx context.Context, request *ppb.GetSbiListReques }, nil } -func fillSbis(pnd networkdomain.NetworkDomain) ([]*spb.SouthboundInterface, error) { - sbis, err := pnd.GetSBIs() +func (p PndServer) fillSbis() ([]*spb.SouthboundInterface, error) { + sbis, err := p.sbiService.GetAll() if err != nil { return nil, err } @@ -123,15 +126,6 @@ func (p PndServer) SetSbiList(ctx context.Context, request *ppb.SetSbiListReques labels := prometheus.Labels{"service": "pnd", "rpc": "set"} start := metrics.StartHook(labels, grpcRequestsTotal) defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds) - pid, err := uuid.Parse(request.Pid) - if err != nil { - return nil, handleRPCError(labels, err) - } - - pnd, err := p.pndService.Get(store.Query{ID: pid}) - if err != nil { - return nil, handleRPCError(labels, err) - } for _, r := range request.Sbi { sbiType := filterSbiType(r.SbiType) @@ -140,7 +134,7 @@ func (p PndServer) SetSbiList(ctx context.Context, request *ppb.SetSbiListReques return nil, handleRPCError(labels, err) } - err = pnd.AddSbi(sbi) + err = p.sbiService.Add(sbi) if err != nil { return nil, handleRPCError(labels, err) } diff --git a/controller/northbound/server/pnd_test.go b/controller/northbound/server/pnd_test.go index 5f23ab5cd..7fc18011e 100644 --- a/controller/northbound/server/pnd_test.go +++ b/controller/northbound/server/pnd_test.go @@ -7,6 +7,7 @@ import ( mnepb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/networkelement" spb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/southbound" + eventservice "code.fbi.h-da.de/danet/gosdn/controller/eventService" "code.fbi.h-da.de/danet/gosdn/controller/mocks" "code.fbi.h-da.de/danet/gosdn/controller/nucleus" "code.fbi.h-da.de/danet/gosdn/models/generated/openconfig" @@ -94,8 +95,11 @@ func getTestPndServer(t *testing.T) *PndServer { } pndService := nucleus.NewPndService(pndStore) + eventService := eventservice.NewMockEventService() - c := NewPndServer(pndService) + sbiService := nucleus.NewSbiService(sbiStore, eventService) + + c := NewPndServer(pndService, sbiService) return c } -- GitLab