Skip to content

Commit a12d256

Browse files
committed
[FAB-9737] Introduce PackageProvider interface
Change-Id: Ic76e26eb9e8d145eb48c2d792c01c87e0e3c538a Signed-off-by: Matthew Sykes <sykesmat@us.ibm.com>
1 parent 9d781a1 commit a12d256

File tree

6 files changed

+15
-5
lines changed

6 files changed

+15
-5
lines changed

core/chaincode/chaincode_support.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@ type Runtime interface {
3737
Stop(ctxt context.Context, cccid *ccprovider.CCContext, cds *pb.ChaincodeDeploymentSpec) error
3838
}
3939

40+
// PackageProvider is responsible for getting the chaincode package from
41+
// the filesystem.
42+
type PackageProvider interface {
43+
GetChaincode(ccname string, ccversion string) (ccprovider.CCPackage, error)
44+
}
45+
4046
// NewChaincodeSupport creates a new ChaincodeSupport instance
4147
func NewChaincodeSupport(
4248
config *Config,
@@ -45,6 +51,7 @@ func NewChaincodeSupport(
4551
ccstartuptimeout time.Duration,
4652
caCert []byte,
4753
certGenerator CertGenerator,
54+
packageProvider PackageProvider,
4855
) *ChaincodeSupport {
4956
cs := &ChaincodeSupport{
5057
caCert: caCert,
@@ -55,6 +62,7 @@ func NewChaincodeSupport(
5562
keepalive: config.Keepalive,
5663
executetimeout: config.ExecuteTimeout,
5764
handlerRegistry: NewHandlerRegistry(userrunsCC),
65+
PackageProvider: packageProvider,
5866
}
5967

6068
// Keep TestQueries working
@@ -91,6 +99,7 @@ type ChaincodeSupport struct {
9199
executetimeout time.Duration
92100
userRunsCC bool
93101
ContainerRuntime Runtime
102+
PackageProvider PackageProvider
94103
sccp sysccprovider.SystemChaincodeProvider
95104
}
96105

@@ -228,7 +237,7 @@ func (cs *ChaincodeSupport) Launch(context context.Context, cccid *ccprovider.CC
228237
if cds.CodePackage == nil {
229238
//no code bytes for these situations
230239
if !(cs.userRunsCC || cds.ExecEnv == pb.ChaincodeDeploymentSpec_SYSTEM) {
231-
ccpack, err := ccprovider.GetChaincodeFromFS(cID.Name, cID.Version)
240+
ccpack, err := cs.PackageProvider.GetChaincode(cID.Name, cID.Version)
232241
if err != nil {
233242
return cID, cMsg, err
234243
}

core/chaincode/chaincode_support_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ func initMockPeer(chainIDs ...string) (*ChaincodeSupport, error) {
167167
ccprovider.SetChaincodesPath(ccprovider.GetCCsPath())
168168
ca, _ := accesscontrol.NewCA()
169169
certGenerator := accesscontrol.NewAuthenticator(ca)
170-
chaincodeSupport := NewChaincodeSupport(GlobalConfig(), "0.0.0.0:7052", true, ccStartupTimeout, ca.CertBytes(), certGenerator)
170+
chaincodeSupport := NewChaincodeSupport(GlobalConfig(), "0.0.0.0:7052", true, ccStartupTimeout, ca.CertBytes(), certGenerator, &ccprovider.CCInfoFSImpl{})
171171
SideEffectInitialize(chaincodeSupport)
172172
chaincodeSupport.SetSysCCProvider(sccp)
173173
chaincodeSupport.executetimeout = time.Duration(1) * time.Second

core/chaincode/exectransaction_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ func initPeer(chainIDs ...string) (net.Listener, *ChaincodeSupport, func(), erro
116116
ccprovider.SetChaincodesPath(ccprovider.GetCCsPath())
117117
ca, _ := accesscontrol.NewCA()
118118
certGenerator := accesscontrol.NewAuthenticator(ca)
119-
chaincodeSupport := NewChaincodeSupport(GlobalConfig(), peerAddress, false, ccStartupTimeout, ca.CertBytes(), certGenerator)
119+
chaincodeSupport := NewChaincodeSupport(GlobalConfig(), peerAddress, false, ccStartupTimeout, ca.CertBytes(), certGenerator, &ccprovider.CCInfoFSImpl{})
120120
chaincodeSupport.SetSysCCProvider(sccp)
121121
SideEffectInitialize(chaincodeSupport)
122122
pb.RegisterChaincodeSupportServer(grpcServer, chaincodeSupport)

core/chaincode/systemchaincode_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ func initSysCCTests() (*oldSysCCInfo, net.Listener, *ChaincodeSupport, error) {
121121
ccStartupTimeout := time.Duration(5000) * time.Millisecond
122122
ca, _ := accesscontrol.NewCA()
123123
certGenerator := accesscontrol.NewAuthenticator(ca)
124-
chaincodeSupport := NewChaincodeSupport(GlobalConfig(), peerAddress, false, ccStartupTimeout, ca.CertBytes(), certGenerator)
124+
chaincodeSupport := NewChaincodeSupport(GlobalConfig(), peerAddress, false, ccStartupTimeout, ca.CertBytes(), certGenerator, &ccprovider.CCInfoFSImpl{})
125125
pb.RegisterChaincodeSupportServer(grpcServer, chaincodeSupport)
126126

127127
go grpcServer.Serve(lis)

core/scc/cscc/configure_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ func TestConfigerInvokeJoinChainCorrectParams(t *testing.T) {
195195
ccStartupTimeout := time.Duration(30000) * time.Millisecond
196196
ca, _ := accesscontrol.NewCA()
197197
certGenerator := accesscontrol.NewAuthenticator(ca)
198-
chaincode.NewChaincodeSupport(chaincode.GlobalConfig(), peerEndpoint, false, ccStartupTimeout, ca.CertBytes(), certGenerator)
198+
chaincode.NewChaincodeSupport(chaincode.GlobalConfig(), peerEndpoint, false, ccStartupTimeout, ca.CertBytes(), certGenerator, &ccprovider.CCInfoFSImpl{})
199199

200200
// Init the policy checker
201201
policyManagerGetter := &policymocks.MockChannelPolicyManagerGetter{

peer/node/start.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -595,6 +595,7 @@ func registerChaincodeSupport(grpcServer *comm.GRPCServer, ccEndpoint string, ca
595595
ccStartupTimeout,
596596
ca.CertBytes(),
597597
authenticator,
598+
&ccprovider.CCInfoFSImpl{},
598599
)
599600
chaincode.SideEffectInitialize(chaincodeSupport)
600601

0 commit comments

Comments
 (0)