summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlavio Castelli <fcastelli@suse.com>2017-05-26 15:46:22 +0200
committerFlavio Castelli <fcastelli@suse.com>2017-05-26 15:48:06 +0200
commit8aab6118f495e72905a6961672156d49221679aa (patch)
tree27f90ebde66c08b43fbd49ed86672abaf8949cea
parent686015805f14b93e7ef4d6d5a5655ab2b8154b79 (diff)
downloadterraform-provider-libvirt-8aab6118f495e72905a6961672156d49221679aa.tar
terraform-provider-libvirt-8aab6118f495e72905a6961672156d49221679aa.tar.gz
Replace cryptic error with better one
When the remote source was not found the check for its size failed because the size was empty, causing the to integer conversion to fail. The new code ensures the remote file exists before trying to convert its size. Signed-off-by: Flavio Castelli <fcastelli@suse.com>
-rw-r--r--libvirt/utils_volume.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/libvirt/utils_volume.go b/libvirt/utils_volume.go
index 6793124c..594d1f68 100644
--- a/libvirt/utils_volume.go
+++ b/libvirt/utils_volume.go
@@ -76,8 +76,21 @@ func (i *httpImage) Size() (uint64, error) {
if err != nil {
return 0, err
}
+ if response.StatusCode != 200 {
+ return 0,
+ fmt.Errorf(
+ "Error accessing remote resource: %s - %s",
+ i.url.String(),
+ response.Status)
+ }
+
length, err := strconv.Atoi(response.Header.Get("Content-Length"))
if err != nil {
+ err = fmt.Errorf(
+ "Error while getting Content-Length of \"%s\": %s - got %s",
+ i.url.String(),
+ err,
+ response.Header.Get("Content-Length"))
return 0, err
}
return uint64(length), nil