File tree 1 file changed +27
-1
lines changed
1 file changed +27
-1
lines changed Original file line number Diff line number Diff line change @@ -451,7 +451,11 @@ func (d *Driver) Remove() error {
451
451
return errors .Wrap (err , "destroying running domain" )
452
452
}
453
453
454
- return dom .Undefine ()
454
+ if err := d .undefineDomain (conn , dom ); err != nil {
455
+ return errors .Wrap (err , "undefine domain" )
456
+ }
457
+
458
+ return nil
455
459
}
456
460
457
461
func (d * Driver ) destroyRunningDomain (dom * libvirt.Domain ) error {
@@ -467,3 +471,25 @@ func (d *Driver) destroyRunningDomain(dom *libvirt.Domain) error {
467
471
468
472
return dom .Destroy ()
469
473
}
474
+
475
+ func (d * Driver ) undefineDomain (conn * libvirt.Connect , dom * libvirt.Domain ) error {
476
+ definedDomains , err := conn .ListDefinedDomains ()
477
+ if err != nil {
478
+ return errors .Wrap (err , "list defined domains" )
479
+ }
480
+
481
+ var found bool
482
+ for _ , domain := range definedDomains {
483
+ if domain == d .MachineName {
484
+ found = true
485
+ break
486
+ }
487
+ }
488
+
489
+ if ! found {
490
+ log .Warnf ("Domain %s not defined, skipping undefine..." , d .MachineName )
491
+ return nil
492
+ }
493
+
494
+ return dom .Undefine ()
495
+ }
You can’t perform that action at this time.
0 commit comments