Skip to content

Commit 0a25d07

Browse files
committed
[FAB-5889] Update peer CLI code to new errors pkg
This CR updates the peer CLI code that used the error handling framework located at fabric/common/errors to use the newly vendored github.com/pkg/errors package. It also updates fmt.Errorf() calls in the package. Change-Id: I1c4668fd9f8d58076761f7f20d0561a9bcd3ef1b Signed-off-by: Will Lahti <wtlahti@us.ibm.com>
1 parent 833b24a commit 0a25d07

File tree

4 files changed

+31
-32
lines changed

4 files changed

+31
-32
lines changed

peer/channel/join_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,5 +156,5 @@ func TestJoinNilCF(t *testing.T) {
156156

157157
err = cmd.Execute()
158158
assert.Error(t, err)
159-
assert.Contains(t, err.Error(), "Error trying to connect to local peer")
159+
assert.Contains(t, err.Error(), "error trying to connect to local peer")
160160
}

peer/clilogging/common.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ limitations under the License.
1717
package clilogging
1818

1919
import (
20-
"github.com/hyperledger/fabric/common/errors"
2120
"github.com/hyperledger/fabric/peer/common"
2221
pb "github.com/hyperledger/fabric/protos/peer"
2322

23+
"github.com/pkg/errors"
2424
"github.com/spf13/cobra"
2525
)
2626

