From cfcfbe4f5c791fb703e080417ac6ba3d5b6eaa47 Mon Sep 17 00:00:00 2001 From: Vladimir Popov Date: Fri, 23 Jul 2021 21:08:28 +0700 Subject: [PATCH] Rework closectx to use context.Background() Signed-off-by: Vladimir Popov --- pkg/networkservice/common/authorize/client.go | 6 ++---- pkg/networkservice/common/connect/server.go | 4 ++-- pkg/networkservice/common/heal/client.go | 2 +- pkg/registry/common/refresh/nse_registry_client.go | 2 +- pkg/tools/closectx/context.go | 8 ++++---- pkg/tools/sandbox/node.go | 2 +- 6 files changed, 11 insertions(+), 13 deletions(-) diff --git a/pkg/networkservice/common/authorize/client.go b/pkg/networkservice/common/authorize/client.go index 094eeee722..b352b766a1 100644 --- a/pkg/networkservice/common/authorize/client.go +++ b/pkg/networkservice/common/authorize/client.go @@ -34,15 +34,13 @@ import ( ) type authorizeClient struct { - ctx context.Context policies policiesList serverPeer atomic.Value } // NewClient - returns a new authorization networkservicemesh.NetworkServiceClient -func NewClient(ctx context.Context, opts ...Option) networkservice.NetworkServiceClient { +func NewClient(opts ...Option) networkservice.NetworkServiceClient { var result = &authorizeClient{ - ctx: ctx, policies: defaultPolicies(), } @@ -68,7 +66,7 @@ func (a *authorizeClient) Request(ctx context.Context, request *networkservice.N } if err = a.policies.check(ctx, conn); err != nil { - closeCtx, cancelClose := closectx.New(a.ctx, ctx) + closeCtx, cancelClose := closectx.New(ctx) defer cancelClose() if _, closeErr := next.Client(ctx).Close(closeCtx, conn, opts...); closeErr != nil { diff --git a/pkg/networkservice/common/connect/server.go b/pkg/networkservice/common/connect/server.go index 34878cf4f4..f9eb7c4925 100644 --- a/pkg/networkservice/common/connect/server.go +++ b/pkg/networkservice/common/connect/server.go @@ -117,7 +117,7 @@ func (s *connectServer) Request(ctx context.Context, request *networkservice.Net conn, err = next.Server(ctx).Request(ctx, request) // Close connection if next.Server Request finished with error if err != nil && !refreshRequest { - closeCtx, cancelClose := closectx.New(s.ctx, ctx) + closeCtx, cancelClose := closectx.New(ctx) defer cancelClose() _, closeErr := s.Close(closeCtx, request.Connection.Clone()) @@ -158,7 +158,7 @@ func (s *connectServer) client(ctx context.Context, conn *networkservice.Connect return connInfo.client } - closeCtx, cancelClose := closectx.New(s.ctx, ctx) + closeCtx, cancelClose := closectx.New(ctx) defer cancelClose() // For some reason we have changed the clientURL, so we need to close and delete the existing client. diff --git a/pkg/networkservice/common/heal/client.go b/pkg/networkservice/common/heal/client.go index 6542172a1c..b7346c15a0 100644 --- a/pkg/networkservice/common/heal/client.go +++ b/pkg/networkservice/common/heal/client.go @@ -129,7 +129,7 @@ func (u *healClient) Request(ctx context.Context, request *networkservice.Networ err = errors.Errorf("timeout waiting for connection monitor: %s", conn.GetId()) } if err != nil { - closeCtx, cancelClose := closectx.New(u.ctx, ctx) + closeCtx, cancelClose := closectx.New(ctx) defer cancelClose() if _, closeErr := next.Client(ctx).Close(closeCtx, conn); closeErr != nil { diff --git a/pkg/registry/common/refresh/nse_registry_client.go b/pkg/registry/common/refresh/nse_registry_client.go index 87e154f393..bdc7b561bc 100644 --- a/pkg/registry/common/refresh/nse_registry_client.go +++ b/pkg/registry/common/refresh/nse_registry_client.go @@ -72,7 +72,7 @@ func (c *refreshNSEClient) Register(ctx context.Context, nse *registry.NetworkSe cancel, err = c.startRefresh(ctx, refreshNSE, expirationDuration) if err != nil { - unregisterCtx, cancelUnregister := closectx.New(c.ctx, ctx) + unregisterCtx, cancelUnregister := closectx.New(ctx) defer cancelUnregister() if _, unregisterErr := next.NetworkServiceEndpointRegistryServer(ctx).Unregister(unregisterCtx, reg); unregisterErr != nil { diff --git a/pkg/tools/closectx/context.go b/pkg/tools/closectx/context.go index fed44ee174..f5aa8d2081 100644 --- a/pkg/tools/closectx/context.go +++ b/pkg/tools/closectx/context.go @@ -28,18 +28,18 @@ import ( const closeTimeout = 15 * time.Second // New creates a new context for Close/Unregister in case of Request/Register failure -func New(parent, valuesCtx context.Context) (ctx context.Context, cancel context.CancelFunc) { - clockTime := clock.FromContext(valuesCtx) +func New(ctx context.Context) (context.Context, context.CancelFunc) { + clockTime := clock.FromContext(ctx) var timeout time.Duration - if deadline, ok := valuesCtx.Deadline(); ok { + if deadline, ok := ctx.Deadline(); ok { timeout = clockTime.Until(deadline) } if timeout < closeTimeout { timeout = closeTimeout } - ctx = extend.WithValuesFromContext(parent, valuesCtx) + ctx = extend.WithValuesFromContext(context.Background(), ctx) return clockTime.WithTimeout(ctx, timeout) } diff --git a/pkg/tools/sandbox/node.go b/pkg/tools/sandbox/node.go index e38f239c06..6ff03baef8 100644 --- a/pkg/tools/sandbox/node.go +++ b/pkg/tools/sandbox/node.go @@ -219,7 +219,7 @@ func (n *Node) NewClient( CloneURL(n.NSMgr.URL), client.WithDialOptions(DefaultDialOptions(generatorFunc)...), client.WithDialTimeout(DialTimeout), - client.WithAuthorizeClient(authorize.NewClient(ctx, authorize.Any())), + client.WithAuthorizeClient(authorize.NewClient(authorize.Any())), client.WithAdditionalFunctionality(additionalFunctionality...), ) }