trafficcontrol-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From els...@apache.org
Subject [incubator-trafficcontrol] 01/36: Add deep_caching_type to DB, API, CRConfig, and UI.
Date Wed, 24 Jan 2018 17:23:10 GMT
This is an automated email from the ASF dual-hosted git repository.

elsloo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-trafficcontrol.git

commit 16896974085669bebce296c4a116f96b5b047b0f
Author: Jan van Doorn <jan_vandoorn@cable.comcast.com>
AuthorDate: Fri Nov 18 12:40:43 2016 -0700

    Add deep_caching_type to DB, API, CRConfig, and UI.
    
    (cherry picked from commit 160a539446c46f9a593e208492bded4781418c6e)
---
 .../20171012000000_add_deep_caching_type.sql       | 23 ++++++++++++++++++++++
 traffic_ops/app/lib/API/Deliveryservice.pm         | 14 +++++++++++--
 traffic_ops/app/lib/UI/DeliveryService.pm          |  3 +++
 traffic_ops/app/lib/UI/Topology.pm                 |  5 +++++
 .../app/templates/delivery_service/_form.html.ep   | 15 ++++++++++++++
 5 files changed, 58 insertions(+), 2 deletions(-)

diff --git a/traffic_ops/app/db/migrations/20171012000000_add_deep_caching_type.sql b/traffic_ops/app/db/migrations/20171012000000_add_deep_caching_type.sql
new file mode 100644
index 0000000..17c78cc
--- /dev/null
+++ b/traffic_ops/app/db/migrations/20171012000000_add_deep_caching_type.sql
@@ -0,0 +1,23 @@
+/*
+	Licensed under the Apache License, Version 2.0 (the "License");
+	you may not use this file except in compliance with the License.
+	You may obtain a copy of the License at
+
+	    http://www.apache.org/licenses/LICENSE-2.0
+
+	Unless required by applicable law or agreed to in writing, software
+	distributed under the License is distributed on an "AS IS" BASIS,
+	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	See the License for the specific language governing permissions and
+	limitations under the License.
+*/
+
+-- +goose Up
+-- SQL in section 'Up' is executed when this migration is applied
+
+alter table deliveryservice add column deep_caching_type smallint default 0;
+
+-- +goose Down
+-- SQL section 'Down' is executed when this migration is rolled back
+
+ alter table deliveryservice drop column deep_caching_type;
diff --git a/traffic_ops/app/lib/API/Deliveryservice.pm b/traffic_ops/app/lib/API/Deliveryservice.pm
index 5db2fd2..b78b5a7 100644
--- a/traffic_ops/app/lib/API/Deliveryservice.pm
+++ b/traffic_ops/app/lib/API/Deliveryservice.pm
@@ -106,6 +106,7 @@ sub index {
 				"cdnId"                => $row->cdn->id,
 				"cdnName"              => $row->cdn->name,
 				"checkPath"            => $row->check_path,
+				"deepCachingType"      => $row->deep_caching_type,
 				"displayName"          => $row->display_name,
 				"dnsBypassCname"       => $row->dns_bypass_cname,
 				"dnsBypassIp"          => $row->dns_bypass_ip,
@@ -226,6 +227,7 @@ sub show {
 				"cdnId"                => $row->cdn->id,
 				"cdnName"              => $row->cdn->name,
 				"checkPath"            => $row->check_path,
+				"deepCachingType"      => $row->deep_caching_type,
 				"displayName"          => $row->display_name,
 				"dnsBypassCname"       => $row->dns_bypass_cname,
 				"dnsBypassIp"          => $row->dns_bypass_ip,
@@ -332,6 +334,7 @@ sub update {
 		ccr_dns_ttl            => $params->{ccrDnsTtl},
 		cdn_id                 => $params->{cdnId},
 		check_path             => $params->{checkPath},
+		deep_caching_type      => $params->{deepCachingType},
 		display_name           => $params->{displayName},
 		dns_bypass_cname       => $params->{dnsBypassCname},
 		dns_bypass_ip          => $params->{dnsBypassIp},
@@ -429,6 +432,7 @@ sub update {
 				"cdnId"                    => $rs->cdn->id,
 				"cdnName"                  => $rs->cdn->name,
 				"checkPath"                => $rs->check_path,
+				"deepCachingType"          => $rs->deep_caching_type,
 				"displayName"              => $rs->display_name,
 				"dnsBypassCname"           => $rs->dns_bypass_cname,
 				"dnsBypassIp"              => $rs->dns_bypass_ip,
@@ -560,6 +564,7 @@ sub safe_update {
 				"cdnId"                    => $rs->cdn->id,
 				"cdnName"                  => $rs->cdn->name,
 				"checkPath"                => $rs->check_path,
+				"deepCachingType"          => $rs->deep_caching_type,
 				"displayName"              => $rs->display_name,
 				"dnsBypassCname"           => $rs->dns_bypass_cname,
 				"dnsBypassIp"              => $rs->dns_bypass_ip,
@@ -666,6 +671,7 @@ sub create {
 		ccr_dns_ttl            => $params->{ccrDnsTtl},
 		cdn_id                 => $params->{cdnId},
 		check_path             => $params->{checkPath},
+		deep_caching_type      => $params->{deepCachingType},
 		display_name           => $params->{displayName},
 		dns_bypass_cname       => $params->{dnsBypassCname},
 		dns_bypass_ip          => $params->{dnsBypassIp},
@@ -774,6 +780,7 @@ sub create {
 				"cdnId"                    => $insert->cdn->id,
 				"cdnName"                  => $insert->cdn->name,
 				"checkPath"                => $insert->check_path,
+				"deepCachingType"          => $insert->deep_caching_type,
 				"displayName"              => $insert->display_name,
 				"dnsBypassCname"           => $insert->dns_bypass_cname,
 				"dnsBypassIp"              => $insert->dns_bypass_ip,
@@ -966,6 +973,7 @@ sub get_deliveryservices_by_serverId {
 					"cdnId"                => $row->cdn->id,
 					"cdnName"              => $row->cdn->name,
 					"checkPath"            => $row->check_path,
+					"deepCachingType"      => $row->deep_caching_type,
 					"displayName"          => $row->display_name,
 					"dnsBypassCname"       => $row->dns_bypass_cname,
 					"dnsBypassIp"          => $row->dns_bypass_ip,
@@ -1064,6 +1072,7 @@ sub get_deliveryservices_by_userId {
 					"cdnId"                => $row->cdn->id,
 					"cdnName"              => $row->cdn->name,
 					"checkPath"            => $row->check_path,
+					"deepCachingType"      => $row->deep_caching_type,
 					"displayName"          => $row->display_name,
 					"dnsBypassCname"       => $row->dns_bypass_cname,
 					"dnsBypassIp"          => $row->dns_bypass_ip,
@@ -1335,7 +1344,7 @@ sub is_deliveryservice_request_valid {
 
 	my $rules = {
 		fields => [
-			qw/customer contentType deliveryProtocol routingType routingName serviceDesc peakBPSEstimate
peakTPSEstimate maxLibrarySizeEstimate originURL hasOriginDynamicRemap originTestFile hasOriginACLWhitelist
originHeaders otherOriginSecurity queryStringHandling rangeRequestHandling hasSignedURLs hasNegativeCachingCustomization
negativeCachingCustomizationNote serviceAliases rateLimitingGBPS rateLimitingTPS overflowService
headerRewriteEdge headerRewriteMid headerRewriteRedirectRouter notes/
+			qw/customer contentType deepCachingType deliveryProtocol routingType routingName serviceDesc
peakBPSEstimate peakTPSEstimate maxLibrarySizeEstimate originURL hasOriginDynamicRemap originTestFile
hasOriginACLWhitelist originHeaders otherOriginSecurity queryStringHandling rangeRequestHandling
hasSignedURLs hasNegativeCachingCustomization negativeCachingCustomizationNote serviceAliases
rateLimitingGBPS rateLimitingTPS overflowService headerRewriteEdge headerRewriteMid headerRewriteRedire
[...]
 		],
 
 		# Validation checks to perform
@@ -1370,7 +1379,7 @@ sub is_deliveryservice_valid {
 
 	my $rules = {
 		fields => [
-			qw/active cacheurl ccrDnsTtl cdnId checkPath displayName dnsBypassCname dnsBypassIp dnsBypassIp6
dnsBypassTtl dscp edgeHeaderRewrite geoLimitRedirectURL geoLimit geoLimitCountries geoProvider
globalMaxMbps globalMaxTps httpBypassFqdn infoUrl initialDispersion ipv6RoutingEnabled logsEnabled
longDesc longDesc1 longDesc2 maxDnsAnswers midHeaderRewrite missLat missLong multiSiteOrigin
multiSiteOriginAlgorithm orgServerFqdn originShield profileId protocol qstringIgnore rangeRequestHandling
[...]
+			qw/active cacheurl ccrDnsTtl cdnId checkPath deepCachingType displayName dnsBypassCname
dnsBypassIp dnsBypassIp6 dnsBypassTtl dscp edgeHeaderRewrite geoLimitRedirectURL geoLimit
geoLimitCountries geoProvider globalMaxMbps globalMaxTps httpBypassFqdn infoUrl initialDispersion
ipv6RoutingEnabled logsEnabled longDesc longDesc1 longDesc2 maxDnsAnswers midHeaderRewrite
missLat missLong multiSiteOrigin multiSiteOriginAlgorithm orgServerFqdn originShield profileId
protocol qstringIgnore rang [...]
 		],
 
 		# validation checks to perform for ALL delivery services
@@ -1378,6 +1387,7 @@ sub is_deliveryservice_valid {
 			active				=> [ is_required("is required") ],
 			cdnId				=> [ is_required("is required"), \&is_valid_int_or_undef ],
 			ccrDnsTtl			=> [ \&is_valid_int_or_undef ],
+			deepCachingType      => [ is_like( qr/^[01]$/, "must be 0 (never) or 1 (always)" )
],
 			dnsBypassTtl			=> [ \&is_valid_int_or_undef ],
 			dscp				=> [ is_required("is required"), \&is_valid_int_or_undef ],
 			displayName			=> [ is_required("is required"), is_long_at_most( 48, 'too long' ) ],
diff --git a/traffic_ops/app/lib/UI/DeliveryService.pm b/traffic_ops/app/lib/UI/DeliveryService.pm
index c9fac43..f1c47d9 100644
--- a/traffic_ops/app/lib/UI/DeliveryService.pm
+++ b/traffic_ops/app/lib/UI/DeliveryService.pm
@@ -255,6 +255,7 @@ sub read {
 				"initial_dispersion"          => $row->initial_dispersion,
 				"regional_geo_blocking"       => $row->regional_geo_blocking,
 				"logs_enabled"                => \$row->logs_enabled,
+				"deep_caching_type"           => $row->deep_caching_type,
 			}
 		);
 	}
@@ -835,6 +836,7 @@ sub update {
 			remap_text         => $self->paramAsScalar( 'ds.remap_text',         undef ),
 			initial_dispersion => $self->paramAsScalar( 'ds.initial_dispersion', 1 ),
 			logs_enabled       => $self->paramAsScalar('ds.logs_enabled'),
+			deep_caching_type  => $self->paramAsScalar('ds.deep_caching_type'),
 		);
 
 		my $typename = $self->typename();
@@ -1073,6 +1075,7 @@ sub create {
 				initial_dispersion => $self->paramAsScalar( 'ds.initial_dispersion', 1 ),
 				logs_enabled       => $self->paramAsScalar('ds.logs_enabled'),
 				tenant_id => $tenant_id,
+				deep_caching_type  => $self->paramAsScalar('ds.deep_caching_type'),
 		};
 
 		my $insert = $self->db->resultset('Deliveryservice')->create($new_ds);
diff --git a/traffic_ops/app/lib/UI/Topology.pm b/traffic_ops/app/lib/UI/Topology.pm
index e22addd..93c176b 100644
--- a/traffic_ops/app/lib/UI/Topology.pm
+++ b/traffic_ops/app/lib/UI/Topology.pm
@@ -399,6 +399,8 @@ sub gen_crconfig_json {
             $data_obj->{'deliveryServices'}->{ $row->xml_id }->{'geoEnabled'}
= $geoEnabled;
         }
 
+        $data_obj->{'deliveryServices'}->{ $row->xml_id }->{'deepCachingType'}
= $row->deep_caching_type;
+
         # Default to 'http only'
         $data_obj->{'deliveryServices'}->{ $row->xml_id }->{'sslEnabled'} = 'false';
         $data_obj->{'deliveryServices'}->{ $row->xml_id }->{'protocol'}->{'acceptHttps'}
= 'false';
@@ -705,6 +707,9 @@ sub stringify_ds {
     if ( defined( $ds->{'missLocation'} ) ) {
         $string .= "|GeoMiss: " . $ds->{'missLocation'}->{'lat'} . "," . $ds->{'missLocation'}->{'long'};
     }
+    if (defined( $ds->{'deepCachingType'} ) ) {
+        $string .= "|deepCachingType: " . $ds->{'deepCachingType'};
+    }
     if ( defined( $ds->{'bypassDestination'} ) ) {
         $string .= "<br>|BypassDest:";
         if ( defined( $ds->{'bypassDestination'}->{'DNS'}->{'ip'} ) ) {
diff --git a/traffic_ops/app/templates/delivery_service/_form.html.ep b/traffic_ops/app/templates/delivery_service/_form.html.ep
index 36cff33..50d1802 100644
--- a/traffic_ops/app/templates/delivery_service/_form.html.ep
+++ b/traffic_ops/app/templates/delivery_service/_form.html.ep
@@ -617,4 +617,19 @@
 			<% } %>
 		<% } %>
 	</div>
+	<div class="block form-row" id="deep_caching_type">
+		<% unless (field('ds.deep_caching_type')->valid) { %>
+			<span class="field-with-error"><%= field('ds.deep_caching_type')->error %></span>
+		<% } %>
+		%= label_for 'deep_caching_type' => '* Deep Caching', class => 'label'
+		<% if ($priv_level >= 20) { %>
+		%= field('ds.deep_caching_type')->select([["Never" => 0], ["Always" => 1]]);
+		<% } else { %>
+			<%  if ($ds->deep_caching_type == 0 ) {%>
+				%= field('ds.deep_caching_type')->text(class => 'field', readonly => 'readonly',
value => 'Never');
+			<% } elsif ($ds->deep_caching_type == 1 ) {%>
+				%= field('ds.deep_caching_type')->text(class => 'field', readonly => 'readonly',
value => 'Always');
+			<% } %>
+		<% } %>
+	</div>
 </div>

-- 
To stop receiving notification emails like this one, please contact
elsloo@apache.org.

Mime
View raw message