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

Commit 33b74d4

Browse files
author
Firas Qutishat
committed
[FAB-9312] Resolve metalinter warnings
Change-Id: Ic4ade36c78268b9870504b339fcdad3413dcab1a Signed-off-by: Firas Qutishat <firas.qutishat@securekey.com>
1 parent 582c2fc commit 33b74d4

File tree

9 files changed

+91
-49
lines changed

9 files changed

+91
-49
lines changed

pkg/client/resmgmt/resmgmt.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Copyright SecureKey Technologies Inc. All Rights Reserved.
44
SPDX-License-Identifier: Apache-2.0
55
*/
66

7+
// Package resmgmt enables ability to update resources in a Fabric network.
78
package resmgmt
89

910
import (

pkg/client/resmgmt/resmgmt_test.go

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -494,12 +494,12 @@ func TestInstallCCWithOpts(t *testing.T) {
494494
assert.Nil(t, err, "marshal should not have failed")
495495

496496
// Setup targets
497-
peer := fcmocks.MockPeer{MockName: "Peer1", MockURL: "http://peer1.com",
497+
peer1 := fcmocks.MockPeer{MockName: "Peer1", MockURL: "http://peer1.com",
498498
Status: http.StatusOK, MockRoles: []string{}, MockCert: nil, MockMSP: "Org1MSP", Payload: responseBytes}
499499

500500
// Already installed chaincode request
501501
req := InstallCCRequest{Name: "name", Version: "version", Path: "path", Package: &api.CCPackage{Type: 1, Code: []byte("code")}}
502-
responses, err := rc.InstallCC(req, WithTargets(&peer))
502+
responses, err := rc.InstallCC(req, WithTargets(&peer1))
503503
if err != nil {
504504
t.Fatal(err)
505505
}
@@ -512,18 +512,18 @@ func TestInstallCCWithOpts(t *testing.T) {
512512
t.Fatal("Should have 'already installed' info set")
513513
}
514514

515-
if responses[0].Target != peer.MockURL {
516-
t.Fatalf("Expecting %s target URL, got %s", peer.MockURL, responses[0].Target)
515+
if responses[0].Target != peer1.MockURL {
516+
t.Fatalf("Expecting %s target URL, got %s", peer1.MockURL, responses[0].Target)
517517
}
518518

519519
// Chaincode not found request (it will be installed)
520520
req = InstallCCRequest{Name: "ID", Version: "v0", Path: "path", Package: &api.CCPackage{Type: 1, Code: []byte("code")}}
521-
responses, err = rc.InstallCC(req, WithTargets(&peer))
521+
responses, err = rc.InstallCC(req, WithTargets(&peer1))
522522
if err != nil {
523523
t.Fatal(err)
524524
}
525525

526-
if responses[0].Target != peer.MockURL {
526+
if responses[0].Target != peer1.MockURL {
527527
t.Fatal("Wrong target URL set")
528528
}
529529

@@ -542,11 +542,11 @@ func TestInstallCCWithOpts(t *testing.T) {
542542
response.Chaincodes = chaincodes
543543
responseBytes, _ = proto.Marshal(response)
544544

545-
peer = fcmocks.MockPeer{MockName: "Peer1", MockURL: "http://peer1.com",
545+
peer1 = fcmocks.MockPeer{MockName: "Peer1", MockURL: "http://peer1.com",
546546
Status: http.StatusOK, MockRoles: []string{}, MockCert: nil, MockMSP: "Org1MSP", Payload: responseBytes}
547547

548548
req = InstallCCRequest{Name: "error", Version: "v0", Path: "", Package: &api.CCPackage{Type: 1, Code: []byte("code")}}
549-
_, err = rc.InstallCC(req, WithTargets(&peer))
549+
_, err = rc.InstallCC(req, WithTargets(&peer1))
550550
if err == nil {
551551
t.Fatalf("Should have failed since install cc returns an error in the client")
552552
}
@@ -571,12 +571,12 @@ func TestInstallError(t *testing.T) {
571571
func TestInstallCC(t *testing.T) {
572572
rc := setupDefaultResMgmtClient(t)
573573

574-
peer := fcmocks.MockPeer{MockName: "Peer1", MockURL: "http://peer1.com",
574+
peer2 := fcmocks.MockPeer{MockName: "Peer1", MockURL: "http://peer1.com",
575575
Status: http.StatusOK, MockRoles: []string{}, MockCert: nil, MockMSP: "Org1MSP"}
576576

577577
// Chaincode that is not installed already (it will be installed)
578578
req := InstallCCRequest{Name: "ID", Version: "v0", Path: "path", Package: &api.CCPackage{Type: 1, Code: []byte("code")}}
579-
responses, err := rc.InstallCC(req, WithTargets(&peer))
579+
responses, err := rc.InstallCC(req, WithTargets(&peer2))
580580
if err != nil {
581581
t.Fatal(err)
582582
}
@@ -701,8 +701,7 @@ func TestInstallCCWithOptsRequiredParameters(t *testing.T) {
701701

702702
// Setup targets
703703
var peers []fab.Peer
704-
peer := fcmocks.MockPeer{MockName: "Peer1", MockURL: "http://peer1.com", MockRoles: []string{}, MockCert: nil, MockMSP: "Org1MSP"}
705-
peers = append(peers, &peer)
704+
peers = append(peers, &fcmocks.MockPeer{MockName: "Peer1", MockURL: "http://peer1.com", MockRoles: []string{}, MockCert: nil, MockMSP: "Org1MSP"})
706705

707706
// Test both targets and filter provided (error condition)
708707
_, err = rc.InstallCC(req, WithTargets(peers...), WithTargetFilter(&mspFilter{mspID: "Org1MSP"}))
@@ -877,8 +876,7 @@ func TestInstantiateCCWithOptsRequiredParameters(t *testing.T) {
877876

878877
// Setup targets
879878
var peers []fab.Peer
880-
peer := fcmocks.MockPeer{MockName: "Peer1", MockURL: "http://peer1.com", MockRoles: []string{}, MockCert: nil, MockMSP: "Org1MSP"}
881-
peers = append(peers, &peer)
879+
peers = append(peers, &fcmocks.MockPeer{MockName: "Peer1", MockURL: "http://peer1.com", MockRoles: []string{}, MockCert: nil, MockMSP: "Org1MSP"})
882880

883881
// Test both targets and filter provided (error condition)
884882
_, err = rc.InstantiateCC("mychannel", req, WithTargets(peers...), WithTargetFilter(&mspFilter{mspID: "Org1MSP"}))
@@ -1083,8 +1081,7 @@ func TestUpgradeCCWithOptsRequiredParameters(t *testing.T) {
10831081

10841082
// Setup targets
10851083
var peers []fab.Peer
1086-
peer := fcmocks.MockPeer{MockName: "Peer1", MockURL: "http://peer1.com", MockRoles: []string{}, MockCert: nil, MockMSP: "Org1MSP"}
1087-
peers = append(peers, &peer)
1084+
peers = append(peers, &fcmocks.MockPeer{MockName: "Peer1", MockURL: "http://peer1.com", MockRoles: []string{}, MockCert: nil, MockMSP: "Org1MSP"})
10881085

10891086
// Test both targets and filter provided (error condition)
10901087
_, err = rc.UpgradeCC("mychannel", req, WithTargets(peers...), WithTargetFilter(&mspFilter{mspID: "Org1MSP"}))

pkg/context/context.go

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -251,21 +251,33 @@ func NewChannel(clientProvider context.ClientProvider, channelID string) (*Chann
251251
channelService: channelService,
252252
channelID: channelID,
253253
}
254+
err = initialize(channel, channelService, discoveryService, selectionService)
255+
if err != nil {
256+
return nil, err
257+
}
258+
return channel, nil
259+
}
254260

261+
func initialize(channel *Channel, channelService fab.ChannelService, discoveryService fab.DiscoveryService, selectionService fab.SelectionService) error {
255262
//initialize
256263
if pi, ok := channelService.(serviceInit); ok {
257-
pi.Initialize(channel)
264+
if err := pi.Initialize(channel); err != nil {
265+
return err
266+
}
258267
}
259268

260269
if pi, ok := discoveryService.(serviceInit); ok {
261-
pi.Initialize(channel)
270+
if err := pi.Initialize(channel); err != nil {
271+
return err
272+
}
262273
}
263274

264275
if pi, ok := selectionService.(serviceInit); ok {
265-
pi.Initialize(channel)
276+
if err := pi.Initialize(channel); err != nil {
277+
return err
278+
}
266279
}
267-
268-
return channel, nil
280+
return nil
269281
}
270282

271283
type reqContextKey string

pkg/core/config/comm/comm_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,7 @@ func TestTlsCertHash(t *testing.T) {
132132
if err != nil {
133133
t.Fatalf("Unexpected error decoding cert fingerprint %v", err)
134134
}
135-
136-
if bytes.Compare(tlsCertHash, expectedHash) != 0 {
135+
if !bytes.Equal(tlsCertHash, expectedHash) {
137136
t.Fatal("Cert hash calculated incorrectly")
138137
}
139138
}

pkg/core/config/cryptoutil/cryptoutils.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func GetPrivateKeyFromCert(cert []byte, cs core.CryptoSuite) (core.Key, error) {
4343
return nil, errors.WithMessage(err, "Could not find matching key for SKI")
4444
}
4545

46-
if key != nil && key.Private() == false {
46+
if key != nil && !key.Private() {
4747
return nil, errors.Errorf("Found key is not private, SKI: %s", certPubK.SKI())
4848
}
4949

pkg/core/config/endpoint/endpoint.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,9 @@ import (
1515
"regexp"
1616

1717
"github.com/hyperledger/fabric-sdk-go/pkg/common/errors/status"
18-
"github.com/hyperledger/fabric-sdk-go/pkg/common/logging"
1918
"github.com/pkg/errors"
2019
)
2120

22-
var logger = logging.NewLogger("fabsdk/core")
23-
2421
// IsTLSEnabled is a generic function that expects a URL and verifies if it has
2522
// a prefix HTTPS or GRPCS to return true for TLS Enabled URLs or false otherwise
2623
func IsTLSEnabled(url string) bool {

pkg/core/config/endpoint/endpoint_test.go

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ O94CDp7l2k7hMQI0zQ==
137137
}
138138
}
139139

140-
func TestTLSConfig_TLSCert(t *testing.T) {
140+
func TestTLSConfig_TLSCertPostive(t *testing.T) {
141141
tlsConfig := &TLSConfig{
142142
Path: "../../../../test/fixtures/config/mutual_tls/client_sdk_go.pem",
143143
Pem: "",
@@ -151,26 +151,6 @@ func TestTLSConfig_TLSCert(t *testing.T) {
151151
t.Fatalf("cert's TLSCert() call returned empty certificate")
152152
}
153153

154-
// test with wrong path
155-
tlsConfig.Path = "dummy/path"
156-
c, e = tlsConfig.TLSCert()
157-
if e == nil {
158-
t.Fatal("expected error loading certificate for wrong cert path")
159-
}
160-
if c != nil {
161-
t.Fatalf("cert's TLSCert() call returned non empty certificate for wrong cert path")
162-
}
163-
164-
// test with empty path and empty pem
165-
tlsConfig.Path = ""
166-
c, e = tlsConfig.TLSCert()
167-
if e == nil {
168-
t.Fatal("expected error loading certificate for empty cert path and empty pem")
169-
}
170-
if c != nil {
171-
t.Fatalf("cert's TLSCert() call returned non empty certificate for wrong cert path and empty pem")
172-
}
173-
174154
// test with both correct pem and path set
175155
tlsConfig.Path = "../../../../test/fixtures/config/mutual_tls/client_sdk_go.pem"
176156
tlsConfig.Pem = `-----BEGIN CERTIFICATE-----
@@ -196,6 +176,33 @@ O94CDp7l2k7hMQI0zQ==
196176
t.Fatalf("cert's TLSCert() call returned empty certificate")
197177
}
198178

179+
}
180+
181+
func TestTLSConfig_TLSCertNegative(t *testing.T) {
182+
183+
// test with wrong path
184+
tlsConfig := &TLSConfig{
185+
Path: "dummy/path",
186+
Pem: "",
187+
}
188+
c, e := tlsConfig.TLSCert()
189+
if e == nil {
190+
t.Fatal("expected error loading certificate for wrong cert path")
191+
}
192+
if c != nil {
193+
t.Fatalf("cert's TLSCert() call returned non empty certificate for wrong cert path")
194+
}
195+
196+
// test with empty path and empty pem
197+
tlsConfig.Path = ""
198+
c, e = tlsConfig.TLSCert()
199+
if e == nil {
200+
t.Fatal("expected error loading certificate for empty cert path and empty pem")
201+
}
202+
if c != nil {
203+
t.Fatalf("cert's TLSCert() call returned non empty certificate for wrong cert path and empty pem")
204+
}
205+
199206
// test with wrong pem and empty path
200207
tlsConfig.Path = ""
201208
tlsConfig.Pem = "wrongcertpem"
@@ -206,4 +213,5 @@ O94CDp7l2k7hMQI0zQ==
206213
if c != nil {
207214
t.Fatalf("cert's TLSCert() call returned non empty certificate")
208215
}
216+
209217
}

test/scripts/check_lint.sh

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,16 @@
88

99
set -e
1010

11+
12+
1113
GO_CMD="${GO_CMD:-go}"
1214
GOLINT_CMD=golint
1315
GOFMT_CMD=gofmt
1416
GOIMPORTS_CMD=goimports
17+
GOMETALINT_CMD=gometalinter
18+
19+
20+
1521

1622
PROJECT_PATH=$GOPATH/src/github.com/hyperledger/fabric-sdk-go
1723

@@ -54,3 +60,20 @@ do
5460
exit 1
5561
fi
5662
done
63+
64+
65+
66+
67+
declare -a arr1=(
68+
"./pkg/client"
69+
"./pkg/common"
70+
"./pkg/context"
71+
)
72+
73+
74+
echo "Running metalinters..."
75+
for i in "${arr1[@]}"
76+
do
77+
echo "Checking $i"
78+
$GOMETALINT_CMD $i/...
79+
done

test/scripts/dependencies.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,12 @@ if [ "$FABRIC_SDKGO_DEPEND_INSTALL" = "true" ]; then
2323
GOPATH=$TMP $GO_CMD get -u github.com/golang/lint/golint
2424
GOPATH=$TMP $GO_CMD get -u golang.org/x/tools/cmd/goimports
2525
GOPATH=$TMP $GO_CMD get -u github.com/golang/mock/mockgen
26-
26+
GOPATH=$TMP $GO_CMD get -u github.com/alecthomas/gometalinter
2727
mkdir -p $GOPATH/bin
2828
cp $TMP/bin/* $GOPATH/bin
29+
mkdir -p $GOPATH/src/github.com/alecthomas/gometalinter
30+
cp -R $TMP/src/github.com/alecthomas/gometalinter/* $GOPATH/src/github.com/alecthomas/gometalinter
31+
gometalinter --install
2932
fi
3033

3134
# Install specific version of go dep (particularly for CI)
@@ -49,6 +52,8 @@ type golint >/dev/null 2>&1 || { echo >& 2 "golint is not installed (go get -u g
4952
type goimports >/dev/null 2>&1 || { echo >& 2 "goimports is not installed (go get -u golang.org/x/tools/cmd/goimports)"; ABORT=1; }
5053
type mockgen >/dev/null 2>&1 || { echo >& 2 "mockgen is not installed (go get -u github.com/golang/mock/mockgen)"; ABORT=1; }
5154
type $GO_DEP_CMD >/dev/null 2>&1 || { echo >& 2 "dep is not installed (go get -u github.com/golang/dep/cmd/dep)"; ABORT=1; }
55+
type gometalinter >/dev/null 2>&1 || { echo >& 2 "gometalinter is not installed (go get -u github.com/alecthomas/gometalinter)"; ABORT=1; }
56+
5257

5358
if [ -n "$ABORT" ]; then
5459
echo "Missing dependency. Aborting. You can fix by installing the tool listed above or running make depend-install."

0 commit comments

Comments
 (0)