From f49637b09b935a0019f6c67542d591b8acb56cda Mon Sep 17 00:00:00 2001 From: terence tsao Date: Thu, 16 Sep 2021 12:12:27 -0700 Subject: [PATCH] Move iputil and httpuil pkgs into network pkg (#9621) * Add network pkg * Go fmt * Update discovery_test.go Co-authored-by: Raul Jordan --- beacon-chain/p2p/BUILD.bazel | 4 +- beacon-chain/p2p/discovery_test.go | 4 +- beacon-chain/p2p/utils.go | 4 +- beacon-chain/powchain/BUILD.bazel | 8 ++-- beacon-chain/powchain/provider.go | 24 ++++++------ beacon-chain/powchain/provider_test.go | 22 +++++------ beacon-chain/powchain/service.go | 18 ++++----- beacon-chain/powchain/service_test.go | 6 +-- network/BUILD.bazel | 26 +++++++++++++ .../authorization}/BUILD.bazel | 2 +- .../authorization}/authorization_method.go | 2 +- {shared/httputils => network}/endpoint.go | 20 +++++----- .../httputils => network}/endpoint_test.go | 38 +++++++++---------- {shared/iputils => network}/external_ip.go | 2 +- .../iputils => network}/external_ip_test.go | 10 ++--- shared/httputils/BUILD.bazel | 19 ---------- shared/iputils/BUILD.bazel | 19 ---------- tools/bootnode/BUILD.bazel | 4 +- tools/bootnode/bootnode.go | 4 +- tools/bootnode/bootnode_test.go | 4 +- 20 files changed, 114 insertions(+), 126 deletions(-) create mode 100644 network/BUILD.bazel rename {shared/httputils/authorizationmethod => network/authorization}/BUILD.bazel (66%) rename {shared/httputils/authorizationmethod => network/authorization}/authorization_method.go (92%) rename {shared/httputils => network}/endpoint.go (74%) rename {shared/httputils => network}/endpoint_test.go (76%) rename {shared/iputils => network}/external_ip.go (99%) rename {shared/iputils => network}/external_ip_test.go (87%) diff --git a/beacon-chain/p2p/BUILD.bazel b/beacon-chain/p2p/BUILD.bazel index 78fd64a114..d307548ffd 100644 --- a/beacon-chain/p2p/BUILD.bazel +++ b/beacon-chain/p2p/BUILD.bazel @@ -56,6 +56,7 @@ go_library( "//config/features:go_default_library", "//crypto/hash:go_default_library", "//monitoring/tracing:go_default_library", + "//network:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/metadata:go_default_library", "//proto/prysm/v1alpha1/wrapper:go_default_library", @@ -63,7 +64,6 @@ go_library( "//shared:go_default_library", "//shared/bytesutil:go_default_library", "//shared/fileutil:go_default_library", - "//shared/iputils:go_default_library", "//shared/p2putils:go_default_library", "//shared/params:go_default_library", "//shared/runutil:go_default_library", @@ -142,6 +142,7 @@ go_test( "//beacon-chain/p2p/testing:go_default_library", "//beacon-chain/p2p/types:go_default_library", "//crypto/hash:go_default_library", + "//network:go_default_library", "//proto/eth/v1:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/wrapper:go_default_library", @@ -149,7 +150,6 @@ go_test( "//runtime/version:go_default_library", "//shared/bytesutil:go_default_library", "//shared/event:go_default_library", - "//shared/iputils:go_default_library", "//shared/p2putils:go_default_library", "//shared/params:go_default_library", "//shared/testutil:go_default_library", diff --git a/beacon-chain/p2p/discovery_test.go b/beacon-chain/p2p/discovery_test.go index ff805ef22c..fbe2282cd9 100644 --- a/beacon-chain/p2p/discovery_test.go +++ b/beacon-chain/p2p/discovery_test.go @@ -29,12 +29,12 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/p2p/peers/peerdata" "github.com/prysmaticlabs/prysm/beacon-chain/p2p/peers/scorers" testp2p "github.com/prysmaticlabs/prysm/beacon-chain/p2p/testing" + prysmNetwork "github.com/prysmaticlabs/prysm/network" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" pb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" "github.com/prysmaticlabs/prysm/runtime/version" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/iputils" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" @@ -48,7 +48,7 @@ func init() { } func createAddrAndPrivKey(t *testing.T) (net.IP, *ecdsa.PrivateKey) { - ip, err := iputils.ExternalIPv4() + ip, err := prysmNetwork.ExternalIPv4() require.NoError(t, err, "Could not get ip") ipAddr := net.ParseIP(ip) temp := t.TempDir() diff --git a/beacon-chain/p2p/utils.go b/beacon-chain/p2p/utils.go index c544aed8d2..604abab3f6 100644 --- a/beacon-chain/p2p/utils.go +++ b/beacon-chain/p2p/utils.go @@ -18,11 +18,11 @@ import ( "github.com/libp2p/go-libp2p-core/crypto" "github.com/pkg/errors" "github.com/prysmaticlabs/go-bitfield" + "github.com/prysmaticlabs/prysm/network" pb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/metadata" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" "github.com/prysmaticlabs/prysm/shared/fileutil" - "github.com/prysmaticlabs/prysm/shared/iputils" "github.com/sirupsen/logrus" "google.golang.org/protobuf/proto" ) @@ -149,7 +149,7 @@ func metaDataFromConfig(cfg *Config) (metadata.Metadata, error) { // Retrieves an external ipv4 address and converts into a libp2p formatted value. func ipAddr() net.IP { - ip, err := iputils.ExternalIP() + ip, err := network.ExternalIP() if err != nil { log.Fatalf("Could not get IPv4 address: %v", err) } diff --git a/beacon-chain/powchain/BUILD.bazel b/beacon-chain/powchain/BUILD.bazel index d8011f025f..4bc3969d1a 100644 --- a/beacon-chain/powchain/BUILD.bazel +++ b/beacon-chain/powchain/BUILD.bazel @@ -35,10 +35,10 @@ go_library( "//crypto/hash:go_default_library", "//monitoring/clientstats:go_default_library", "//monitoring/tracing:go_default_library", + "//network:go_default_library", + "//network/authorization:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/httputils:go_default_library", - "//shared/httputils/authorizationmethod:go_default_library", "//shared/logutil:go_default_library", "//shared/params:go_default_library", "//time:go_default_library", @@ -86,11 +86,11 @@ go_test( "//contracts/deposit-contract:go_default_library", "//crypto/bls:go_default_library", "//monitoring/clientstats:go_default_library", + "//network:go_default_library", + "//network/authorization:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/bytesutil:go_default_library", "//shared/event:go_default_library", - "//shared/httputils:go_default_library", - "//shared/httputils/authorizationmethod:go_default_library", "//shared/params:go_default_library", "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", diff --git a/beacon-chain/powchain/provider.go b/beacon-chain/powchain/provider.go index b7e6b4278b..9933939943 100644 --- a/beacon-chain/powchain/provider.go +++ b/beacon-chain/powchain/provider.go @@ -4,16 +4,16 @@ import ( "encoding/base64" "strings" - "github.com/prysmaticlabs/prysm/shared/httputils" - "github.com/prysmaticlabs/prysm/shared/httputils/authorizationmethod" + "github.com/prysmaticlabs/prysm/network" + "github.com/prysmaticlabs/prysm/network/authorization" ) // HttpEndpoint extracts an httputils.Endpoint from the provider parameter. -func HttpEndpoint(eth1Provider string) httputils.Endpoint { - endpoint := httputils.Endpoint{ +func HttpEndpoint(eth1Provider string) network.Endpoint { + endpoint := network.Endpoint{ Url: "", - Auth: httputils.AuthorizationData{ - Method: authorizationmethod.None, + Auth: network.AuthorizationData{ + Method: authorization.None, Value: "", }} @@ -24,24 +24,24 @@ func HttpEndpoint(eth1Provider string) httputils.Endpoint { "ETH1 endpoint string can contain one comma for specifying the authorization header to access the provider."+ " String contains too many commas: %d. Skipping authorization.", len(authValues)-1) } else if len(authValues) == 2 { - switch httputils.Method(strings.TrimSpace(authValues[1])) { - case authorizationmethod.Basic: + switch network.Method(strings.TrimSpace(authValues[1])) { + case authorization.Basic: basicAuthValues := strings.Split(strings.TrimSpace(authValues[1]), " ") if len(basicAuthValues) != 2 { log.Errorf("Basic Authentication has incorrect format. Skipping authorization.") } else { - endpoint.Auth.Method = authorizationmethod.Basic + endpoint.Auth.Method = authorization.Basic endpoint.Auth.Value = base64.StdEncoding.EncodeToString([]byte(basicAuthValues[1])) } - case authorizationmethod.Bearer: + case authorization.Bearer: bearerAuthValues := strings.Split(strings.TrimSpace(authValues[1]), " ") if len(bearerAuthValues) != 2 { log.Errorf("Bearer Authentication has incorrect format. Skipping authorization.") } else { - endpoint.Auth.Method = authorizationmethod.Bearer + endpoint.Auth.Method = authorization.Bearer endpoint.Auth.Value = bearerAuthValues[1] } - case authorizationmethod.None: + case authorization.None: log.Errorf("Authorization has incorrect format or authorization type is not supported.") } } diff --git a/beacon-chain/powchain/provider_test.go b/beacon-chain/powchain/provider_test.go index 7833d604a9..5e32fadbe2 100644 --- a/beacon-chain/powchain/provider_test.go +++ b/beacon-chain/powchain/provider_test.go @@ -3,7 +3,7 @@ package powchain import ( "testing" - "github.com/prysmaticlabs/prysm/shared/httputils/authorizationmethod" + "github.com/prysmaticlabs/prysm/network/authorization" "github.com/prysmaticlabs/prysm/shared/testutil/assert" logTest "github.com/sirupsen/logrus/hooks/test" ) @@ -15,60 +15,60 @@ func TestHttpEndpoint(t *testing.T) { t.Run("URL", func(t *testing.T) { endpoint := HttpEndpoint(url) assert.Equal(t, url, endpoint.Url) - assert.Equal(t, authorizationmethod.None, endpoint.Auth.Method) + assert.Equal(t, authorization.None, endpoint.Auth.Method) }) t.Run("URL with separator", func(t *testing.T) { endpoint := HttpEndpoint(url + ",") assert.Equal(t, url, endpoint.Url) - assert.Equal(t, authorizationmethod.None, endpoint.Auth.Method) + assert.Equal(t, authorization.None, endpoint.Auth.Method) }) t.Run("URL with whitespace", func(t *testing.T) { endpoint := HttpEndpoint(" " + url + " ,") assert.Equal(t, url, endpoint.Url) - assert.Equal(t, authorizationmethod.None, endpoint.Auth.Method) + assert.Equal(t, authorization.None, endpoint.Auth.Method) }) t.Run("Basic auth", func(t *testing.T) { endpoint := HttpEndpoint(url + ",Basic username:password") assert.Equal(t, url, endpoint.Url) - assert.Equal(t, authorizationmethod.Basic, endpoint.Auth.Method) + assert.Equal(t, authorization.Basic, endpoint.Auth.Method) assert.Equal(t, "dXNlcm5hbWU6cGFzc3dvcmQ=", endpoint.Auth.Value) }) t.Run("Basic auth with whitespace", func(t *testing.T) { endpoint := HttpEndpoint(url + ", Basic username:password ") assert.Equal(t, url, endpoint.Url) - assert.Equal(t, authorizationmethod.Basic, endpoint.Auth.Method) + assert.Equal(t, authorization.Basic, endpoint.Auth.Method) assert.Equal(t, "dXNlcm5hbWU6cGFzc3dvcmQ=", endpoint.Auth.Value) }) t.Run("Basic auth with incorrect format", func(t *testing.T) { hook.Reset() endpoint := HttpEndpoint(url + ",Basic username:password foo") assert.Equal(t, url, endpoint.Url) - assert.Equal(t, authorizationmethod.None, endpoint.Auth.Method) + assert.Equal(t, authorization.None, endpoint.Auth.Method) assert.LogsContain(t, hook, "Skipping authorization") }) t.Run("Bearer auth", func(t *testing.T) { endpoint := HttpEndpoint(url + ",Bearer token") assert.Equal(t, url, endpoint.Url) - assert.Equal(t, authorizationmethod.Bearer, endpoint.Auth.Method) + assert.Equal(t, authorization.Bearer, endpoint.Auth.Method) assert.Equal(t, "token", endpoint.Auth.Value) }) t.Run("Bearer auth with whitespace", func(t *testing.T) { endpoint := HttpEndpoint(url + ", Bearer token ") assert.Equal(t, url, endpoint.Url) - assert.Equal(t, authorizationmethod.Bearer, endpoint.Auth.Method) + assert.Equal(t, authorization.Bearer, endpoint.Auth.Method) assert.Equal(t, "token", endpoint.Auth.Value) }) t.Run("Bearer auth with incorrect format", func(t *testing.T) { hook.Reset() endpoint := HttpEndpoint(url + ",Bearer token foo") assert.Equal(t, url, endpoint.Url) - assert.Equal(t, authorizationmethod.None, endpoint.Auth.Method) + assert.Equal(t, authorization.None, endpoint.Auth.Method) assert.LogsContain(t, hook, "Skipping authorization") }) t.Run("Too many separators", func(t *testing.T) { endpoint := HttpEndpoint(url + ",Bearer token,foo") assert.Equal(t, url, endpoint.Url) - assert.Equal(t, authorizationmethod.None, endpoint.Auth.Method) + assert.Equal(t, authorization.None, endpoint.Auth.Method) assert.LogsContain(t, hook, "Skipping authorization") }) } diff --git a/beacon-chain/powchain/service.go b/beacon-chain/powchain/service.go index e525b060bf..14e7f11210 100644 --- a/beacon-chain/powchain/service.go +++ b/beacon-chain/powchain/service.go @@ -35,11 +35,11 @@ import ( "github.com/prysmaticlabs/prysm/container/trie" contracts "github.com/prysmaticlabs/prysm/contracts/deposit-contract" "github.com/prysmaticlabs/prysm/monitoring/clientstats" + "github.com/prysmaticlabs/prysm/network" + "github.com/prysmaticlabs/prysm/network/authorization" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" protodb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/httputils" - "github.com/prysmaticlabs/prysm/shared/httputils/authorizationmethod" "github.com/prysmaticlabs/prysm/shared/logutil" "github.com/prysmaticlabs/prysm/shared/params" prysmTime "github.com/prysmaticlabs/prysm/time" @@ -134,8 +134,8 @@ type Service struct { ctx context.Context cancel context.CancelFunc headTicker *time.Ticker - httpEndpoints []httputils.Endpoint - currHttpEndpoint httputils.Endpoint + httpEndpoints []network.Endpoint + currHttpEndpoint network.Endpoint httpLogger bind.ContractFilterer eth1DataFetcher RPCDataFetcher rpcClient RPCClient @@ -182,13 +182,13 @@ func NewService(ctx context.Context, config *Web3ServiceConfig) (*Service, error } stringEndpoints := dedupEndpoints(config.HttpEndpoints) - endpoints := make([]httputils.Endpoint, len(stringEndpoints)) + endpoints := make([]network.Endpoint, len(stringEndpoints)) for i, e := range stringEndpoints { endpoints[i] = HttpEndpoint(e) } // Select first http endpoint in the provided list. - var currEndpoint httputils.Endpoint + var currEndpoint network.Endpoint if len(config.HttpEndpoints) > 0 { currEndpoint = endpoints[0] } @@ -327,7 +327,7 @@ func (s *Service) updateBeaconNodeStats() { s.bsUpdater.Update(bs) } -func (s *Service) updateCurrHttpEndpoint(endpoint httputils.Endpoint) { +func (s *Service) updateCurrHttpEndpoint(endpoint network.Endpoint) { s.currHttpEndpoint = endpoint s.updateBeaconNodeStats() } @@ -410,12 +410,12 @@ func (s *Service) connectToPowChain() error { return nil } -func (s *Service) dialETH1Nodes(endpoint httputils.Endpoint) (*ethclient.Client, *gethRPC.Client, error) { +func (s *Service) dialETH1Nodes(endpoint network.Endpoint) (*ethclient.Client, *gethRPC.Client, error) { httpRPCClient, err := gethRPC.Dial(endpoint.Url) if err != nil { return nil, nil, err } - if endpoint.Auth.Method != authorizationmethod.None { + if endpoint.Auth.Method != authorization.None { header, err := endpoint.Auth.ToHeaderValue() if err != nil { return nil, nil, err diff --git a/beacon-chain/powchain/service_test.go b/beacon-chain/powchain/service_test.go index 21b0bfa576..5ccf2b7b37 100644 --- a/beacon-chain/powchain/service_test.go +++ b/beacon-chain/powchain/service_test.go @@ -20,10 +20,10 @@ import ( mockPOW "github.com/prysmaticlabs/prysm/beacon-chain/powchain/testing" contracts "github.com/prysmaticlabs/prysm/contracts/deposit-contract" "github.com/prysmaticlabs/prysm/monitoring/clientstats" + "github.com/prysmaticlabs/prysm/network" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" protodb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/event" - "github.com/prysmaticlabs/prysm/shared/httputils" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" @@ -570,7 +570,7 @@ func TestServiceFallbackCorrectly(t *testing.T) { assert.Equal(t, firstEndpoint, s1.currHttpEndpoint.Url, "Unexpected http endpoint") assert.Equal(t, false, mbs.lastBS.SyncEth1FallbackConfigured, "SyncEth1FallbackConfigured in clientstats update should be false when only 1 endpoint is configured") - s1.httpEndpoints = append(s1.httpEndpoints, httputils.Endpoint{Url: secondEndpoint}) + s1.httpEndpoints = append(s1.httpEndpoints, network.Endpoint{Url: secondEndpoint}) s1.fallbackToNextEndpoint() assert.Equal(t, secondEndpoint, s1.currHttpEndpoint.Url, "Unexpected http endpoint") @@ -579,7 +579,7 @@ func TestServiceFallbackCorrectly(t *testing.T) { thirdEndpoint := "C" fourthEndpoint := "D" - s1.httpEndpoints = append(s1.httpEndpoints, httputils.Endpoint{Url: thirdEndpoint}, httputils.Endpoint{Url: fourthEndpoint}) + s1.httpEndpoints = append(s1.httpEndpoints, network.Endpoint{Url: thirdEndpoint}, network.Endpoint{Url: fourthEndpoint}) s1.fallbackToNextEndpoint() assert.Equal(t, thirdEndpoint, s1.currHttpEndpoint.Url, "Unexpected http endpoint") diff --git a/network/BUILD.bazel b/network/BUILD.bazel new file mode 100644 index 0000000000..cf2eca8b4e --- /dev/null +++ b/network/BUILD.bazel @@ -0,0 +1,26 @@ +load("@prysm//tools/go:def.bzl", "go_library", "go_test") + +go_library( + name = "go_default_library", + srcs = [ + "endpoint.go", + "external_ip.go", + ], + importpath = "github.com/prysmaticlabs/prysm/network", + visibility = ["//visibility:public"], + deps = ["//network/authorization:go_default_library"], +) + +go_test( + name = "go_default_test", + srcs = [ + "endpoint_test.go", + "external_ip_test.go", + ], + embed = [":go_default_library"], + deps = [ + "//network/authorization:go_default_library", + "//shared/testutil/assert:go_default_library", + "//shared/testutil/require:go_default_library", + ], +) diff --git a/shared/httputils/authorizationmethod/BUILD.bazel b/network/authorization/BUILD.bazel similarity index 66% rename from shared/httputils/authorizationmethod/BUILD.bazel rename to network/authorization/BUILD.bazel index 713b7db417..c62e5ab2e9 100644 --- a/shared/httputils/authorizationmethod/BUILD.bazel +++ b/network/authorization/BUILD.bazel @@ -3,6 +3,6 @@ load("@prysm//tools/go:def.bzl", "go_library") go_library( name = "go_default_library", srcs = ["authorization_method.go"], - importpath = "github.com/prysmaticlabs/prysm/shared/httputils/authorizationmethod", + importpath = "github.com/prysmaticlabs/prysm/network/authorization", visibility = ["//visibility:public"], ) diff --git a/shared/httputils/authorizationmethod/authorization_method.go b/network/authorization/authorization_method.go similarity index 92% rename from shared/httputils/authorizationmethod/authorization_method.go rename to network/authorization/authorization_method.go index a5f24bb5cc..b8bef1259a 100644 --- a/shared/httputils/authorizationmethod/authorization_method.go +++ b/network/authorization/authorization_method.go @@ -1,4 +1,4 @@ -package authorizationmethod +package authorization // AuthorizationMethod is an authorization method such as 'Basic' or 'Bearer'. type AuthorizationMethod uint8 diff --git a/shared/httputils/endpoint.go b/network/endpoint.go similarity index 74% rename from shared/httputils/endpoint.go rename to network/endpoint.go index aa5fd350c8..1cbc0a9af4 100644 --- a/shared/httputils/endpoint.go +++ b/network/endpoint.go @@ -1,10 +1,10 @@ -package httputils +package network import ( "errors" "strings" - "github.com/prysmaticlabs/prysm/shared/httputils/authorizationmethod" + "github.com/prysmaticlabs/prysm/network/authorization" ) // Endpoint is an endpoint with authorization data. @@ -15,7 +15,7 @@ type Endpoint struct { // AuthorizationData holds all information necessary to authorize with HTTP. type AuthorizationData struct { - Method authorizationmethod.AuthorizationMethod + Method authorization.AuthorizationMethod Value string } @@ -32,11 +32,11 @@ func (d AuthorizationData) Equals(other AuthorizationData) bool { // ToHeaderValue retrieves the value of the authorization header from AuthorizationData. func (d *AuthorizationData) ToHeaderValue() (string, error) { switch d.Method { - case authorizationmethod.Basic: + case authorization.Basic: return "Basic " + d.Value, nil - case authorizationmethod.Bearer: + case authorization.Bearer: return "Bearer " + d.Value, nil - case authorizationmethod.None: + case authorization.None: return "", nil } @@ -44,12 +44,12 @@ func (d *AuthorizationData) ToHeaderValue() (string, error) { } // Method returns the authorizationmethod.AuthorizationMethod corresponding with the parameter value. -func Method(auth string) authorizationmethod.AuthorizationMethod { +func Method(auth string) authorization.AuthorizationMethod { if strings.HasPrefix(strings.ToLower(auth), "basic") { - return authorizationmethod.Basic + return authorization.Basic } if strings.HasPrefix(strings.ToLower(auth), "bearer") { - return authorizationmethod.Bearer + return authorization.Bearer } - return authorizationmethod.None + return authorization.None } diff --git a/shared/httputils/endpoint_test.go b/network/endpoint_test.go similarity index 76% rename from shared/httputils/endpoint_test.go rename to network/endpoint_test.go index e8135ba071..70033e2268 100644 --- a/shared/httputils/endpoint_test.go +++ b/network/endpoint_test.go @@ -1,9 +1,9 @@ -package httputils +package network import ( "testing" - "github.com/prysmaticlabs/prysm/shared/httputils/authorizationmethod" + "github.com/prysmaticlabs/prysm/network/authorization" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" ) @@ -11,7 +11,7 @@ import ( func TestToHeaderValue(t *testing.T) { t.Run("None", func(t *testing.T) { data := &AuthorizationData{ - Method: authorizationmethod.None, + Method: authorization.None, Value: "foo", } header, err := data.ToHeaderValue() @@ -20,7 +20,7 @@ func TestToHeaderValue(t *testing.T) { }) t.Run("Basic", func(t *testing.T) { data := &AuthorizationData{ - Method: authorizationmethod.Basic, + Method: authorization.Basic, Value: "foo", } header, err := data.ToHeaderValue() @@ -29,7 +29,7 @@ func TestToHeaderValue(t *testing.T) { }) t.Run("Bearer", func(t *testing.T) { data := &AuthorizationData{ - Method: authorizationmethod.Bearer, + Method: authorization.Bearer, Value: "foo", } header, err := data.ToHeaderValue() @@ -49,25 +49,25 @@ func TestToHeaderValue(t *testing.T) { func TestMethod(t *testing.T) { t.Run("None", func(t *testing.T) { method := Method("") - assert.Equal(t, authorizationmethod.None, method) + assert.Equal(t, authorization.None, method) method = Method("foo") - assert.Equal(t, authorizationmethod.None, method) + assert.Equal(t, authorization.None, method) }) t.Run("Basic", func(t *testing.T) { method := Method("Basic") - assert.Equal(t, authorizationmethod.Basic, method) + assert.Equal(t, authorization.Basic, method) }) t.Run("Basic different text case", func(t *testing.T) { method := Method("bAsIc") - assert.Equal(t, authorizationmethod.Basic, method) + assert.Equal(t, authorization.Basic, method) }) t.Run("Bearer", func(t *testing.T) { method := Method("Bearer") - assert.Equal(t, authorizationmethod.Bearer, method) + assert.Equal(t, authorization.Bearer, method) }) t.Run("Bearer different text case", func(t *testing.T) { method := Method("bEaReR") - assert.Equal(t, authorizationmethod.Bearer, method) + assert.Equal(t, authorization.Bearer, method) }) } @@ -75,7 +75,7 @@ func TestEndpointEquals(t *testing.T) { e := Endpoint{ Url: "Url", Auth: AuthorizationData{ - Method: authorizationmethod.Basic, + Method: authorization.Basic, Value: "Basic username:password", }, } @@ -84,7 +84,7 @@ func TestEndpointEquals(t *testing.T) { other := Endpoint{ Url: "Url", Auth: AuthorizationData{ - Method: authorizationmethod.Basic, + Method: authorization.Basic, Value: "Basic username:password", }, } @@ -94,7 +94,7 @@ func TestEndpointEquals(t *testing.T) { other := Endpoint{ Url: "Different", Auth: AuthorizationData{ - Method: authorizationmethod.Basic, + Method: authorization.Basic, Value: "Basic username:password", }, } @@ -104,7 +104,7 @@ func TestEndpointEquals(t *testing.T) { other := Endpoint{ Url: "Url", Auth: AuthorizationData{ - Method: authorizationmethod.Bearer, + Method: authorization.Bearer, Value: "Bearer token", }, } @@ -114,27 +114,27 @@ func TestEndpointEquals(t *testing.T) { func TestAuthorizationDataEquals(t *testing.T) { d := AuthorizationData{ - Method: authorizationmethod.Basic, + Method: authorization.Basic, Value: "username:password", } t.Run("equal", func(t *testing.T) { other := AuthorizationData{ - Method: authorizationmethod.Basic, + Method: authorization.Basic, Value: "username:password", } assert.Equal(t, true, d.Equals(other)) }) t.Run("different method", func(t *testing.T) { other := AuthorizationData{ - Method: authorizationmethod.None, + Method: authorization.None, Value: "username:password", } assert.Equal(t, false, d.Equals(other)) }) t.Run("different value", func(t *testing.T) { other := AuthorizationData{ - Method: authorizationmethod.Basic, + Method: authorization.Basic, Value: "different:different", } assert.Equal(t, false, d.Equals(other)) diff --git a/shared/iputils/external_ip.go b/network/external_ip.go similarity index 99% rename from shared/iputils/external_ip.go rename to network/external_ip.go index c9411d7c17..e6cfc1ddbd 100644 --- a/shared/iputils/external_ip.go +++ b/network/external_ip.go @@ -1,5 +1,5 @@ // Package iputils contains useful functions for ip address formatting. -package iputils +package network import ( "net" diff --git a/shared/iputils/external_ip_test.go b/network/external_ip_test.go similarity index 87% rename from shared/iputils/external_ip_test.go rename to network/external_ip_test.go index 788254f46f..9c27ff65f8 100644 --- a/shared/iputils/external_ip_test.go +++ b/network/external_ip_test.go @@ -1,11 +1,11 @@ -package iputils_test +package network_test import ( "net" "regexp" "testing" - "github.com/prysmaticlabs/prysm/shared/iputils" + "github.com/prysmaticlabs/prysm/network" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" ) @@ -13,7 +13,7 @@ import ( func TestExternalIPv4(t *testing.T) { // Regular expression format for IPv4 IPv4Format := `\.\d{1,3}\.\d{1,3}\b` - test, err := iputils.ExternalIPv4() + test, err := network.ExternalIPv4() require.NoError(t, err) valid := regexp.MustCompile(IPv4Format) @@ -21,7 +21,7 @@ func TestExternalIPv4(t *testing.T) { } func TestRetrieveIP(t *testing.T) { - ip, err := iputils.ExternalIP() + ip, err := network.ExternalIP() if err != nil { t.Fatal(err) } @@ -40,7 +40,7 @@ func TestSortAddresses(t *testing.T) { {0x03, 0x89, 0x33, 0x13}, } - sortedAddrs := iputils.SortAddresses(testAddresses) + sortedAddrs := network.SortAddresses(testAddresses) assert.Equal(t, true, sortedAddrs[0].To4() != nil, "expected ipv4 address") assert.Equal(t, true, sortedAddrs[1].To4() != nil, "expected ipv4 address") assert.Equal(t, true, sortedAddrs[2].To4() != nil, "expected ipv4 address") diff --git a/shared/httputils/BUILD.bazel b/shared/httputils/BUILD.bazel index 176f8788d6..45ca140bf5 100644 --- a/shared/httputils/BUILD.bazel +++ b/shared/httputils/BUILD.bazel @@ -1,20 +1 @@ load("@prysm//tools/go:def.bzl", "go_library", "go_test") - -go_library( - name = "go_default_library", - srcs = ["endpoint.go"], - importpath = "github.com/prysmaticlabs/prysm/shared/httputils", - visibility = ["//visibility:public"], - deps = ["//shared/httputils/authorizationmethod:go_default_library"], -) - -go_test( - name = "go_default_test", - srcs = ["endpoint_test.go"], - embed = [":go_default_library"], - deps = [ - "//shared/httputils/authorizationmethod:go_default_library", - "//shared/testutil/assert:go_default_library", - "//shared/testutil/require:go_default_library", - ], -) diff --git a/shared/iputils/BUILD.bazel b/shared/iputils/BUILD.bazel index a4c8c788bf..45ca140bf5 100644 --- a/shared/iputils/BUILD.bazel +++ b/shared/iputils/BUILD.bazel @@ -1,20 +1 @@ load("@prysm//tools/go:def.bzl", "go_library", "go_test") - -go_library( - name = "go_default_library", - srcs = ["external_ip.go"], - importpath = "github.com/prysmaticlabs/prysm/shared/iputils", - visibility = ["//visibility:public"], -) - -go_test( - name = "go_default_test", - size = "small", - srcs = ["external_ip_test.go"], - tags = ["requires-network"], - deps = [ - ":go_default_library", - "//shared/testutil/assert:go_default_library", - "//shared/testutil/require:go_default_library", - ], -) diff --git a/tools/bootnode/BUILD.bazel b/tools/bootnode/BUILD.bazel index 93f9e239dd..0c828698aa 100644 --- a/tools/bootnode/BUILD.bazel +++ b/tools/bootnode/BUILD.bazel @@ -11,11 +11,11 @@ go_library( visibility = ["//visibility:private"], deps = [ "//beacon-chain/core/helpers:go_default_library", + "//network:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//runtime/maxprocs:go_default_library", "//runtime/version:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/iputils:go_default_library", "//shared/logutil:go_default_library", "//shared/params:go_default_library", "//shared/runutil:go_default_library", @@ -68,8 +68,8 @@ go_test( embed = [":go_default_library"], flaky = True, deps = [ + "//network:go_default_library", "//runtime/maxprocs:go_default_library", - "//shared/iputils:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", "@com_github_ethereum_go_ethereum//p2p/discover:go_default_library", diff --git a/tools/bootnode/bootnode.go b/tools/bootnode/bootnode.go index b752069a0e..03229cc30b 100644 --- a/tools/bootnode/bootnode.go +++ b/tools/bootnode/bootnode.go @@ -33,11 +33,11 @@ import ( "github.com/prometheus/client_golang/prometheus/promauto" "github.com/prysmaticlabs/go-bitfield" "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" + "github.com/prysmaticlabs/prysm/network" pb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" _ "github.com/prysmaticlabs/prysm/runtime/maxprocs" "github.com/prysmaticlabs/prysm/runtime/version" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/iputils" "github.com/prysmaticlabs/prysm/shared/logutil" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/runutil" @@ -98,7 +98,7 @@ func main() { } cfg.Bootnodes = []*enode.Node{node} } - ipAddr, err := iputils.ExternalIP() + ipAddr, err := network.ExternalIP() if err != nil { log.Fatal(err) } diff --git a/tools/bootnode/bootnode_test.go b/tools/bootnode/bootnode_test.go index 24661694a8..495a30ed9f 100644 --- a/tools/bootnode/bootnode_test.go +++ b/tools/bootnode/bootnode_test.go @@ -11,8 +11,8 @@ import ( "github.com/ethereum/go-ethereum/p2p/discover" "github.com/ethereum/go-ethereum/p2p/enode" "github.com/libp2p/go-libp2p-core/crypto" + "github.com/prysmaticlabs/prysm/network" _ "github.com/prysmaticlabs/prysm/runtime/maxprocs" - "github.com/prysmaticlabs/prysm/shared/iputils" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" "github.com/sirupsen/logrus" @@ -26,7 +26,7 @@ func TestMain(m *testing.M) { } func TestBootnode_OK(t *testing.T) { - ipAddr, err := iputils.ExternalIPv4() + ipAddr, err := network.ExternalIPv4() require.NoError(t, err) privKey := extractPrivateKey() cfg := discover.Config{