modify ort for new API scopes and format

Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/c795f99e
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/c795f99e
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/c795f99e

Branch: refs/heads/master
Commit: c795f99e9047c894f78a5712f8b84f87f5833f39
Parents: 4e94c76
Author: Derek Gelinas <derek_geli...@cable.comcast.com>
Authored: Thu Apr 6 17:22:56 2017 +0000
Committer: Jeff Elsloo <jeffrey_els...@cable.comcast.com>
Committed: Tue Apr 11 08:14:34 2017 -0600

----------------------------------------------------------------------
 traffic_ops/bin/traffic_ops_ort.pl | 76 ++++++++++++++++++++-------------
 1 file changed, 47 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/c795f99e/traffic_ops/bin/traffic_ops_ort.pl
----------------------------------------------------------------------
diff --git a/traffic_ops/bin/traffic_ops_ort.pl 
b/traffic_ops/bin/traffic_ops_ort.pl
index 9ff6d47..d3113a5 100755
--- a/traffic_ops/bin/traffic_ops_ort.pl
+++ b/traffic_ops/bin/traffic_ops_ort.pl
@@ -65,7 +65,7 @@ given ( $ARGV[1] ) {
 
 my $traffic_ops_host = undef;
 my $to_url = undef;
-my $to_cache_url = undef;
+my $to_rev_proxy_url = undef;
 my $TM_LOGIN         = undef;
 
 if ( defined( $ARGV[2] ) ) {
@@ -140,11 +140,13 @@ my $CFG_FILE_ALREADY_PROCESSED = 4;
 
 #### LWP globals
 my $api_in_use = 1;
-my $cache_in_use = 1;
+my $rev_proxy_in_use = 1;
 my $lwp_conn                   = &setup_lwp();
 my $unixtime       = time();
 my $hostname_short = `/bin/hostname -s`;
 chomp($hostname_short);
+my $server_ipv4;
+my $server_tcp_port;
 
 my $domainname = &set_domainname();
 $lwp_conn->agent("$hostname_short-$unixtime");
@@ -351,6 +353,16 @@ sub process_cfg_file {
 
        return $CFG_FILE_NOT_PROCESSED if ( !&validate_result( \$uri, \$result 
) );
 
+       # Process __SERVER_TCP_PORT__, __HOSTNAME__, and __CACHE_IPV4__ values 
from traffic ops API.
+       if ( $server_tcp_port != 80 ) {
+               $result =~ s/__SERVER_TCP_PORT__/$server_tcp_port/g;
+       }
+       else {
+               $result =~ s/:__SERVER_TCP_PORT__//g;
+       }
+       $result =~ s/__CACHE_IPV4__/$server_ipv4/g;
+       $result =~ s/__HOSTNAME__/$hostname_short/g;
+
        my @db_file_lines = @{ &scrape_unencode_text($result) };
 
        my $file = $config_dir . "/" . $cfg_file;
@@ -1386,10 +1398,10 @@ sub lwp_get {
                        if ( $uri =~ m/configfiles\/ats/ && $response->code == 
404) {
                                        return $response->code;
                        }
-                       if ( $cache_in_use == 1 ) {
+                       if ( $rev_proxy_in_use == 1 ) {
                                ( $log_level >> $ERROR ) && print "ERROR There 
appears to be an issue with the Traffic Ops Cache.  Reverting to primary 
Traffic Ops host.\n";
                                $traffic_ops_host = $to_url;
-                               $cache_in_use = 0;
+                               $rev_proxy_in_use = 0;
                        }
                        sleep 2**( $retries - $retry_counter );
                        $retry_counter--;
@@ -1696,23 +1708,28 @@ sub get_cfg_file_list {
        }
 
        my $ort_ref = decode_json($result);
+       my @cf = $ort_ref->{'configFiles'};
        
        if ($api_in_use == 1) {
-               $to_url = $ort_ref->{'info'}->{'to_url'};
+               $to_url = $ort_ref->{'info'}->{'toUrl'};
                $to_url =~ s/\/*$//g;
                $traffic_ops_host = $to_url;
                ( $log_level >> $INFO ) && printf("INFO Found Traffic Ops URL 
from Traffic Ops: $to_url\n");
-               $to_cache_url = $ort_ref->{'info'}->{'to_cache_url'};
-               if ( $to_cache_url ) {
-                       $to_cache_url =~ s/\/*$//g;
-                       $traffic_ops_host = $to_cache_url;
-                       $cache_in_use = 1;
-                       ( $log_level >> $INFO ) && printf("INFO Found Traffic 
Ops Cache URL from Traffic Ops: $to_cache_url\n");
-               }
-               $profile_name = $ort_ref->{'info'}->{'profile_name'};
+               $to_rev_proxy_url = $ort_ref->{'info'}->{'toRevProxyUrl'};
+               if ( $to_rev_proxy_url ) {
+                       $to_rev_proxy_url =~ s/\/*$//g;
+                       $traffic_ops_host = $to_rev_proxy_url;
+                       $rev_proxy_in_use = 1;
+                       ( $log_level >> $INFO ) && printf("INFO Found Traffic 
Ops Reverse Proxy URL from Traffic Ops: $to_rev_proxy_url\n");
+               }
+               $profile_name = $ort_ref->{'info'}->{'profileName'};
                ( $log_level >> $INFO ) && printf("INFO Found profile from 
Traffic Ops: $profile_name\n");
-               $cdn_name = $ort_ref->{'info'}->{'cdn_name'};
+               $cdn_name = $ort_ref->{'info'}->{'cdnName'};
                ( $log_level >> $INFO ) && printf("INFO Found CDN_name from 
Traffic Ops: $cdn_name\n");
+               $server_tcp_port = $ort_ref->{'info'}->{'serverTcpPort'};
+               ( $log_level >> $INFO ) && printf("INFO Found cache server tcp 
port from Traffic Ops: $server_tcp_port\n");
+               $server_ipv4 = $ort_ref->{'info'}->{'serverIpv4'};
+               ( $log_level >> $INFO ) && printf("INFO Found cache server ipv4 
from Traffic Ops: $server_ipv4\n");
        }
        else {
                $profile_name = $ort_ref->{'profile'}->{'name'};
@@ -1721,16 +1738,16 @@ sub get_cfg_file_list {
                ( $log_level >> $INFO ) && printf("INFO Found CDN_name from 
Traffic Ops: $cdn_name\n");
        }
        if ( $script_mode == $REVALIDATE ) {
-               foreach my $cfg_file ( keys %{ $ort_ref->{'config_files'} } ) {
-                       if ( $cfg_file eq "regex_revalidate.config" ) {
-                               my $fname_on_disk = 
&get_filename_on_disk($cfg_file);
+               foreach my $cfg_file ( @cf ) {
+                       if ( $cfg_file->{'name'} eq "regex_revalidate.config" ) 
{
+                               my $fname_on_disk = &get_filename_on_disk( 
$cfg_file->{'name'} );
                                ( $log_level >> $INFO )
-                                       && printf( "INFO Found config file (on 
disk: %-41s): %-41s with location: %-50s\n", $fname_on_disk, $cfg_file, 
$ort_ref->{'config_files'}->{$cfg_file}->{'location'} );
-                               $cfg_files->{$fname_on_disk}->{'location'} = 
$ort_ref->{'config_files'}->{$cfg_file}->{'location'};
+                                       && printf( "INFO Found config file (on 
disk: %-41s): %-41s with location: %-50s\n", $fname_on_disk, 
$cfg_file->{'name'}, $cfg_file->{'location'} );
+                               $cfg_files->{$fname_on_disk}->{'location'} = 
$cfg_file->{'location'};
                                if ($api_in_use == 1) {
-                                       
$cfg_files->{$fname_on_disk}->{'API_URI'} = 
$ort_ref->{'config_files'}->{$cfg_file}->{'API_URI'};
+                                       
$cfg_files->{$fname_on_disk}->{'apiUri'} = $cfg_file->{'apiUri'};
                                }
-                               $cfg_files->{$fname_on_disk}->{'fname-in-TO'} = 
$cfg_file;
+                               $cfg_files->{$fname_on_disk}->{'fname-in-TO'} = 
$cfg_file->{'fnameOnDisk'};
                        }
                }
        }
@@ -1738,16 +1755,17 @@ sub get_cfg_file_list {
                if ( $reval_in_use == 1 ) {
                        ( $log_level >> $WARN ) && printf("WARN Instant 
Invalidate is enabled.  Skipping regex_revalidate.config.\n");
                        delete 
$ort_ref->{'config_files'}->{'regex_revalidate.config'};
+                       my @cf = $ort_ref->{'configFiles'};
                }
-               foreach my $cfg_file ( sort keys %{ $ort_ref->{'config_files'} 
} ) {
-                       my $fname_on_disk = &get_filename_on_disk($cfg_file);
+               foreach my $cfg_file ( @cf ) {
+                       my $fname_on_disk = &get_filename_on_disk( 
$cfg_file->{'name'} );
                        ( $log_level >> $INFO )
-                               && printf( "INFO Found config file (on disk: 
%-41s): %-41s with location: %-50s\n", $fname_on_disk, $cfg_file, 
$ort_ref->{'config_files'}->{$cfg_file}->{'location'} );
-                       $cfg_files->{$fname_on_disk}->{'location'} = 
$ort_ref->{'config_files'}->{$cfg_file}->{'location'};
+                               && printf( "INFO Found config file (on disk: 
%-41s): %-41s with location: %-50s\n", $fname_on_disk, $cfg_file->{'name'}, 
$cfg_file->{'location'} );
+                       $cfg_files->{$fname_on_disk}->{'location'} = 
$cfg_file->{'location'};
                        if ($api_in_use == 1) {
-                               $cfg_files->{$fname_on_disk}->{'API_URI'} = 
$ort_ref->{'config_files'}->{$cfg_file}->{'API_URI'};
+                               $cfg_files->{$fname_on_disk}->{'apiUri'} = 
$cfg_file->{'apiUri'};
                        }
-                       $cfg_files->{$fname_on_disk}->{'fname-in-TO'} = 
$cfg_file;
+                       $cfg_files->{$fname_on_disk}->{'fname-in-TO'} = 
$cfg_file->{'fnameOnDisk'};
                }
        }
        return ( $profile_name, $cfg_files, $cdn_name );
@@ -2438,8 +2456,8 @@ sub set_uri {
        
        my $filepath = $cfg_file_tracker->{$filename}->{'location'};
        my $URI;
-       if ( $api_in_use == 1 && 
defined($cfg_file_tracker->{$filename}->{'API_URI'}) ) {
-               $URI = $cfg_file_tracker->{$filename}->{'API_URI'};
+       if ( $api_in_use == 1 && 
defined($cfg_file_tracker->{$filename}->{'apiUri'}) ) {
+               $URI = $cfg_file_tracker->{$filename}->{'apiUri'};
        }
        else {
                $URI = "\/genfiles\/view\/$hostname_short\/" . 
$cfg_file_tracker->{$filename}->{'fname-in-TO'};

Reply via email to