Skip to content

Commit

Permalink
[FAB-9367] Fix constructor of discovery services
Browse files Browse the repository at this point in the history
Remove InfraProvider from arg of
CreateDiscoveryProvider since it's passed in
Initialize.

Change-Id: I71e2b5720951fff97c3e05fa52d3900ff82caf97
Signed-off-by: Bob Stasyszyn <Bob.Stasyszyn@securekey.com>
  • Loading branch information
bstasyszyn committed Apr 5, 2018
1 parent 0a27dbc commit 601dcc5
Show file tree
Hide file tree
Showing 9 changed files with 30 additions and 42 deletions.
15 changes: 4 additions & 11 deletions pkg/client/common/discovery/discoveryfilter_test.go
Expand Up @@ -13,7 +13,8 @@ import (
"github.com/hyperledger/fabric-sdk-go/pkg/common/providers/fab"
"github.com/hyperledger/fabric-sdk-go/pkg/core/config"
fabImpl "github.com/hyperledger/fabric-sdk-go/pkg/fab"
"github.com/hyperledger/fabric-sdk-go/pkg/fab/peer"
mocks "github.com/hyperledger/fabric-sdk-go/pkg/fab/mocks"
"github.com/hyperledger/fabric-sdk-go/pkg/msp/test/mockmsp"
)

