File Coverage

blib/lib/WebService/ProfitBricks/LoadBalancer.pm
Criterion Covered Total %
statement 15 15 100.0
branch n/a
condition n/a
subroutine 5 5 100.0
pod n/a
total 20 20 100.0


line stmt bran cond sub pod time code
1             #
2             # (c) Jan Gehring
3             #
4             # vim: set ts=3 sw=3 tw=0:
5             # vim: set expandtab:
6              
7             =head1 NAME
8              
9             WebService::ProfitBricks::LoadBalancer - Manage Loadbalancers
10              
11             =head1 DESCRIPTION
12              
13             Manage Loadbalancers.
14              
15             =head1 METHODS
16              
17             =over 4
18              
19             =cut
20            
21             package WebService::ProfitBricks::LoadBalancer;
22              
23 1     1   1904 use strict;
  1         2  
  1         46  
24 1     1   5 use warnings;
  1         2  
  1         26  
25 1     1   4 use Data::Dumper;
  1         2  
  1         41  
26              
27 1     1   5 use WebService::ProfitBricks::Class;
  1         2  
  1         98  
28 1     1   4 use base qw(WebService::ProfitBricks);
  1         2  
  1         84  
29              
30             attrs qw/loadBalancerId
31             dataCenterId
32             loadBalancerAlgorithm
33             ip
34             lanId
35             internetAccess
36             serverIds/;
37              
38             attr loadBalancerName => { searchable => 1, find_by => "name", through => "datacenter" };
39              
40             serializer "xml";
41              
42             belongs_to datacenter => "WebService::ProfitBricks::DataCenter" => { through => "dataCenterId" };
43              
44             =item set_ip($ip)
45              
46             Set ip for the loadbalancer.
47              
48             $lb->set_ip("1.2.3.4");
49              
50             =cut
51             sub set_ip {
52             my ($self, $ip) = @_;
53             $self->ip($ip);
54             my $data = $self->connection->call("updateLoadBalancer", xml => $self->to_xml(container => 1, ip => $ip, loadBalancerId => $self->loadBalancerId, loadBalancerName => $self->loadBalancerName, loadBalancerAlgorithm => $self->loadBalancerAlgorithm));
55             print Dumper($data);
56             }
57              
58             =item registerServersOnLoadBalancer(@server_ids)
59              
60             Registerthe given servers to the loadbalancer.
61              
62             $lb->registerServersOnLoadBalancer($srv1->serverId, $srv2->serverId);
63              
64             =cut
65             sub registerServersOnLoadBalancer {
66             my ($self, @serverIds) = @_;
67             my $data = $self->connection->call("registerServersOnLoadBalancer", xml => $self->to_xml(serverIds => \@serverIds, loadBalancerId => $self->loadBalancerId));
68             $self->set_data($data);
69             }
70              
71             =item deregisterServersOnLoadBalancer(@server_ids)
72              
73             De-Register the given servers from the loadbalancer.
74              
75             $lb->deregisterServersOnLoadBalancer($srv1->serverId, $srv2->serverId);
76              
77             =cut
78             sub deregisterServersOnLoadBalancer {
79             my ($self, @serverIds) = @_;
80             my $data = $self->connection->call("deregisterServersOnLoadBalancer", xml => $self->to_xml(serverIds => \@serverIds, loadBalancerId => $self->loadBalancerId));
81             #$self->set_data($data);
82             }
83              
84             =back
85              
86             =cut
87              
88             "This way! No that way";