Skip to content

Commit

Permalink
Merge pull request #292 from NikitaSkrynnik/unregister
Browse files Browse the repository at this point in the history
Unregister vl3 NSE on termination
  • Loading branch information
denis-tingaikin committed Feb 1, 2024
2 parents 434084b + 55a0c72 commit 68104f3
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 14 deletions.
8 changes: 4 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ require (
github.com/edwarnicke/grpcfd v1.1.2
github.com/kelseyhightower/envconfig v1.4.0
github.com/networkservicemesh/api v1.11.2
github.com/networkservicemesh/sdk v1.11.2
github.com/networkservicemesh/sdk-vpp v0.0.0-20240130163336-17d8db6d4c55
github.com/networkservicemesh/sdk v0.5.1-0.20240117140958-90f0c79a1560
github.com/networkservicemesh/sdk-vpp v0.0.0-20240117141838-8364b73cafbd
github.com/networkservicemesh/vpphelper v0.0.0-20240115135903-e2b961f768b6
github.com/pkg/errors v0.9.1
github.com/sirupsen/logrus v1.9.3
Expand Down Expand Up @@ -44,8 +44,8 @@ require (
github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
github.com/miekg/dns v1.1.50 // indirect
github.com/networkservicemesh/govpp v0.0.0-20240130152300-43babf54855b // indirect
github.com/networkservicemesh/sdk-kernel v1.11.2 // indirect
github.com/networkservicemesh/govpp v0.0.0-20240115135805-9d7177f85ad9 // indirect
github.com/networkservicemesh/sdk-kernel v0.0.0-20240117141240-f32d767554a6 // indirect
github.com/open-policy-agent/opa v0.44.0 // indirect
github.com/prometheus/client_golang v1.17.0 // indirect
github.com/prometheus/client_model v0.5.0 // indirect
Expand Down
16 changes: 8 additions & 8 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -129,14 +129,14 @@ github.com/miekg/dns v1.1.50/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7Xn
github.com/mikioh/ipaddr v0.0.0-20190404000644-d465c8ab6721/go.mod h1:Ickgr2WtCLZ2MDGd4Gr0geeCH5HybhRJbonOgQpvSxc=
github.com/networkservicemesh/api v1.11.2 h1:91KPORtfbxuXf67eNZiP2LsNfbDFUa+QckWhSiMDhB8=
github.com/networkservicemesh/api v1.11.2/go.mod h1:E2yBac48+mMkMh6ODnsNyah4EE6rI08SMR9n+86Emxs=
github.com/networkservicemesh/govpp v0.0.0-20240130152300-43babf54855b h1:Pr84jNQUYL48L5Ek8xjLKaIuSnwd5fWiYBlNU03GjhM=
github.com/networkservicemesh/govpp v0.0.0-20240130152300-43babf54855b/go.mod h1:CwikXQ3p/y3j6+HbQQWXKv0f4LPyUd2vKTiViG93qWA=
github.com/networkservicemesh/sdk v1.11.2 h1:HHhA6vjbyVEDffcx2vUuc1/kHqBuTmTJrxbadul9mak=
github.com/networkservicemesh/sdk v1.11.2/go.mod h1:9B6CU54HGgkBQ8d1rQH18HzAMr7kGWNMoYdVARYAkGQ=
github.com/networkservicemesh/sdk-kernel v1.11.2 h1:txgWevJoaBInZC5cYGZVSpltoBrd2wswsidi7h6QDAM=
github.com/networkservicemesh/sdk-kernel v1.11.2/go.mod h1:a1AP3RteVHTQ/+/wSDrzsiEkWecveL8BJBrHMYUozbo=
github.com/networkservicemesh/sdk-vpp v0.0.0-20240130163336-17d8db6d4c55 h1:LSifmTtLFaCP/ex7Dm4qbD5AtyVse9SnFH0RAA4siJc=
github.com/networkservicemesh/sdk-vpp v0.0.0-20240130163336-17d8db6d4c55/go.mod h1:7zuJOXNxIazIHT8nsxXAUytUNEjT/0U+deAH4KL+Rfw=
github.com/networkservicemesh/govpp v0.0.0-20240115135805-9d7177f85ad9 h1:4zO/QJxQDvo/YcRWP8D4XGU8vQCG/Nq8SNlGpBk+4/M=
github.com/networkservicemesh/govpp v0.0.0-20240115135805-9d7177f85ad9/go.mod h1:CwikXQ3p/y3j6+HbQQWXKv0f4LPyUd2vKTiViG93qWA=
github.com/networkservicemesh/sdk v0.5.1-0.20240117140958-90f0c79a1560 h1:8Hl4Rsk/So63EqPs8mY3BmeakRDrPKWHQWH+fWPhPl8=
github.com/networkservicemesh/sdk v0.5.1-0.20240117140958-90f0c79a1560/go.mod h1:rw2ug2AngItEh13ectyCGrxRhGTt/yvJt2SrysoU/Dc=
github.com/networkservicemesh/sdk-kernel v0.0.0-20240117141240-f32d767554a6 h1:LGcwNJs4F47Tv3xYc77ku/rFl7P1mN7DisaS4g2z7zI=
github.com/networkservicemesh/sdk-kernel v0.0.0-20240117141240-f32d767554a6/go.mod h1:gnd8z3H/NxyZvkfCAFAYhUX/wo+rMkJsf/DgQJ+XiGs=
github.com/networkservicemesh/sdk-vpp v0.0.0-20240117141838-8364b73cafbd h1:r7a0s2ublHmLGgf5l6v216nM6Sm1n1K0fJs20h3MK1I=
github.com/networkservicemesh/sdk-vpp v0.0.0-20240117141838-8364b73cafbd/go.mod h1:9CYD/GYhLux3/c2Zt7OiIzdd8pYpbCScSi+S6WRxH/4=
github.com/networkservicemesh/vpphelper v0.0.0-20240115135903-e2b961f768b6 h1:o+enN5yCikNXZN+hO+JjE+aLxBWq9+GMVF9GSQtpwMI=
github.com/networkservicemesh/vpphelper v0.0.0-20240115135903-e2b961f768b6/go.mod h1:n6+8PnoDvWj6WMryfU3J8HOCusgysFjQ0kGLfrcsDEM=
github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8=
Expand Down
14 changes: 12 additions & 2 deletions main.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2022-2023 Cisco and/or its affiliates.
// Copyright (c) 2022-2024 Cisco and/or its affiliates.
//
// SPDX-License-Identifier: Apache-2.0
//
Expand Down Expand Up @@ -108,6 +108,7 @@ type Config struct {
RequestLabels map[string]string `default:"" desc:"Adds labels to request on requesting vl3 nse" split_words:"true"`
IdleTimeout time.Duration `default:"0" desc:"timeout for automatic shutdown when there were no requests for specified time. Set 0 to disable auto-shutdown." split_words:"true"`
RegisterService bool `default:"true" desc:"if true then registers network service on startup" split_words:"true"`
UnregisterItself bool `default:"true" desc:"if true then NSE unregister itself when it completes working" split_words:"true"`
OpenTelemetryEndpoint string `default:"otel-collector.observability.svc.cluster.local:4317" desc:"OpenTelemetry Collector Endpoint"`
MetricsExportInterval time.Duration `default:"10s" desc:"interval between mertics exports" split_words:"true"`
PrefixServerURL url.URL `default:"vl3-ipam:5006" desc:"URL to VL3 IPAM server" split_words:"true"`
Expand Down Expand Up @@ -469,7 +470,7 @@ func main() {
requestCtx, cancelRequest = context.WithTimeout(signalCtx, config.RequestTimeout)
defer cancelRequest()

conn, err := vl3Client.Request(requestCtx, request)
conn, err = vl3Client.Request(requestCtx, request)
if err != nil {
log.FromContext(ctx).Errorf("request has failed: %v", err.Error())
continue
Expand All @@ -482,6 +483,15 @@ func main() {
}()
}

if config.UnregisterItself {
defer func() {
_, err = nseRegistryClient.Unregister(context.Background(), nseRegistration)
if err != nil {
log.FromContext(ctx).Errorf("nse failed to unregister itself on termination: %s", err.Error())
}
}()
}

// wait for server to exit
<-signalCtx.Done()
closeSubscribedChannels()
Expand Down

0 comments on commit 68104f3

Please sign in to comment.