Skip to content
Snippets Groups Projects
Commit 542d6763 authored by Fabian Seidl's avatar Fabian Seidl
Browse files

fixed issue with nil sbiService

parent 5464f769
Branches
Tags
1 merge request!416Resolve "Refactor how PNDs are implemented in the code"
Pipeline #130745 failed
......@@ -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),
......
......@@ -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)
}
......
......@@ -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
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment