Skip to content

Commit

Permalink
Use NSE registry client in sandbox
Browse files Browse the repository at this point in the history
Signed-off-by: Vladimir Popov <vladimir.popov@xored.com>
  • Loading branch information
Vladimir Popov committed Feb 1, 2021
1 parent 35e4fb2 commit 1a3743d
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 109 deletions.
7 changes: 7 additions & 0 deletions pkg/networkservice/chains/nsmgr/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -577,6 +577,13 @@ func testNSEAndClient(

_, err = domain.Nodes[0].EndpointRegistryClient.Unregister(ctx, nseReg)
require.NoError(t, err)

for _, nsName := range nseReg.NetworkServiceNames {
_, err = domain.Nodes[0].NSRegistryClient.Unregister(ctx, &registry.NetworkService{
Name: nsName,
})
require.NoError(t, err)
}
}

type passThroughClient struct {
Expand Down
12 changes: 8 additions & 4 deletions pkg/tools/sandbox/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,11 @@ import (
"github.com/networkservicemesh/sdk/pkg/networkservice/chains/nsmgr"
"github.com/networkservicemesh/sdk/pkg/networkservice/chains/nsmgrproxy"
"github.com/networkservicemesh/sdk/pkg/networkservice/common/authorize"
"github.com/networkservicemesh/sdk/pkg/registry/chains/client"
"github.com/networkservicemesh/sdk/pkg/registry/chains/memory"
"github.com/networkservicemesh/sdk/pkg/registry/chains/proxydns"
"github.com/networkservicemesh/sdk/pkg/registry/common/dnsresolve"
"github.com/networkservicemesh/sdk/pkg/registry/common/interpose"
"github.com/networkservicemesh/sdk/pkg/tools/grpcutils"
"github.com/networkservicemesh/sdk/pkg/tools/logger"
"github.com/networkservicemesh/sdk/pkg/tools/mergectx"
Expand Down Expand Up @@ -272,10 +274,12 @@ func (b *Builder) newNode(ctx context.Context, registryURL *url.URL) *Node {
nsmgrCC := b.dialContext(ctx, nsmgrEntry.URL)

node := &Node{
ctx: b.ctx,
NSMgr: nsmgrEntry,
ForwarderRegistryClient: NewRegistryClient(ctx, nsmgrCC, true),
EndpointRegistryClient: NewRegistryClient(ctx, nsmgrCC, false),
ctx: b.ctx,
NSMgr: nsmgrEntry,
ForwarderRegistryClient: client.NewNetworkServiceEndpointClient(ctx, nsmgrCC,
interpose.NewNetworkServiceEndpointRegistryClient()),
EndpointRegistryClient: client.NewNetworkServiceEndpointClient(ctx, nsmgrCC),
NSRegistryClient: registryapi.NewNetworkServiceRegistryClient(nsmgrCC),
}

if b.setupNode != nil {
Expand Down
28 changes: 14 additions & 14 deletions pkg/tools/sandbox/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import (
"net/url"

"github.com/google/uuid"
"github.com/networkservicemesh/api/pkg/api/networkservice/payload"
"google.golang.org/grpc"

"github.com/networkservicemesh/api/pkg/api/networkservice"
Expand All @@ -46,6 +47,7 @@ type Node struct {
NSMgr *NSMgrEntry
ForwarderRegistryClient registry.NetworkServiceEndpointRegistryClient
EndpointRegistryClient registry.NetworkServiceEndpointRegistryClient
NSRegistryClient registry.NetworkServiceRegistryClient
}

// NewForwarder starts a new forwarder and registers it on the node NSMgr
Expand All @@ -67,7 +69,7 @@ func (n *Node) NewForwarder(
grpc.WithInsecure(), grpc.WithDefaultCallOptions(grpc.WaitForReady(true)),
))

entry, err := n.newEndpoint(ctx, nse, generatorFunc, true, additionalFunctionality...)
entry, err := n.newEndpoint(ctx, nse, generatorFunc, n.ForwarderRegistryClient, additionalFunctionality...)
if err != nil {
return nil, err
}
Expand All @@ -83,14 +85,14 @@ func (n *Node) NewEndpoint(
generatorFunc token.GeneratorFunc,
additionalFunctionality ...networkservice.NetworkServiceServer,
) (*EndpointEntry, error) {
return n.newEndpoint(ctx, nse, generatorFunc, false, additionalFunctionality...)
return n.newEndpoint(ctx, nse, generatorFunc, n.EndpointRegistryClient, additionalFunctionality...)
}

func (n *Node) newEndpoint(
ctx context.Context,
nse *registry.NetworkServiceEndpoint,
generatorFunc token.GeneratorFunc,
isForwarder bool,
registryClient registry.NetworkServiceEndpointRegistryClient,
additionalFunctionality ...networkservice.NetworkServiceServer,
) (_ *EndpointEntry, err error) {
ctx = mergectx.WithValuesFromContext(ctx, logger.WithLog(context.Background()))
Expand Down Expand Up @@ -118,13 +120,6 @@ func (n *Node) newEndpoint(
nse.Url = u.String()

// 3. Register with the node registry client
var registryClient registry.NetworkServiceEndpointRegistryClient
if isForwarder {
registryClient = n.ForwarderRegistryClient
} else {
registryClient = n.EndpointRegistryClient
}

var reg *registry.NetworkServiceEndpoint
if reg, err = registryClient.Register(ctx, nse); err != nil {
return nil, err
Expand All @@ -133,12 +128,17 @@ func (n *Node) newEndpoint(
nse.Name = reg.Name
nse.ExpirationTime = reg.ExpirationTime

if isForwarder {
logger.Log(ctx).Infof("Started listen forwarder %s on %s.", nse.Name, u.String())
} else {
logger.Log(ctx).Infof("Started listen endpoint %s on %s.", nse.Name, u.String())
for _, nsName := range nse.NetworkServiceNames {
if _, err = n.NSRegistryClient.Register(ctx, &registry.NetworkService{
Name: nsName,
Payload: payload.IP,
}); err != nil {
return nil, err
}
}

logger.Log(ctx).Infof("Started listen endpoint %s on %s.", nse.Name, u.String())

return &EndpointEntry{Endpoint: ep, URL: u}, nil
}

Expand Down
91 changes: 0 additions & 91 deletions pkg/tools/sandbox/registry_client.go

This file was deleted.

0 comments on commit 1a3743d

Please sign in to comment.