Skip to content

Commit

Permalink
Heal rework (#738)
Browse files Browse the repository at this point in the history
* Heal

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Fix linter issues

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Skip test depends on restoring connection

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Fix goroutine race

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Remove request updating from monitor

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Localbypass Client

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Restore last valid connection by id

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Revert "Localbypass Client"

This reverts commit 063706d.

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Fix stuck on unregistered endpoint

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Enable NSMgr restored test

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Fix success request waiting for windows

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Fix testing registry clients

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Remove registry client from RegisterEndpoint arguments

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Use timestamppb.New instead of

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Fix missing candidates on refresh

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Add restored pods testing

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Revert localbypass fix; Skip NSMgr restored heal

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Fix data race

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Fix refresh after heal request; Add refresh after heal testing

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Close error chan on initial monitor done

Signed-off-by: Artem Belov <artem.belov@xored.com>

* Pass register heal client func via context

Signed-off-by: Artem Belov <artem.belov@xored.com>
  • Loading branch information
Artem Belov committed Mar 23, 2021
1 parent 801aa97 commit 9cc8ab5
Show file tree
Hide file tree
Showing 20 changed files with 1,404 additions and 289 deletions.
15 changes: 4 additions & 11 deletions pkg/networkservice/chains/client/client.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
// Copyright (c) 2020-2021 Cisco Systems, Inc.
//
// Copyright (c) 2021 Doc.ai and/or its affiliates.
//
// SPDX-License-Identifier: Apache-2.0
//
// Licensed under the Apache License, Version 2.0 (the "License");
Expand All @@ -20,9 +22,9 @@ package client
import (
"context"

"github.com/google/uuid"
"google.golang.org/grpc"

"github.com/google/uuid"
"github.com/networkservicemesh/api/pkg/api/networkservice"

"github.com/networkservicemesh/sdk/pkg/networkservice/common/heal"
Expand All @@ -37,21 +39,13 @@ import (

type clientOptions struct {
name string
onHeal *networkservice.NetworkServiceClient
additionalFunctionality []networkservice.NetworkServiceClient
authorizeClient networkservice.NetworkServiceClient
}

// Option modifies default client chain values.
type Option func(c *clientOptions)

// WithHeal sets heal for the client.
func WithHeal(onHeal *networkservice.NetworkServiceClient) Option {
return Option(func(c *clientOptions) {
c.onHeal = onHeal
})
}

// WithName sets name for the client.
func WithName(name string) Option {
return Option(func(c *clientOptions) {
Expand Down Expand Up @@ -84,7 +78,6 @@ func NewClient(ctx context.Context, cc grpc.ClientConnInterface, clientOpts ...O
var opts = &clientOptions{
name: "client-" + uuid.New().String(),
authorizeClient: null.NewClient(),
onHeal: &rv,
}
for _, opt := range clientOpts {
opt(opts)
Expand All @@ -94,7 +87,7 @@ func NewClient(ctx context.Context, cc grpc.ClientConnInterface, clientOpts ...O
append([]networkservice.NetworkServiceClient{
updatepath.NewClient(opts.name),
serialize.NewClient(),
heal.NewClient(ctx, networkservice.NewMonitorConnectionClient(cc), opts.onHeal),
heal.NewClient(ctx, networkservice.NewMonitorConnectionClient(cc)),
refresh.NewClient(ctx),
metadata.NewClient(),
}, opts.additionalFunctionality...),
Expand Down
3 changes: 2 additions & 1 deletion pkg/networkservice/chains/nsmgr/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import (
"github.com/networkservicemesh/sdk/pkg/networkservice/common/discover"
"github.com/networkservicemesh/sdk/pkg/networkservice/common/excludedprefixes"
"github.com/networkservicemesh/sdk/pkg/networkservice/common/filtermechanisms"
"github.com/networkservicemesh/sdk/pkg/networkservice/common/heal"
"github.com/networkservicemesh/sdk/pkg/networkservice/common/interpose"
"github.com/networkservicemesh/sdk/pkg/networkservice/common/mechanisms/recvfd"
"github.com/networkservicemesh/sdk/pkg/networkservice/common/mechanisms/sendfd"
Expand Down Expand Up @@ -122,10 +123,10 @@ func NewServer(ctx context.Context, nsmRegistration *registryapi.NetworkServiceE
recvfd.NewServer(), // Receive any files passed
interpose.NewServer(&interposeRegistryServer),
filtermechanisms.NewServer(&urlsRegistryServer),
heal.NewServer(ctx, addressof.NetworkServiceClient(adapters.NewServerToClient(rv))),
connect.NewServer(ctx,
client.NewClientFactory(
client.WithName(nsmRegistration.Name),
client.WithHeal(addressof.NetworkServiceClient(adapters.NewServerToClient(rv))),
client.WithAdditionalFunctionality(
recvfd.NewClient(),
sendfd.NewClient(),
Expand Down
Loading

0 comments on commit 9cc8ab5

Please sign in to comment.