From 9754465f2e30381186621695e499b55c151f75f9 Mon Sep 17 00:00:00 2001 From: Zbigniew Kostrzewa Date: Fri, 14 Jul 2017 07:29:28 +0200 Subject: Fix crash occuring when domain is in state file but doesn't exist in libvirt. --- libvirt/resource_libvirt_domain.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'libvirt') diff --git a/libvirt/resource_libvirt_domain.go b/libvirt/resource_libvirt_domain.go index 5861eeea..924467a6 100644 --- a/libvirt/resource_libvirt_domain.go +++ b/libvirt/resource_libvirt_domain.go @@ -156,9 +156,17 @@ func resourceLibvirtDomainExists(d *schema.ResourceData, meta interface{}) (bool if virConn == nil { return false, fmt.Errorf("The libvirt connection was nil.") } + domain, err := virConn.LookupDomainByUUIDString(d.Id()) + if err != nil { + if err.(libvirt.Error).Code == libvirt.ERR_NO_DOMAIN { + return false, nil + } + return false, err + } defer domain.Free() - return err == nil, err + + return true, nil } func resourceLibvirtDomainCreate(d *schema.ResourceData, meta interface{}) error { -- cgit v1.2.3