Data-AnyXfer
view release on metacpan or search on metacpan
lib/Data/AnyXfer/Elastic/ServerDefinition.pm view on Meta::CPAN
package Data::AnyXfer::Elastic::ServerDefinition;
use Modern::Perl;
use Moo;
use MooX::Types::MooseLike::Base qw(:all);
use Carp;
use Data::AnyXfer ();
use Data::AnyXfer::JSON ();
=head1 NAME
Data::AnyXfer::Elastic::ServerDefinition - Stores node and cluster information
=head1 SYNOPSIS
use Data::AnyXfer::Elastic::ServerDefinition ();
# Load definitions...
# from a path
my @definitions =
Data::AnyXfer::Elastic::ServerDefinition
->load_json_file('servers.json');
# or from an open handle
open(my $open_fh, '<:encoding(UTF-8)', 'servers.json')
|| croak "Failed to open server definitions file ($!)";
my @definitions =
Data::AnyXfer::Elastic::ServerDefinition
->load_json_handle($open_fh);
# Or define them programatically...
my $definition = Data::AnyXfer::Elastic::ServerDefinition->new(
name => 'testserver',
env => 'live',
installed_version => '6.4.0',
silos => ["public_data"],
standalone_nodes => ["test-es-1.example.com:9200"],
cluser_nodes => ["test-es-1.example.com:9201"],
}
);
=head1 DESCRIPTION
The class represents the information required to interact with
an Elasticsearch server.
This can consist of a traditional cluster, or a number of seperate instances
acting as a cluster.
These definitions will usually be L<loaded/load> from a JSON file.
=head1 CONSTANTS
=over 12
=item C<ENV_VARNAME>
This is the ENV variable name which L</load_env> will use to source and load
as a server definition JSON file.
( run in 2.014 seconds using v1.01-cache-2.11-cpan-437f7b0c052 )