From: root Date: Tue, 17 Oct 2017 10:10:01 +0000 (+0100) Subject: ovh-api X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=1a535cf4176eafc2e8a6b3c39d0af3e4deb09ceb;p=nb.git ovh-api --- diff --git a/bin/ovh-api b/bin/ovh-api index 92b73f63..873e04f2 100755 --- a/bin/ovh-api +++ b/bin/ovh-api @@ -25,6 +25,7 @@ my %EXIT_ROUTED = ( 'master' => 0, 'none' => 1, 'slave' => 2, + 'err' => 9, ); ################################################################################# @@ -135,7 +136,7 @@ sub hostname { sub ip_routed { my $ip = shift @_; - my $rec = query("/ip/$ip") or exit 9; + my $rec = query("/ip/$ip") or exit $EXIT_ROUTED{err}; my @routed; my %dbl; my @ips = ips(); @@ -147,23 +148,23 @@ sub ip_routed { } elsif ($rec->{type} eq 'loadBalancing') { - my $frontends = query("/ipLoadbalancing/ip-$ip/frontend") or exit 9; + my $frontends = query("/ipLoadbalancing/ip-$ip/frontend") or exit $EXIT_ROUTED{err}; for my $frontend_id (@$frontends) { - my $frontend = query("/ipLoadbalancing/ip-$ip/frontend/$frontend_id") or exit 9; + my $frontend = query("/ipLoadbalancing/ip-$ip/frontend/$frontend_id") or exit $EXIT_ROUTED{err}; #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; + my $farms = query("/ipLoadbalancing/ip-$ip/".$frontend->{type}."/farm") or exit $EXIT_ROUTED{err}; #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; + my $servers = query("/ipLoadbalancing/ip-$ip/".$frontend->{type}."/farm/$farm_id/server") or exit $EXIT_ROUTED{err}; for my $id_server (@$servers) { - my $server = query("/ipLoadbalancing/ip-$ip/".$frontend->{type}."/farm/$farm_id/server/$id_server") or exit 9; + my $server = query("/ipLoadbalancing/ip-$ip/".$frontend->{type}."/farm/$farm_id/server/$id_server") or exit $EXIT_ROUTED{err}; #use Data::Dumper; warn Dumper($server); next if $server->{status} ne 'active'; @@ -218,7 +219,7 @@ sub ip_move { my $localhost = hostname(); - my $rec = query("/ip/$ip") or exit 9; + my $rec = query("/ip/$ip") or exit $EXIT_ROUTED{err}; my $type = $rec->{type}; $type eq 'failover' or die "$ip $type is not an ip failover!\n"; @@ -246,7 +247,8 @@ sub query { die "$NAME: Connection failed" unless ref $response eq 'OvhApi::Answer'; if ($response->isFailure()) { die "$NAME: ERR: Connection failed" if $response->error() =~ /Internal Server Error/; - warn "$NAME: ERR: ".$response->error()."\n"; + warn "$NAME: ERR: ".$response->error();#."\n"; + exit $EXIT_ROUTED{none} if $response->error() =~ /The requested object.*does not exist/; return; }