'Creates a boot disk and links the specified image to it.
If the specified image has not already been uploaded, an Image LU is
created for it.  A Disk LU is then created for the instance and linked
to the Image LU.
:param context: nova context used to retrieve image from glance
:param instance: instance to create the disk for.
:param nova.objects.ImageMeta image_meta:
The metadata of the image of the instance.
:return: The backing pypowervm LU storage object that was created.'

def create_disk_from_image(self, context, instance, image_meta):

    LOG.info('SSP:    Create    boot    disk    from    image    %s.', image_meta.id, instance=instance)
    image_lu = tsk_cs.get_or_upload_image_lu(self._tier, pvm_u.sanitize_file_name_for_api(image_meta.name, prefix=(DiskType.IMAGE + '_'), suffix=('_' + image_meta.checksum)), random.choice(self._vios_uuids), IterableToFileAdapter(IMAGE_API.download(context, image_meta.id)), image_meta.size, upload_type=tsk_stg.UploadType.IO_STREAM)
    boot_lu_name = pvm_u.sanitize_file_name_for_api(instance.name, prefix=(DiskType.BOOT + '_'))
    LOG.info('SSP:    Disk    name    is    %s', boot_lu_name, instance=instance)
    return tsk_stg.crt_lu(self._tier, boot_lu_name, instance.flavor.root_gb, typ=pvm_stg.LUType.DISK, clone=image_lu)[1]
