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

Commit 4c04c1c

Browse files
committed
[FAB-6406] Convert to errors package
This change adds an errors package and changes error generation in the SDK to use this package. Change-Id: Ibb05609278cf80ad02f7409ae637c098b834a37b Signed-off-by: Troy Ronda <troy@troyronda.com>
1 parent 3eae44a commit 4c04c1c

Some content is hidden

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

69 files changed

+880
-698
lines changed

Makefile

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,11 @@ DOCKER_CMD ?= docker
2727
DOCKER_COMPOSE_CMD ?= docker-compose
2828

2929
# Build flags (overridable)
30-
GO_LDFLAGS ?= -ldflags=-s
31-
GO_TESTFLAGS ?=
32-
FABRIC_SDK_EXPERIMENTAL ?= true
33-
FABRIC_SDK_EXTRA_GO_TAGS ?=
30+
GO_LDFLAGS ?= -ldflags=-s
31+
GO_TESTFLAGS ?=
32+
FABRIC_SDK_EXPERIMENTAL ?= true
33+
FABRIC_SDK_EXTRA_GO_TAGS ?=
34+
FABRIC_SDK_POPULATE_VENDOR ?= true
3435

3536
# Fabric tool versions (overridable)
3637
FABRIC_TOOLS_VERSION ?= 1.0.1
@@ -138,8 +139,10 @@ thirdparty-pin:
138139
populate: populate-vendor
139140

140141
populate-vendor:
142+
ifeq ($(FABRIC_SDK_POPULATE_VENDOR),true)
141143
@echo "Populating vendor ..."
142144
@$(GO_DEP_CMD) ensure -vendor-only
145+
endif
143146

144147
populate-clean:
145148
rm -Rf vendor

def/fabapi/context/defprovider/org.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ SPDX-License-Identifier: Apache-2.0
77
package defprovider
88

