Skip to content

Commit 9620830

Browse files
manish-sethiSaad Karim
authored andcommitted
[FAB-12802] Pass metrics provider to ledgermgmt
This CR introduces a dependency of ledger package on metrics provider and passes down the metrics provider from peer to ledgermgmt Change-Id: I0af8c4b685996c0fad610c17249f9307bf523237 Signed-off-by: manish <manish.sethi@gmail.com>
1 parent 73bdfc5 commit 9620830

File tree

11 files changed

+37
-22
lines changed

11 files changed

+37
-22
lines changed

core/ledger/kvledger/kv_ledger_provider_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
configtxtest "github.com/hyperledger/fabric/common/configtx/test"
2727
"github.com/hyperledger/fabric/common/ledger/blkstorage/fsblkstorage"
2828
"github.com/hyperledger/fabric/common/ledger/testutil"
29+
"github.com/hyperledger/fabric/common/metrics/disabled"
2930
"github.com/hyperledger/fabric/common/util"
3031
lgr "github.com/hyperledger/fabric/core/ledger"
3132
"github.com/hyperledger/fabric/core/ledger/ledgerconfig"
@@ -308,6 +309,7 @@ func testutilNewProvider(t *testing.T) lgr.PeerLedgerProvider {
308309
assert.NoError(t, err)
309310
provider.Initialize(&lgr.Initializer{
310311
DeployedChaincodeInfoProvider: &mock.DeployedChaincodeInfoProvider{},
312+
MetricsProvider: &disabled.Provider{},
311313
})
312314
return provider
313315
}

core/ledger/kvledger/state_listener_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"testing"
1111

1212
"github.com/hyperledger/fabric/common/ledger/testutil"
13+
"github.com/hyperledger/fabric/common/metrics/disabled"
1314
"github.com/hyperledger/fabric/core/ledger"
1415
"github.com/hyperledger/fabric/core/ledger/mock"
1516
"github.com/hyperledger/fabric/protos/ledger/rwset/kvrwset"
@@ -29,6 +30,7 @@ func TestStateListener(t *testing.T) {
2930
provider.Initialize(&ledger.Initializer{
3031
DeployedChaincodeInfoProvider: &mock.DeployedChaincodeInfoProvider{},
3132
StateListeners: []ledger.StateListener{mockListener},
33+
MetricsProvider: &disabled.Provider{},
3234
})
3335

3436
bg, gb := testutil.NewBlockGenerator(t, channelid, false)

core/ledger/kvledger/tests/env.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import (
1111
"path/filepath"
1212
"testing"
1313

14+
"github.com/hyperledger/fabric/common/metrics/disabled"
15+
1416
"github.com/hyperledger/fabric/common/ledger/blkstorage/fsblkstorage"
1517
"github.com/hyperledger/fabric/common/ledger/util"
1618
"github.com/hyperledger/fabric/core/ledger/ledgerconfig"
@@ -132,6 +134,7 @@ func initLedgerMgmt() {
132134
&ledgermgmt.Initializer{
133135
CustomTxProcessors: peer.ConfigTxProcessors,
134136
DeployedChaincodeInfoProvider: &lscc.DeployedCCInfoProvider{},
137+
MetricsProvider: &disabled.Provider{},
135138
},
136139
)
137140
}

core/ledger/ledger_interface.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111

1212
"github.com/golang/protobuf/proto"
1313
commonledger "github.com/hyperledger/fabric/common/ledger"
14+
"github.com/hyperledger/fabric/common/metrics"
1415
"github.com/hyperledger/fabric/protos/common"
1516
"github.com/hyperledger/fabric/protos/ledger/rwset"
1617
"github.com/hyperledger/fabric/protos/ledger/rwset/kvrwset"
@@ -22,6 +23,7 @@ type Initializer struct {
2223
StateListeners []StateListener
2324
DeployedChaincodeInfoProvider DeployedChaincodeInfoProvider
2425
MembershipInfoProvider MembershipInfoProvider
26+
MetricsProvider metrics.Provider
2527
}
2628

2729
// PeerLedgerProvider provides handle to ledger instances

core/ledger/ledgermgmt/ledger_mgmt.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"sync"
1212

1313
"github.com/hyperledger/fabric/common/flogging"
14+
"github.com/hyperledger/fabric/common/metrics"
1415
"github.com/hyperledger/fabric/core/chaincode/platforms"
1516
"github.com/hyperledger/fabric/core/common/ccprovider"
1617
"github.com/hyperledger/fabric/core/ledger"
@@ -42,6 +43,7 @@ type Initializer struct {
4243
PlatformRegistry *platforms.Registry
4344
DeployedChaincodeInfoProvider ledger.DeployedChaincodeInfoProvider
4445
MembershipInfoProvider ledger.MembershipInfoProvider
46+
MetricsProvider metrics.Provider
4547
}
4648

4749
// Initialize initializes ledgermgmt
@@ -71,6 +73,7 @@ func initialize(initializer *Initializer) {
7173
StateListeners: finalStateListeners,
7274
DeployedChaincodeInfoProvider: initializer.DeployedChaincodeInfoProvider,
7375
MembershipInfoProvider: initializer.MembershipInfoProvider,
76+
MetricsProvider: initializer.MetricsProvider,
7477
})
7578
ledgerProvider = provider
7679
logger.Info("ledger mgmt initialized")

