NAME
Search::Elasticsearch::TestServer - A helper class to launch Elasticsearch nodes
VERSION
version 1.17
SYNOPSIS
my
$server
= Search::Elasticsearch::TestServer->new(
es_home
=>
'/path/to/elasticsearch'
,
);
my
$nodes
=
$server
->start;
my
$es
= Search::Elasticsearch->new(
nodes
=>
$nodes
);
# run tests
$server
->
shutdown
;
DESCRIPTION
The Search::Elasticsearch::TestServer class can be used to launch one or more instances of Elasticsearch for testing purposes. The nodes will be shutdown automatically.
METHODS
new()
my
$server
= Search::Elasticsearch::TestServer->new(
es_home
=>
'/path/to/elasticsearch'
,
instances
=> 1,
http_port
=> 9600,
es_port
=> 9700,
conf
=> [
'node.bench=true'
,
'script.disable_dynamic=false'
],
);
Params:
es_home
Required. Must point to the Elasticsearch home directory, which contains
./bin/elasticsearch
.instances
The number of nodes to start. Defaults to 1
http_port
The port to use for HTTP. If multiple instances are started, the
http_port
will be incremented for each subsequent instance. Defaults to 9600.es_port
The port to use for Elasticsearch's internal transport. If multiple instances are started, the
es_port
will be incremented for each subsequent instance. Defaults to 9700conf
An array containing any extra startup options that should be passed to Elasticsearch.
start()
$nodes
=
$server
->start;
Starts the required instances and returns an array ref containing the IP and port of each node, suitable for passing to "new()" in Search::Elasticsearch:
$es
= Search::Elasticsearch->new(
nodes
=>
$nodes
);
shutdown()
$server
->
shutdown
;
Kills the running instances. This will be called automatically when $server
goes out of scope or if the program receives a SIGINT
.
AUTHOR
Clinton Gormley <drtech@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2014 by Elasticsearch BV.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004