@@ -16,6 +16,7 @@ import (
16
16
"github.com/hyperledger/fabric-sdk-go/pkg/client/resmgmt"
17
17
"github.com/hyperledger/fabric-sdk-go/pkg/common/errors/retry"
18
18
"github.com/hyperledger/fabric-sdk-go/pkg/common/errors/status"
19
+ fabAPI "github.com/hyperledger/fabric-sdk-go/pkg/common/providers/fab"
19
20
"github.com/hyperledger/fabric-sdk-go/pkg/fab"
20
21
packager "github.com/hyperledger/fabric-sdk-go/pkg/fab/ccpackager/gopackager"
21
22
javapackager "github.com/hyperledger/fabric-sdk-go/pkg/fab/ccpackager/javapackager"
@@ -286,15 +287,7 @@ func QueryApprovedCC(mc []*OrgContext, ccName string, sequence int64, channelID
286
287
}
287
288
for _ , orgCtx := range mc {
288
289
for _ , p := range orgCtx .Peers {
289
- _ , err := retry .NewInvoker (retry .New (retry .TestRetryOpts )).Invoke (
290
- func () (interface {}, error ) {
291
- resp1 , err := orgCtx .ResMgmt .LifecycleQueryApprovedCC (channelID , queryApprovedCCReq , resmgmt .WithTargets (p ), resmgmt .WithRetry (retry .DefaultResMgmtOpts ))
292
- if err != nil {
293
- return nil , status .New (status .TestStatus , status .GenericTransient .ToInt32 (), fmt .Sprintf ("LifecycleQueryApprovedCC returned error: %v" , err ), nil )
294
- }
295
- return resp1 , err
296
- },
297
- )
290
+ err := queryApprovedCC (orgCtx , channelID , p , queryApprovedCCReq )
298
291
if err != nil {
299
292
return errors .WithMessage (err , "QueryApprovedCC example chaincode failed" )
300
293
}
@@ -304,8 +297,26 @@ func QueryApprovedCC(mc []*OrgContext, ccName string, sequence int64, channelID
304
297
305
298
}
306
299
300
+ func queryApprovedCC (orgCtx * OrgContext , channelID string , p fabAPI.Peer , req resmgmt.LifecycleQueryApprovedCCRequest ) error {
301
+
302
+ _ , err := retry .NewInvoker (retry .New (retry .TestRetryOpts )).Invoke (
303
+ func () (interface {}, error ) {
304
+ resp1 , err := orgCtx .ResMgmt .LifecycleQueryApprovedCC (channelID , req , resmgmt .WithTargets (p ), resmgmt .WithRetry (retry .DefaultResMgmtOpts ))
305
+ if err != nil {
306
+ return nil , status .New (status .TestStatus , status .GenericTransient .ToInt32 (), fmt .Sprintf ("QueryApprovedCC returned : %v" , resp1 ), nil )
307
+ }
308
+ return resp1 , err
309
+ },
310
+ )
311
+ if err != nil {
312
+ return errors .WithMessage (err , "QueryApprovedCC example chaincode failed" )
313
+ }
314
+
315
+ return nil
316
+ }
317
+
307
318
// CheckCCCommitReadiness checkcommit the example CC on the given channel
308
- func CheckCCCommitReadiness (mc []* OrgContext , packageID string , ccName , ccVersion string , sequence int64 , channelID string , ccPolicyStr string ) error {
319
+ func CheckCCCommitReadiness (mc []* OrgContext , packageID string , ccName , ccVersion string , sequence int64 , channelID string , ccPolicyStr string , collConfigs ... * pb. CollectionConfig ) error {
309
320
ccPolicy , err := policydsl .FromString (ccPolicyStr )
310
321
if err != nil {
311
322
return errors .Wrapf (err , "error creating CC policy [%s]" , ccPolicyStr )
@@ -319,39 +330,45 @@ func CheckCCCommitReadiness(mc []*OrgContext, packageID string, ccName, ccVersio
319
330
SignaturePolicy : ccPolicy ,
320
331
Sequence : sequence ,
321
332
InitRequired : true ,
333
+ CollectionConfig : collConfigs ,
322
334
}
323
- /*resp1, err := mc.org1ResMgmt.LifecycleCheckCCCommitReadiness(channelID, req, resmgmt.WithTargets([]fab.Peer{org1Peers[0]}...), resmgmt.WithRetry(retry.DefaultResMgmtOpts))
324
- if err != nil {
325
- t.Fatal(err)
326
- }
327
- require.NotNil(t, resp1)*/
335
+
328
336
for _ , orgCtx := range mc {
329
337
for _ , p := range orgCtx .Peers {
330
- _ , err := retry .NewInvoker (retry .New (retry .TestRetryOpts )).Invoke (
331
- func () (interface {}, error ) {
332
- resp1 , err := orgCtx .ResMgmt .LifecycleCheckCCCommitReadiness (channelID , req , resmgmt .WithTargets (p ), resmgmt .WithRetry (retry .DefaultResMgmtOpts ))
333
- fmt .Printf ("LifecycleCheckCCCommitReadiness cc = %v, = %v\n " , ccName , resp1 )
334
- if err != nil {
335
- return nil , status .New (status .TestStatus , status .GenericTransient .ToInt32 (), fmt .Sprintf ("LifecycleCheckCCCommitReadiness returned error: %v" , err ), nil )
336
- }
337
- flag := true
338
- for _ , r := range resp1 .Approvals {
339
- flag = flag && r
340
- }
341
- if ! flag {
342
- return nil , status .New (status .TestStatus , status .GenericTransient .ToInt32 (), fmt .Sprintf ("LifecycleCheckCCCommitReadiness returned : %v" , resp1 ), nil )
343
- }
344
- return resp1 , err
345
- },
346
- )
338
+ err = checkCCCommitReadiness (orgCtx , channelID , p , req )
347
339
if err != nil {
348
- errors .WithMessage (err , "LifecycleCheckCCCommitReadiness example chaincode failed" )
340
+ return errors .WithMessage (err , "LifecycleCheckCCCommitReadiness example chaincode failed" )
349
341
}
350
342
}
351
343
}
352
344
return nil
353
345
}
354
346
347
+ func checkCCCommitReadiness (orgCtx * OrgContext , channelID string , p fabAPI.Peer , req resmgmt.LifecycleCheckCCCommitReadinessRequest ) error {
348
+
349
+ _ , err := retry .NewInvoker (retry .New (retry .TestRetryOpts )).Invoke (
350
+ func () (interface {}, error ) {
351
+ resp1 , err := orgCtx .ResMgmt .LifecycleCheckCCCommitReadiness (channelID , req , resmgmt .WithTargets (p ))
352
+ if err != nil {
353
+ return nil , status .New (status .TestStatus , status .GenericTransient .ToInt32 (), fmt .Sprintf ("LifecycleCheckCCCommitReadiness returned : %v" , resp1 ), nil )
354
+ }
355
+ flag := true
356
+ for _ , r := range resp1 .Approvals {
357
+ flag = flag && r
358
+ }
359
+ if ! flag {
360
+ return nil , status .New (status .TestStatus , status .GenericTransient .ToInt32 (), fmt .Sprintf ("LifecycleCheckCCCommitReadiness returned : %v" , resp1 ), nil )
361
+ }
362
+ return resp1 , err
363
+ },
364
+ )
365
+ if err != nil {
366
+ return errors .WithMessage (err , "LifecycleCheckCCCommitReadiness example chaincode failed" )
367
+ }
368
+
369
+ return nil
370
+ }
371
+
355
372
// CommitExampleChaincode approve the example CC on the given channel
356
373
func CommitExampleChaincode (orgs []* OrgContext , channelID , ccID , ccVersion , ccPolicyStr string , sequence int64 , collConfigs ... * pb.CollectionConfig ) error {
357
374
ccPolicy , err := policydsl .FromString (ccPolicyStr )
@@ -405,40 +422,47 @@ func QueryCommittedCC(mc []*OrgContext, ccName string, channelID string, sequenc
405
422
req := resmgmt.LifecycleQueryCommittedCCRequest {
406
423
Name : ccName ,
407
424
}
408
- /*resp1, err := mc.org1ResMgmt.LifecycleQueryCommittedCC(channelID, req, resmgmt.WithTargets(org1Peers[0]), resmgmt.WithRetry(retry.DefaultResMgmtOpts))
409
- if err != nil {
410
- t.Fatal(err)
411
- }*/
412
425
for _ , orgCtx := range mc {
413
426
for _ , p := range orgCtx .Peers {
414
- _ , err := retry .NewInvoker (retry .New (retry .TestRetryOpts )).Invoke (
415
- func () (interface {}, error ) {
416
- resp1 , err := orgCtx .ResMgmt .LifecycleQueryCommittedCC (channelID , req , resmgmt .WithTargets (p ), resmgmt .WithRetry (retry .DefaultResMgmtOpts ))
417
- if err != nil {
418
- return nil , status .New (status .TestStatus , status .GenericTransient .ToInt32 (), fmt .Sprintf ("LifecycleQueryCommittedCC returned error: %v" , err ), nil )
419
- }
420
- flag := false
421
- for _ , r := range resp1 {
422
- if r .Name == ccName && r .Sequence == sequence {
423
- flag = true
424
- break
425
- }
426
- }
427
- if ! flag {
428
- return nil , status .New (status .TestStatus , status .GenericTransient .ToInt32 (), fmt .Sprintf ("LifecycleQueryCommittedCC returned : %v" , resp1 ), nil )
429
- }
430
- return resp1 , err
431
- },
432
- )
427
+ err := queryCommittedCC (orgCtx , ccName , channelID , sequence , p , req )
433
428
if err != nil {
434
- errors .WithMessage (err , "queryCommittedCC example chaincode failed" )
429
+ return errors .WithMessage (err , "queryCommittedCC example chaincode failed" )
435
430
}
436
431
}
437
432
}
438
433
return nil
439
434
440
435
}
441
436
437
+ func queryCommittedCC (orgCtx * OrgContext , ccName string , channelID string , sequence int64 , p fabAPI.Peer , req resmgmt.LifecycleQueryCommittedCCRequest ) error {
438
+
439
+ _ , err := retry .NewInvoker (retry .New (retry .TestRetryOpts )).Invoke (
440
+ func () (interface {}, error ) {
441
+ resp1 , err := orgCtx .ResMgmt .LifecycleQueryCommittedCC (channelID , req , resmgmt .WithTargets (p ))
442
+ if err != nil {
443
+ return nil , status .New (status .TestStatus , status .GenericTransient .ToInt32 (), fmt .Sprintf ("LifecycleQueryCommittedCC returned : %v" , resp1 ), nil )
444
+ }
445
+ flag := false
446
+ for _ , r := range resp1 {
447
+ if r .Name == ccName && r .Sequence == sequence {
448
+ flag = true
449
+ break
450
+ }
451
+ }
452
+ if ! flag {
453
+ return nil , status .New (status .TestStatus , status .GenericTransient .ToInt32 (), fmt .Sprintf ("LifecycleQueryCommittedCC returned : %v" , resp1 ), nil )
454
+ }
455
+ return resp1 , err
456
+ },
457
+ )
458
+ if err != nil {
459
+ return errors .WithMessage (err , "queryCommittedCC example chaincode failed" )
460
+ }
461
+
462
+ return nil
463
+
464
+ }
465
+
442
466
// InstallExamplePvtChaincode installs the example pvt chaincode to all peers in the given orgs
443
467
func InstallExamplePvtChaincode (orgs []* OrgContext , ccID string ) error {
444
468
ccPkg , err := packager .NewCCPackage (examplePvtCCPath , GetDeployPath ())
@@ -565,7 +589,7 @@ func instantiateExampleChaincodeLc(sdk *fabsdk.FabricSDK, orgs []*OrgContext, ch
565
589
return errors .WithMessage (err , "QueryApprovedCC example chaincode failed" )
566
590
}
567
591
568
- err = CheckCCCommitReadiness (orgs , packageID , ccID , ccVersion , sequence , channelID , ccPolicy )
592
+ err = CheckCCCommitReadiness (orgs , packageID , ccID , ccVersion , sequence , channelID , ccPolicy , collConfigs ... )
569
593
if err != nil {
570
594
return errors .WithMessage (err , "CheckCCCommitReadiness example chaincode failed" )
571
595
}
0 commit comments