@@ -356,35 +356,7 @@ def create_vms(request, host):
356
356
vdis = []
357
357
vbds = []
358
358
for marker in markers .args :
359
- vm_name = marker ["name" ]
360
- vm_template = marker ["template" ]
361
-
362
- logging .info (">> Install VM %r from template %r" , vm_name , vm_template )
363
-
364
- vm = host .vm_from_template (vm_name , vm_template )
365
-
366
- # VM is now created, make sure we clean it up on any subsequent failure
367
- vms .append (vm )
368
-
369
- if "vdis" in marker :
370
- for vdi_def in marker ["vdis" ]:
371
- sr = SR (host .main_sr_uuid (), host .pool )
372
- vdi = sr .create_vdi (vdi_def ["name" ], vdi_def ["size" ])
373
- vdis .append (vdi )
374
- # connect to VM
375
- vbd = vm .create_vbd (vdi_def ["device" ], vdi .uuid )
376
- vbds .append (vbd )
377
- vbd .param_set (param_name = "userdevice" , value = vdi_def ["userdevice" ])
378
-
379
- if "vifs" in marker :
380
- for vif_def in marker ["vifs" ]:
381
- vm .create_vif (vif_def ["index" ], vif_def ["network_uuid" ])
382
-
383
- if "params" in marker :
384
- for param_def in marker ["params" ]:
385
- logging .info ("Setting param %s" , param_def )
386
- vm .param_set (** param_def )
387
-
359
+ _create_vm (marker , host , vms , vdis , vbds )
388
360
yield vms
389
361
390
362
except Exception :
@@ -402,6 +374,36 @@ def create_vms(request, host):
402
374
logging .info ("<< Destroy VM %s" , vm .uuid )
403
375
vm .destroy (verify = True )
404
376
377
+ def _create_vm (marker , host , vms , vdis , vbds ):
378
+ vm_name = marker ["name" ]
379
+ vm_template = marker ["template" ]
380
+
381
+ logging .info (">> Install VM %r from template %r" , vm_name , vm_template )
382
+
383
+ vm = host .vm_from_template (vm_name , vm_template )
384
+
385
+ # VM is now created, make sure we clean it up on any subsequent failure
386
+ vms .append (vm )
387
+
388
+ if "vdis" in marker :
389
+ for vdi_def in marker ["vdis" ]:
390
+ sr = SR (host .main_sr_uuid (), host .pool )
391
+ vdi = sr .create_vdi (vdi_def ["name" ], vdi_def ["size" ])
392
+ vdis .append (vdi )
393
+ # connect to VM
394
+ vbd = vm .create_vbd (vdi_def ["device" ], vdi .uuid )
395
+ vbds .append (vbd )
396
+ vbd .param_set (param_name = "userdevice" , value = vdi_def ["userdevice" ])
397
+
398
+ if "vifs" in marker :
399
+ for vif_def in marker ["vifs" ]:
400
+ vm .create_vif (vif_def ["index" ], vif_def ["network_uuid" ])
401
+
402
+ if "params" in marker :
403
+ for param_def in marker ["params" ]:
404
+ logging .info ("Setting param %s" , param_def )
405
+ vm .param_set (** param_def )
406
+
405
407
@pytest .fixture (scope = "module" )
406
408
def running_vm (imported_vm ):
407
409
vm = imported_vm
0 commit comments