@@ -21,37 +21,44 @@ import (
21
21
"io"
22
22
"os"
23
23
"path/filepath"
24
+ "strings"
24
25
25
26
"github.com/hyperledger/fabric/common/tools/cryptogen/ca"
26
27
"github.com/hyperledger/fabric/common/tools/cryptogen/msp"
27
28
)
28
29
29
30
const (
30
- peerOrgBaseName = "peerOrg"
31
- peerBaseName = "Peer"
32
- userBaseName = "User"
33
- adminBaseName = "Admin"
34
- orderOrgBaseName = "ordererOrg"
35
- ordererBaseName = "Orderer"
31
+ peerOrgBaseName = "peerOrg"
32
+ peerBaseName = "Peer"
33
+ userBaseName = "User"
34
+ adminBaseName = "Admin"
35
+ ordererOrgBaseName = "ordererOrg"
36
+ ordererBaseName = "Orderer"
37
+ numOrdererOrgs = 1
36
38
)
37
39
38
40
//command line flags
39
41
var (
40
42
numPeerOrgs = flag .Int ("peerOrgs" , 2 ,
41
- "number of unique organizations with peers" )
43
+ "number of unique organizations with peers, used if peerOrgNames is not specified" )
44
+ peerOrgNames = flag .String ("peerOrgNames" , "" ,
45
+ "comma-separated list of peer organization names" )
42
46
numPeers = flag .Int ("peersPerOrg" , 1 ,
43
47
"number of peers per organization" )
44
48
numPeerOrgUsers = flag .Int ("peerOrgUsers" , 1 ,
45
49
"number of users per peer organization" )
50
+
46
51
numOrderers = flag .Int ("ordererNodes" , 1 ,
47
- "number of ordering service nodes" )
52
+ "number of ordering service nodes per organization" )
53
+ ordererOrgName = flag .String ("ordererOrgName" , "" ,
54
+ "orderer organization name" )
55
+
48
56
baseDir = flag .String ("baseDir" , "." ,
49
57
"directory in which to place artifacts" )
50
58
)
51
59
52
- var numOrdererOrgs = 1
53
-
54
60
func main () {
61
+
55
62
flag .Parse ()
56
63
57
64
if flag .NFlag () == 0 {
@@ -61,24 +68,22 @@ func main() {
61
68
}
62
69
63
70
genDir := filepath .Join (* baseDir , "crypto-config" )
64
- if * numPeerOrgs > 0 {
71
+ if * peerOrgNames != "" {
72
+ generatePeerOrgs (genDir , strings .Split (* peerOrgNames , "," ))
73
+ } else if * numPeerOrgs > 0 {
65
74
fmt .Printf ("Generating %d peer organization(s) each with %d peer(s) ...\n " ,
66
75
* numPeerOrgs , * numPeers )
67
-
68
- // TODO: add ability to specify peer org names
69
- // for name just use default base name
70
- peerOrgNames := []string {}
71
- for i := 1 ; i <= * numPeerOrgs ; i ++ {
72
- peerOrgNames = append (peerOrgNames , fmt .Sprintf ("%s%d" , peerOrgBaseName , i ))
73
- }
74
- generatePeerOrgs (genDir , peerOrgNames )
75
-
76
+ generatePeerOrgs (genDir , getOrgNames (peerOrgBaseName , * numPeerOrgs ))
76
77
}
77
78
78
- if * numOrderers > 0 {
79
+ if * ordererOrgName != "" {
80
+ fmt .Printf ("Generating orderer organization %s with %d ordering node(s) ...\n " ,
81
+ * ordererOrgName , * numOrderers )
82
+ generateOrdererOrg (genDir , * ordererOrgName )
83
+ } else if numOrdererOrgs > 0 {
79
84
fmt .Printf ("Generating %d orderer organization(s) and %d ordering node(s) ...\n " ,
80
85
numOrdererOrgs , * numOrderers )
81
- generateOrdererOrg (genDir , fmt .Sprintf ("%s1" , orderOrgBaseName ))
86
+ generateOrdererOrg (genDir , fmt .Sprintf ("%s1" , ordererOrgBaseName ))
82
87
}
83
88
84
89
}
@@ -138,6 +143,14 @@ func generatePeerOrgs(baseDir string, orgNames []string) {
138
143
}
139
144
}
140
145
146
+ func getOrgNames (baseName string , count int ) []string {
147
+ orgNames := []string {}
148
+ for i := 1 ; i <= count ; i ++ {
149
+ orgNames = append (orgNames , fmt .Sprintf ("%s%d" , baseName , i ))
150
+ }
151
+ return orgNames
152
+ }
153
+
141
154
func copyAdminCert (usersDir , adminCertsDir , adminUserName string ) error {
142
155
// delete the contents of admincerts
143
156
err := os .RemoveAll (adminCertsDir )
0 commit comments