From 096e8c6a6feb5bb0346d49455ab447bd25055594 Mon Sep 17 00:00:00 2001 From: Sandra Vrtikapa Date: Thu, 1 Mar 2018 12:41:09 -0500 Subject: [PATCH] [FAB-8616]: Resource Mgmt: Move resource from context Change-Id: I5f095f81913863e310cd147c83ba0506c72cb375 Signed-off-by: Sandra Vrtikapa --- pkg/client/resmgmt/resmgmt.go | 6 ++++-- pkg/client/resmgmt/resmgmt_test.go | 13 +++++++------ pkg/fabsdk/client.go | 5 ----- test/integration/utils.go | 12 +++--------- 4 files changed, 14 insertions(+), 22 deletions(-) diff --git a/pkg/client/resmgmt/resmgmt.go b/pkg/client/resmgmt/resmgmt.go index 3c9fada67e..7e63327262 100644 --- a/pkg/client/resmgmt/resmgmt.go +++ b/pkg/client/resmgmt/resmgmt.go @@ -122,7 +122,6 @@ type Context struct { DiscoveryProvider fab.DiscoveryProvider ChannelProvider fab.ChannelProvider FabricProvider sdkApi.FabricProvider - Resource api.Resource } type fabContext struct { @@ -144,14 +143,17 @@ func WithDefaultTargetFilter(filter TargetFilter) ClientOption { // New returns a ResourceMgmtClient instance func New(ctx Context, opts ...ClientOption) (*Client, error) { + resource := resource.New(ctx) + resourceClient := &Client{ provider: ctx, identity: ctx, discoveryProvider: ctx.DiscoveryProvider, channelProvider: ctx.ChannelProvider, fabricProvider: ctx.FabricProvider, - resource: ctx.Resource, + resource: resource, } + for _, opt := range opts { err := opt(resourceClient) if err != nil { diff --git a/pkg/client/resmgmt/resmgmt_test.go b/pkg/client/resmgmt/resmgmt_test.go index 1769114d8f..83a9f9ce62 100644 --- a/pkg/client/resmgmt/resmgmt_test.go +++ b/pkg/client/resmgmt/resmgmt_test.go @@ -138,7 +138,6 @@ func TestNoSigningUserFailure(t *testing.T) { fabCtx := fcmocks.NewMockContext(user) config := getNetworkConfig(t) fabCtx.SetConfig(config) - resource := fcmocks.NewMockResource() discovery, err := setupTestDiscovery(nil, nil) if err != nil { @@ -153,7 +152,6 @@ func TestNoSigningUserFailure(t *testing.T) { ctx := Context{ ProviderContext: fabCtx, IdentityContext: fabCtx, - Resource: resource, ChannelProvider: chProvider, DiscoveryProvider: discovery, } @@ -1155,12 +1153,9 @@ func setupResMgmtClient(fabCtx context.Context, discErr error, t *testing.T, opt } chProvider.SetTransactor(&transactor) - resource := fcmocks.NewMockResource() - ctx := Context{ ProviderContext: fabCtx, IdentityContext: fabCtx, - Resource: resource, ChannelProvider: chProvider, DiscoveryProvider: discovery, FabricProvider: fabProvider, @@ -1170,6 +1165,11 @@ func setupResMgmtClient(fabCtx context.Context, discErr error, t *testing.T, opt if err != nil { t.Fatalf("Failed to create new client with options: %s %v", err, opts) } + + // Set mock resource + resource := fcmocks.NewMockResource() + resClient.resource = resource + return resClient } @@ -1266,7 +1266,6 @@ func TestSaveChannelFailure(t *testing.T) { ctx := Context{ ProviderContext: errCtx, IdentityContext: fabCtx, - Resource: resource, ChannelProvider: chProvider, DiscoveryProvider: discovery, } @@ -1275,6 +1274,8 @@ func TestSaveChannelFailure(t *testing.T) { t.Fatalf("Failed to create new channel management client: %s", err) } + cc.resource = resource + // Test create channel failure err = cc.SaveChannel(SaveChannelRequest{ChannelID: "mychannel", ChannelConfig: channelConfig}) if err == nil { diff --git a/pkg/fabsdk/client.go b/pkg/fabsdk/client.go index b9c967b5b1..313847d29c 100644 --- a/pkg/fabsdk/client.go +++ b/pkg/fabsdk/client.go @@ -158,10 +158,6 @@ func (c *ClientContext) ResourceMgmt(opts ...ClientOption) (*resmgmt.Client, err session := newSession(p.identity, p.providers.ChannelProvider()) fabProvider := p.providers.FabricProvider() - resource, err := fabProvider.CreateResourceClient(session) - if err != nil { - return nil, err - } discovery := p.providers.DiscoveryProvider() chProvider := p.providers.ChannelProvider() @@ -169,7 +165,6 @@ func (c *ClientContext) ResourceMgmt(opts ...ClientOption) (*resmgmt.Client, err ctx := resmgmt.Context{ ProviderContext: p.providers, IdentityContext: session, - Resource: resource, DiscoveryProvider: discovery, ChannelProvider: chProvider, FabricProvider: fabProvider, diff --git a/test/integration/utils.go b/test/integration/utils.go index 477d33c97b..ed9aafeb5b 100644 --- a/test/integration/utils.go +++ b/test/integration/utils.go @@ -14,7 +14,6 @@ import ( "github.com/hyperledger/fabric-sdk-go/pkg/context/api/core" "github.com/hyperledger/fabric-sdk-go/pkg/context/api/fab" "github.com/hyperledger/fabric-sdk-go/pkg/fab/peer" - "github.com/hyperledger/fabric-sdk-go/pkg/fab/resource/api" "github.com/hyperledger/fabric-sdk-go/pkg/fabsdk" "github.com/pkg/errors" ) @@ -58,19 +57,14 @@ func InitializeChannel(sdk *fabsdk.FabricSDK, orgID string, req resmgmt.SaveChan // FilterTargetsJoinedChannel filters targets to those that have joined the named channel. func FilterTargetsJoinedChannel(sdk *fabsdk.FabricSDK, orgID string, channelID string, targets []fab.ProposalProcessor) ([]fab.ProposalProcessor, error) { joinedTargets := []fab.ProposalProcessor{} - session, err := sdk.NewClient(fabsdk.WithUser("Admin"), fabsdk.WithOrg(orgID)).Session() + rc, err := sdk.NewClient(fabsdk.WithUser("Admin"), fabsdk.WithOrg(orgID)).ResourceMgmt() if err != nil { return nil, errors.WithMessage(err, "failed getting admin user session for org") } - sc, err := sdk.FabricProvider().CreateResourceClient(session) - if err != nil { - return nil, errors.WithMessage(err, "NewResourceClient failed") - } - for _, target := range targets { // Check if primary peer has joined channel - alreadyJoined, err := HasPeerJoinedChannel(sc, target, channelID) + alreadyJoined, err := HasPeerJoinedChannel(rc, target, channelID) if err != nil { return nil, errors.WithMessage(err, "failed while checking if primary peer has already joined channel") } @@ -137,7 +131,7 @@ func CreateProposalProcessors(config core.Config, orgs []string) ([]fab.Proposal // HasPeerJoinedChannel checks whether the peer has already joined the channel. // It returns true if it has, false otherwise, or an error -func HasPeerJoinedChannel(client api.Resource, peer fab.ProposalProcessor, channel string) (bool, error) { +func HasPeerJoinedChannel(client *resmgmt.Client, peer fab.ProposalProcessor, channel string) (bool, error) { foundChannel := false response, err := client.QueryChannels(peer) if err != nil {