'Recreate parts of export if necessary.
:param volume: reference of volume to be exported'

def _do_export(self, _ctx, volume):

    zvol_name = self._get_zvol_name(volume['name'])
    target_name = self._get_target_name(volume)
    target_group_name = self._get_target_group_name(target_name)
    entry = None
    if (not self._lu_exists(zvol_name)):
        try:
            entry = self.nms.scsidisk.create_lu(zvol_name, {})
        except exception.NexentaException as exc:
            if ('in    use' not in exc.args[0]):
                raise
            LOG.info('Ignored    LU    creation    error    "%s"    while    ensuring    export.', exc)
    if (not self._is_lu_shared(zvol_name)):
        try:
            entry = self.nms.scsidisk.add_lun_mapping_entry(zvol_name, {'target_group': target_group_name})
        except exception.NexentaException as exc:
            if ('view    entry    exists' not in exc.args[0]):
                raise
            LOG.info('Ignored    LUN    mapping    entry    addition    error    "%s"    while    ensuring    export.', exc)
    model_update = {}
    if entry:
        provider_location = ('%(host)s:%(port)s,1    %(name)s    %(lun)s' % {'host': self.nms_host, 'port': self.configuration.nexenta_iscsi_target_portal_port, 'name': target_name, 'lun': entry['lun']})
        model_update = {'provider_location': provider_location}
    return model_update
