summaryrefslogtreecommitdiff
path: root/oslo_vmware/rw_handles.py
diff options
context:
space:
mode:
Diffstat (limited to 'oslo_vmware/rw_handles.py')
-rw-r--r--oslo_vmware/rw_handles.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/oslo_vmware/rw_handles.py b/oslo_vmware/rw_handles.py
index b869e10..e0dfc7c 100644
--- a/oslo_vmware/rw_handles.py
+++ b/oslo_vmware/rw_handles.py
@@ -353,7 +353,13 @@ class VmdkHandle(FileHandle):
LOG.debug("Lease for %(url)s is in state: %(state)s.",
{'url': self._url,
'state': state})
- if state == 'ready':
+ if self._get_progress() < 100:
+ LOG.error("Aborting lease for %s due to incomplete transfer.",
+ self._url)
+ self._session.invoke_api(self._session.vim,
+ 'HttpNfcLeaseAbort',
+ self._lease)
+ elif state == 'ready':
LOG.debug("Releasing lease for %s.", self._url)
self._session.invoke_api(self._session.vim,
'HttpNfcLeaseComplete',
@@ -506,7 +512,14 @@ class VmdkWriteHandle(VmdkHandle):
super(VmdkWriteHandle, self).__init__(session, lease, url, self._conn)
def get_imported_vm(self):
- """"Get managed object reference of the VM created for import."""
+ """"Get managed object reference of the VM created for import.
+
+ :raises: VimException
+ """
+ if self._get_progress() < 100:
+ excep_msg = _("Incomplete VMDK upload to %s.") % self._url
+ LOG.exception(excep_msg)
+ raise exceptions.ImageTransferException(excep_msg)
return self._vm_ref
def tell(self):