@@ -354,12 +354,13 @@ def create_ns(self, nsze, ncap, flbas, dps):
354
354
- flbas : new namespace format.
355
355
- dps : new namespace data protection information.
356
356
- Returns:
357
- - return code of the nvme create namespace command.
357
+ - Popen object of the nvme create namespace command.
358
358
"""
359
359
create_ns_cmd = f"{ self .nvme_bin } create-ns { self .ctrl } " + \
360
360
f"--nsze={ str (nsze )} --ncap={ str (ncap )} --flbas={ str (flbas )} " + \
361
- f"--dps={ str (dps )} --verbose"
362
- return self .exec_cmd (create_ns_cmd )
361
+ f"--dps={ str (dps )} --verbose --output-format=json"
362
+ return subprocess .Popen (create_ns_cmd , shell = True ,
363
+ stdout = subprocess .PIPE , encoding = 'utf-8' )
363
364
364
365
def create_and_validate_ns (self , nsid , nsze , ncap , flbas , dps ):
365
366
""" Wrapper for creating and validating a namespace.
@@ -372,8 +373,12 @@ def create_and_validate_ns(self, nsid, nsze, ncap, flbas, dps):
372
373
- Returns:
373
374
- return 0 on success, error code on failure.
374
375
"""
375
- err = self .create_ns (nsze , ncap , flbas , dps )
376
+ proc = self .create_ns (nsze , ncap , flbas , dps )
377
+ err = proc .wait ()
376
378
if err == 0 :
379
+ json_output = json .loads (proc .stdout .read ())
380
+ self .assertEqual (int (json_output ['nsid' ]), nsid ,
381
+ "ERROR : create namespace failed" )
377
382
id_ns_cmd = f"{ self .nvme_bin } id-ns { self .ctrl } " + \
378
383
f"--namespace-id={ str (nsid )} "
379
384
err = subprocess .call (id_ns_cmd ,
0 commit comments