'Creates a clone of the specified volume.'

def create_cloned_volume(self, tgt_volume, src_volume):

    if (src_volume['size'] > tgt_volume['size']):
        msg = (_("create_cloned_volume:    source    volume    %(src_vol)s    size    is    %(src_size)dGB    and    doesn't    fit    in    target    volume    %(tgt_vol)s    of    size    %(tgt_size)dGB.") % {'src_vol': src_volume['name'], 'src_size': src_volume['size'], 'tgt_vol': tgt_volume['name'], 'tgt_size': tgt_volume['size']})
        LOG.error(msg)
        raise exception.InvalidInput(message=msg)
    opts = self._get_vdisk_params(tgt_volume['volume_type_id'], volume_metadata=tgt_volume.get('volume_metadata'))
    pool = utils.extract_host(tgt_volume['host'], 'pool')
    self._helpers.create_copy(src_volume['name'], tgt_volume['name'], src_volume['id'], self.configuration, opts, True, pool=pool)
    if (tgt_volume['size'] > src_volume['size']):
        self._extend_volume_op(tgt_volume, tgt_volume['size'], src_volume['size'])
    if opts['qos']:
        self._helpers.add_vdisk_qos(tgt_volume['name'], opts['qos'])
    ctxt = context.get_admin_context()
    rep_type = self._get_volume_replicated_type(ctxt, tgt_volume)
    if rep_type:
        self._validate_replication_enabled()
        replica_obj = self._get_replica_obj(rep_type)
        replica_obj.volume_replication_setup(ctxt, tgt_volume)
        return {'replication_status': fields.ReplicationStatus.ENABLED}
