summaryrefslogtreecommitdiff
path: root/libvirt/cloudinit_def.go
diff options
context:
space:
mode:
authorFlavio Castelli <fcastelli@suse.com>2017-05-27 00:08:27 +0200
committerFlavio Castelli <fcastelli@suse.com>2017-05-27 00:08:27 +0200
commit392b153595f220abef45da262ec4ffab4fcb969a (patch)
tree1bba877887c891fa7c3d9d7da3dc94f10db62f60 /libvirt/cloudinit_def.go
parent2817006523fead9169dbbdf06212df620b72aad8 (diff)
downloadterraform-provider-libvirt-392b153595f220abef45da262ec4ffab4fcb969a.tar
terraform-provider-libvirt-392b153595f220abef45da262ec4ffab4fcb969a.tar.gz
DRY code
Provide a generic function to return a copier to be used with `img.Import`. This reduces code duplication. Signed-off-by: Flavio Castelli <fcastelli@suse.com>
Diffstat (limited to 'libvirt/cloudinit_def.go')
-rw-r--r--libvirt/cloudinit_def.go21
1 files changed, 2 insertions, 19 deletions
diff --git a/libvirt/cloudinit_def.go b/libvirt/cloudinit_def.go
index bdba94bc..ed91b57e 100644
--- a/libvirt/cloudinit_def.go
+++ b/libvirt/cloudinit_def.go
@@ -108,26 +108,9 @@ func (ci *defCloudInit) CreateAndUpload(virConn *libvirt.VirConnection) (string,
defer volume.Free()
// upload ISO file
- copier := func(src io.Reader) error {
- stream, err := libvirt.NewVirStream(virConn, 0)
- if err != nil {
- return err
- }
- defer stream.Close()
-
- volume.Upload(stream, 0, uint64(size), 0)
-
- n, err := io.Copy(stream, src)
- if err != nil {
- return fmt.Errorf("Error while downloading %s: %s", img.String(), err)
- }
- log.Printf("%d bytes uploaded\n", n)
- return nil
- }
-
- err = img.Import(copier, volumeDef)
+ err = img.Import(newCopier(virConn, volume, uint64(size)), volumeDef)
if err != nil {
- return "", err
+ return "", fmt.Errorf("Error while uploading cloudinit %s: %s", img.String(), err)
}
key, err := volume.GetKey()