'Create a SnapMirror mirror target FlexVol for a given source.'

def create_destination_flexvol(self, src_backend_name, dest_backend_name, src_flexvol_name, dest_flexvol_name):

    dest_backend_config = config_utils.get_backend_configuration(dest_backend_name)
    dest_vserver = dest_backend_config.netapp_vserver
    dest_client = config_utils.get_client_for_backend(dest_backend_name, vserver_name=dest_vserver)
    source_backend_config = config_utils.get_backend_configuration(src_backend_name)
    src_vserver = source_backend_config.netapp_vserver
    src_client = config_utils.get_client_for_backend(src_backend_name, vserver_name=src_vserver)
    provisioning_options = src_client.get_provisioning_options_from_flexvol(src_flexvol_name)
    if src_client.is_flexvol_encrypted(src_flexvol_name, src_vserver):
        provisioning_options['encrypt'] = 'true'
    size = provisioning_options.pop('size', None)
    if (not size):
        msg = _('Unable    to    read    the    size    of    the    source    FlexVol    (%s)    to    create    a    SnapMirror    destination.')
        raise exception.NetAppDriverException((msg % src_flexvol_name))
    provisioning_options.pop('volume_type', None)
    source_aggregate = provisioning_options.pop('aggregate')
    aggregate_map = self._get_replication_aggregate_map(src_backend_name, dest_backend_name)
    if (not aggregate_map.get(source_aggregate)):
        msg = _('Unable    to    find    configuration    matching    the    source    aggregate    (%s)    and    the    destination    aggregate.    Option    netapp_replication_aggregate_map    may    be    incorrect.')
        raise exception.NetAppDriverException(message=(msg % source_aggregate))
    destination_aggregate = aggregate_map[source_aggregate]
    dest_client.create_flexvol(dest_flexvol_name, destination_aggregate, size, volume_type='dp', **provisioning_options)
