Browse Source

Bug 23137: Move cache flushing to the method

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
20.05.x
Jonathan Druart 1 year ago
committed by Martin Renvoize
parent
commit
11bf5d7afa
Signed by: martin.renvoize GPG Key ID: 422B469130441A0F
  1. 7
      Koha/SearchEngine/Elasticsearch.pm
  2. 13
      admin/searchengine/elasticsearch/mappings.pl
  3. 4
      misc/search_tools/rebuild_elasticsearch.pl
  4. 11
      t/db_dependent/Koha/SearchEngine/Elasticsearch/Reset.t

7
Koha/SearchEngine/Elasticsearch.pm

@ -26,6 +26,7 @@ use Koha::Exceptions::Config;
use Koha::Exceptions::Elasticsearch;
use Koha::SearchFields;
use Koha::SearchMarcMaps;
use Koha::Caches;
use C4::Heading;
use Carp;
@ -382,6 +383,12 @@ sub reset_elasticsearch_mappings {
}
}
}
my $cache = Koha::Caches->get_instance();
$cache->clear_from_cache('elasticsearch_search_fields_staff_client');
$cache->clear_from_cache('elasticsearch_search_fields_opac');
# FIXME return the mappings?
}
# This overrides the accessor provided by Class::Accessor so that if

13
admin/searchengine/elasticsearch/mappings.pl

@ -78,12 +78,6 @@ my $update_mappings = sub {
}
};
my $cache = Koha::Caches->get_instance();
my $clear_cache = sub {
$cache->clear_from_cache('elasticsearch_search_fields_staff_client');
$cache->clear_from_cache('elasticsearch_search_fields_opac');
};
if ( $op eq 'edit' ) {
$schema->storage->txn_begin;
@ -170,13 +164,16 @@ if ( $op eq 'edit' ) {
} else {
push @messages, { type => 'message', code => 'success_on_update' };
$schema->storage->txn_commit;
$clear_cache->();
my $cache = Koha::Caches->get_instance();
$cache->clear_from_cache('elasticsearch_search_fields_staff_client');
$cache->clear_from_cache('elasticsearch_search_fields_opac');
$update_mappings->();
}
}
elsif( $op eq 'reset_confirmed' ) {
Koha::SearchEngine::Elasticsearch->reset_elasticsearch_mappings;
$clear_cache->();
push @messages, { type => 'message', code => 'success_on_reset' };
}
elsif( $op eq 'reset_confirm' ) {

4
misc/search_tools/rebuild_elasticsearch.pl

@ -112,7 +112,6 @@ use Koha::MetadataRecord::Authority;
use Koha::BiblioUtils;
use Koha::SearchEngine::Elasticsearch;
use Koha::SearchEngine::Elasticsearch::Indexer;
use Koha::Caches;
use MARC::Field;
use MARC::Record;
use Modern::Perl;
@ -156,9 +155,6 @@ _sanity_check();
if ($reset){
Koha::SearchEngine::Elasticsearch->reset_elasticsearch_mappings;
my $cache = Koha::Caches->get_instance();
$cache->clear_from_cache('elasticsearch_search_fields_staff_client');
$cache->clear_from_cache('elasticsearch_search_fields_opac');
$delete = 1;
}

11
t/db_dependent/Koha/SearchEngine/Elasticsearch/Reset.t

@ -17,10 +17,11 @@
use Modern::Perl;
use Test::More tests => 4;
use Test::More tests => 5;
use Test::MockModule;
use Koha::Database;
use Koha::Caches;
my $indexes = {
'authorities' => {
@ -54,8 +55,12 @@ Koha::SearchFields->search->delete;
Koha::SearchMarcMaps->search->delete;
$schema->resultset('SearchMarcToField')->search->delete;
Koha::SearchEngine::Elasticsearch->reset_elasticsearch_mappings;
my $cache = Koha::Caches->get_instance();
is( $cache->get_from_cache('elasticsearch_search_fields_staff_client'), undef, 'Cache has been flushed by reset_elasticsearch_mappings' );
my $search_fields = Koha::SearchFields->search({});
is($search_fields->count, 2, 'There is 2 search fields after reset');
@ -66,3 +71,7 @@ my $title_sf = Koha::SearchFields->search({ name => 'title' })->next;
is($title_sf->weight, '20.00', 'Title search field is weighted with 20');
$schema->storage->txn_rollback;
$cache = Koha::Caches->get_instance();
$cache->clear_from_cache('elasticsearch_search_fields_staff_client');
$cache->clear_from_cache('elasticsearch_search_fields_opac');
Loading…
Cancel
Save