Commit 5e2da567 by Bach Dániel

Merge branch 'disk-download-enhancement' into 'master'

Disk Download Enhancement

This branch will solve #176

  handle http errors (404)
  what do with websites, images, etc
  add the url to the result

 needs new storagedriver
parents 9d513b83 5ac14b00
...@@ -360,13 +360,14 @@ class Disk(AclBase, TimeStampedModel): ...@@ -360,13 +360,14 @@ class Disk(AclBase, TimeStampedModel):
queue=queue_name) queue=queue_name)
while True: while True:
try: try:
size = remote.get(timeout=5) result = remote.get(timeout=5)
break break
except TimeoutError: except TimeoutError:
if task is not None and task.is_aborted(): if task is not None and task.is_aborted():
AbortableAsyncResult(remote.id).abort() AbortableAsyncResult(remote.id).abort()
raise Exception("Download aborted by user.") raise Exception("Download aborted by user.")
disk.size = size disk.size = result['size']
disk.type = result['type']
disk.is_ready = True disk.is_ready = True
disk.save() disk.save()
return disk return disk
......
...@@ -137,7 +137,8 @@ class DownloadDiskOperation(InstanceOperation): ...@@ -137,7 +137,8 @@ class DownloadDiskOperation(InstanceOperation):
if self.instance.status not in ['STOPPED', 'PENDING']: if self.instance.status not in ['STOPPED', 'PENDING']:
raise self.instance.WrongStateError(self.instance) raise self.instance.WrongStateError(self.instance)
def _operation(self, user, url, task, name=None): def _operation(self, user, url, task, activity, name=None):
activity.result = url
# TODO implement with hot-attach when it'll be available # TODO implement with hot-attach when it'll be available
from storage.models import Disk from storage.models import Disk
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment