'Creates volume snapshot then clones volume.'

def _clone_volume_to_volume(self, volume_name, clone_name, volume_display_name, volume_id, share=None, dst=None, image_id=None):

    (__, path) = self._get_export_ip_path(volume_id, share)
    volume_path = ('%s/%s' % (path, volume_name))
    if dst:
        (___, dst_path) = self._get_export_ip_path(None, dst)
        clone_path = ('%s/%s-d' % (dst_path, clone_name))
    else:
        clone_path = ('%s/%s-d' % (path, clone_name))
    with self._get_client() as c:
        if (share and image_id):
            snapshot_id = self._create_image_snapshot(volume_name, share, image_id, volume_display_name)
        else:
            snapshot_id = c.create_snapshot(volume_path, volume_display_name, volume_id, volume_name, deletion_policy='DELETE_ON_ZERO_CLONE_REFERENCES')
        c.clone_volume(snapshot_id, clone_path)
    self._move_cloned_volume(clone_name, volume_id, (dst or share))