type mockFilter struct {
Expand All @@ -38,11 +39,11 @@ func TestDiscoveryFilter(t *testing.T) {
t.Fatalf(err.Error())
}

peerCreator := defPeerCreator{defPeerConfig: config1}
discoveryProvider, err := staticdiscovery.New(config1, &peerCreator)
discoveryProvider, err := staticdiscovery.New(config1)
if err != nil {
t.Fatalf("Failed to setup discovery provider: %s", err)
}
discoveryProvider.Initialize(mocks.NewMockContext(mockmsp.NewMockSigningIdentity("user1", "Org1MSP")))

discoveryService, err := discoveryProvider.CreateDiscoveryService("mychannel")
if err != nil {
Expand All @@ -69,11 +70,3 @@ func TestDiscoveryFilter(t *testing.T) {
}

}

type defPeerCreator struct {
defPeerConfig fab.EndpointConfig
}

func (pc *defPeerCreator) CreatePeerFromConfig(peerCfg *fab.NetworkPeer) (fab.Peer, error) {
return peer.New(pc.defPeerConfig, peer.FromPeerConfig(peerCfg))
}
12 changes: 9 additions & 3 deletions pkg/client/common/discovery/staticdiscovery/staticdiscovery.go
Expand Up @@ -7,6 +7,7 @@ SPDX-License-Identifier: Apache-2.0
package staticdiscovery

import (
contextAPI "github.com/hyperledger/fabric-sdk-go/pkg/common/providers/context"
"github.com/hyperledger/fabric-sdk-go/pkg/common/providers/fab"

"github.com/pkg/errors"
Expand All @@ -33,8 +34,14 @@ type discoveryService struct {
}

// New returns discovery provider
func New(config fab.EndpointConfig, fabPvdr peerCreator) (*DiscoveryProvider, error) {
return &DiscoveryProvider{config: config, fabPvdr: fabPvdr}, nil
func New(config fab.EndpointConfig) (*DiscoveryProvider, error) {
return &DiscoveryProvider{config: config}, nil
}

// Initialize initializes the DiscoveryProvider
func (dp *DiscoveryProvider) Initialize(fabPvdr contextAPI.Providers) error {
dp.fabPvdr = fabPvdr.InfraProvider()
return nil
}

// CreateDiscoveryService return discovery service for specific channel
Expand All @@ -51,7 +58,6 @@ func (dp *DiscoveryProvider) CreateDiscoveryService(channelID string) (fab.Disco
}

for _, p := range chPeers {

newPeer, err := dp.fabPvdr.CreatePeerFromConfig(&p.NetworkPeer)
if err != nil || newPeer == nil {
return nil, errors.WithMessage(err, "NewPeer failed")
Expand Down
Expand Up @@ -9,10 +9,10 @@ package staticdiscovery
import (
"testing"

"github.com/hyperledger/fabric-sdk-go/pkg/common/providers/fab"
"github.com/hyperledger/fabric-sdk-go/pkg/core/config"
fabImpl "github.com/hyperledger/fabric-sdk-go/pkg/fab"
"github.com/hyperledger/fabric-sdk-go/pkg/fab/peer"
"github.com/hyperledger/fabric-sdk-go/pkg/fab/mocks"
"github.com/hyperledger/fabric-sdk-go/pkg/msp/test/mockmsp"
)

func TestStaticDiscovery(t *testing.T) {
Expand All @@ -27,11 +27,11 @@ func TestStaticDiscovery(t *testing.T) {
t.Fatalf(err.Error())
}

peerCreator := defPeerCreator{config: config1}
discoveryProvider, err := New(config1, &peerCreator)
discoveryProvider, err := New(config1)
if err != nil {
t.Fatalf("Failed to setup discovery provider: %s", err)
}
discoveryProvider.Initialize(mocks.NewMockContext(mockmsp.NewMockSigningIdentity("user1", "Org1MSP")))

_, err = discoveryProvider.CreateDiscoveryService("invalidChannel")
if err == nil {
Expand Down Expand Up @@ -67,8 +67,9 @@ func TestStaticDiscoveryWhenChannelIsEmpty(t *testing.T) {
t.Fatalf(err.Error())
}

peerCreator := defPeerCreator{config: config1}
discoveryProvider, _ := New(config1, &peerCreator)
discoveryProvider, _ := New(config1)
discoveryProvider.Initialize(mocks.NewMockContext(mockmsp.NewMockSigningIdentity("user1", "Org1MSP")))

// If channel is empty discovery service will return all configured network peers
discoveryService, err := discoveryProvider.CreateDiscoveryService("")
if err != nil {
Expand All @@ -86,11 +87,3 @@ func TestStaticDiscoveryWhenChannelIsEmpty(t *testing.T) {
t.Fatalf("Expecting %d, got %d peers", expectedNumOfPeeers, len(peers))
}
}

type defPeerCreator struct {
config fab.EndpointConfig
}

func (pc *defPeerCreator) CreatePeerFromConfig(peerCfg *fab.NetworkPeer) (fab.Peer, error) {
return peer.New(pc.config, peer.FromPeerConfig(peerCfg))
}
2 changes: 1 addition & 1 deletion pkg/fabsdk/api/factory.go
Expand Up @@ -34,6 +34,6 @@ type MSPProviderFactory interface {

// ServiceProviderFactory allows overriding default service providers (such as peer discovery)
type ServiceProviderFactory interface {
CreateDiscoveryProvider(config fab.EndpointConfig, fabPvdr fab.InfraProvider) (fab.DiscoveryProvider, error)
CreateDiscoveryProvider(config fab.EndpointConfig) (fab.DiscoveryProvider, error)
CreateSelectionProvider(config fab.EndpointConfig) (fab.SelectionProvider, error)
}
2 changes: 1 addition & 1 deletion pkg/fabsdk/fabsdk.go
Expand Up @@ -226,7 +226,7 @@ func initSDK(sdk *FabricSDK, configProvider core.ConfigProvider, opts []Option)
}

// Initialize discovery provider
discoveryProvider, err := sdk.opts.Service.CreateDiscoveryProvider(sdk.opts.endpointConfig, infraProvider)
discoveryProvider, err := sdk.opts.Service.CreateDiscoveryProvider(sdk.opts.endpointConfig)
if err != nil {
return errors.WithMessage(err, "failed to create discovery provider")
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/fabsdk/fabsdk_test.go
Expand Up @@ -123,7 +123,7 @@ func TestWithServicePkg(t *testing.T) {
defer mockCtrl.Finish()
factory := mockapisdk.NewMockServiceProviderFactory(mockCtrl)

factory.EXPECT().CreateDiscoveryProvider(gomock.Any(), gomock.Any()).Return(nil, nil)
factory.EXPECT().CreateDiscoveryProvider(gomock.Any()).Return(nil, nil)
factory.EXPECT().CreateSelectionProvider(gomock.Any()).Return(nil, nil)

_, err = New(c, WithServicePkg(factory))
Expand Down
4 changes: 2 additions & 2 deletions pkg/fabsdk/factory/defsvc/svcfactory.go
Expand Up @@ -23,8 +23,8 @@ func NewProviderFactory() *ProviderFactory {
}

// CreateDiscoveryProvider returns a new default implementation of discovery provider
func (f *ProviderFactory) CreateDiscoveryProvider(config fab.EndpointConfig, fabPvdr fab.InfraProvider) (fab.DiscoveryProvider, error) {
return discovery.New(config, fabPvdr)
func (f *ProviderFactory) CreateDiscoveryProvider(config fab.EndpointConfig) (fab.DiscoveryProvider, error) {
return discovery.New(config)
}

// CreateSelectionProvider returns a new default implementation of selection service
Expand Down
6 changes: 1 addition & 5 deletions pkg/fabsdk/factory/defsvc/svcfactory_test.go
Expand Up @@ -12,18 +12,14 @@ import (
discovery "github.com/hyperledger/fabric-sdk-go/pkg/client/common/discovery/staticdiscovery"
selection "github.com/hyperledger/fabric-sdk-go/pkg/client/common/selection/staticselection"
"github.com/hyperledger/fabric-sdk-go/pkg/fab/mocks"
"github.com/hyperledger/fabric-sdk-go/pkg/fabsdk/provider/fabpvdr"
mspmocks "github.com/hyperledger/fabric-sdk-go/pkg/msp/test/mockmsp"
)

func TestCreateDiscoveryProvider(t *testing.T) {
ctx := mocks.NewMockContext(mspmocks.NewMockSigningIdentity("testuser", "testuser"))
fabPvdr := fabpvdr.New(ctx.EndpointConfig())

factory := NewProviderFactory()
config := mocks.NewMockEndpointConfig()

dp, err := factory.CreateDiscoveryProvider(config, fabPvdr)
dp, err := factory.CreateDiscoveryProvider(config)
if err != nil {
t.Fatalf("Unexpected error creating discovery provider %v", err)
}
Expand Down
8 changes: 4 additions & 4 deletions pkg/fabsdk/test/mocksdkapi/mocksdkapi.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 601dcc5

Please sign in to comment.