From e439ef63e4782d82e3d1a07c41ec95ef77b67b51 Mon Sep 17 00:00:00 2001 From: HarrisChu <1726587+HarrisChu@users.noreply.github.com> Date: Mon, 7 Feb 2022 17:57:17 +0800 Subject: [PATCH 1/3] update with nebula-go v3 --- examples/storage.go | 2 +- go.mod | 4 +++- go.sum | 14 ++++++++++---- internal/clients/meta.go | 11 +++++++++-- internal/utils/address.go | 2 +- internal/utils/service.go | 2 +- pkg/client/client.go | 2 +- pkg/client/config.go | 2 +- 8 files changed, 27 insertions(+), 12 deletions(-) diff --git a/examples/storage.go b/examples/storage.go index 042a6e8..ca6b74c 100644 --- a/examples/storage.go +++ b/examples/storage.go @@ -5,7 +5,7 @@ import ( log "github.com/sirupsen/logrus" _ "github.com/vesoft-inc/nebula-agent/internal/log" - "github.com/vesoft-inc/nebula-go/v2/nebula" + "github.com/vesoft-inc/nebula-go/v3/nebula" agent "github.com/vesoft-inc/nebula-agent/pkg/client" pb "github.com/vesoft-inc/nebula-agent/pkg/proto" diff --git a/go.mod b/go.mod index ef8c147..767ad98 100644 --- a/go.mod +++ b/go.mod @@ -13,9 +13,11 @@ require ( github.com/facebook/fbthrift v0.31.1-0.20211129061412-801ed7f9f295 github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da github.com/google/uuid v1.3.0 + github.com/kr/pretty v0.3.0 // indirect github.com/stretchr/testify v1.7.0 - github.com/vesoft-inc/nebula-go/v2 v2.5.2-0.20211228055601-b5b11a36e453 + github.com/vesoft-inc/nebula-go/v3 v3.0.0-20220119024722-ab348afbb79d golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d // indirect golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e // indirect google.golang.org/protobuf v1.27.1 // indirect + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect ) diff --git a/go.sum b/go.sum index 40fb52b..12f59ad 100644 --- a/go.sum +++ b/go.sum @@ -10,6 +10,7 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -55,16 +56,20 @@ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9Y github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -72,8 +77,8 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/vesoft-inc/nebula-go/v2 v2.5.2-0.20211228055601-b5b11a36e453 h1:1rwe3LQVuTRUJBf4Gonc47+T3dCD29EzkrRaTzkUNdw= -github.com/vesoft-inc/nebula-go/v2 v2.5.2-0.20211228055601-b5b11a36e453/go.mod h1:YRIuog6zyRKz0SagwwTcqHXCPjJ4GfQelIl+/FgSC+Y= +github.com/vesoft-inc/nebula-go/v3 v3.0.0-20220119024722-ab348afbb79d h1:spO7OAtYI1wiqBiJ9417pKhqx0IkqFAFdFQFPm4JIrs= +github.com/vesoft-inc/nebula-go/v3 v3.0.0-20220119024722-ab348afbb79d/go.mod h1:+sXv05jYQBARdTbTcIEsWVXCnF/6ttOlDK35xQ6m54s= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -149,6 +154,7 @@ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= diff --git a/internal/clients/meta.go b/internal/clients/meta.go index e569f69..b65d3b2 100644 --- a/internal/clients/meta.go +++ b/internal/clients/meta.go @@ -8,8 +8,8 @@ import ( "github.com/facebook/fbthrift/thrift/lib/go/thrift" log "github.com/sirupsen/logrus" "github.com/vesoft-inc/nebula-agent/internal/utils" - "github.com/vesoft-inc/nebula-go/v2/nebula" - "github.com/vesoft-inc/nebula-go/v2/nebula/meta" + "github.com/vesoft-inc/nebula-go/v3/nebula" + "github.com/vesoft-inc/nebula-go/v3/nebula/meta" ) const ( @@ -90,6 +90,13 @@ func connect(metaAddr *nebula.HostAddr) (*meta.MetaServiceClient, error) { log.WithError(err).WithField("addr", addr).Error("open meta failed") return nil, err } + req := &meta.VerifyClientVersionReq{} + resp, err := client.VerifyClientVersion(req) + if err != nil || resp.Code != nebula.ErrorCode_SUCCEEDED { + log.WithError(err).WithField("addr", addr).Error("incompatible version between client and server") + client.Close() + return nil, err + } log.WithField("meta address", addr).Info("connect meta server successfully") return client, nil diff --git a/internal/utils/address.go b/internal/utils/address.go index 11a8392..9b38d32 100644 --- a/internal/utils/address.go +++ b/internal/utils/address.go @@ -4,7 +4,7 @@ import ( "strconv" "strings" - "github.com/vesoft-inc/nebula-go/v2/nebula" + "github.com/vesoft-inc/nebula-go/v3/nebula" ) // ParseAddr parse "xx.xx.xx.xx:xx" to nebula.HostAddr diff --git a/internal/utils/service.go b/internal/utils/service.go index a7abfa5..1e57aeb 100644 --- a/internal/utils/service.go +++ b/internal/utils/service.go @@ -4,7 +4,7 @@ import ( "fmt" "strings" - "github.com/vesoft-inc/nebula-go/v2/nebula/meta" + "github.com/vesoft-inc/nebula-go/v3/nebula/meta" ) func StringifyService(s *meta.ServiceInfo) string { diff --git a/pkg/client/client.go b/pkg/client/client.go index 09a1c8c..872cb6f 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -11,7 +11,7 @@ import ( "github.com/vesoft-inc/nebula-agent/internal/utils" pb "github.com/vesoft-inc/nebula-agent/pkg/proto" "github.com/vesoft-inc/nebula-agent/pkg/storage" - "github.com/vesoft-inc/nebula-go/v2/nebula" + "github.com/vesoft-inc/nebula-go/v3/nebula" ) // Client is an agent client to call agent service diff --git a/pkg/client/config.go b/pkg/client/config.go index 43922cb..e002142 100644 --- a/pkg/client/config.go +++ b/pkg/client/config.go @@ -1,7 +1,7 @@ package client import ( - "github.com/vesoft-inc/nebula-go/v2/nebula" + "github.com/vesoft-inc/nebula-go/v3/nebula" ) // Config is the agent client config From 4b0e473f18d93597660c6bb9e83aa934e1003b47 Mon Sep 17 00:00:00 2001 From: HarrisChu <1726587+HarrisChu@users.noreply.github.com> Date: Tue, 8 Feb 2022 15:17:43 +0800 Subject: [PATCH 2/3] fix verify version --- internal/clients/meta.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/internal/clients/meta.go b/internal/clients/meta.go index b65d3b2..827ef7d 100644 --- a/internal/clients/meta.go +++ b/internal/clients/meta.go @@ -90,7 +90,8 @@ func connect(metaAddr *nebula.HostAddr) (*meta.MetaServiceClient, error) { log.WithError(err).WithField("addr", addr).Error("open meta failed") return nil, err } - req := &meta.VerifyClientVersionReq{} + + req := newVerifyClientVersionReq() resp, err := client.VerifyClientVersion(req) if err != nil || resp.Code != nebula.ErrorCode_SUCCEEDED { log.WithError(err).WithField("addr", addr).Error("incompatible version between client and server") @@ -223,3 +224,10 @@ func (m *NebulaMeta) refreshInfo(services []*meta.ServiceInfo) error { return nil } + +func newVerifyClientVersionReq() *meta.VerifyClientVersionReq { + return &meta.VerifyClientVersionReq{ + ClientVersion: []byte("3.0.0"), + Host: nebula.NewHostAddr(), + } +} From 0bc85ef59bfde707bb9066caf67d254d9c97cb12 Mon Sep 17 00:00:00 2001 From: HarrisChu <1726587+HarrisChu@users.noreply.github.com> Date: Tue, 8 Feb 2022 15:29:58 +0800 Subject: [PATCH 3/3] make more meaningful --- internal/clients/meta.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/clients/meta.go b/internal/clients/meta.go index 827ef7d..08c2dc5 100644 --- a/internal/clients/meta.go +++ b/internal/clients/meta.go @@ -227,7 +227,7 @@ func (m *NebulaMeta) refreshInfo(services []*meta.ServiceInfo) error { func newVerifyClientVersionReq() *meta.VerifyClientVersionReq { return &meta.VerifyClientVersionReq{ - ClientVersion: []byte("3.0.0"), - Host: nebula.NewHostAddr(), + ClientVersion: []byte(nebula.Version), + Host: nebula.NewHostAddr(), } }