You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by mi...@apache.org on 2017/03/09 19:09:41 UTC
[33/44] incubator-trafficcontrol git commit: add qsh support,
5.x generation works now - no diff
add qsh support, 5.x generation works now - no diff
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/c1d25200
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/c1d25200
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/c1d25200
Branch: refs/heads/master
Commit: c1d25200be745b9fb2f3958e2d452284bfb44f54
Parents: 0449913
Author: Jan van Doorn <jv...@apache.org>
Authored: Sun Feb 12 17:45:14 2017 +0000
Committer: Jan van Doorn <jv...@apache.org>
Committed: Fri Feb 17 17:49:11 2017 +0000
----------------------------------------------------------------------
traffic_ops/app/lib/UI/ConfigFiles.pm | 61 ++++++++++++------------------
1 file changed, 25 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/c1d25200/traffic_ops/app/lib/UI/ConfigFiles.pm
----------------------------------------------------------------------
diff --git a/traffic_ops/app/lib/UI/ConfigFiles.pm b/traffic_ops/app/lib/UI/ConfigFiles.pm
index 0df9123..7154b56 100644
--- a/traffic_ops/app/lib/UI/ConfigFiles.pm
+++ b/traffic_ops/app/lib/UI/ConfigFiles.pm
@@ -396,7 +396,6 @@ sub parent_data {
my $rank = $profile_cache{$pid}->{rank};
my $primary_parent = $server->cachegroup->parent_cachegroup_id // -1;
my $secondary_parent = $server->cachegroup->secondary_parent_cachegroup_id // -1;
- print "ds_domain:" . $ds_domain . " server_domain: " . $server_domain . "\n";
if ( defined($ds_domain) && defined($server_domain) && $ds_domain eq $server_domain ) {
my %p = (
@@ -1094,7 +1093,8 @@ sub parent_dot_config {
my $server = $self->server_data($id);
my $server_type = $server->type->name;
- my $parent_qstring;
+
+ #my $parent_qstring;
my $pinfo;
my $text = $self->header_comment( $server->host_name );
if ( !defined($data) ) {
@@ -1106,12 +1106,24 @@ sub parent_dot_config {
if ( $server_type =~ m/^MID/ ) {
my @unique_origin;
foreach my $ds ( @{ $data->{dslist} } ) {
- my $xml_id = $ds->{ds_xml_id};
- my $os = $ds->{origin_shield};
- $parent_qstring = "ignore";
- my $multi_site_origin = defined( $ds->{multi_site_origin} ) ? $ds->{multi_site_origin} : 0;
- my $multi_site_origin_algorithm = defined( $ds->{multi_site_origin_algorithm} ) ? $ds->{multi_site_origin_algorithm} : 0;
-
+ my $xml_id = $ds->{ds_xml_id};
+ my $os = $ds->{origin_shield};
+ my $multi_site_origin = defined( $ds->{multi_site_origin} ) ? $ds->{multi_site_origin} : 0;
+ my $msoa = $ds->{'param'}->{'parent.config'}->{'mso.algorithm'};
+ my $mso_algorithm = defined($msoa) ? $msoa : 0;
+ my $dsre = $ds->{'param'}->{'parent.config'}->{'mso.dead_server_retry_enabled'};
+ my $dead_server_retry_enabled = defined($dsre) ? $dsre : 0;
+ my $sre = $ds->{'param'}->{'parent.config'}->{'mso.simple_retry_enabled'};
+ my $simple_retry_enabled = defined($sre) ? $sre : 0;
+ my $srsc = $ds->{'param'}->{'parent.config'}->{'mso.simple_retry_response_codes'};
+ my $simple_retry_response_codes = defined($srsc) ? $srsc : "";
+ my $dsrrc = $ds->{'param'}->{'parent.config'}->{'mso.dead_server_retry_response_codes'};
+ my $dead_server_retry_response_codes = defined($dsrrc) ? $dsrrc : "";
+ my $qsh = $ds->{'param'}->{'parent.config'}->{'mso.qstring_handling'};
+ my $parent_qstring = "ignore"; # default is ignore, unless for alg consistent_hash
+ if ( !defined($qsh) && $mso_algorithm eq 'consistent_hash' && $ds->{qstring_ignore} == 0 ) {
+ $parent_qstring = 'consider';
+ }
my $org_uri = URI->new( $ds->{org} );
# Don't duplicate origin line if multiple seen
@@ -1168,28 +1180,7 @@ sub parent_dot_config {
@null_parent_info = grep { !$seen{$_}++ } @null_parent_info;
}
my $parents = 'parent="' . join( '', @parent_info ) . '' . join( '', @secondary_parent_info ) . '' . join( '', @null_parent_info ) . '"';
- my $mso_algorithm = "";
- if ( $multi_site_origin_algorithm == 0 ) {
- $mso_algorithm = "consistent_hash";
- if ( $ds->{qstring_ignore} == 0 ) {
- $parent_qstring = "consider";
- }
- }
- elsif ( $multi_site_origin_algorithm == 1 ) {
- $mso_algorithm = "false";
- }
- elsif ( $multi_site_origin_algorithm == 2 ) {
- $mso_algorithm = "strict";
- }
- elsif ( $multi_site_origin_algorithm == 3 ) {
- $mso_algorithm = "true";
- }
- elsif ( $multi_site_origin_algorithm == 4 ) {
- $mso_algorithm = "latched";
- }
- else {
- $mso_algorithm = "consistent_hash";
- }
+
$text .= "$parents round_robin=$mso_algorithm qstring=$parent_qstring go_direct=false parent_is_proxy=false\n";
}
}
@@ -1198,16 +1189,12 @@ sub parent_dot_config {
$self->app->log->debug( "MID PARENT.CONFIG:\n" . $text . "\n" );
return $text;
}
- else {
-
- #"True" Parent
+ else { #"True" Parent - we are genning a EDGE config that points to a parent proxy.
$pinfo = $self->parent_data($server);
-
my %done = ();
foreach my $remap ( @{ $data->{dslist} } ) {
my $org = $remap->{org};
- $parent_qstring = "ignore";
next if !defined $org || $org eq "";
next if $done{$org};
my $org_uri = URI->new($org);
@@ -1215,7 +1202,9 @@ sub parent_dot_config {
$text .= "dest_domain=" . $org_uri->host . " port=" . $org_uri->port . " go_direct=true\n";
}
else {
- if ( $remap->{qstring_ignore} == 0 ) {
+ my $qsh = $remap->{'param'}->{'parent.config'}->{'psel.qstring_handling'};
+ my $parent_qstring = defined($qsh) ? $qsh : "ignore";
+ if ( $remap->{qstring_ignore} == 0 && !defined($qsh) ) {
$parent_qstring = "consider";
}