Skip to content

Commit

Permalink
Merge pull request #196 from denis-tingaikin/fix-deployments-2008
Browse files Browse the repository at this point in the history
fix: custom resources NS/NSE metadata should be mapped into  NS/NSE names
  • Loading branch information
edwarnicke committed Jul 5, 2021
2 parents 730886d + dff6bc6 commit 0a86a2f
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 0 deletions.
3 changes: 3 additions & 0 deletions pkg/registry/etcd/ns_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,9 @@ func (n *etcdNSRegistryServer) Find(query *registry.NetworkServiceQuery, s regis
}
for i := 0; i < len(list.Items); i++ {
item := (*registry.NetworkService)(&list.Items[i].Spec)
if item.Name == "" {
item.Name = list.Items[i].Name
}
if matchutils.MatchNetworkServices(query.NetworkService, item) {
err := s.Send(item)
if err != nil {
Expand Down
34 changes: 34 additions & 0 deletions pkg/registry/etcd/ns_server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,16 @@ package etcd_test
import (
"context"
"testing"
"time"

"github.com/networkservicemesh/api/pkg/api/registry"
"github.com/stretchr/testify/require"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

"github.com/networkservicemesh/sdk/pkg/registry/core/adapters"

"github.com/networkservicemesh/sdk-k8s/pkg/registry/etcd"
v1 "github.com/networkservicemesh/sdk-k8s/pkg/tools/k8s/apis/networkservicemesh.io/v1"
"github.com/networkservicemesh/sdk-k8s/pkg/tools/k8s/client/clientset/versioned/fake"
)

Expand All @@ -34,3 +39,32 @@ func Test_NSReRegister(t *testing.T) {
_, err = s.Register(context.Background(), &registry.NetworkService{Name: "ns-1", Payload: "IP"})
require.NoError(t, err)
}

func Test_K8sNERegistry_ShouldMatchMetadataToName(t *testing.T) {
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()

var myClientset = fake.NewSimpleClientset()

_, err := myClientset.NetworkservicemeshV1().NetworkServices("default").Create(ctx, &v1.NetworkService{
ObjectMeta: metav1.ObjectMeta{
Name: "ns-1",
},
}, metav1.CreateOptions{})
require.NoError(t, err)

s := etcd.NewNetworkServiceRegistryServer(ctx, "default", myClientset)
c := adapters.NetworkServiceServerToClient(s)

stream, err := c.Find(ctx, &registry.NetworkServiceQuery{
NetworkService: &registry.NetworkService{
Name: "ns-1",
},
})
require.NoError(t, err)

nse, err := stream.Recv()
require.NoError(t, err)

require.Equal(t, "ns-1", nse.Name)
}
3 changes: 3 additions & 0 deletions pkg/registry/etcd/nse_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,9 @@ func (n *etcdNSERegistryServer) Find(query *registry.NetworkServiceEndpointQuery
}
for i := 0; i < len(list.Items); i++ {
item := (*registry.NetworkServiceEndpoint)(&list.Items[i].Spec)
if item.Name == "" {
item.Name = list.Items[i].Name
}
if matchutils.MatchNetworkServiceEndpoints(query.NetworkServiceEndpoint, item) {
err := s.Send(item)
if err != nil {
Expand Down
32 changes: 32 additions & 0 deletions pkg/registry/etcd/nse_server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,16 @@ package etcd_test
import (
"context"
"testing"
"time"

"github.com/networkservicemesh/api/pkg/api/registry"
"github.com/stretchr/testify/require"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

"github.com/networkservicemesh/sdk/pkg/registry/core/adapters"

"github.com/networkservicemesh/sdk-k8s/pkg/registry/etcd"
v1 "github.com/networkservicemesh/sdk-k8s/pkg/tools/k8s/apis/networkservicemesh.io/v1"
"github.com/networkservicemesh/sdk-k8s/pkg/tools/k8s/client/clientset/versioned/fake"
)

Expand All @@ -33,3 +38,30 @@ func Test_NSEReRegister(t *testing.T) {
_, err = s.Register(context.Background(), &registry.NetworkServiceEndpoint{Name: "nse-1", NetworkServiceNames: []string{"ns-1"}})
require.NoError(t, err)
}

func Test_K8sNSERegistry_ShouldMatchMetadataToName(t *testing.T) {
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()

var myClientset = fake.NewSimpleClientset()
_, err := myClientset.NetworkservicemeshV1().NetworkServiceEndpoints("default").Create(ctx, &v1.NetworkServiceEndpoint{
ObjectMeta: metav1.ObjectMeta{
Name: "nse-1",
},
}, metav1.CreateOptions{})
require.NoError(t, err)

s := etcd.NewNetworkServiceEndpointRegistryServer(ctx, "default", myClientset)
c := adapters.NetworkServiceEndpointServerToClient(s)
stream, err := c.Find(ctx, &registry.NetworkServiceEndpointQuery{
NetworkServiceEndpoint: &registry.NetworkServiceEndpoint{
Name: "nse-1",
},
})
require.NoError(t, err)

nse, err := stream.Recv()
require.NoError(t, err)

require.Equal(t, "nse-1", nse.Name)
}

0 comments on commit 0a86a2f

Please sign in to comment.