Revision e7953d63 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