forked from hyperledger/fabric
/
support.go
103 lines (84 loc) · 2.97 KB
/
support.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package support
import (
"github.com/hyperledger/fabric/common/channelconfig"
"github.com/hyperledger/fabric/common/configtx"
"github.com/hyperledger/fabric/common/policies"
"github.com/hyperledger/fabric/discovery"
"github.com/hyperledger/fabric/discovery/support/acl"
"github.com/hyperledger/fabric/discovery/support/config"
"github.com/hyperledger/fabric/msp"
)
//go:generate mockery -dir . -name GossipSupport -case underscore -output mocks/
// GossipSupport is the local interface used to generate mocks for foreign interface.
type GossipSupport interface {
discovery.GossipSupport
}
//go:generate mockery -dir . -name ChannelPolicyManagerGetter -case underscore -output mocks/
// ChannelPolicyManagerGetter is the local interface used to generate mocks for foreign interface.
type ChannelPolicyManagerGetter interface {
acl.ChannelPolicyManagerGetter
}
//go:generate mockery -dir . -name PolicyManager -case underscore -output mocks/
type PolicyManager interface {
policies.Manager
}
//go:generate counterfeiter -o mocks/channel_config_getter.go --fake-name ChannelConfigGetter . channelConfigGetter
type channelConfigGetter interface {
acl.ChannelConfigGetter
}
//go:generate counterfeiter -o mocks/config_block_getter.go --fake-name ConfigBlockGetter . configBlockGetter
type configBlockGetter interface {
config.CurrentConfigBlockGetter
}
//go:generate counterfeiter -o mocks/configtx_validator.go --fake-name ConfigtxValidator . configtxValidator
type configtxValidator interface {
configtx.Validator
}
//go:generate counterfeiter -o mocks/evaluator.go --fake-name Evaluator . evaluator
type evaluator interface {
acl.Evaluator
}
//go:generate counterfeiter -o mocks/identity.go --fake-name Identity . identity
type identity interface {
msp.Identity
}
//go:generate counterfeiter -o mocks/msp_manager.go --fake-name MSPManager . mspManager
type mspManager interface {
msp.MSPManager
}
//go:generate counterfeiter -o mocks/resources.go --fake-name Resources . resources
type resources interface {
channelconfig.Resources
}
//go:generate counterfeiter -o mocks/verifier.go --fake-name Verifier . verifier
type verifier interface {
acl.Verifier
}
// DiscoverySupport aggregates all the support needed for the discovery service
type DiscoverySupport struct {
discovery.AccessControlSupport
discovery.GossipSupport
discovery.EndorsementSupport
discovery.ConfigSupport
discovery.ConfigSequenceSupport
}
// NewDiscoverySupport returns an aggregated discovery support
func NewDiscoverySupport(
access discovery.AccessControlSupport,
gossip discovery.GossipSupport,
endorsement discovery.EndorsementSupport,
config discovery.ConfigSupport,
sequence discovery.ConfigSequenceSupport,
) *DiscoverySupport {
return &DiscoverySupport{
AccessControlSupport: access,
GossipSupport: gossip,
EndorsementSupport: endorsement,
ConfigSupport: config,
ConfigSequenceSupport: sequence,
}
}