You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by da...@apache.org on 2017/05/19 22:06:46 UTC

[1/2] incubator-trafficcontrol git commit: orgserverfqdn is not required when ds type is ANY_MAP, STEERING OR CLIENT_STEERING

Repository: incubator-trafficcontrol
Updated Branches:
  refs/heads/master b7b4840a0 -> bcad70fd6


orgserverfqdn is not required when ds type is ANY_MAP, STEERING OR CLIENT_STEERING


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

Branch: refs/heads/master
Commit: b830d1719e4d33f475bab4de0fadfbc7ea39a7d8
Parents: b7b4840
Author: Jeremy Mitchell <mi...@gmail.com>
Authored: Fri May 19 11:30:26 2017 -0600
Committer: Dan Kirkwood <da...@gmail.com>
Committed: Fri May 19 16:05:42 2017 -0600

----------------------------------------------------------------------
 .../traffic_ops_api/v12/deliveryservice.rst     |  5 ++-
 traffic_ops/app/lib/API/Deliveryservice.pm      | 40 ++++++++++++++------
 2 files changed, 32 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/b830d171/docs/source/development/traffic_ops_api/v12/deliveryservice.rst
----------------------------------------------------------------------
diff --git a/docs/source/development/traffic_ops_api/v12/deliveryservice.rst b/docs/source/development/traffic_ops_api/v12/deliveryservice.rst
index 8e21e98..6c60e72 100644
--- a/docs/source/development/traffic_ops_api/v12/deliveryservice.rst
+++ b/docs/source/development/traffic_ops_api/v12/deliveryservice.rst
@@ -1493,8 +1493,9 @@ SSL Keys
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | multiSiteOrigin        | yes      | 1 if enabled, 0 if disabled.                                                                            |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | orgServerFqdn          | yes      | The origin server base URL (FQDN when used in this instance, includes the                               |
-  |                        |          | protocol (http:// or https://) for use in retrieving content from the origin server.                    |
+  | orgServerFqdn          | yes|no   | The origin server base URL (FQDN when used in this instance, includes the                               |
+  |                        |          | protocol (http:// or https://) for use in retrieving content from the origin server. This field is      |
+  |                        |          | NOT required if type is ANY_MAP, STEERING OR CLIENT_STEERING.                                           |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | originShield           | no       | Origin shield                                                                                           |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/b830d171/traffic_ops/app/lib/API/Deliveryservice.pm
----------------------------------------------------------------------
diff --git a/traffic_ops/app/lib/API/Deliveryservice.pm b/traffic_ops/app/lib/API/Deliveryservice.pm
index 4104502..a215fd3 100644
--- a/traffic_ops/app/lib/API/Deliveryservice.pm
+++ b/traffic_ops/app/lib/API/Deliveryservice.pm
@@ -1022,26 +1022,26 @@ sub is_deliveryservice_valid {
 
 		# Validation checks to perform
 		checks => [
-			active               => [ is_required("is required") ],
+			xmlId                => [ is_required("is required"), is_like( qr/^\S*$/, "no spaces" ), is_long_at_most( 48, 'too long' ) ],
+			typeId               => [ is_required("is required") ],
 			cdnId                => [ is_required("is required") ],
+			active               => [ is_required("is required") ],
 			displayName          => [ is_required("is required"), is_long_at_most( 48, 'too long' ) ],
-			dscp                 => [ is_required("is required") ],
-			geoLimit             => [ is_required("is required") ],
-			geoProvider          => [ is_required("is required") ],
-			initialDispersion    => [ is_required("is required") ],
+			dscp                 => [ is_required("is required"), is_like( qr/^\d+$/, "digits only" ) ],
+			geoLimit             => [ is_required("is required"), is_like( qr/^\d+$/, "digits only" ) ],
+			geoProvider          => [ is_required("is required"), is_like( qr/^\d+$/, "digits only" ) ],
+			initialDispersion    => [ is_required("is required"), is_like( qr/^\d+$/, "digits only" ) ],
 			ipv6RoutingEnabled   => [ is_required("is required") ],
 			logsEnabled          => [ is_required("is required") ],
 			missLat              => [ \&is_valid_lat ],
 			missLong             => [ \&is_valid_long ],
 			multiSiteOrigin      => [ is_required("is required") ],
-			orgServerFqdn        => [ is_required("is required"), is_like( qr/^(https?:\/\/)/, "must start with http:// or https://" ) ],
-			protocol             => [ is_required("is required") ],
-			qstringIgnore        => [ is_required("is required") ],
-			rangeRequestHandling => [ is_required("is required") ],
+			orgServerFqdn        => [ sub { is_valid_org_server_fqdn($self, @_) } ],
+			protocol             => [ is_required("is required"), is_like( qr/^\d+$/, "digits only" ) ],
+			qstringIgnore        => [ is_required("is required"), is_like( qr/^\d+$/, "digits only" ) ],
+			rangeRequestHandling => [ is_required("is required"), is_like( qr/^\d+$/, "digits only" ) ],
 			regionalGeoBlocking  => [ is_required("is required") ],
 			signed               => [ is_required("is required") ],
-			typeId               => [ is_required("is required") ],
-			xmlId                => [ is_required("is required"), is_like( qr/^\S*$/, "no spaces" ), is_long_at_most( 48, 'too long' ) ],
 		]
 	};
 
@@ -1103,6 +1103,24 @@ sub is_valid_long {
 	return undef;
 }
 
+sub is_valid_org_server_fqdn {
+	my $self    = shift;
+	my ( $value, $params ) = @_;
+
+	if ( (!defined $value or $value eq '') ) {
+		my $type_name = $self->db->resultset("Type")->find( { id => $params->{typeId} } )->get_column('name') // undef;
+		if ( defined($type_name) && ( $type_name =~ /(^ANY_MAP$|^.*STEERING.*$)/ ) ) {
+			return undef;
+		}
+	}
+
+	if ( !( $value =~ /^(https?:\/\/)/ ) ) {
+		return "invalid. Must start with http:// or https://.";
+	}
+
+	return undef;
+}
+
 sub sanitize_geo_limit_countries {
 	my $geo_limit_countries = shift;
 


[2/2] incubator-trafficcontrol git commit: This closes #590.

Posted by da...@apache.org.
This closes #590.


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

Branch: refs/heads/master
Commit: bcad70fd63710b5a565716b624432c5cbbb786cb
Parents: b830d17
Author: Dan Kirkwood <da...@gmail.com>
Authored: Fri May 19 16:06:31 2017 -0600
Committer: Dan Kirkwood <da...@gmail.com>
Committed: Fri May 19 16:06:31 2017 -0600

----------------------------------------------------------------------

----------------------------------------------------------------------