Skip to content
This repository was archived by the owner on Apr 25, 2025. It is now read-only.

Commit abe9044

Browse files
committed
[FAB-8482] refactoring context and fabsdk package
- move providers from fabsdk packages to pkg/context/core and pkg/context/fab - context logic moved from pkg/fabsdk to pkg/context - stutters are removed from pkg/context and subpackages - no major changes to existing logic Change-Id: I80117a1cf1cf619266cbdec0b197ff2e804093a8 Signed-off-by: Sudesh Shetty <sudesh.shetty@securekey.com>
1 parent c1878f8 commit abe9044

File tree

100 files changed

+1170
-1025
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

100 files changed

+1170
-1025
lines changed

Makefile

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -323,11 +323,10 @@ dockerenv-latest-up: clean
323323

324324
.PHONY: mock-gen
325325
mock-gen:
326-
mockgen -build_flags '$(GO_LDFLAGS_ARG)' github.com/hyperledger/fabric-sdk-go/pkg/context/api IdentityManager | sed "s/github.com\/hyperledger\/fabric-sdk-go\/vendor\///g" | goimports > pkg/context/api/mocks/mockidmgr.gen.go
327-
mockgen -build_flags '$(GO_LDFLAGS_ARG)' github.com/hyperledger/fabric-sdk-go/pkg/context/api/core Config | sed "s/github.com\/hyperledger\/fabric-sdk-go\/vendor\///g" | goimports > pkg/context/api/core/mocks/mockconfig.gen.go
328-
mockgen -build_flags '$(GO_LDFLAGS_ARG)' github.com/hyperledger/fabric-sdk-go/pkg/context/api/fab ProposalProcessor | sed "s/github.com\/hyperledger\/fabric-sdk-go\/vendor\///g" | goimports > pkg/context/api/fab/mocks/mockcontextapi.gen.go
329-
mockgen -build_flags '$(GO_LDFLAGS_ARG)' github.com/hyperledger/fabric-sdk-go/pkg/fabsdk/api CoreProviders,SvcProviders,Providers,CoreProviderFactory,ServiceProviderFactory,SessionClientFactory | sed "s/github.com\/hyperledger\/fabric-sdk-go\/vendor\///g" | goimports > pkg/fabsdk/mocks/mockfabsdkapi.gen.go
330-
326+
mockgen -build_flags '$(GO_LDFLAGS_ARG)' github.com/hyperledger/fabric-sdk-go/pkg/context/api/core Config,Providers,IdentityManager | sed "s/github.com\/hyperledger\/fabric-sdk-go\/vendor\///g" | goimports > pkg/context/api/core/mocks/mockcoreapi.gen.go
327+
mockgen -build_flags '$(GO_LDFLAGS_ARG)' github.com/hyperledger/fabric-sdk-go/pkg/context/api/fab ProposalProcessor,Providers | sed "s/github.com\/hyperledger\/fabric-sdk-go\/vendor\///g" | goimports > pkg/context/api/fab/mocks/mockfabapi.gen.go
328+
mockgen -build_flags '$(GO_LDFLAGS_ARG)' github.com/hyperledger/fabric-sdk-go/pkg/context Providers | sed "s/github.com\/hyperledger\/fabric-sdk-go\/vendor\///g" | goimports > pkg/context/mocks/mockcontext.gen.go
329+
mockgen -build_flags '$(GO_LDFLAGS_ARG)' github.com/hyperledger/fabric-sdk-go/pkg/fabsdk/api CoreProviderFactory,ServiceProviderFactory,SessionClientFactory | sed "s/github.com\/hyperledger\/fabric-sdk-go\/vendor\///g" | goimports > pkg/fabsdk/mocks/mockfabsdkapi.gen.go
331330

332331
# TODO - Add cryptogen
333332
.PHONY: channel-config-gen

