Revision 4944a1f8 snf-cyclades-app/synnefo/logic/backend.py
b/snf-cyclades-app/synnefo/logic/backend.py | ||
---|---|---|
609 | 609 |
details=details) |
610 | 610 |
|
611 | 611 |
|
612 |
def create_instance(vm, nics, flavor, image): |
|
612 |
def create_instance(vm, nics, volumes, flavor, image):
|
|
613 | 613 |
"""`image` is a dictionary which should contain the keys: |
614 | 614 |
'backend_id', 'format' and 'metadata' |
615 | 615 |
|
... | ... | |
628 | 628 |
# Defined in settings.GANETI_CREATEINSTANCE_KWARGS |
629 | 629 |
|
630 | 630 |
kw['disk_template'] = flavor.disk_template |
631 |
kw['disks'] = [{"size": flavor.disk * 1024}] |
|
632 |
provider = flavor.disk_provider |
|
633 |
if provider: |
|
634 |
kw['disks'][0]['provider'] = provider |
|
635 |
kw['disks'][0]['origin'] = flavor.disk_origin |
|
636 |
extra_disk_params = settings.GANETI_DISK_PROVIDER_KWARGS.get(provider) |
|
637 |
if extra_disk_params is not None: |
|
638 |
kw["disks"][0].update(extra_disk_params) |
|
631 |
disks = [] |
|
632 |
for volume in volumes: |
|
633 |
disk = {} |
|
634 |
disk["size"] = volume.size * 1024 |
|
635 |
provider = flavor.disk_provider |
|
636 |
if provider is not None: |
|
637 |
disk["provider"] = provider |
|
638 |
disk["origin"] = volume.source_image["checksum"] |
|
639 |
extra_disk_params = settings.GANETI_DISK_PROVIDER_KWARGS\ |
|
640 |
.get(provider) |
|
641 |
if extra_disk_params is not None: |
|
642 |
disk.update(extra_disk_params) |
|
643 |
disks.append(disk) |
|
644 |
|
|
645 |
kw["disks"] = disks |
|
639 | 646 |
|
640 | 647 |
kw['nics'] = [{"name": nic.backend_uuid, |
641 | 648 |
"network": nic.network.backend_id, |
Also available in: Unified diff