Skip to content

Commit ae4e959

Browse files
Create connections with gRPC APIs in e2e tests
The helper functions in the network package provide complex implementations to create gRPC connections based on historic internal implementation of Fabric, which do not allow client code access to all of the configuration options available in the gRPC API. This change updates the end-to-end tests to use the gRPC APIs directly to create connections. This demonstrates that client code can access the full configuration capability when creating gRPC connections without significantly more complexity. Signed-off-by: Mark S. Lewis <Mark.S.Lewis@outlook.com>
1 parent 78c76f9 commit ae4e959

4 files changed

Lines changed: 69 additions & 57 deletions

File tree

.github/workflows/golang.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,22 +36,22 @@ jobs:
3636
fail-fast: false
3737
matrix:
3838
include:
39-
- FABRIC_VERSION: "2.5.13"
39+
- FABRIC_VERSION: "2.5.15"
4040
CREATE_CHANNEL: "create_channel"
4141
CONSENSUS: RAFT
42-
- FABRIC_VERSION: "2.5.13"
42+
- FABRIC_VERSION: "2.5.15"
4343
CREATE_CHANNEL: "existing_channel"
4444
CONSENSUS: RAFT
45-
- FABRIC_VERSION: "3.1.1"
45+
- FABRIC_VERSION: "3.1.4"
4646
CREATE_CHANNEL: "create_channel"
4747
CONSENSUS: RAFT
48-
- FABRIC_VERSION: "3.1.1"
48+
- FABRIC_VERSION: "3.1.4"
4949
CREATE_CHANNEL: "existing_channel"
5050
CONSENSUS: RAFT
51-
- FABRIC_VERSION: "3.1.1"
51+
- FABRIC_VERSION: "3.1.4"
5252
CREATE_CHANNEL: "create_channel"
5353
CONSENSUS: BFT
54-
- FABRIC_VERSION: "3.1.1"
54+
- FABRIC_VERSION: "3.1.4"
5555
CREATE_CHANNEL: "existing_channel"
5656
CONSENSUS: BFT
5757
steps:

go.mod

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
module github.com/hyperledger/fabric-admin-sdk
22

3-
go 1.24.0
3+
go 1.25.0
44

55
require (
66
github.com/IBM/sarama v1.46.0
77
github.com/Knetic/govaluate v3.0.0+incompatible
88
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0
99
github.com/hashicorp/go-version v1.7.0
10-
github.com/hyperledger/fabric-gateway v1.8.0
10+
github.com/hyperledger/fabric-gateway v1.10.1
1111
github.com/hyperledger/fabric-protos-go-apiv2 v0.3.7
1212
github.com/mitchellh/mapstructure v1.5.0
1313
github.com/onsi/ginkgo/v2 v2.25.3
1414
github.com/onsi/gomega v1.38.2
1515
github.com/opentracing/opentracing-go v1.2.0
1616
go.uber.org/mock v0.6.0
17-
google.golang.org/grpc v1.75.0
18-
google.golang.org/protobuf v1.36.8
17+
google.golang.org/grpc v1.78.0
18+
google.golang.org/protobuf v1.36.11
1919
gopkg.in/yaml.v3 v3.0.1
2020
)
2121

@@ -37,16 +37,16 @@ require (
3737
github.com/jcmturner/gokrb5/v8 v8.4.4 // indirect
3838
github.com/jcmturner/rpc/v2 v2.0.3 // indirect
3939
github.com/klauspost/compress v1.18.0 // indirect
40-
github.com/miekg/pkcs11 v1.1.1 // indirect
40+
github.com/miekg/pkcs11 v1.1.2 // indirect
4141
github.com/pierrec/lz4/v4 v4.1.22 // indirect
4242
github.com/rcrowley/go-metrics v0.0.0-20250401214520-65e299d6c5c9 // indirect
4343
github.com/rogpeppe/go-internal v1.12.0 // indirect
4444
go.uber.org/automaxprocs v1.6.0 // indirect
4545
go.yaml.in/yaml/v3 v3.0.4 // indirect
46-
golang.org/x/crypto v0.41.0 // indirect
47-
golang.org/x/net v0.43.0 // indirect
48-
golang.org/x/sys v0.35.0 // indirect
49-
golang.org/x/text v0.28.0 // indirect
50-
golang.org/x/tools v0.36.0 // indirect
51-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 // indirect
46+
golang.org/x/crypto v0.44.0 // indirect
47+
golang.org/x/net v0.47.0 // indirect
48+
golang.org/x/sys v0.38.0 // indirect
49+
golang.org/x/text v0.31.0 // indirect
50+
golang.org/x/tools v0.38.0 // indirect
51+
google.golang.org/genproto/googleapis/rpc v0.0.0-20251029180050-ab9386a59fda // indirect
5252
)

