]> git.nbdom.net Git - nb.git/commitdiff
bin/ovh-api
authorroot <sys@15gifts.com>
Tue, 26 Sep 2017 09:40:37 +0000 (10:40 +0100)
committerroot <sys@15gifts.com>
Tue, 26 Sep 2017 09:40:37 +0000 (10:40 +0100)
bin/ovh-api

index cb16c842c0a8aa1efde6c928f31ac163a25687e2..a08f0ca97b0de638f6fc7182082eea98da9be116 100755 (executable)
@@ -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.