/
org_peer.go
63 lines (44 loc) · 1.75 KB
/
org_peer.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
package org
import (
"fmt"
"github.com/hyperledger/fabric-sdk-go/pkg/common/providers/context"
fabAPI "github.com/hyperledger/fabric-sdk-go/pkg/common/providers/fab"
contextImpl "github.com/hyperledger/fabric-sdk-go/pkg/context"
"github.com/pkg/errors"
"github.com/hyperledger/fabric-sdk-go/pkg/common/errors/status"
"github.com/hyperledger/fabric-sdk-go/pkg/common/errors/retry"
)
func DiscoverLocalPeers(ctxProvider context.ClientProvider, expectedPeers int) ([]fabAPI.Peer, error) {
ctx, err := contextImpl.NewLocal(ctxProvider)
if err != nil {
fmt.Println(" error creating local context : %s "+err.Error())
return nil, errors.Wrap(err, "error creating local context")
}
discoveredPeers, err := retry.NewInvoker(retry.New(retry.TestRetryOpts)).Invoke(
func() (interface{}, error) {
peers, serviceErr := ctx.LocalDiscoveryService().GetPeers()
if serviceErr != nil {
fmt.Println(" error getting peers for MSP : %s "+err.Error())
return nil, errors.Wrapf(serviceErr, "error getting peers for MSP [%s]", ctx.Identifier().MSPID)
}
fmt.Println(" MSP ID -- "+ctx.Identifier().MSPID,expectedPeers, len(peers))
if len(peers) < expectedPeers {
return nil, status.New(status.TestStatus, status.GenericTransient.ToInt32(), fmt.Sprintf("Expecting %d peers but got %d", expectedPeers, len(peers)), nil)
}
return peers, nil
},
)
if err != nil {
return nil, err
}
return discoveredPeers.([]fabAPI.Peer), nil
}
func LoadOrgPeers(ctxProvider context.ClientProvider) error {
fmt.Println(" LoadOrgPeers")
_, err := contextImpl.NewLocal(ctxProvider)
if err != nil {
fmt.Println(" context creation failed : %s ", err.Error())
return errors.WithMessage(err, "context creation failed")
}
return nil
}