diff options
author | Duncan Mac-Vicar P <dmacvicar@suse.de> | 2016-03-12 23:56:39 +0100 |
---|---|---|
committer | Duncan Mac-Vicar P <dmacvicar@suse.de> | 2016-03-12 23:56:39 +0100 |
commit | 39d00e7064a2e51a15c428157b045b2ed36302aa (patch) | |
tree | 86b131d108f63e61ec227d552cc56be818e7951d | |
parent | f15082913e55eaf179a9f74338ef285071c05bd1 (diff) | |
download | terraform-provider-libvirt-39d00e7064a2e51a15c428157b045b2ed36302aa.tar terraform-provider-libvirt-39d00e7064a2e51a15c428157b045b2ed36302aa.tar.gz |
this bindings require us to manually free the wrappers
-rw-r--r-- | libvirt/resource_libvirt_domain.go | 5 | ||||
-rw-r--r-- | libvirt/resource_libvirt_volume.go | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/libvirt/resource_libvirt_domain.go b/libvirt/resource_libvirt_domain.go index 24ecf324..b068f8ec 100644 --- a/libvirt/resource_libvirt_domain.go +++ b/libvirt/resource_libvirt_domain.go @@ -106,6 +106,7 @@ func resourceLibvirtDomainCreate(d *schema.ResourceData, meta interface{}) error if err != nil { return fmt.Errorf("Error crearing libvirt domain: %s", err) } + defer domain.Free() id, err := domain.GetID() if err != nil { @@ -138,6 +139,7 @@ func resourceLibvirtDomainRead(d *schema.ResourceData, meta interface{}) error { if err != nil { return fmt.Errorf("Error retrieving libvirt domain: %s", err) } + defer domain.Free() xmlDesc, err := domain.GetXMLDesc(0) if err != nil { @@ -160,11 +162,13 @@ func resourceLibvirtDomainRead(d *schema.ResourceData, meta interface{}) error { if err != nil { return fmt.Errorf("Error retrieving pool for disk: %s", err) } + defer virPool.Free() virVol, err := virPool.LookupStorageVolByName(diskDef.Source.Volume) if err != nil { return fmt.Errorf("Error retrieving volume for disk: %s", err) } + defer virVol.Free() virVolKey, err := virVol.GetKey() if err != nil { @@ -196,6 +200,7 @@ func resourceLibvirtDomainDelete(d *schema.ResourceData, meta interface{}) error if err != nil { return fmt.Errorf("Error retrieving libvirt domain: %s", err) } + defer domain.Free() if err := domain.Destroy(); err != nil { return fmt.Errorf("Couldn't destroy libvirt domain: %s", err) diff --git a/libvirt/resource_libvirt_volume.go b/libvirt/resource_libvirt_volume.go index df0be59d..cf16a6d1 100644 --- a/libvirt/resource_libvirt_volume.go +++ b/libvirt/resource_libvirt_volume.go @@ -81,6 +81,7 @@ func resourceLibvirtVolumeCreate(d *schema.ResourceData, meta interface{}) error if err != nil { return fmt.Errorf("can't find storage pool '%s'", poolName) } + defer pool.Free() // Refresh the pool of the volume so that libvirt knows it is // not longer in use. @@ -147,6 +148,8 @@ func resourceLibvirtVolumeCreate(d *schema.ResourceData, meta interface{}) error if err != nil { return fmt.Errorf("Error creating libvirt volume: %s", err) } + defer volume.Free() + // we use the key as the id key, err := volume.GetKey() if err != nil { @@ -205,6 +208,7 @@ func resourceLibvirtVolumeDelete(d *schema.ResourceData, meta interface{}) error if err != nil { return fmt.Errorf("Can't retrieve volume %s", d.Id()) } + defer volume.Free() // Refresh the pool of the volume so that libvirt knows it is // not longer in use. @@ -212,6 +216,7 @@ func resourceLibvirtVolumeDelete(d *schema.ResourceData, meta interface{}) error if err != nil { return fmt.Errorf("Error retrieving pool for volume: %s", err) } + defer volPool.Free() err = volPool.Refresh(0) if err != nil { |