@@ -48,21 +48,21 @@ func checkLoggingCmdParams(cmd *cobra.Command, args []string) error {
4848
var err error
4949
if cmd.Name() == "revertlevels" {
5050
if len(args) > 0 {
51-
err = errors.ErrorWithCallstack("LOG", "400", "More parameters than necessary were provided. Expected 0, received %d.", len(args))
51+
err = errors.Errorf("more parameters than necessary were provided. Expected 0, received %d", len(args))
5252
return err
5353
}
5454
} else {
5555
// check that at least one parameter is passed in
5656
if len(args) == 0 {
57-
err = errors.ErrorWithCallstack("LOG", "400", "No parameters provided.")
57+
err = errors.New("no parameters provided")
5858
return err
5959
}
6060
}
6161

6262
if cmd.Name() == "setlevel" {
6363
// check that log level parameter is provided
6464
if len(args) == 1 {
65-
err = errors.ErrorWithCallstack("LOG", "400", "No log level provided.")
65+
err = errors.New("no log level provided")
6666
} else {
6767
// check that log level is valid. if not, err is set
6868
err = common.CheckLogLevel(args[1])

peer/common/common.go

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import (
2222

2323
"github.com/hyperledger/fabric/bccsp/factory"
2424
"github.com/hyperledger/fabric/common/channelconfig"
25-
"github.com/hyperledger/fabric/common/errors"
2625
"github.com/hyperledger/fabric/common/flogging"
2726
"github.com/hyperledger/fabric/common/viperutil"
2827
"github.com/hyperledger/fabric/core/config"
@@ -34,6 +33,7 @@ import (
3433
pb "github.com/hyperledger/fabric/protos/peer"
3534
putils "github.com/hyperledger/fabric/protos/utils"
3635
"github.com/op/go-logging"
36+
"github.com/pkg/errors"
3737
"github.com/spf13/viper"
3838
"golang.org/x/net/context"
3939
)
@@ -77,7 +77,7 @@ func InitConfig(cmdRoot string) error {
7777

7878
err := viper.ReadInConfig() // Find and read the config file
7979
if err != nil { // Handle errors reading the config file
80-
return fmt.Errorf("Error when reading %s config file: %s", cmdRoot, err)
80+
return errors.WithMessage(err, fmt.Sprintf("error when reading %s config file", cmdRoot))
8181
}
8282

8383
return nil
@@ -90,19 +90,19 @@ func InitCrypto(mspMgrConfigDir string, localMSPID string) error {
9090
_, err = os.Stat(mspMgrConfigDir)
9191
if os.IsNotExist(err) {
9292
// No need to try to load MSP from folder which is not available
93-
return fmt.Errorf("cannot init crypto, missing %s folder", mspMgrConfigDir)
93+
return errors.Errorf("cannot init crypto, missing %s folder", mspMgrConfigDir)
9494
}
9595

9696
// Init the BCCSP
9797
var bccspConfig *factory.FactoryOpts
9898
err = viperutil.EnhancedExactUnmarshalKey("peer.BCCSP", &bccspConfig)
9999
if err != nil {
100-
return fmt.Errorf("could not parse YAML config [%s]", err)
100+
return errors.WithMessage(err, "could not parse YAML config")
101101
}
102102

103103
err = mspmgmt.LoadLocalMsp(mspMgrConfigDir, bccspConfig, localMSPID)
104104
if err != nil {
105-
return fmt.Errorf("error when setting up MSP from directory %s: err %s", mspMgrConfigDir, err)
105+
return errors.WithMessage(err, fmt.Sprintf("error when setting up MSP from directory %s", mspMgrConfigDir))
106106
}
107107

108108
return nil
@@ -112,8 +112,7 @@ func InitCrypto(mspMgrConfigDir string, localMSPID string) error {
112112
func GetEndorserClient() (pb.EndorserClient, error) {
113113
clientConn, err := peer.NewPeerClientConnection()
114114
if err != nil {
115-
err = errors.ErrorWithCallstack("PER", "404", "Error trying to connect to local peer").WrapError(err)
116-
return nil, err
115+
return nil, errors.WithMessage(err, "error trying to connect to local peer")
117116
}
118117
endorserClient := pb.NewEndorserClient(clientConn)
119118
return endorserClient, nil
@@ -123,8 +122,7 @@ func GetEndorserClient() (pb.EndorserClient, error) {
123122
func GetAdminClient() (pb.AdminClient, error) {
124123
clientConn, err := peer.NewPeerClientConnection()
125124
if err != nil {
126-
err = errors.ErrorWithCallstack("PER", "404", "Error trying to connect to local peer").WrapError(err)
127-
return nil, err
125+
return nil, errors.WithMessage(err, "error trying to connect to local peer")
128126
}
129127
adminClient := pb.NewAdminClient(clientConn)
130128
return adminClient, nil
@@ -134,7 +132,7 @@ func GetAdminClient() (pb.AdminClient, error) {
134132
func GetDefaultSigner() (msp.SigningIdentity, error) {
135133
signer, err := mspmgmt.GetLocalMSP().GetDefaultSigningIdentity()
136134
if err != nil {
137-
return nil, fmt.Errorf("Error obtaining the default signing identity, err %s", err)
135+
return nil, errors.WithMessage(err, "error obtaining the default signing identity")
138136
}
139137

140138
return signer, err
@@ -154,45 +152,45 @@ func GetOrdererEndpointOfChain(chainID string, signer msp.SigningIdentity, endor
154152

155153
creator, err := signer.Serialize()
156154
if err != nil {
157-
return nil, fmt.Errorf("Error serializing identity for %s: %s", signer.GetIdentifier(), err)
155+
return nil, errors.WithMessage(err, fmt.Sprintf("error serializing identity for %s", signer.GetIdentifier()))
158156
}
159157

160158
prop, _, err := putils.CreateProposalFromCIS(pcommon.HeaderType_CONFIG, "", invocation, creator)
161159
if err != nil {
162-
return nil, fmt.Errorf("Error creating GetConfigBlock proposal: %s", err)
160+
return nil, errors.WithMessage(err, "error creating GetConfigBlock proposal")
163161
}
164162

165163
signedProp, err := putils.GetSignedProposal(prop, signer)
166164
if err != nil {
167-
return nil, fmt.Errorf("Error creating signed GetConfigBlock proposal: %s", err)
165+
return nil, errors.WithMessage(err, "error creating signed GetConfigBlock proposal")
168166
}
169167

170168
proposalResp, err := endorserClient.ProcessProposal(context.Background(), signedProp)
171169
if err != nil {
172-
return nil, fmt.Errorf("Error endorsing GetConfigBlock: %s", err)
170+
return nil, errors.WithMessage(err, "error endorsing GetConfigBlock")
173171
}
174172

175173
if proposalResp == nil {
176-
return nil, fmt.Errorf("Error nil proposal response: %s", err)
174+
return nil, errors.WithMessage(err, "error nil proposal response")
177175
}
178176

179177
if proposalResp.Response.Status != 0 && proposalResp.Response.Status != 200 {
180-
return nil, fmt.Errorf("Error bad proposal response %d", proposalResp.Response.Status)
178+
return nil, errors.Errorf("error bad proposal response %d", proposalResp.Response.Status)
181179
}
182180

183181
// parse config block
184182
block, err := putils.GetBlockFromBlockBytes(proposalResp.Response.Payload)
185183
if err != nil {
186-
return nil, fmt.Errorf("Error unmarshaling config block: %s", err)
184+
return nil, errors.WithMessage(err, "error unmarshaling config block")
187185
}
188186

189187
envelopeConfig, err := putils.ExtractEnvelope(block, 0)
190188
if err != nil {
191-
return nil, fmt.Errorf("Error extracting config block envelope: %s", err)
189+
return nil, errors.WithMessage(err, "error extracting config block envelope")
192190
}
193191
bundle, err := channelconfig.NewBundleFromEnvelope(envelopeConfig)
194192
if err != nil {
195-
return nil, fmt.Errorf("Error loadding config block: %s", err)
193+
return nil, errors.WithMessage(err, "error loading config block")
196194
}
197195

198196
return bundle.ChannelConfig().OrdererAddresses(), nil
@@ -203,7 +201,7 @@ func GetOrdererEndpointOfChain(chainID string, signer msp.SigningIdentity, endor
203201
func SetLogLevelFromViper(module string) error {
204202
var err error
205203
if module == "" {
206-
return fmt.Errorf("log level not set, no module name provided")
204+
return errors.New("log level not set, no module name provided")
207205
}
208206
logLevelFromViper := viper.GetString("logging." + module)
209207
err = CheckLogLevel(logLevelFromViper)
@@ -218,7 +216,7 @@ func SetLogLevelFromViper(module string) error {
218216
func CheckLogLevel(level string) error {
219217
_, err := logging.LogLevel(level)
220218
if err != nil {
221-
err = errors.ErrorWithCallstack("LOG", "400", "Invalid log level provided - %s", level)
219+
err = errors.Errorf("invalid log level provided - %s", level)
222220
}
223221
return err
224222
}

peer/common/ordererclient.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323

2424
cb "github.com/hyperledger/fabric/protos/common"
2525
ab "github.com/hyperledger/fabric/protos/orderer"
26+
"github.com/pkg/errors"
2627
"golang.org/x/net/context"
2728
"google.golang.org/grpc"
2829
"google.golang.org/grpc/credentials"
@@ -43,7 +44,7 @@ type broadcastClient struct {
4344
func GetBroadcastClient(orderingEndpoint string, tlsEnabled bool, caFile string) (BroadcastClient, error) {
4445

4546
if len(strings.Split(orderingEndpoint, ":")) != 2 {
46-
return nil, fmt.Errorf("Ordering service endpoint %s is not valid or missing", orderingEndpoint)
47+
return nil, errors.Errorf("ordering service endpoint %s is not valid or missing", orderingEndpoint)
4748
}
4849

4950
var opts []grpc.DialOption
@@ -52,7 +53,7 @@ func GetBroadcastClient(orderingEndpoint string, tlsEnabled bool, caFile string)
5253
if caFile != "" {
5354
creds, err := credentials.NewClientTLSFromFile(caFile, "")
5455
if err != nil {
55-
return nil, fmt.Errorf("Error connecting to %s due to %s", orderingEndpoint, err)
56+
return nil, errors.WithMessage(err, fmt.Sprintf("error connecting to %s due to", orderingEndpoint))
5657
}
5758
opts = append(opts, grpc.WithTransportCredentials(creds))
5859
}
@@ -65,12 +66,12 @@ func GetBroadcastClient(orderingEndpoint string, tlsEnabled bool, caFile string)
6566

6667
conn, err := grpc.Dial(orderingEndpoint, opts...)
6768
if err != nil {
68-
return nil, fmt.Errorf("Error connecting to %s due to %s", orderingEndpoint, err)
69+
return nil, errors.WithMessage(err, fmt.Sprintf("error connecting to %s due to", orderingEndpoint))
6970
}
7071
client, err := ab.NewAtomicBroadcastClient(conn).Broadcast(context.TODO())
7172
if err != nil {
7273
conn.Close()
73-
return nil, fmt.Errorf("Error connecting to %s due to %s", orderingEndpoint, err)
74+
return nil, errors.WithMessage(err, fmt.Sprintf("error connecting to %s due to", orderingEndpoint))
7475
}
7576

7677
return &broadcastClient{conn: conn, client: client}, nil
@@ -82,15 +83,15 @@ func (s *broadcastClient) getAck() error {
8283
return err
8384
}
8485
if msg.Status != cb.Status_SUCCESS {
85-
return fmt.Errorf("Got unexpected status: %v -- %s", msg.Status, msg.Info)
86+
return errors.Errorf("got unexpected status: %v -- %s", msg.Status, msg.Info)
8687
}
8788
return nil
8889
}
8990

9091
//Send data to orderer
9192
func (s *broadcastClient) Send(env *cb.Envelope) error {
9293
if err := s.client.Send(env); err != nil {
93-
return fmt.Errorf("Could not send :%s)", err)
94+
return errors.WithMessage(err, "could not send")
9495
}
9596

9697
err := s.getAck()

0 commit comments

Comments
 (0)