@@ -, +, @@
60
koha-elasticsearch --rebuild kohadev
---
Koha/SearchEngine/Elasticsearch.pm | 32 +++++++++----------
.../Koha/SearchEngine/Elasticsearch.t | 5 +--
2 files changed, 18 insertions(+), 19 deletions(-)
--- a/Koha/SearchEngine/Elasticsearch.pm
+++ a/Koha/SearchEngine/Elasticsearch.pm
@@ -1308,34 +1308,32 @@ sub _read_configuration {
);
}
- if ( $conf && $conf->{server} ) {
- my $nodes = $conf->{server};
- if ( ref($nodes) eq 'ARRAY' ) {
- $configuration->{nodes} = $nodes;
- }
- else {
- $configuration->{nodes} = [$nodes];
- }
- }
- else {
+ unless ( exists $conf->{server} ) {
Koha::Exceptions::Config::MissingEntry->throw(
"Missing / entry in koha-conf.xml"
);
}
- if ( defined $conf->{index_name} ) {
- $configuration->{index_name} = $conf->{index_name};
- }
- else {
+ unless ( exists $conf->{index_name} ) {
Koha::Exceptions::Config::MissingEntry->throw(
"Missing / entry in koha-conf.xml",
);
}
- $configuration->{cxn_pool} = $conf->{cxn_pool} // 'Static';
+ while ( my ( $var, $val ) = each %$conf ) {
+ if ( $var eq 'server' ) {
+ if ( ref($val) eq 'ARRAY' ) {
+ $configuration->{nodes} = $val;
+ }
+ else {
+ $configuration->{nodes} = [$val];
+ }
+ } else {
+ $configuration->{$var} = $val;
+ }
+ }
- $configuration->{trace_to} = $conf->{trace_to} if defined $conf->{trace_to};
- $configuration->{request_timeout} = 60;
+ $configuration->{cxn_pool} //= 'Static';
return $configuration;
}
--- a/t/db_dependent/Koha/SearchEngine/Elasticsearch.t
+++ a/t/db_dependent/Koha/SearchEngine/Elasticsearch.t
@@ -39,7 +39,7 @@ $schema->storage->txn_begin;
subtest '_read_configuration() tests' => sub {
- plan tests => 15;
+ plan tests => 16;
my $configuration;
t::lib::Mocks::mock_config( 'elasticsearch', undef );
@@ -107,10 +107,11 @@ subtest '_read_configuration() tests' => sub {
my $params = Koha::SearchEngine::Elasticsearch::get_elasticsearch_params;
is_deeply( $configuration->{nodes}, \@servers , 'get_elasticsearch_params is just a wrapper for _read_configuration' );
- t::lib::Mocks::mock_config( 'elasticsearch', { server => \@servers, index_name => 'index', cxn_pool => 'Sniff', trace_to => 'Stderr' } );
+ t::lib::Mocks::mock_config( 'elasticsearch', { server => \@servers, index_name => 'index', cxn_pool => 'Sniff', trace_to => 'Stderr', request_timeout => 42 } );
$configuration = Koha::SearchEngine::Elasticsearch::_read_configuration;
is( $configuration->{trace_to}, 'Stderr', 'trace_to configuration parsed correctly' );
+ is( $configuration->{request_timeout}, '42', 'additional configuration (request_timeout) parsed correctly' );
};
subtest 'get_elasticsearch_settings() tests' => sub {
--