diff options
Diffstat (limited to 'oslo_vmware/rw_handles.py')
-rw-r--r-- | oslo_vmware/rw_handles.py | 17 |
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): |