go.sum

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKe
6363
github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
6464
github.com/hyperledger/fabric-gateway v1.8.0 h1:OMqvfPCNvmWQ/Djcjate6qSslCkNP4evGSS569oUvBo=
6565
github.com/hyperledger/fabric-gateway v1.8.0/go.mod h1:0i66HQ6ytRd1UOBf58IEsxhAkaf8Alh0KIitrg5M6pA=
66+
github.com/hyperledger/fabric-gateway v1.10.1 h1:nwqMI250b736LSchW2CH2OgtFLVv097Gl9sonS+oupA=
67+
github.com/hyperledger/fabric-gateway v1.10.1/go.mod h1:R0MRojq6s1KhaLH98l09xG0wCm142eC7uNaNz8SAD2E=
6668
github.com/hyperledger/fabric-protos-go-apiv2 v0.3.7 h1:sQ5qv8vQQfwewa1JlCiSCC8dLElmaU2/frLolpgibEY=
6769
github.com/hyperledger/fabric-protos-go-apiv2 v0.3.7/go.mod h1:bJnwzfv03oZQeCc863pdGTDgf5nmCy6Za3RAE7d2XsQ=
6870
github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8=
@@ -91,6 +93,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
9193
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
9294
github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU=
9395
github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
96+
github.com/miekg/pkcs11 v1.1.2 h1:/VxmeAX5qU6Q3EwafypogwWbYryHFmF2RpkJmw3m4MQ=
97+
github.com/miekg/pkcs11 v1.1.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
9498
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
9599
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
96100
github.com/onsi/ginkgo/v2 v2.25.3 h1:Ty8+Yi/ayDAGtk4XxmmfUy4GabvM+MegeB4cDLRi6nw=
@@ -128,21 +132,28 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO
128132
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
129133
github.com/stretchr/testify v1.11.0 h1:ib4sjIrwZKxE5u/Japgo/7SJV3PvgjGiRNAvTVGqQl8=
130134
github.com/stretchr/testify v1.11.0/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
135+
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
131136
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
132137
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
133138
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
134139
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
135140
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
141+
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
136142
go.opentelemetry.io/otel v1.37.0 h1:9zhNfelUvx0KBfu/gb+ZgeAfAgtWrfHJZcAqFC228wQ=
137143
go.opentelemetry.io/otel v1.37.0/go.mod h1:ehE/umFRLnuLa/vSccNq9oS1ErUlkkK71gMcN34UG8I=
144+
go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
138145
go.opentelemetry.io/otel/metric v1.37.0 h1:mvwbQS5m0tbmqML4NqK+e3aDiO02vsf/WgbsdpcPoZE=
139146
go.opentelemetry.io/otel/metric v1.37.0/go.mod h1:04wGrZurHYKOc+RKeye86GwKiTb9FKm1WHtO+4EVr2E=
147+
go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
140148
go.opentelemetry.io/otel/sdk v1.37.0 h1:ItB0QUqnjesGRvNcmAcU0LyvkVyGJ2xftD29bWdDvKI=
141149
go.opentelemetry.io/otel/sdk v1.37.0/go.mod h1:VredYzxUvuo2q3WRcDnKDjbdvmO0sCzOvVAiY+yUkAg=
150+
go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E=
142151
go.opentelemetry.io/otel/sdk/metric v1.37.0 h1:90lI228XrB9jCMuSdA0673aubgRobVZFhbjxHHspCPc=
143152
go.opentelemetry.io/otel/sdk/metric v1.37.0/go.mod h1:cNen4ZWfiD37l5NhS+Keb5RXVWZWpRE+9WyVCpbo5ps=
153+
go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM=
144154
go.opentelemetry.io/otel/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mxVK7z4=
145155
go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0=
156+
go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
146157
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
147158
go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=
148159
go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8=
@@ -160,6 +171,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
160171
golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
161172
golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4=
162173
golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc=
174+
golang.org/x/crypto v0.44.0 h1:A97SsFvM3AIwEEmTBiaxPPTYpDC47w720rdiiUvgoAU=
175+
golang.org/x/crypto v0.44.0/go.mod h1:013i+Nw79BMiQiMsOPcVCB5ZIJbYkerPrGnOa00tvmc=
163176
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
164177
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
165178
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
@@ -183,6 +196,8 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
183196
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
184197
golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=
185198
golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=
199+
golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
200+
golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
186201
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
187202
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
188203
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -192,6 +207,7 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
192207
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
193208
golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
194209
golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
210+
golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
195211
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
196212
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
197213
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -205,6 +221,8 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc
205221
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
206222
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
207223
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
224+
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
225+
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
208226
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
209227
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
210228
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
@@ -214,6 +232,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
214232
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
215233
golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
216234
golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=
235+
golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
236+
golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
217237
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
218238
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
219239
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
@@ -226,6 +246,8 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f
226246
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
227247
golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg=
228248
golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=
249+
golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ=
250+
golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs=
229251
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
230252
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
231253
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -239,15 +261,21 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98
239261
google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
240262
google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 h1:pFyd6EwwL2TqFf8emdthzeX+gZE1ElRq3iM8pui4KBY=
241263
google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
264+
google.golang.org/genproto/googleapis/rpc v0.0.0-20251029180050-ab9386a59fda h1:i/Q+bfisr7gq6feoJnS/DlpdwEL4ihp41fvRiM3Ork0=
265+
google.golang.org/genproto/googleapis/rpc v0.0.0-20251029180050-ab9386a59fda/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
242266
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
243267
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
244268
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
245269
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
246270
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
247271
google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4=
248272
google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ=
273+
google.golang.org/grpc v1.78.0 h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc=
274+
google.golang.org/grpc v1.78.0/go.mod h1:I47qjTo4OKbMkjA/aOOwxDIiPSBofUtQUI5EfpWvW7U=
249275
google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc=
250276
google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
277+
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
278+
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
251279
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
252280
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
253281
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=

