'Create a clone from source volume.
- attach source volume
- create and attach new volume
- copy data from attached source volume to attached new volume
- detach both volumes'

@kaminario_logger
def create_cloned_volume(self, volume, src_vref):

    clone_name = self.get_volume_name(volume.id)
    src_name = self.get_volume_name(src_vref.id)
    src_vol = self.client.search('volumes', name=src_name)
    src_map = self.client.search('mappings', volume=src_vol)
    src_attach_info = dest_attach_info = None
    if (src_map.total != 0):
        msg = _('K2    driver    does    not    support    clone    of    a    attached    volume.    To    get    this    done,    create    a    snapshot    from    the    attached    volume    and    then    create    a    volume    from    the    snapshot.')
        LOG.error(msg)
        raise exception.KaminarioCinderDriverException(reason=msg)
    try:
        properties = utils.brick_get_connector_properties()
        conn = self.initialize_connection(src_vref, properties)
        src_attach_info = self._connect_device(conn)
        self.create_volume(volume)
        conn = self.initialize_connection(volume, properties)
        dest_attach_info = self._connect_device(conn)
        vol_utils.copy_volume(src_attach_info['device']['path'], dest_attach_info['device']['path'], (src_vref.size * units.Ki), self.configuration.volume_dd_blocksize, sparse=True)
        self._kaminario_disconnect_volume(src_attach_info, dest_attach_info)
        self.terminate_connection(volume, properties)
        self.terminate_connection(src_vref, properties)
    except Exception as ex:
        self._kaminario_disconnect_volume(src_attach_info, dest_attach_info)
        self.terminate_connection(src_vref, properties)
        self.terminate_connection(volume, properties)
        self.delete_volume(volume)
        LOG.exception('Create    a    clone:    %s    failed.', clone_name)
        raise exception.KaminarioCinderDriverException(reason=ex)
