@@ -, +, @@ 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 { --