Skip to content

Commit d2743de

Browse files
committed
refactor: use slices.Contains to simplify code
Signed-off-by: keeghcet <[email protected]>
1 parent d8f6bbb commit d2743de

File tree

15 files changed

+61
-107
lines changed

15 files changed

+61
-107
lines changed

core/chaincode/platforms/util/writer.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"os"
1515
"path"
1616
"path/filepath"
17+
"slices"
1718
"strings"
1819
"time"
1920

@@ -37,10 +38,8 @@ func WriteFolderToTarPackage(tw *tar.Writer, srcPath string, excludeDirs []strin
3738
}
3839

3940
if info.Mode().IsDir() {
40-
for _, excluded := range append(excludeDirs, ".git") {
41-
if info.Name() == excluded {
42-
return filepath.SkipDir
43-
}
41+
if slices.Contains(append(excludeDirs, ".git"), info.Name()) {
42+
return filepath.SkipDir
4443
}
4544
return nil
4645
}

core/common/privdata/membershipinfo.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,19 @@ func NewMembershipInfoProvider(mspID string, selfSignedData protoutil.SignedData
3636

3737
// AmMemberOf checks whether the current peer is a member of the given collection config.
3838
// It is used when a chaincode is upgraded to see if the peer's org has become eligible after a collection change.
39-
func (m *MembershipProvider) AmMemberOf(channelName string, collectionPolicyConfig *peer.CollectionPolicyConfig) (bool, error) {
39+
func (m *MembershipProvider) AmMemberOf(channelName string, collectionPolicyConfig *peer.CollectionPolicyConfig) bool {
4040
deserializer := m.IdentityDeserializerFactory(channelName)
4141

4242
// Do a simple check to see if the mspid matches any principal identities in the SignaturePolicy - FAB-17059
4343
if collectionPolicyConfig.GetSignaturePolicy() == nil {
4444
logger.Warningf("collection membership policy is nil")
45-
return false, nil
45+
return false
4646
}
4747

4848
memberOrgs := getMemberOrgs(collectionPolicyConfig.GetSignaturePolicy().GetIdentities(), deserializer)
4949

5050
_, ok := memberOrgs[m.mspID]
51-
return ok, nil
51+
return ok
5252
}
5353

5454
func (m *MembershipProvider) MyImplicitCollectionName() string {

core/common/privdata/membershipinfo_test.go

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,25 +32,21 @@ func TestMembershipInfoProvider(t *testing.T) {
3232

3333
// verify membership provider pass simple check returns true
3434
membershipProvider := NewMembershipInfoProvider(mspID, emptyPeerSelfSignedData, identityDeserializer)
35-
res, err := membershipProvider.AmMemberOf("test1", getAccessPolicy([]string{"peer0", "peer1"}))
35+
res := membershipProvider.AmMemberOf("test1", getAccessPolicy([]string{"peer0", "peer1"}))
3636
require.True(t, res)
37-
require.Nil(t, err)
3837

3938
// verify membership provider fall back to default access policy evaluation returns false
4039
membershipProvider = NewMembershipInfoProvider(mspID, peerSelfSignedData, identityDeserializer)
41-
res, err = membershipProvider.AmMemberOf("test1", getAccessPolicy([]string{"peer2", "peer3"}))
40+
res = membershipProvider.AmMemberOf("test1", getAccessPolicy([]string{"peer2", "peer3"}))
4241
require.False(t, res)
43-
require.Nil(t, err)
4442

45-
// verify membership provider returns false and nil when collection policy config is nil
46-
res, err = membershipProvider.AmMemberOf("test1", nil)
43+
// verify membership provider returns false when collection policy config is nil
44+
res = membershipProvider.AmMemberOf("test1", nil)
4745
require.False(t, res)
48-
require.Nil(t, err)
4946

50-
// verify membership provider returns false and nil when collection policy config is invalid
51-
res, err = membershipProvider.AmMemberOf("test1", getBadAccessPolicy([]string{"signer0"}, 1))
47+
// verify membership provider returns false when collection policy config is invalid
48+
res = membershipProvider.AmMemberOf("test1", getBadAccessPolicy([]string{"signer0"}, 1))
5249
require.False(t, res)
53-
require.Nil(t, err)
5450
}
5551

5652
func TestMyImplicitCollectionName(t *testing.T) {

core/container/externalbuilder/externalbuilder.go

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"os/exec"
1515
"path/filepath"
1616
"regexp"
17+
"slices"
1718
"time"
1819

1920
"github.com/hyperledger/fabric-lib-go/common/flogging"
@@ -410,18 +411,9 @@ func (b *Builder) NewCommand(name string, args ...string) *exec.Cmd {
410411

411412
func appendDefaultPropagateEnvironment(propagateEnvironment []string) []string {
412413
for _, variable := range DefaultPropagateEnvironment {
413-
if !contains(propagateEnvironment, variable) {
414+
if !slices.Contains(propagateEnvironment, variable) {
414415
propagateEnvironment = append(propagateEnvironment, variable)
415416
}
416417
}
417418
return propagateEnvironment
418419
}
419-
420-
func contains(propagateEnvironment []string, key string) bool {
421-
for _, variable := range propagateEnvironment {
422-
if key == variable {
423-
return true
424-
}
425-
}
426-
return false
427-
}

core/ledger/kvledger/coll_elg_notifier.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,11 +129,11 @@ func (n *collElgNotifier) elgEnabledCollNames(ledgerID string,
129129

130130
// elgEnabled returns true if the peer is not eligible for a collection as per 'existingPolicy' and is eligible as per 'postCommitPolicy'
131131
func (n *collElgNotifier) elgEnabled(ledgerID string, existingPolicy, postCommitPolicy *peer.CollectionPolicyConfig) (bool, error) {
132-
existingMember, err := n.membershipInfoProvider.AmMemberOf(ledgerID, existingPolicy)
133-
if err != nil || existingMember {
134-
return false, err
132+
existingMember := n.membershipInfoProvider.AmMemberOf(ledgerID, existingPolicy)
133+
if existingMember {
134+
return false, nil
135135
}
136-
return n.membershipInfoProvider.AmMemberOf(ledgerID, postCommitPolicy)
136+
return n.membershipInfoProvider.AmMemberOf(ledgerID, postCommitPolicy), nil
137137
}
138138

139139
func extractPublicUpdates(stateUpdates ledger.StateUpdates) map[string][]*kvrwset.KVWrite {

core/ledger/kvledger/coll_elg_notifier_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ func TestCollElgNotifier(t *testing.T) {
3838
}, nil)
3939

4040
mockMembershipInfoProvider := &mock.MembershipInfoProvider{}
41-
mockMembershipInfoProvider.AmMemberOfStub = func(channel string, p *peer.CollectionPolicyConfig) (bool, error) {
42-
return testutilIsEligibleForMockPolicy(p), nil
41+
mockMembershipInfoProvider.AmMemberOfStub = func(channel string, p *peer.CollectionPolicyConfig) bool {
42+
return testutilIsEligibleForMockPolicy(p)
4343
}
4444

4545
mockCollElgListener := &mockCollElgListener{}

core/ledger/kvledger/pause_resume_test.go

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

99
import (
10+
"slices"
1011
"testing"
1112

1213
"github.com/hyperledger/fabric-protos-go-apiv2/common"
@@ -115,7 +116,7 @@ func assertLedgerStatus(t *testing.T, provider *Provider, genesisBlocks []*commo
115116
require.NoError(t, err)
116117
require.Len(t, activeLedgerIDs, numLedgers-len(pausedLedgers))
117118
for i := 0; i < numLedgers; i++ {
118-
if !contains(pausedLedgers, i) {
119+
if !slices.Contains(pausedLedgers, i) {
119120
require.Contains(t, activeLedgerIDs, constructTestLedgerID(i))
120121
}
121122
}
@@ -124,19 +125,10 @@ func assertLedgerStatus(t *testing.T, provider *Provider, genesisBlocks []*commo
124125
m, err := s.getLedgerMetadata(constructTestLedgerID(i))
125126
require.NoError(t, err)
126127
require.NotNil(t, m)
127-
if contains(pausedLedgers, i) {
128+
if slices.Contains(pausedLedgers, i) {
128129
require.Equal(t, msgs.Status_INACTIVE, m.GetStatus())
129130
} else {
130131
require.Equal(t, msgs.Status_ACTIVE, m.GetStatus())
131132
}
132133
}
133134
}
134-
135-
func contains(slice []int, val int) bool {
136-
for _, item := range slice {
137-
if item == val {
138-
return true
139-
}
140-
}
141-
return false
142-
}

core/ledger/kvledger/tests/env.go

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"fmt"
1111
"os"
1212
"path/filepath"
13+
"slices"
1314
"testing"
1415
"time"
1516

@@ -315,15 +316,10 @@ type membershipInfoProvider struct {
315316
myOrgMSPID string
316317
}
317318

318-
func (p *membershipInfoProvider) AmMemberOf(channelName string, collectionPolicyConfig *peer.CollectionPolicyConfig) (bool, error) {
319+
func (p *membershipInfoProvider) AmMemberOf(channelName string, collectionPolicyConfig *peer.CollectionPolicyConfig) bool {
319320
members := convertFromMemberOrgsPolicy(collectionPolicyConfig)
320321
fmt.Printf("members = %s\n", members)
321-
for _, m := range members {
322-
if m == p.myOrgMSPID {
323-
return true, nil
324-
}
325-
}
326-
return false, nil
322+
return slices.Contains(members, p.myOrgMSPID)
327323
}
328324

329325
func (p *membershipInfoProvider) MyImplicitCollectionName() string {

core/ledger/kvledger/txmgmt/statedb/commontests/test_common.go

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ package commontests
88

99
import (
1010
"fmt"
11+
"slices"
1112
"strings"
1213
"testing"
1314

@@ -1072,7 +1073,7 @@ func TestDataExportImport(
10721073
verifyExportImport := func(destDBName string, skipNamespaces stringset) {
10731074
fullScanItr, err := sourceDB.GetFullScanIterator(
10741075
func(ns string) bool {
1075-
return skipNamespaces.contains(ns)
1076+
return slices.Contains(skipNamespaces, ns)
10761077
},
10771078
)
10781079
require.NoError(t, err)
@@ -1162,19 +1163,10 @@ func CreateTestData(t *testing.T, db statedb.VersionedDB, ns string, numKeys int
11621163

11631164
type stringset []string
11641165

1165-
func (s stringset) contains(str string) bool {
1166-
for _, element := range s {
1167-
if element == str {
1168-
return true
1169-
}
1170-
}
1171-
return false
1172-
}
1173-
11741166
func (s stringset) minus(toMinus stringset) stringset {
11751167
var final stringset
11761168
for _, element := range s {
1177-
if toMinus.contains(element) {
1169+
if slices.Contains(toMinus, element) {
11781170
continue
11791171
}
11801172
final = append(final, element)

core/ledger/kvledger/txmgmt/statedb/statecouchdb/cache.go

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

99
import (
10+
"slices"
11+
1012
"github.com/VictoriaMetrics/fastcache"
1113
"google.golang.org/protobuf/proto"
1214
)
@@ -45,10 +47,8 @@ func newCache(usrCacheSizeMBs int, sysNamespaces []string) *cache {
4547
// Namespace can be of two types: system namespace (such as lscc) and user
4648
// namespace (all user's chaincode states).
4749
func (c *cache) enabled(namespace string) bool {
48-
for _, ns := range c.sysNamespaces {
49-
if namespace == ns {
50-
return true
51-
}
50+
if slices.Contains(c.sysNamespaces, namespace) {
51+
return true
5252
}
5353
return c.usrCache != nil
5454
}
@@ -152,10 +152,8 @@ func (c *cache) Reset() {
152152
}
153153

154154
func (c *cache) getCache(namespace string) *fastcache.Cache {
155-
for _, ns := range c.sysNamespaces {
156-
if namespace == ns {
157-
return c.sysCache
158-
}
155+
if slices.Contains(c.sysNamespaces, namespace) {
156+
return c.sysCache
159157
}
160158
return c.usrCache
161159
}

0 commit comments

Comments
 (0)