99
import (
10-
"fmt"
11-
1210
"github.com/hyperledger/fabric-sdk-go/api/apiconfig"
1311
fabca "github.com/hyperledger/fabric-sdk-go/api/apifabca"
1412
fab "github.com/hyperledger/fabric-sdk-go/api/apifabclient"
13+
"github.com/hyperledger/fabric-sdk-go/pkg/errors"
1514
fabricCAClient "github.com/hyperledger/fabric-sdk-go/pkg/fabric-ca-client"
1615
credentialMgr "github.com/hyperledger/fabric-sdk-go/pkg/fabric-client/credentialmgr"
1716
"github.com/hyperledger/fabric-sdk-go/third_party/github.com/hyperledger/fabric/bccsp"
@@ -30,7 +29,7 @@ func NewOrgClientFactory() *OrgClientFactory {
3029
func (f *OrgClientFactory) NewMSPClient(orgName string, config apiconfig.Config) (fabca.FabricCAClient, error) {
3130
mspClient, err := fabricCAClient.NewFabricCAClient(config, orgName)
3231
if err != nil {
33-
return nil, fmt.Errorf("NewFabricCAClient returned error: %v", err)
32+
return nil, errors.WithMessage(err, "NewFabricCAClient failed")
3433
}
3534

3635
return mspClient, nil
@@ -41,7 +40,7 @@ func (f *OrgClientFactory) NewCredentialManager(orgName string, config apiconfig
4140

4241
credentialMgr, err := credentialMgr.NewCredentialManager(orgName, config, cryptoProvider)
4342
if err != nil {
44-
return nil, fmt.Errorf("NewCredentialManager returned error: %v", err)
43+
return nil, errors.WithMessage(err, "NewCredentialManager failed")
4544
}
4645

4746
return credentialMgr, nil

def/fabapi/context/defprovider/sdk.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,13 @@ SPDX-License-Identifier: Apache-2.0
77
package defprovider
88

99
import (
10-
"fmt"
11-
1210
"github.com/hyperledger/fabric-sdk-go/api/apiconfig"
1311
fab "github.com/hyperledger/fabric-sdk-go/api/apifabclient"
12+
1413
"github.com/hyperledger/fabric-sdk-go/def/fabapi/opt"
1514
configImpl "github.com/hyperledger/fabric-sdk-go/pkg/config"
15+
"github.com/hyperledger/fabric-sdk-go/pkg/errors"
1616
kvs "github.com/hyperledger/fabric-sdk-go/pkg/fabric-client/keyvaluestore"
17-
1817
signingMgr "github.com/hyperledger/fabric-sdk-go/pkg/fabric-client/signingmgr"
1918
discovery "github.com/hyperledger/fabric-sdk-go/pkg/fabric-txn/discovery"
2019
"github.com/hyperledger/fabric-sdk-go/third_party/github.com/hyperledger/fabric/bccsp"
@@ -49,7 +48,7 @@ func (f *DefaultProviderFactory) NewStateStoreProvider(o opt.StateStoreOpts, con
4948

5049
stateStore, err := kvs.CreateNewFileKeyValueStore(stateStorePath)
5150
if err != nil {
52-
return nil, fmt.Errorf("CreateNewFileKeyValueStore returned error[%s]", err)
51+
return nil, errors.WithMessage(err, "CreateNewFileKeyValueStore failed")
5352
}
5453
return stateStore, nil
5554
}

def/fabapi/context/defprovider/session.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ SPDX-License-Identifier: Apache-2.0
77
package defprovider
88

99
import (
10-
"fmt"
11-
1210
"github.com/hyperledger/fabric-sdk-go/api/apiconfig"
1311
fab "github.com/hyperledger/fabric-sdk-go/api/apifabclient"
1412
"github.com/hyperledger/fabric-sdk-go/api/apitxn"
13+
1514
"github.com/hyperledger/fabric-sdk-go/def/fabapi/context"
15+
"github.com/hyperledger/fabric-sdk-go/pkg/errors"
1616
clientImpl "github.com/hyperledger/fabric-sdk-go/pkg/fabric-client"
1717
"github.com/hyperledger/fabric-sdk-go/pkg/fabric-client/events"
1818
"github.com/hyperledger/fabric-sdk-go/pkg/fabric-client/orderer"
@@ -51,17 +51,17 @@ func (f *SessionClientFactory) NewChannelClient(sdk context.SDK, session context
5151

5252
channel, err := getChannel(client, channelName)
5353
if err != nil {
54-
return nil, fmt.Errorf("Unable to create channel:%v", err)
54+
return nil, errors.WithMessage(err, "create channel failed")
5555
}
5656

5757
discovery, err := sdk.DiscoveryProvider().NewDiscoveryService(channel)
5858
if err != nil {
59-
return nil, fmt.Errorf("Unable to create discovery service:%v", err)
59+
return nil, errors.WithMessage(err, "create discovery service failed")
6060
}
6161

6262
eventHub, err := getEventHub(client, channelName, session)
6363
if err != nil {
64-
return nil, err
64+
return nil, errors.WithMessage(err, "getEventHub failed")
6565
}
6666

6767
return chImpl.NewChannelClient(client, channel, discovery, eventHub)
@@ -72,18 +72,18 @@ func getChannel(client fab.FabricClient, channelID string) (fab.Channel, error)
7272

7373
channel, err := client.NewChannel(channelID)
7474
if err != nil {
75-
return nil, fmt.Errorf("NewChannel return error: %v", err)
75+
return nil, errors.WithMessage(err, "NewChannel failed")
7676
}
7777

7878
chConfig, err := client.Config().ChannelConfig(channel.Name())
7979
if err != nil {
80-
return nil, fmt.Errorf("Error reading channel config: %v", err)
80+
return nil, errors.WithMessage(err, "reading channel config failed")
8181
}
8282

8383
for _, name := range chConfig.Orderers {
8484
ordererConfig, err := client.Config().OrdererConfig(name)
8585
if err != nil {
86-
return nil, fmt.Errorf("Unable to retrieve configuration for orderer(%s): %s", name, err)
86+
return nil, errors.WithMessage(err, "retrieve configuration for orderer failed")
8787
}
8888

8989
serverHostOverride := ""
@@ -92,11 +92,11 @@ func getChannel(client fab.FabricClient, channelID string) (fab.Channel, error)
9292
}
9393
orderer, err := orderer.NewOrderer(ordererConfig.URL, ordererConfig.TLSCACerts.Path, serverHostOverride, client.Config())
9494
if err != nil {
95-
return nil, fmt.Errorf("NewOrderer return error: %v", err)
95+
return nil, errors.WithMessage(err, "NewOrderer failed")
9696
}
9797
err = channel.AddOrderer(orderer)
9898
if err != nil {
99-
return nil, fmt.Errorf("Error adding orderer: %v", err)
99+
return nil, errors.WithMessage(err, "adding orderer failed")
100100
}
101101
}
102102

@@ -107,7 +107,7 @@ func getEventHub(client fab.FabricClient, channelID string, session context.Sess
107107

108108
peerConfig, err := client.Config().ChannelPeers(channelID)
109109
if err != nil {
110-
return nil, fmt.Errorf("Unable to read configuration for channel(%s) peers: %s", channelID, err)
110+
return nil, errors.WithMessage(err, "read configuration for channel peers failed")
111111
}
112112

113113
serverHostOverride := ""
@@ -126,7 +126,7 @@ func getEventHub(client fab.FabricClient, channelID string, session context.Sess
126126
}
127127

128128
if eventSource == nil {
129-
return nil, fmt.Errorf("Unable to find peer event source for channel: %s", channelID)
129+
return nil, errors.New("unable to find peer event source for channel")
130130
}
131131

132132
// Event source found create event hub

def/fabapi/fabapi.go

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,15 @@ SPDX-License-Identifier: Apache-2.0
88
package fabapi
99

1010
import (
11-
"fmt"
12-
13-
"github.com/hyperledger/fabric-sdk-go/third_party/github.com/hyperledger/fabric/bccsp"
14-
1511
"github.com/hyperledger/fabric-sdk-go/api/apiconfig"
1612
"github.com/hyperledger/fabric-sdk-go/api/apifabclient"
1713
"github.com/hyperledger/fabric-sdk-go/api/apitxn"
14+
1815
"github.com/hyperledger/fabric-sdk-go/def/fabapi/context"
1916
"github.com/hyperledger/fabric-sdk-go/def/fabapi/context/defprovider"
2017
"github.com/hyperledger/fabric-sdk-go/def/fabapi/opt"
18+
"github.com/hyperledger/fabric-sdk-go/pkg/errors"
19+
"github.com/hyperledger/fabric-sdk-go/third_party/github.com/hyperledger/fabric/bccsp"
2120
)
2221

2322
// Options encapsulates configuration for the SDK
@@ -81,35 +80,35 @@ func NewSDK(options Options) (*FabricSDK, error) {
8180
// Initialize config provider
8281
config, err := sdk.ProviderFactory.NewConfigProvider(sdk.ConfigOpts, sdkOpts)
8382
if err != nil {
84-
return nil, fmt.Errorf("Failed to initialize config [%s]", err)
83+
return nil, errors.WithMessage(err, "failed to initialize config")
8584
}
8685
sdk.configProvider = config
8786

8887
// Initialize crypto provider
8988
cryptosuite, err := sdk.ProviderFactory.NewCryptoSuiteProvider(sdk.configProvider.CSPConfig())
9089
if err != nil {
91-
return nil, fmt.Errorf("Failed to initialize crypto suite [%s]", err)
90+
return nil, errors.WithMessage(err, "failed to initialize crypto suite")
9291
}
9392
sdk.cryptoSuite = cryptosuite
9493

9594
// Initialize state store
9695
store, err := sdk.ProviderFactory.NewStateStoreProvider(sdk.StateStoreOpts, sdk.configProvider)
9796
if err != nil {
98-
return nil, fmt.Errorf("Failed to initialize state store [%s]", err)
97+
return nil, errors.WithMessage(err, "failed to initialize state store")
9998
}
10099
sdk.stateStore = store
101100

102101
// Initialize discovery provider
103102
discoveryProvider, err := sdk.ProviderFactory.NewDiscoveryProvider(sdk.configProvider)
104103
if err != nil {
105-
return nil, fmt.Errorf("Failed to initialize discovery provider [%s]", err)
104+
return nil, errors.WithMessage(err, "failed to initialize discovery provider")
106105
}
107106
sdk.discoveryProvider = discoveryProvider
108107

109108
// Initialize Signing Manager
110109
signingMgr, err := sdk.ProviderFactory.NewSigningManager(sdk.CryptoSuiteProvider(), sdk.configProvider)
111110
if err != nil {
112-
return nil, fmt.Errorf("Failed to initialize signing manager [%s]", err)
111+
return nil, errors.WithMessage(err, "failed to initialize signing manager")
113112
}
114113
sdk.signingManager = signingMgr
115114

@@ -171,11 +170,11 @@ func (sdk *FabricSDK) NewChannelClient(channelName string, userName string) (api
171170
// Read default org name from configuration
172171
client, err := sdk.configProvider.Client()
173172
if err != nil {
174-
return nil, fmt.Errorf("Unable to retrieve client from network config: %s", err)
173+
return nil, errors.WithMessage(err, "unable to retrieve client from network config")
175174
}
176175

177176
if client.Organization == "" {
178-
return nil, fmt.Errorf("Must provide default organisation name in configuration")
177+
return nil, errors.New("must provide default organisation name in configuration")
179178
}
180179

181180
opt := &ChannelClientOpts{OrgName: client.Organization, ConfigProvider: sdk.configProvider}
@@ -187,12 +186,12 @@ func (sdk *FabricSDK) NewChannelClient(channelName string, userName string) (api
187186
func (sdk *FabricSDK) NewChannelClientWithOpts(channelName string, userName string, opt *ChannelClientOpts) (apitxn.ChannelClient, error) {
188187

189188
if opt == nil || opt.OrgName == "" {
190-
return nil, fmt.Errorf("Organization name must be provided")
189+
return nil, errors.New("organization name must be provided")
191190
}
192191

193192
session, err := sdk.NewPreEnrolledUserSession(opt.OrgName, userName)
194193
if err != nil {
195-
return nil, fmt.Errorf("Error getting pre-enrolled user session: %v", err)
194+
return nil, errors.WithMessage(err, "failed to get pre-enrolled user session")
196195
}
197196

198197
configProvider := sdk.ConfigProvider()
@@ -202,7 +201,7 @@ func (sdk *FabricSDK) NewChannelClientWithOpts(channelName string, userName stri
202201

203202
client, err := sdk.SessionFactory.NewChannelClient(sdk, session, configProvider, channelName)
204203
if err != nil {
205-
return nil, fmt.Errorf("NewChannelClient returned error: %v", err)
204+
return nil, errors.WithMessage(err, "failed to created new channel client")
206205
}
207206

208207
return client, nil
@@ -213,17 +212,17 @@ func (sdk *FabricSDK) NewPreEnrolledUser(orgID string, userName string) (apifabc
213212

214213
credentialMgr, err := sdk.ContextFactory.NewCredentialManager(orgID, sdk.ConfigProvider(), sdk.CryptoSuiteProvider())
215214
if err != nil {
216-
return nil, fmt.Errorf("Error getting credential manager: %s ", err)
215+
return nil, errors.WithMessage(err, "failed to get credential manager")
217216
}
218217

219218
signingIdentity, err := credentialMgr.GetSigningIdentity(userName)
220219
if err != nil {
221-
return nil, fmt.Errorf("Error getting signing identity: %s ", err)
220+
return nil, errors.WithMessage(err, "failed to get signing identity")
222221
}
223222

224223
user, err := NewPreEnrolledUser(sdk.ConfigProvider(), userName, signingIdentity)
225224
if err != nil {
226-
return nil, fmt.Errorf("NewUser returned error: %v", err)
225+
return nil, errors.WithMessage(err, "NewPreEnrolledUser returned error")
227226
}
228227

229228
return user, nil
@@ -234,17 +233,17 @@ func (sdk *FabricSDK) NewPreEnrolledUserSession(orgID string, userName string) (
234233

235234
context, err := sdk.NewContext(orgID)
236235
if err != nil {
237-
return nil, fmt.Errorf("Error getting a context for org: %s", err)
236+
return nil, errors.WithMessage(err, "failed to get context for org")
238237
}
239238

240239
user, err := sdk.NewPreEnrolledUser(orgID, userName)
241240
if err != nil {
242-
return nil, fmt.Errorf("Error getting pre-enrolled user: %v", err)
241+
return nil, errors.WithMessage(err, "failed to get pre-enrolled user")
243242
}
244243

245244
session, err := sdk.NewSession(context, user)
246245
if err != nil {
247-
return nil, fmt.Errorf("NewSession returned error: %v", err)
246+
return nil, errors.WithMessage(err, "NewSession returned error")
248247
}
249248

250249
return session, nil

0 commit comments

Comments
 (0)