core/ledger/ledgermgmt/ledger_mgmt_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import (
2121
"os"
2222
"testing"
2323

24+
"github.com/hyperledger/fabric/common/metrics/disabled"
25+
2426
"github.com/hyperledger/fabric/common/configtx/test"
2527
"github.com/hyperledger/fabric/core/chaincode/platforms"
2628
"github.com/hyperledger/fabric/core/chaincode/platforms/golang"
@@ -90,6 +92,7 @@ func TestLedgerMgmt(t *testing.T) {
9092
// Restart ledger mgmt with existing ledgers
9193
Initialize(&Initializer{
9294
PlatformRegistry: platforms.NewRegistry(&golang.Platform{}),
95+
MetricsProvider: &disabled.Provider{},
9396
})
9497
l, err = OpenLedger(ledgerID)
9598
assert.NoError(t, err)

core/ledger/ledgermgmt/ledger_mgmt_test_exports.go

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,6 @@
11
/*
2-
Copyright IBM Corp. 2016 All Rights Reserved.
3-
4-
Licensed under the Apache License, Version 2.0 (the "License");
5-
you may not use this file except in compliance with the License.
6-
You may obtain a copy of the License at
7-
8-
http://www.apache.org/licenses/LICENSE-2.0
9-
10-
Unless required by applicable law or agreed to in writing, software
11-
distributed under the License is distributed on an "AS IS" BASIS,
12-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13-
See the License for the specific language governing permissions and
14-
limitations under the License.
2+
Copyright IBM Corp. All Rights Reserved.
3+
SPDX-License-Identifier: Apache-2.0
154
*/
165

176
package ledgermgmt
@@ -20,6 +9,7 @@ import (
209
"fmt"
2110
"os"
2211

12+
"github.com/hyperledger/fabric/common/metrics/disabled"
2313
"github.com/hyperledger/fabric/core/chaincode/platforms"
2414
"github.com/hyperledger/fabric/core/chaincode/platforms/golang"
2515
"github.com/hyperledger/fabric/core/ledger/ledgerconfig"
@@ -48,6 +38,9 @@ func InitializeExistingTestEnvWithInitializer(initializer *Initializer) {
4838
if initializer.DeployedChaincodeInfoProvider == nil {
4939
initializer.DeployedChaincodeInfoProvider = &mock.DeployedChaincodeInfoProvider{}
5040
}
41+
if initializer.MetricsProvider == nil {
42+
initializer.MetricsProvider = &disabled.Provider{}
43+
}
5144
if initializer.PlatformRegistry == nil {
5245
initializer.PlatformRegistry = platforms.NewRegistry(&golang.Platform{})
5346
}

core/peer/peer.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
commonledger "github.com/hyperledger/fabric/common/ledger"
2121
"github.com/hyperledger/fabric/common/ledger/blockledger"
2222
fileledger "github.com/hyperledger/fabric/common/ledger/blockledger/file"
23+
"github.com/hyperledger/fabric/common/metrics"
2324
"github.com/hyperledger/fabric/common/policies"
2425
"github.com/hyperledger/fabric/core/chaincode/platforms"
2526
"github.com/hyperledger/fabric/core/comm"
@@ -201,7 +202,9 @@ var validationWorkersSemaphore *semaphore.Weighted
201202
// Initialize sets up any chains that the peer has from the persistence. This
202203
// function should be called at the start up when the ledger and gossip
203204
// ready
204-
func Initialize(init func(string), ccp ccprovider.ChaincodeProvider, sccp sysccprovider.SystemChaincodeProvider, pm txvalidator.PluginMapper, pr *platforms.Registry, deployedCCInfoProvider ledger.DeployedChaincodeInfoProvider, membershipProvider ledger.MembershipInfoProvider) {
205+
func Initialize(init func(string), ccp ccprovider.ChaincodeProvider, sccp sysccprovider.SystemChaincodeProvider,
206+
pm txvalidator.PluginMapper, pr *platforms.Registry, deployedCCInfoProvider ledger.DeployedChaincodeInfoProvider,
207+
membershipProvider ledger.MembershipInfoProvider, metricsProvider metrics.Provider) {
205208
nWorkers := viper.GetInt("peer.validatorPoolSize")
206209
if nWorkers <= 0 {
207210
nWorkers = runtime.NumCPU()
@@ -218,6 +221,7 @@ func Initialize(init func(string), ccp ccprovider.ChaincodeProvider, sccp sysccp
218221
PlatformRegistry: pr,
219222
DeployedChaincodeInfoProvider: deployedCCInfoProvider,
220223
MembershipInfoProvider: membershipProvider,
224+
MetricsProvider: metricsProvider,
221225
})
222226
ledgerIds, err := ledgermgmt.GetLedgerIDs()
223227
if err != nil {

core/peer/peer_impl.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ package peer
88

99
import (
1010
"github.com/hyperledger/fabric/common/channelconfig"
11+
"github.com/hyperledger/fabric/common/metrics"
1112
"github.com/hyperledger/fabric/common/policies"
1213
"github.com/hyperledger/fabric/core/chaincode/platforms"
1314
"github.com/hyperledger/fabric/core/committer/txvalidator"
@@ -30,7 +31,7 @@ type Operations interface {
3031
GetMSPIDs(cid string) []string
3132
GetPolicyManager(cid string) policies.Manager
3233
InitChain(cid string)
33-
Initialize(init func(string), ccp ccprovider.ChaincodeProvider, sccp sysccprovider.SystemChaincodeProvider, pm txvalidator.PluginMapper, pr *platforms.Registry, deployedCCInfoProvider ledger.DeployedChaincodeInfoProvider, membershipProvider ledger.MembershipInfoProvider)
34+
Initialize(init func(string), ccp ccprovider.ChaincodeProvider, sccp sysccprovider.SystemChaincodeProvider, pm txvalidator.PluginMapper, pr *platforms.Registry, deployedCCInfoProvider ledger.DeployedChaincodeInfoProvider, membershipProvider ledger.MembershipInfoProvider, metricsProvider metrics.Provider)
3435
}
3536

3637
type peerImpl struct {
@@ -42,7 +43,7 @@ type peerImpl struct {
4243
getMSPIDs func(cid string) []string
4344
getPolicyManager func(cid string) policies.Manager
4445
initChain func(cid string)
45-
initialize func(init func(string), ccp ccprovider.ChaincodeProvider, sccp sysccprovider.SystemChaincodeProvider, mapper txvalidator.PluginMapper, pr *platforms.Registry, deployedCCInfoProvider ledger.DeployedChaincodeInfoProvider, membershipProvider ledger.MembershipInfoProvider)
46+
initialize func(init func(string), ccp ccprovider.ChaincodeProvider, sccp sysccprovider.SystemChaincodeProvider, mapper txvalidator.PluginMapper, pr *platforms.Registry, deployedCCInfoProvider ledger.DeployedChaincodeInfoProvider, membershipProvider ledger.MembershipInfoProvider, metricsProvider metrics.Provider)
4647
}
4748

4849
// Default provides in implementation of the Peer interface that provides
@@ -73,6 +74,6 @@ func (p *peerImpl) GetLedger(cid string) ledger.PeerLedger { return p.getL
7374
func (p *peerImpl) GetMSPIDs(cid string) []string { return p.getMSPIDs(cid) }
7475
func (p *peerImpl) GetPolicyManager(cid string) policies.Manager { return p.getPolicyManager(cid) }
7576
func (p *peerImpl) InitChain(cid string) { p.initChain(cid) }
76-
func (p *peerImpl) Initialize(init func(string), ccp ccprovider.ChaincodeProvider, sccp sysccprovider.SystemChaincodeProvider, mapper txvalidator.PluginMapper, pr *platforms.Registry, deployedCCInfoProvider ledger.DeployedChaincodeInfoProvider, membershipProvider ledger.MembershipInfoProvider) {
77-
p.initialize(init, ccp, sccp, mapper, pr, deployedCCInfoProvider, membershipProvider)
77+
func (p *peerImpl) Initialize(init func(string), ccp ccprovider.ChaincodeProvider, sccp sysccprovider.SystemChaincodeProvider, mapper txvalidator.PluginMapper, pr *platforms.Registry, deployedCCInfoProvider ledger.DeployedChaincodeInfoProvider, membershipProvider ledger.MembershipInfoProvider, metricsProvider metrics.Provider) {
78+
p.initialize(init, ccp, sccp, mapper, pr, deployedCCInfoProvider, membershipProvider, metricsProvider)
7879
}

core/peer/peer_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414

1515
configtxtest "github.com/hyperledger/fabric/common/configtx/test"
1616
"github.com/hyperledger/fabric/common/localmsp"
17+
"github.com/hyperledger/fabric/common/metrics/disabled"
1718
mscc "github.com/hyperledger/fabric/common/mocks/scc"
1819
"github.com/hyperledger/fabric/core/chaincode/platforms"
1920
"github.com/hyperledger/fabric/core/comm"
@@ -86,14 +87,14 @@ func TestInitialize(t *testing.T) {
8687
cleanup := setupPeerFS(t)
8788
defer cleanup()
8889

89-
Initialize(nil, &ccprovider.MockCcProviderImpl{}, (&mscc.MocksccProviderFactory{}).NewSystemChaincodeProvider(), txvalidator.MapBasedPluginMapper(map[string]validation.PluginFactory{}), nil, &ledgermocks.DeployedChaincodeInfoProvider{}, nil)
90+
Initialize(nil, &ccprovider.MockCcProviderImpl{}, (&mscc.MocksccProviderFactory{}).NewSystemChaincodeProvider(), txvalidator.MapBasedPluginMapper(map[string]validation.PluginFactory{}), nil, &ledgermocks.DeployedChaincodeInfoProvider{}, nil, &disabled.Provider{})
9091
}
9192

9293
func TestCreateChainFromBlock(t *testing.T) {
9394
cleanup := setupPeerFS(t)
9495
defer cleanup()
9596

96-
Initialize(nil, &ccprovider.MockCcProviderImpl{}, (&mscc.MocksccProviderFactory{}).NewSystemChaincodeProvider(), txvalidator.MapBasedPluginMapper(map[string]validation.PluginFactory{}), &platforms.Registry{}, &ledgermocks.DeployedChaincodeInfoProvider{}, nil)
97+
Initialize(nil, &ccprovider.MockCcProviderImpl{}, (&mscc.MocksccProviderFactory{}).NewSystemChaincodeProvider(), txvalidator.MapBasedPluginMapper(map[string]validation.PluginFactory{}), &platforms.Registry{}, &ledgermocks.DeployedChaincodeInfoProvider{}, nil, &disabled.Provider{})
9798
testChainID := fmt.Sprintf("mytestchainid-%d", rand.Int())
9899
block, err := configtxtest.MakeGenesisBlock(testChainID)
99100
if err != nil {

0 commit comments

Comments
 (0)