storage: add new disks to instance, and docstrings
Showing
... | ... | @@ -274,20 +274,56 @@ class Disk(AclBase, TimeStampedModel): |
if instance: | ||
instance.disks.add(disk) | ||
return disk | ||
@classmethod | ||
def create_from_url_async(cls, url, instance=None, params=None, user=None): | ||
"""Create disk object and download data from url asynchronusly. | ||
:param url: image url to download. | ||
:type url: url | ||
Please
register
or
sign in
to reply
|
||
:param instance: instnace object to connect disk | ||
:type instane: vm.models.Instance | ||
:param params: disk custom parameters | ||
:type params: dict | ||
:param user: owner of the disk | ||
:type user: django.contrib.auth.User | ||
:return: Task | ||
:rtype: AsyncResult | ||
""" | ||
return local_tasks.create_from_url.apply_async(kwargs={ | ||
'cls': cls, 'url': url, 'params': params, 'user': user}, | ||
'cls': cls, 'url': url, 'instance': instance, | ||
'params': params, 'user': user}, | ||
queue='localhost.man') | ||
def create_from_url(cls, url, params={}, user=None, task_uuid=None, | ||
abortable_task=None): | ||
@classmethod | ||
def create_from_url(cls, url, instance=None, params=None, user=None, | ||
task_uuid=None, abortable_task=None): | ||
"""Create disk object and download data from url synchronusly. | ||
:param url: image url to download. | ||
:type url: url | ||
:param instance: instnace object to connect disk | ||
:type instane: vm.models.Instance | ||
:param params: disk custom parameters | ||
:type params: dict | ||
:param user: owner of the disk | ||
:type user: django.contrib.auth.User | ||
:return: Task | ||
:rtype: AsyncResult | ||
""" | ||
disk = cls() | ||
disk.filename = str(uuid.uuid4()) | ||
disk.type = "iso" | ||
disk.size = 1 | ||
# TODO get proper datastore | ||
disk.datastore = DataStore.objects.all()[0] | ||
if params: | ||
disk.__dict__.update(params) | ||
disk.save() | ||
if instance: | ||
instance.disks.add(disk) | ||
queue_name = disk.get_remote_queue_name('storage') | ||
def __on_abort(activity, error): | ||
... | ... |