internal/github.com/hyperledger/fabric-ca/lib/clientconfig.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ type ClientConfig struct {
3333
TLS tls.ClientTLSConfig
3434
Enrollment api.EnrollmentRequest
3535
CSR api.CSRInfo
36-
ID api.RegistrationRequest
36+
ID core.RegistrationRequest
3737
Revoke api.RevocationRequest
3838
CAInfo api.GetCAInfoRequest
3939
CAName string `help:"Name of CA"`

pkg/client/channel/chclient.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
"github.com/hyperledger/fabric-sdk-go/pkg/client/channel/invoke"
1515
"github.com/hyperledger/fabric-sdk-go/pkg/client/common/discovery"
1616
"github.com/hyperledger/fabric-sdk-go/pkg/client/common/discovery/greylist"
17-
"github.com/hyperledger/fabric-sdk-go/pkg/context"
1817
"github.com/hyperledger/fabric-sdk-go/pkg/context/api/core"
1918
"github.com/hyperledger/fabric-sdk-go/pkg/context/api/fab"
2019
"github.com/hyperledger/fabric-sdk-go/pkg/errors/multi"
@@ -36,7 +35,7 @@ const (
3635
// An application that requires interaction with multiple channels should create a separate
3736
// instance of the channel client for each channel. Channel client supports non-admin functions only.
3837
type Client struct {
39-
context context.ProviderContext
38+
context core.Providers
4039
discovery fab.DiscoveryService
4140
selection fab.SelectionService
4241
membership fab.ChannelMembership
@@ -47,7 +46,7 @@ type Client struct {
4746

4847
// Context holds the providers and services needed to create a Client.
4948
type Context struct {
50-
context.ProviderContext
49+
core.Providers
5150
DiscoveryService fab.DiscoveryService
5251
SelectionService fab.SelectionService
5352
ChannelService fab.ChannelService

pkg/client/channel/chclient_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ func TestDiscoveryGreylist(t *testing.T) {
467467
selectionService.SelectAll = true
468468

469469
ctx := Context{
470-
ProviderContext: fabCtx,
470+
Providers: fabCtx,
471471
DiscoveryService: discoveryService,
472472
SelectionService: selectionService,
473473
ChannelService: testChannelSvc,
@@ -505,7 +505,7 @@ func TestDiscoveryGreylist(t *testing.T) {
505505

506506
}
507507

508-
func setupTestChannelService(ctx context.Context, orderers []fab.Orderer) (fab.ChannelService, error) {
508+
func setupTestChannelService(ctx context.Client, orderers []fab.Orderer) (fab.ChannelService, error) {
509509
const channelName = "testChannel"
510510
chProvider, err := fcmocks.NewMockChannelProvider(ctx)
511511
if err != nil {
@@ -527,7 +527,7 @@ func setupTestChannelService(ctx context.Context, orderers []fab.Orderer) (fab.C
527527
return chService, nil
528528
}
529529

530-
func setupTestContext() context.Context {
530+
func setupTestContext() context.Client {
531531
user := fcmocks.NewMockUser("test")
532532
ctx := fcmocks.NewMockContext(user)
533533
return ctx
@@ -576,7 +576,7 @@ func setupChannelClientWithError(discErr error, selectionErr error, peers []fab.
576576
}
577577

578578
ctx := Context{
579-
ProviderContext: fabCtx,
579+
Providers: fabCtx,
580580
DiscoveryService: discoveryService,
581581
SelectionService: selectionService,
582582
ChannelService: testChannelSvc,
@@ -603,7 +603,7 @@ func setupChannelClientWithNodes(peers []fab.Peer,
603603
assert.Nil(t, err, "Failed to setup discovery service")
604604

605605
ctx := Context{
606-
ProviderContext: fabCtx,
606+
Providers: fabCtx,
607607
DiscoveryService: discoveryService,
608608
SelectionService: selectionService,
609609
ChannelService: testChannelSvc,

pkg/client/channel/invoke/txnhandler_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ func setupChannelClientContext(discErr error, selectionErr error, peers []fab.Pe
246246

247247
}
248248

249-
func setupTestContext() context.Context {
249+
func setupTestContext() context.Client {
250250
user := fcmocks.NewMockUser("test")
251251
ctx := fcmocks.NewMockContext(user)
252252
return ctx

pkg/client/common/mocks/mocktransactor.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515

1616
// MockTransactor provides an implementation of Transactor that exposes all its context.
1717
type MockTransactor struct {
18-
Ctx context.Context
18+
Ctx context.Client
1919
ChannelID string
2020
Orderers []fab.Orderer
2121
}

pkg/client/ledger/ledger.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313

1414
"github.com/golang/protobuf/proto"
1515
"github.com/hyperledger/fabric-sdk-go/pkg/context"
16+
"github.com/hyperledger/fabric-sdk-go/pkg/context/api/core"
1617
"github.com/hyperledger/fabric-sdk-go/pkg/context/api/fab"
1718
"github.com/hyperledger/fabric-sdk-go/pkg/fab/channel"
1819
"github.com/hyperledger/fabric-sdk-go/pkg/fab/chconfig"
@@ -35,8 +36,8 @@ const (
3536
// An application that requires interaction with multiple channels should create a separate
3637
// instance of the ledger client for each channel. Ledger client supports specific queries only.
3738
type Client struct {
38-
provider context.ProviderContext
39-
identity context.IdentityContext
39+
provider core.Providers
40+
identity context.Identity
4041
discovery fab.DiscoveryService
4142
ledger *channel.Ledger
4243
filter TargetFilter
@@ -45,15 +46,15 @@ type Client struct {
4546

4647
// Context holds the providers and services needed to create a Client.
4748
type Context struct {
48-
context.ProviderContext
49-
context.IdentityContext
49+
core.Providers
50+
context.Identity
5051
DiscoveryService fab.DiscoveryService
5152
ChannelService fab.ChannelService
5253
}
5354

5455
type fabContext struct {
55-
context.ProviderContext
56-
context.IdentityContext
56+
core.Providers
57+
context.Identity
5758
}
5859

5960
// MSPFilter is default filter
@@ -284,8 +285,8 @@ func (c *Client) QueryConfig(options ...RequestOption) (fab.ChannelCfg, error) {
284285
}
285286

286287
ctx := fabContext{
287-
ProviderContext: c.provider,
288-
IdentityContext: c.identity,
288+
Providers: c.provider,
289+
Identity: c.identity,
289290
}
290291

291292
channelConfig, err := chconfig.New(ctx, c.chName, chconfig.WithPeers(targets), chconfig.WithMinResponses(opts.MinTargets))

pkg/client/resmgmt/resmgmt.go

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
"math/rand"
1313
"time"
1414

15-
config "github.com/hyperledger/fabric-sdk-go/pkg/context/api/core"
15+
"github.com/hyperledger/fabric-sdk-go/pkg/context/api/core"
1616
"github.com/hyperledger/fabric-sdk-go/pkg/context/api/fab"
1717
"github.com/hyperledger/fabric-sdk-go/pkg/fab/channel"
1818
"github.com/hyperledger/fabric-sdk-go/third_party/github.com/hyperledger/fabric/protos/common"
@@ -24,7 +24,6 @@ import (
2424
"github.com/hyperledger/fabric-sdk-go/pkg/fab/resource"
2525
"github.com/hyperledger/fabric-sdk-go/pkg/fab/resource/api"
2626
"github.com/hyperledger/fabric-sdk-go/pkg/fab/txn"
27-
sdkApi "github.com/hyperledger/fabric-sdk-go/pkg/fabsdk/api"
2827
"github.com/hyperledger/fabric-sdk-go/pkg/logging"
2928
pb "github.com/hyperledger/fabric-sdk-go/third_party/github.com/hyperledger/fabric/protos/peer"
3029
"github.com/pkg/errors"
@@ -86,7 +85,7 @@ type SaveChannelRequest struct {
8685
// Path to channel configuration file
8786
ChannelConfig string
8887
// User that signs channel configuration
89-
SigningIdentity context.IdentityContext
88+
SigningIdentity context.Identity
9089
}
9190

9291
//RequestOption func for each Opts argument
@@ -96,11 +95,11 @@ var logger = logging.NewLogger("fabric_sdk_go")
9695

9796
// Client enables managing resources in Fabric network.
9897
type Client struct {
99-
provider context.ProviderContext
100-
identity context.IdentityContext
98+
provider core.Providers
99+
identity context.Identity
101100
discoveryProvider fab.DiscoveryProvider // used to get per channel discovery service(s)
102101
channelProvider fab.ChannelProvider
103-
fabricProvider sdkApi.FabricProvider
102+
fabricProvider fab.InfraProvider
104103
discovery fab.DiscoveryService // global discovery service (detects all peers on the network)
105104
resource api.Resource
106105
filter TargetFilter
@@ -118,16 +117,16 @@ func (f *MSPFilter) Accept(peer fab.Peer) bool {
118117

119118
// Context holds the providers and services needed to create a ChannelClient.
120119
type Context struct {
121-
context.ProviderContext
122-
context.IdentityContext
120+
core.Providers
121+
context.Identity
123122
DiscoveryProvider fab.DiscoveryProvider
124123
ChannelProvider fab.ChannelProvider
125-
FabricProvider sdkApi.FabricProvider
124+
FabricProvider fab.InfraProvider
126125
}
127126

128127
type fabContext struct {
129-
context.ProviderContext
130-
context.IdentityContext
128+
core.Providers
129+
context.Identity
131130
}
132131

133132
// ClientOption describes a functional parameter for the New constructor
@@ -425,8 +424,8 @@ func (rc *Client) QueryInstantiatedChaincodes(channelID string, options ...Reque
425424
}
426425

427426
ctx := &fabContext{
428-
ProviderContext: rc.provider,
429-
IdentityContext: rc.identity,
427+
Providers: rc.provider,
428+
Identity: rc.identity,
430429
}
431430

432431
var target fab.ProposalProcessor
@@ -517,8 +516,8 @@ func (rc *Client) sendCCProposal(ccProposalType chaincodeProposalType, channelID
517516
// create a transaction proposal for chaincode deployment
518517
deployProposal := chaincodeDeployRequest(req)
519518
deployCtx := fabContext{
520-
ProviderContext: rc.provider,
521-
IdentityContext: rc.identity,
519+
Providers: rc.provider,
520+
Identity: rc.identity,
522521
}
523522

524523
txid, err := txn.NewHeader(&deployCtx, channelID)
@@ -559,7 +558,7 @@ func (rc *Client) sendCCProposal(ccProposalType chaincodeProposalType, channelID
559558
return errors.WithMessage(err, "CreateAndSendTransaction failed")
560559
}
561560

562-
timeout := rc.provider.Config().TimeoutOrDefault(config.Execute)
561+
timeout := rc.provider.Config().TimeoutOrDefault(core.Execute)
563562
if opts.Timeout != 0 {
564563
timeout = opts.Timeout
565564
}
@@ -663,8 +662,8 @@ func (rc *Client) SaveChannel(req SaveChannelRequest, options ...RequestOption)
663662
}
664663

665664
sigCtx := Context{
666-
IdentityContext: signer,
667-
ProviderContext: rc.provider,
665+
Identity: signer,
666+
Providers: rc.provider,
668667
}
669668
configSignature, err := resource.CreateConfigSignature(&sigCtx, chConfig)
670669
if err != nil {
@@ -675,7 +674,7 @@ func (rc *Client) SaveChannel(req SaveChannelRequest, options ...RequestOption)
675674
configSignatures = append(configSignatures, configSignature)
676675

677676
// Figure out orderer configuration
678-
var ordererCfg *config.OrdererConfig
677+
var ordererCfg *core.OrdererConfig
679678
if opts.OrdererID != "" {
680679
ordererCfg, err = rc.provider.Config().OrdererConfig(opts.OrdererID)
681680
} else {

pkg/client/resmgmt/resmgmt_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,8 @@ func TestNoSigningUserFailure(t *testing.T) {
129129
}
130130

131131
ctx := Context{
132-
ProviderContext: fabCtx,
133-
IdentityContext: fabCtx,
132+
Providers: fabCtx,
133+
Identity: fabCtx,
134134
ChannelProvider: chProvider,
135135
DiscoveryProvider: discovery,
136136
}
@@ -1103,7 +1103,7 @@ func setupDefaultResMgmtClient(t *testing.T) *Client {
11031103
return setupResMgmtClient(ctx, nil, t, getDefaultTargetFilterOption())
11041104
}
11051105

1106-
func setupResMgmtClient(fabCtx context.Context, discErr error, t *testing.T, opts ...ClientOption) *Client {
1106+
func setupResMgmtClient(fabCtx context.Client, discErr error, t *testing.T, opts ...ClientOption) *Client {
11071107

11081108
fabProvider := fabpvdr.New(fabCtx)
11091109

@@ -1124,8 +1124,8 @@ func setupResMgmtClient(fabCtx context.Context, discErr error, t *testing.T, opt
11241124
chProvider.SetTransactor(&transactor)
11251125

11261126
ctx := Context{
1127-
ProviderContext: fabCtx,
1128-
IdentityContext: fabCtx,
1127+
Providers: fabCtx,
1128+
Identity: fabCtx,
11291129
ChannelProvider: chProvider,
11301130
DiscoveryProvider: discovery,
11311131
FabricProvider: fabProvider,
@@ -1234,8 +1234,8 @@ func TestSaveChannelFailure(t *testing.T) {
12341234
t.Fatalf("Failed to setup channel provider: %s", err)
12351235
}
12361236
ctx := Context{
1237-
ProviderContext: errCtx,
1238-
IdentityContext: fabCtx,
1237+
Providers: errCtx,
1238+
Identity: fabCtx,
12391239
ChannelProvider: chProvider,
12401240
DiscoveryProvider: discovery,
12411241
}
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@ Copyright SecureKey Technologies Inc. All Rights Reserved.
44
SPDX-License-Identifier: Apache-2.0
55
*/
66

7-
package api
7+
package core
88

99
import (
1010
"errors"
11-
12-
"github.com/hyperledger/fabric-sdk-go/pkg/context/api/core"
1311
)
1412

1513
var (
@@ -22,7 +20,7 @@ var (
2220
type SigningIdentity struct {
2321
MspID string
2422
EnrollmentCert []byte
25-
PrivateKey core.Key
23+
PrivateKey Key
2624
}
2725

2826
// IdentityManager provides management of identities in a Fabric network

0 commit comments

Comments
 (0)