NAME
OpenSearch::Client::Cxn::LWP - A Cxn implementation which uses LWP
VERSION
version 3.007004
DESCRIPTION
Provides an HTTP Cxn class and based on LWP. The LWP backend uses pure Perl and persistent connections.
This class does OpenSearch::Client::Role::Cxn, whose documentation provides more information, and OpenSearch::Client::Role::Is_Sync.
CONFIGURATION
Inherited configuration
From OpenSearch::Client::Role::Cxn
SSL/TLS
OpenSearch::Client::Cxn::LWP uses IO::Socket::SSL to support HTTPS. By default, full verification of the remote host certificate is performed.
If the remote server cannot be verified, an OpenSearch::Client::Error will be thrown - LWP does not allow us to detect that the connection error was due to invalid SSL.
This behaviour can be changed by passing the ssl_options parameter with any options passed through to IO::Socket::SSL by LWP::UserAgent
For example, to perform no validation of the remote host certificate
use OpenSearch::Client;
my $es = OpenSearch::Client->new(
nodes => [
"https://node1.mydomain.com:9200",
"https://node2.mydomain.com:9200",
],
ssl_options => {
SSL_verify_mode => 0x00,
verify_hostname => 0,
}
);
To verify that the cerificate is signed by your own trusted CA Authority but not verify the hostname
use OpenSearch::Client;
my $es = OpenSearch::Client->new(
nodes => [
"https://node1.mydomain.com:9200",
"https://node2.mydomain.com:9200",
],
ssl_options => {
SSL_verify_mode => 0x01,
SSL_ca_file => '/path/to/ca_cert.pem',
verify_hostname => 0
}
);
If you want your client to present its own certificate to the remote server, then use:
use OpenSearch::Client;
my $es = OpenSearch::Client->new(
nodes => [
"https://node1.mydomain.com:9200",
"https://node2.mydomain.com:9200",
],
ssl_options => {
SSL_verify_mode => 0x01,
SSL_use_cert => 1,
SSL_ca_file => '/path/to/cacert.pem',
SSL_cert_file => '/path/to/client.pem',
SSL_key_file => '/path/to/client.pem',
}
);
METHODS
perform_request()
($status,$body) = $self->perform_request({
# required
method => 'GET|HEAD|POST|PUT|DELETE',
path => '/path/of/request',
qs => \%query_string_params,
# optional
data => $body_as_string,
mime_type => 'application/json',
timeout => $timeout
});
Sends the request to the associated OpenSearch node and returns a $status code and the decoded response $body, or throws an error if the request failed.
Inherited methods
From OpenSearch::Client::Role::Cxn
SEE ALSO
MANUAL
Documentation index OpenSearch::Client::Manual
HISTORY
This distribution is derived from Search::Elasticsearch version 7.714. All subsequent changes are unique to this distribution.
AUTHOR
Mark Dootson <mdootson@cpan.org> ( current maintainer )
CREDITS
OpenSearch::Client is based on Search::Elasticsearch version 7.714 by Enrico Zimuel <enrico.zimuel@elastic.co>.
COPYRIGHT AND LICENSE
Copyright (C) 2026 by Mark Dootson ( this distribution )
Copyright (C) 2021 by Elasticsearch BV ( original distribution )
This is free software, licensed under:
The Apache License, Version 2.0, January 2004