diff options
author | Flavio Castelli <fcastelli@suse.com> | 2017-05-27 00:08:27 +0200 |
---|---|---|
committer | Flavio Castelli <fcastelli@suse.com> | 2017-05-27 00:08:27 +0200 |
commit | 392b153595f220abef45da262ec4ffab4fcb969a (patch) | |
tree | 1bba877887c891fa7c3d9d7da3dc94f10db62f60 /libvirt/cloudinit_def.go | |
parent | 2817006523fead9169dbbdf06212df620b72aad8 (diff) | |
download | terraform-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.go | 21 |
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() |