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
No related branches found
No related tags found
1 merge request!416Resolve "Refactor how PNDs are implemented in the code"
Pipeline #130745 failed
This commit is part of merge request !416. Comments created here will be created in the context of that merge request.
......@@ -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