File Coverage

blib/lib/Consul/API/Status.pm
Criterion Covered Total %
statement 15 23 65.2
branch 0 2 0.0
condition n/a
subroutine 5 9 55.5
pod 0 3 0.0
total 20 37 54.0


line stmt bran cond sub pod time code
1             package Consul::API::Status;
2             $Consul::API::Status::VERSION = '0.025';
3 9     9   5448 use namespace::autoclean;
  9         24  
  9         68  
4              
5 9     9   860 use Moo::Role;
  9         19  
  9         59  
6 9     9   3579 use Types::Standard qw(Str);
  9         22  
  9         82  
7              
8             requires qw(_version_prefix _api_exec);
9              
10             has _status_endpoint => ( is => 'lazy', isa => Str );
11             sub _build__status_endpoint {
12 0     0     shift->_version_prefix . '/status';
13             }
14              
15             sub status {
16 0     0 0   my $self = shift;
17 0 0         $self = Consul->new(@_) unless ref $self;
18 0           return bless \$self, "Consul::API::Status::Impl";
19             }
20              
21             package
22             Consul::API::Status::Impl; # hide from PAUSE
23              
24 9     9   6061 use Moo;
  9         20  
  9         58  
25              
26 9     9   3282 use Carp qw(croak);
  9         21  
  9         1570  
27              
28             sub leader {
29 0     0 0   my ($self, %args) = @_;
30 0           $$self->_api_exec($$self->_status_endpoint."/leader", "GET", %args);
31             }
32              
33             sub peers {
34 0     0 0   my ($self, %args) = @_;
35 0           $$self->_api_exec($$self->_status_endpoint."/peers", "GET", %args);
36             }
37              
38             1;
39              
40             =pod
41              
42             =encoding UTF-8
43              
44             =head1 NAME
45              
46             Consul::API::Status - System status API
47              
48             =head1 SYNOPSIS
49              
50             use Consul;
51             my $status = Consul->status;
52             my $peers = $status->peers;
53             say "@$peers";
54              
55             =head1 DESCRIPTION
56              
57             The system status API is used to get information about the status of the Consul
58             cluster.
59              
60             This API is fully documented at L.
61              
62             =head1 METHODS
63              
64             =head2 leader
65              
66             $status->leader;
67              
68             Returns the address of the Raft leader for the datacenter in which the agent is
69             running. Returns an IP:port string.
70              
71             =head2 peers
72              
73             $status->peers;
74              
75             Retrieves the Raft peers for the datacenter in which the agent is running.
76             Returns an arrayref of IP:port strings.
77              
78             =head1 SEE ALSO
79              
80             L
81              
82             =cut