#
#################################################################################
sub hostname {
+ return $Opt{'local-hostname'} if defined $Opt{'local-hostname'};
if ($Opt{debug} and -r $ENV{HOME}."/.ovhrc") {
my $f;
my $name;
my @routed;
my %dbl;
my @ips = ips();
+ #warn Dumper([\@ips,hostname()]);
if ($rec->{type} =~ /^(failover|dedicated)$/) {
push @routed, [ $rec->{routedTo}{serviceName}, 'master' ];
for my $frontend_id (@$frontends) {
my $frontend = query("/ipLoadbalancing/ip-$ip/frontend/$frontend_id") or exit 9;
- #next if $frontend->{defaultBackendId};
+ #use Data::Dumper; warn Dumper($frontend);
+ next unless $frontend->{defaultBackendId};
next if $frontend->{disabled} !~ /^(0|false)$/;
my $farms = query("/ipLoadbalancing/ip-$ip/".$frontend->{type}."/farm") or exit 9;
+ #use Data::Dumper; warn Dumper($farms);
for my $farm_id (@$farms) {
+ next if $farm_id != $frontend->{defaultBackendId};
my $servers = query("/ipLoadbalancing/ip-$ip/".$frontend->{type}."/farm/$farm_id/server") or exit 9;
for my $id_server (@$servers) {
my $server = query("/ipLoadbalancing/ip-$ip/".$frontend->{type}."/farm/$farm_id/server/$id_server") or exit 9;
+ #use Data::Dumper; warn Dumper($server);
next if $server->{status} ne 'active';
next if $dbl{$server->{address}}++;
#warn $server->{address};
last if $status eq 'down';
}
#my $status = 'slave' if $server->{backup} and ! grep { $_ eq 'down' } @server;
- #use Data::Dumper; warn Dumper($server);
$status = 'slave' if $server->{backup} and $status eq 'up';
$routed->[0][1] = $status if $status ne 'up';
} else {
}
sub ips {
+ return split(/[, ]/,$Opt{'local-ips'}) if defined $Opt{'local-ips'};
return grep { defined $_ and $_ ne ""} map {
/^\s*inet.*?([\d]+\.[\d]+\.[\d]+\.[\d]+)/ and $1 ne "127.0.0.1"
? $1
$main::VERBOSE = $VERBOSE = $_[0]{'verbose'} if defined $_[0]{'verbose'};
$main::DEBUG = $DEBUG = $_[0]{'debug'} if defined $_[0]{'debug'};
+ use Data::Dumper;
}
# option[activate=s] [KEY] Activate a key (first bit before ":" or KEY[0])
option[sql] Produce sql to update a database
option[show-ips] Print local ips
option[show-hostname] Print local ips
+ option[local-hostname=s] Force to use this hostname instead on auto detect (for test)
+ option[local-ips=s] Force to use this ips instead on auto detect (for test)
option[verbose|v+] Verbose mode: increase the verbosity level.
option[debug+] Debug mode: increase the verbosity level.