changes scope for facts, records.config, and header rewrite

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

Branch: refs/heads/master
Commit: 922f36e9c685618e8b0aec69dc8ffa9797d5fd4c
Parents: 2ee18dd
Author: Derek Gelinas <derek_geli...@cable.comcast.com>
Authored: Thu Apr 6 16:35:27 2017 +0000
Committer: Dewayne Richardson <dewr...@apache.org>
Committed: Thu Apr 6 13:49:03 2017 -0600

----------------------------------------------------------------------
 .../app/lib/API/Configs/ApacheTrafficServer.pm  | 58 ++++++++++++--------
 1 file changed, 35 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/922f36e9/traffic_ops/app/lib/API/Configs/ApacheTrafficServer.pm
----------------------------------------------------------------------
diff --git a/traffic_ops/app/lib/API/Configs/ApacheTrafficServer.pm 
b/traffic_ops/app/lib/API/Configs/ApacheTrafficServer.pm
index b879088..1a0956e 100644
--- a/traffic_ops/app/lib/API/Configs/ApacheTrafficServer.pm
+++ b/traffic_ops/app/lib/API/Configs/ApacheTrafficServer.pm
@@ -67,9 +67,12 @@ sub get_config_metadata {
        my $tm_cache_url = $self->db->resultset('Parameter')->search( { -and => 
[ name => 'tm_cache.url', config_file => 'global' ] } 
)->get_column('value')->first();
        my $cdn_name = $server_obj->cdn->name;
        my $server = $rs_server->next;
+       my $config_file_obj;
+       my @config_files;
        if ($server) {
 
                $data_obj->{'info'}->{'server_name'}    = 
$server_obj->host_name;
+               $data_obj->{'info'}->{'server_ipv4'}    = 
$server_obj->ip_address;
                $data_obj->{'info'}->{'server_id'}              = 
$server_obj->id;
                $data_obj->{'info'}->{'profile_name'}   = 
$server->profile->name;
                $data_obj->{'info'}->{'profile_id'}             = 
$server->profile->id;
@@ -91,29 +94,36 @@ sub get_config_metadata {
                my $rs_param = $self->db->resultset('Parameter')->search( 
\%condition, { join => 'profile_parameters' } );
                while ( my $param = $rs_param->next ) {
                        if ( $param->name eq 'location' ) {
-                               $data_obj->{'config_files'}->{ 
$param->config_file }->{'location'} = $param->value;
+                               $config_file_obj->{ $param->config_file 
}->{'name'} = $param->config_file;
+                               $config_file_obj->{ $param->config_file 
}->{'location'} = $param->value;
+
                        }
                }
        }
 
 
 
-       foreach my $config_file ( keys %{ $data_obj->{'config_files'} } ) {
-               $data_obj->{'config_files'}->{$config_file}->{'scope'} = 
$self->get_scope($config_file);
-               my $scope = 
$data_obj->{'config_files'}->{$config_file}->{'scope'};
+       foreach my $config_file ( keys %{ $config_file_obj } ) {
+               my $scope = $self->get_scope($config_file);
                my $scope_id;
                if ( $scope eq 'cdn' ) {
-                       $scope_id = $server->cdn->id;
+                       $scope_id = $server->cdn->name;
                }
                elsif ( $scope eq 'profile' ) {
-                       $scope_id = $server->profile->id;
+                       $scope_id = $server->profile->name;
                }
                else {
-                       $scope_id = $server_obj->id;
+                       $scope_id = $server_obj->host_name;
                }
-               $data_obj->{'config_files'}->{$config_file}->{'API_URI'} = 
"/api/1.2/" . $scope . "/" . $scope_id . "/configfiles/ats/" . $config_file;
+               $config_file_obj->{$config_file}->{'API_URI'} = "/api/1.2/" . 
$scope . "/" . $scope_id . "/configfiles/ats/" . $config_file;
+               $config_file_obj->{$config_file}->{'scope'} = $scope;
+       }
+
+       foreach my $config_file ( keys %{ $config_file_obj } ) {
+               push ( @config_files, $config_file_obj->{$config_file} );
        }
 
+       $data_obj->{'config_files'} = \@config_files;
        my $file_contents = encode_json($data_obj);
 
        return $self->render( text => $file_contents, format => 'txt' );
@@ -144,12 +154,9 @@ sub get_server_config {
 
        #generate the config file using the appropriate function
        my $file_contents;
-       if ( $filename eq "12M_facts" ) { $file_contents = $self->facts( 
$server_obj, $filename ); }
-       elsif ( $filename =~ /to_ext_.*\.config/ ) { $file_contents = 
$self->to_ext_dot_config( $server_obj, $filename ); }
-       elsif ( $filename =~ /hdr_rw_.*\.config/ ) { $file_contents = 
$self->header_rewrite_dot_config( $server_obj, $filename ); }
+       if ( $filename =~ /to_ext_.*\.config/ ) { $file_contents = 
$self->to_ext_dot_config( $server_obj, $filename ); }
        elsif ( $filename eq "ip_allow.config" ) { $file_contents = 
$self->ip_allow_dot_config( $server_obj, $filename ); }
        elsif ( $filename eq "parent.config" ) { $file_contents = 
$self->parent_dot_config( $server_obj, $filename ); }
-       elsif ( $filename eq "records.config" ) { $file_contents = 
$self->generic_server_config( $server_obj, $filename ); }
        elsif ( $filename eq "remap.config" ) { $file_contents = 
$self->remap_dot_config( $server_obj, $filename ); }
        elsif ( $filename eq "hosting.config" ) { $file_contents = 
$self->hosting_dot_config( $server_obj, $filename ); }
        elsif ( $filename eq "cache.config" ) { $file_contents = 
$self->cache_dot_config( $server_obj, $filename ); }
@@ -205,6 +212,7 @@ sub get_cdn_config {
        my $file_contents;
        if ( $filename eq "bg_fetch.config" ) { $file_contents = 
$self->bg_fetch_dot_config( $cdn_obj, $filename ); }
        elsif ( $filename =~ /cacheurl.*\.config/ ) { $file_contents = 
$self->cacheurl_dot_config( $cdn_obj, $filename ); }
+       elsif ( $filename =~ /hdr_rw_.*\.config/ ) { $file_contents = 
$self->header_rewrite_dot_config( $cdn_obj, $filename ); }
        elsif ( $filename =~ /regex_remap_.*\.config/ ) { $file_contents = 
$self->regex_remap_dot_config( $cdn_obj, $filename ); }
        elsif ( $filename eq "regex_revalidate.config" ) { $file_contents = 
$self->regex_revalidate_dot_config( $cdn_obj, $filename ); }
        elsif ( $filename =~ /set_dscp_.*\.config/ ) { $file_contents = 
$self->set_dscp_dot_config( $cdn_obj, $filename ); }
@@ -244,10 +252,12 @@ sub get_profile_config {
        #generate the config file using the appropriate function
        my $file_contents;
        if ( $filename eq "50-ats.rules" ) { $file_contents = 
$self->ats_dot_rules( $profile_obj, $filename ); }
+       elsif ( $filename eq "12M_facts" ) { $file_contents = $self->facts( 
$profile_obj, $filename ); }
        elsif ( $filename eq "astats.config" ) { $file_contents = 
$self->generic_profile_config( $profile_obj, $filename ); }
        elsif ( $filename eq "drop_qstring.config" ) { $file_contents = 
$self->drop_qstring_dot_config( $profile_obj, $filename ); }
        elsif ( $filename eq "logs_xml.config" ) { $file_contents = 
$self->logs_xml_dot_config( $profile_obj, $filename ); }
        elsif ( $filename eq "plugin.config" ) { $file_contents = 
$self->generic_profile_config( $profile_obj, $filename ); }
+       elsif ( $filename eq "records.config" ) { $file_contents = 
$self->generic_profile_config( $profile_obj, $filename ); }
        elsif ( $filename eq "storage.config" ) { $file_contents = 
$self->storage_dot_config( $profile_obj, $filename ); }
        elsif ( $filename eq "sysctl.conf" ) { $file_contents = 
$self->generic_profile_config( $profile_obj, $filename ); }
        elsif ( $filename =~ /url_sig_.*\.config/ ) { $file_contents = 
$self->url_sig_dot_config( $profile_obj, $filename ); }
@@ -282,17 +292,16 @@ sub get_scope {
        my $fname = shift;
        my $scope;
 
-       if    ( $fname eq "12M_facts" )               { $scope = 'server' }
-       elsif ( $fname eq "ip_allow.config" )         { $scope = 'server' }
+       if ( $fname eq "ip_allow.config" )            { $scope = 'server' }
        elsif ( $fname eq "parent.config" )           { $scope = 'server' }
-       elsif ( $fname eq "records.config" )          { $scope = 'server' }
+       elsif ( $fname eq "records.config" )          { $scope = 'profile' }
        elsif ( $fname eq "remap.config" )            { $scope = 'server' }
        elsif ( $fname =~ /to_ext_.*\.config/ )       { $scope = 'server' }
-       elsif ( $fname =~ /hdr_rw_.*\.config/ )       { $scope = 'server' }
        elsif ( $fname eq "hosting.config" )          { $scope = 'server' }
        elsif ( $fname eq "cache.config" )            { $scope = 'server' }
        elsif ( $fname eq "packages" )                { $scope = 'server' }
        elsif ( $fname eq "chkconfig" )               { $scope = 'server' }
+       elsif ( $fname eq "12M_facts" )               { $scope = 'profile' }
        elsif ( $fname eq "50-ats.rules" )            { $scope = 'profile' }
        elsif ( $fname eq "astats.config" )           { $scope = 'profile' }
        elsif ( $fname eq "drop_qstring.config" )     { $scope = 'profile' }
@@ -304,6 +313,7 @@ sub get_scope {
        elsif ( $fname eq "volume.config" )           { $scope = 'profile' }
        elsif ( $fname eq "bg_fetch.config" )         { $scope = 'cdn' }
        elsif ( $fname =~ /cacheurl.*\.config/ )      { $scope = 'cdn' }
+       elsif ( $fname =~ /hdr_rw_.*\.config/ )       { $scope = 'cdn' }
        elsif ( $fname =~ /regex_remap_.*\.config/ )  { $scope = 'cdn' }
        elsif ( $fname eq "regex_revalidate.config" ) { $scope = 'cdn' }
        elsif ( $fname =~ /set_dscp_.*\.config/ )     { $scope = 'cdn' }
@@ -707,10 +717,10 @@ sub ds_data {
 #generates the 12m_facts file
 sub facts {
        my $self       = shift;
-       my $server_obj = shift;
+       my $profile_obj = shift;
        my $filename   = shift;
-       my $text       = $self->header_comment( $server_obj->host_name );
-       $text .= "profile:" . $server_obj->profile->name . "\n";
+       my $text       = $self->header_comment( $profile_obj->name );
+       $text .= "profile:" . $profile_obj->name . "\n";
 
        return $text;
 }
@@ -995,10 +1005,10 @@ sub bg_fetch_dot_config {
 
 sub header_rewrite_dot_config {
        my $self     = shift;
-       my $server_obj  = shift;
+       my $cdn_obj  = shift;
        my $filename = shift;
 
-       my $text      = $self->header_comment( $server_obj->host_name );
+       my $text      = $self->header_comment( $cdn_obj->name );
        my $ds_xml_id = undef;
        if ( $filename =~ /^hdr_rw_mid_(.*)\.config$/ ) {
                $ds_xml_id = $1;
@@ -1014,8 +1024,10 @@ sub header_rewrite_dot_config {
        }
 
        $text =~ s/\s*__RETURN__\s*/\n/g;
-       my $ipv4 = $server_obj->ip_address;
-       $text =~ s/__CACHE_IPV4__/$ipv4/g;
+
+       #do the following text replacement at the ORT level for cacheability
+       # my $ipv4 = $server_obj->ip_address;
+       # $text =~ s/__CACHE_IPV4__/$ipv4/g;
 
        return $text;
 }

Reply via email to