test/e2e_test.go

Lines changed: 24 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@ import (
2222
"github.com/hyperledger/fabric-admin-sdk/pkg/network"
2323
"github.com/hyperledger/fabric-admin-sdk/pkg/snapshot"
2424
"github.com/hyperledger/fabric-gateway/pkg/client"
25-
gatewaypb "github.com/hyperledger/fabric-protos-go-apiv2/gateway"
2625

2726
. "github.com/onsi/ginkgo/v2"
2827
. "github.com/onsi/gomega"
28+
"google.golang.org/grpc"
29+
"google.golang.org/grpc/credentials"
2930
"google.golang.org/grpc/status"
3031
)
3132

@@ -39,16 +40,22 @@ const (
3940
snapshotBlockNumber uint64 = 10
4041
)
4142

43+
func newGrpcConnection(node *network.Node) (*grpc.ClientConn, error) {
44+
certPool := x509.NewCertPool()
45+
certPool.AppendCertsFromPEM(node.TLSCACertByte)
46+
transportCredentials := credentials.NewClientTLSFromCert(certPool, node.SslTargetNameOverride)
47+
48+
return grpc.NewClient(node.Addr, grpc.WithTransportCredentials(transportCredentials))
49+
}
50+
4251
func runParallel[T any](args []T, f func(T)) {
4352
var wg sync.WaitGroup
44-
for _, arg := range args {
45-
wg.Add(1)
4653

47-
go func(target T) {
54+
for _, arg := range args {
55+
wg.Go(func() {
4856
defer GinkgoRecover()
49-
defer wg.Done()
50-
f(target)
51-
}(arg)
57+
f(arg)
58+
})
5259
}
5360

5461
wg.Wait()
@@ -59,39 +66,16 @@ func printGrpcError(err error) {
5966
return
6067
}
6168

62-
fmt.Printf("Received error type %T: %s\n", err, err)
63-
64-
var endorseErr *client.EndorseError
65-
var submitErr *client.SubmitError
6669
var commitStatusErr *client.CommitStatusError
67-
var commitErr *client.CommitError
6870

69-
if errors.As(err, &endorseErr) {
70-
fmt.Printf("Endorse error for transaction %s with gRPC status %v: %s\n", endorseErr.TransactionID, status.Code(err), endorseErr)
71-
} else if errors.As(err, &submitErr) {
72-
fmt.Printf("Submit error for transaction %s with gRPC status %v: %s\n", submitErr.TransactionID, status.Code(err), submitErr)
73-
} else if errors.As(err, &commitStatusErr) {
71+
if errors.As(err, &commitStatusErr) {
7472
if errors.Is(err, context.DeadlineExceeded) {
75-
fmt.Printf("Timeout waiting for transaction %s commit status: %s", commitStatusErr.TransactionID, commitStatusErr)
73+
fmt.Printf("Timeout waiting for transaction %s commit status: %s\n", commitStatusErr.TransactionID, commitStatusErr)
7674
} else {
7775
fmt.Printf("Error obtaining commit status for transaction %s with gRPC status %v: %s\n", commitStatusErr.TransactionID, status.Code(commitStatusErr), commitStatusErr)
7876
}
79-
} else if errors.As(err, &commitErr) {
80-
fmt.Printf("Transaction %s failed to commit with status %d: %s\n", commitErr.TransactionID, int32(commitErr.Code), commitErr)
81-
}
82-
83-
statusErr := status.Convert(err)
84-
85-
details := statusErr.Details()
86-
if len(details) > 0 {
87-
fmt.Println("Error Details:")
88-
89-
for _, detail := range details {
90-
switch detail := detail.(type) {
91-
case *gatewaypb.ErrorDetail:
92-
fmt.Printf("- address: %s, mspId: %s, message: %s\n", detail.GetAddress(), detail.GetMspId(), detail.GetMessage())
93-
}
94-
}
77+
} else {
78+
fmt.Println(err)
9579
}
9680
}
9781

@@ -106,13 +90,13 @@ var _ = Describe("e2e", func() {
10690
PrivKeyPath := "../fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/priv_sk"
10791
SignCert := "../fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem"
10892

109-
peer1 := network.Node{
93+
peer1 := &network.Node{
11094
Addr: org1PeerAddress,
11195
TLSCACert: TLSCACert,
11296
}
11397
err = peer1.LoadConfig()
11498
Expect(err).NotTo(HaveOccurred())
115-
peer1Connection, err := network.DialConnection(peer1)
99+
peer1Connection, err := newGrpcConnection(peer1)
116100
Expect(err).NotTo(HaveOccurred())
117101

118102
cert, err := identity.ReadCertificate(SignCert)
@@ -128,13 +112,13 @@ var _ = Describe("e2e", func() {
128112
PrivKeyPath = "../fabric-samples/test-network/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/priv_sk"
129113
SignCert = "../fabric-samples/test-network/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem"
130114

131-
peer2 := network.Node{
115+
peer2 := &network.Node{
132116
Addr: org2PeerAddress,
133117
TLSCACert: TLSCACert,
134118
}
135119
err = peer2.LoadConfig()
136120
Expect(err).NotTo(HaveOccurred())
137-
peer2Connection, err := network.DialConnection(peer2)
121+
peer2Connection, err := newGrpcConnection(peer2)
138122
Expect(err).NotTo(HaveOccurred())
139123

140124
cert2, err := identity.ReadCertificate(SignCert)
@@ -205,13 +189,13 @@ var _ = Describe("e2e", func() {
205189
}
206190
}
207191
//osnURL
208-
order := network.Node{
192+
order := &network.Node{
209193
Addr: "localhost:7050",
210194
TLSCACert: caFile,
211195
}
212196
err = order.LoadConfig()
213197
Expect(err).NotTo(HaveOccurred())
214-
ordererConnection, err := network.DialConnection(order)
198+
ordererConnection, err := newGrpcConnection(order)
215199
Expect(err).NotTo(HaveOccurred())
216200
ctx, cancel := context.WithTimeout(specCtx, 2*time.Minute)
217201
defer cancel()

0 commit comments

Comments
 (0)