From 580d199109a68e596c38246be793e442169c39e2 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 26 Sep 2017 10:40:37 +0100 Subject: [PATCH] bin/ovh-api --- bin/ovh-api | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/bin/ovh-api b/bin/ovh-api index cb16c842..a08f0ca9 100755 --- a/bin/ovh-api +++ b/bin/ovh-api @@ -117,6 +117,7 @@ exit 0; # ################################################################################# sub hostname { + return $Opt{'local-hostname'} if defined $Opt{'local-hostname'}; if ($Opt{debug} and -r $ENV{HOME}."/.ovhrc") { my $f; my $name; @@ -138,6 +139,7 @@ sub ip_routed { my @routed; my %dbl; my @ips = ips(); + #warn Dumper([\@ips,hostname()]); if ($rec->{type} =~ /^(failover|dedicated)$/) { push @routed, [ $rec->{routedTo}{serviceName}, 'master' ]; @@ -150,16 +152,20 @@ sub ip_routed { 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}; @@ -176,7 +182,6 @@ sub ip_routed { 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 { @@ -200,6 +205,7 @@ sub ip_routed { } 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 @@ -574,6 +580,7 @@ sub get_options { $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]) @@ -613,6 +620,8 @@ $NAME - Script to query ovh's api 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. -- 2.47.3