@@ -119,7 +119,6 @@ def lifecycle_approve_for_my_org(self, orderer_url, channel_name, cc_name,
119
119
The administrator can use the peer lifecycle chaincode approveformyorg subcommand to approve the chain code on
120
120
behalf of the organization.
121
121
:param orderer_url: orderer accessable url
122
- :param orderer_tls_rootcert: orderer tls certificate
123
122
:param channel_name: channel name
124
123
:param cc_name: chaincode name
125
124
:param chaincode_version: chaincode version
@@ -216,96 +215,113 @@ def lifecycle_query_approved(self, channel_name, cc_name):
216
215
217
216
return return_code , chaincodes_info
218
217
219
- def lifecycle_check_commit_readiness (self , orderer_url , orderer_tls_rootcert , channel_name , cc_name , cc_version ,
220
- policy , sequence = 1 ):
218
+ def lifecycle_check_commit_readiness (self , channel_name , cc_name , cc_version , sequence = 1 ):
221
219
"""
222
-
223
- :param orderer_url:orderer accessable url
224
- :param orderer_tls_rootcert:orderer tls certificate
225
220
:param channel_name:channel name
226
221
:param cc_name: chaincode name
227
222
:param cc_version: chaincode version
228
- :param policy:chaincode policy
229
223
:param sequence:The channel chain code defines the serial number. The default value is 1
230
224
:return:
231
225
"""
232
226
try :
227
+ ORDERER_CA = os .getenv ("ORDERER_CA" )
228
+ command = []
233
229
if os .getenv ("CORE_PEER_TLS_ENABLED" ) == "false" or os .getenv ("CORE_PEER_TLS_ENABLED" ) is None :
234
- res = subprocess .Popen ("{} lifecycle chaincode checkcommitreadiness --output json "
235
- " --channelID {} --name {} --version {} --init-required --sequence {} "
236
- "--signature-policy {}"
237
- .format (self .peer , channel_name , cc_name , cc_version , sequence , policy ),
238
- shell = True , stdout = subprocess .PIPE , stderr = subprocess .PIPE )
239
- stdout , stderr = res .communicate ()
240
- return_code = res .returncode
241
- if return_code == 0 :
242
- content = str (stdout , encoding = "utf-8" )
243
- chaincodes_info = json .loads (content )
244
- return return_code , chaincodes_info
245
- else :
246
- stderr = str (stderr , encoding = "utf-8" )
247
- return return_code , stderr
230
+ command = [
231
+ self .peer ,
232
+ "lifecycle" , "chaincode" , "checkcommitreadiness" ,
233
+ "--channelID" , channel_name ,
234
+ "--name" , cc_name ,
235
+ "--version" , cc_version ,
236
+ "--sequence" , str (sequence ),
237
+ "--output" , "json" ,
238
+ ]
248
239
else :
249
- res = subprocess .Popen ("{} lifecycle chaincode checkcommitreadiness --output json "
250
- "-o {} --tls --cafile {} --channelID {} --name {} --version {} "
251
- "--signature-policy {} --init-required --sequence {}"
252
- .format (self .peer , orderer_url , orderer_tls_rootcert , channel_name , cc_name ,
253
- cc_version , policy , sequence ),
254
- shell = True , stdout = subprocess .PIPE , stderr = subprocess .PIPE )
255
- stdout , stderr = res .communicate ()
256
- return_code = res .returncode
257
- if return_code == 0 :
258
- content = str (stdout , encoding = "utf-8" )
259
- chaincodes_info = json .loads (content )
260
- return return_code , chaincodes_info
261
- else :
262
- stderr = str (stderr , encoding = "utf-8" )
263
- return return_code , stderr
240
+ command = [
241
+ self .peer ,
242
+ "lifecycle" , "chaincode" , "checkcommitreadiness" ,
243
+ "--channelID" , channel_name ,
244
+ "--name" , cc_name ,
245
+ "--version" , cc_version ,
246
+ "--sequence" , str (sequence ),
247
+ "--tls" ,
248
+ "--cafile" , ORDERER_CA ,
249
+ "--output" , "json" ,
250
+ ]
251
+
252
+ LOG .info (" " .join (command ))
253
+
254
+ res = subprocess .Popen (command , shell = False ,
255
+ stdout = subprocess .PIPE , stderr = subprocess .PIPE )
256
+ stdout , stderr = res .communicate ()
257
+ return_code = res .returncode
258
+ if return_code == 0 :
259
+ content = str (stdout , encoding = "utf-8" )
260
+ chaincodes_info = json .loads (content )
261
+ return return_code , chaincodes_info
262
+ else :
263
+ stderr = str (stderr , encoding = "utf-8" )
264
+ return return_code , stderr
264
265
except Exception as e :
265
- err_msg = "lifecycle_check_commit_readiness failed for {}!" .format (
266
- e )
266
+ err_msg = "lifecycle_check_commit_readiness failed for {}!" .format (e )
267
267
raise Exception (err_msg )
268
268
269
- def lifecycle_commit (self , orderer_url , orderer_tls_rootcert , channel_name , cc_name , chaincode_version ,
270
- policy , peerlist , peer_root_certs , sequency = 1 ):
269
+ def lifecycle_commit (self , orderer_url , channel_name , cc_name , chaincode_version , sequence , policy , peer_list = [], peer_root_certs = [], init_flag = False ):
271
270
"""
272
271
The administrator can submit the chain code definition to the specified channel by using the peer lifecycle
273
272
chain code commit subcommand
274
273
:param orderer_url: orderer accessable url
275
- :param orderer_tls_rootcert:orderer tls certificate
276
274
:param channel_name:channel name
277
275
:param cc_name:chaincode name
278
276
:param chaincode_version:chaincode version
277
+ :param sequence:The channel chain code defines the serial number. The default value is 1
279
278
:param policy:chaincode policy
280
- :param peerlist : the list of peerAddress
279
+ :param peer_list : the list of peerAddress
281
280
:param peer_root_certs: the list of peer_root_certs, the orderer should be same as peerlist's.
282
- :param sequency:The channel chain code defines the serial number. The default value is 1
281
+ :param init_flag:if the chaincode is first init.
283
282
:return:
284
283
"""
285
284
try :
286
- peer_addresses_format = " --peerAddresses {} --tlsRootCertFiles {}"
287
- command_str_with_tls = "{} lifecycle chaincode commit -o {} --tls --cafile {} " \
288
- "--channelID {} --name {} --version {} --init-required --sequence {} " \
289
- "--signature-policy {}"
290
- command_str_without_tls = "{} lifecycle chaincode commit -o {} --channelID {} --name {} " \
291
- "--version {} --init-required --sequence {} --signature-policy {}"
292
-
293
- peer_addressed = []
294
- for i in range (len (peerlist )):
295
- peer_addressed .append (peerlist [i ])
296
- peer_addressed .append (peer_root_certs [i ])
285
+ command = []
297
286
if os .getenv ("CORE_PEER_TLS_ENABLED" ) == "false" or os .getenv ("CORE_PEER_TLS_ENABLED" ) is None :
298
- for i in range (len (peerlist )):
299
- command_str_without_tls = command_str_without_tls + peer_addresses_format
300
- res = os .system (command_str_without_tls .format (self .peer , orderer_url , channel_name , cc_name ,
301
- chaincode_version , sequency , policy , * peer_addressed )) # --collections-config {}
287
+ command = [
288
+ self .peer ,
289
+ "lifecycle" , "chaincode" , "commit" ,
290
+ "-o" , orderer_url ,
291
+ "--channelID" , channel_name ,
292
+ "--name" , cc_name ,
293
+ "--version" , chaincode_version ,
294
+ "--sequence" , str (sequence ),
295
+ ]
302
296
else :
303
- for i in range (len (peerlist )):
304
- command_str_with_tls = command_str_with_tls + peer_addresses_format
305
-
306
- res = os .system (command_str_with_tls .format (self .peer , orderer_url , orderer_tls_rootcert , channel_name ,
307
- cc_name , chaincode_version , sequency , policy , * peer_addressed ))
297
+ ORDERER_CA = os .getenv ("ORDERER_CA" )
298
+ command = [
299
+ self .peer ,
300
+ "lifecycle" , "chaincode" , "commit" ,
301
+ "-o" , orderer_url ,
302
+ "--ordererTLSHostnameOverride" , orderer_url .split (":" )[0 ],
303
+ "--channelID" , channel_name ,
304
+ "--name" , cc_name ,
305
+ "--version" , chaincode_version ,
306
+ "--sequence" , str (sequence ),
307
+ "--tls" ,
308
+ "--cafile" , ORDERER_CA ,
309
+ ]
308
310
311
+ for i in range (len (peer_list )):
312
+ command .append ("--peerAddresses" )
313
+ command .append (peer_list [i ])
314
+ command .append ("--tlsRootCertFiles" )
315
+ command .append (peer_root_certs [i ])
316
+
317
+ if init_flag :
318
+ command .append ("--init-required" )
319
+ if policy :
320
+ command .append ("--signature-policy" )
321
+ command .append (policy )
322
+
323
+ LOG .info (" " .join (command ))
324
+ res = os .system (" " .join (command ))
309
325
res = res >> 8
310
326
return res
311
327
@@ -321,10 +337,16 @@ def lifecycle_query_committed(self, channel_name, cc_name):
321
337
:return: chaincodes info has commited in channel of the cc_name
322
338
"""
323
339
try :
324
- res = subprocess .Popen ("{} lifecycle chaincode querycommitted --channelID {} "
325
- "--output json --name {}" .format (
326
- self .peer , channel_name , cc_name ),
327
- shell = True , stdout = subprocess .PIPE , stderr = subprocess .PIPE )
340
+ command = [
341
+ self .peer ,
342
+ "lifecycle" , "chaincode" , "querycommitted" ,
343
+ "--channelID" , channel_name ,
344
+ "--output" , "json" ,
345
+ "--name" , cc_name ,
346
+ ]
347
+ LOG .info (" " .join (command ))
348
+ res = subprocess .Popen (command , shell = False ,
349
+ stdout = subprocess .PIPE , stderr = subprocess .PIPE )
328
350
stdout , stderr = res .communicate ()
329
351
return_code = res .returncode
330
352
if return_code == 0 :
0 commit comments