You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by oc...@apache.org on 2020/08/17 19:52:36 UTC
[trafficcontrol] branch master updated: Allow '0' as a valid value
for TTL field in DNS static entry (#4955)
This is an automated email from the ASF dual-hosted git repository.
ocket8888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git
The following commit(s) were added to refs/heads/master by this push:
new 7517836 Allow '0' as a valid value for TTL field in DNS static entry (#4955)
7517836 is described below
commit 75178363edf8762a2a73a9ea8adfe72a3ff4101f
Author: rimashah25 <22...@users.noreply.github.com>
AuthorDate: Mon Aug 17 13:52:24 2020 -0600
Allow '0' as a valid value for TTL field in DNS static entry (#4955)
* Fixed github issue: 3400
* Fixed github issue: 3400 on TP
* Removed min and step condition for TTL
* Fixed null-pointer error
* Revert "Removed min and step condition for TTL"
This reverts commit 91c430ca10d0c8438796f3c69e789fd4515c481f.
* Updated TP's TTL field pattern match
---
CHANGELOG.md | 1 +
traffic_ops/testing/api/v2/tc-fixtures.json | 2 +-
traffic_ops/testing/api/v3/tc-fixtures.json | 2 +-
.../traffic_ops_golang/staticdnsentry/staticdnsentry.go | 12 ++++++++++--
.../form.deliveryServiceStaticDnsEntry.tpl.html | 4 ++--
.../end_to_end/deliveryServices/delivery-services-spec.js | 2 +-
6 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 78d6d1b..078a95c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -36,6 +36,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
- Added debugging functionality to CDN-in-a-Box for Traffic Stats.
### Fixed
+- Fixed #3400 - Allow "0" as a TTL value for Static DNS entries
- Fixed #4743 - Validate absolute DNS name requirement on Static DNS entry for CNAME type [Related github issue](https://github.com/apache/trafficcontrol/issues/4743)
- Fixed #4848 - `GET /api/x/cdns/capacity` gives back 500, with the message `capacity was zero`
- Fixed #2156 - Renaming a host in TC, does not impact xmpp_id and thereby hashid [Related github issue](https://github.com/apache/trafficcontrol/issues/2156)
diff --git a/traffic_ops/testing/api/v2/tc-fixtures.json b/traffic_ops/testing/api/v2/tc-fixtures.json
index 3ed7661..a30a338 100644
--- a/traffic_ops/testing/api/v2/tc-fixtures.json
+++ b/traffic_ops/testing/api/v2/tc-fixtures.json
@@ -2160,7 +2160,7 @@
"deliveryservice": "ds1",
"host": "host1",
"type": "CNAME_RECORD",
- "ttl": 10
+ "ttl": 0
},
{
"address": "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
diff --git a/traffic_ops/testing/api/v3/tc-fixtures.json b/traffic_ops/testing/api/v3/tc-fixtures.json
index 83b7e0d..7aad2ad 100644
--- a/traffic_ops/testing/api/v3/tc-fixtures.json
+++ b/traffic_ops/testing/api/v3/tc-fixtures.json
@@ -2687,7 +2687,7 @@
"deliveryservice": "ds1",
"host": "host1",
"type": "CNAME_RECORD",
- "ttl": 10
+ "ttl": 0
},
{
"address": "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
diff --git a/traffic_ops/traffic_ops_golang/staticdnsentry/staticdnsentry.go b/traffic_ops/traffic_ops_golang/staticdnsentry/staticdnsentry.go
index a0e0e04..643f874 100644
--- a/traffic_ops/traffic_ops_golang/staticdnsentry/staticdnsentry.go
+++ b/traffic_ops/traffic_ops_golang/staticdnsentry/staticdnsentry.go
@@ -96,7 +96,7 @@ func (staticDNSEntry TOStaticDNSEntry) Validate() error {
return err
}
- var addressErr error
+ var addressErr, ttlErr error
switch typeStr {
case "A_RECORD":
addressErr = validation.Validate(staticDNSEntry.Address, validation.Required, is.IPv4)
@@ -115,11 +115,19 @@ func (staticDNSEntry TOStaticDNSEntry) Validate() error {
addressErr = validation.Validate(staticDNSEntry.Address, validation.Required)
}
+ if staticDNSEntry.TTL != nil {
+ if *staticDNSEntry.TTL == 0 {
+ ttlErr = validation.Validate(staticDNSEntry.TTL, is.Digit)
+ }
+ } else {
+ ttlErr = validation.Validate(staticDNSEntry.TTL, validation.Required)
+ }
+
errs := validation.Errors{
"host": validation.Validate(staticDNSEntry.Host, validation.Required, is.DNSName),
"address": addressErr,
"deliveryserviceId": validation.Validate(staticDNSEntry.DeliveryServiceID, validation.Required),
- "ttl": validation.Validate(staticDNSEntry.TTL, validation.Required),
+ "ttl": ttlErr,
"typeId": validation.Validate(staticDNSEntry.TypeID, validation.Required),
}
return util.JoinErrs(tovalidate.ToErrors(errs))
diff --git a/traffic_portal/app/src/common/modules/form/deliveryServiceStaticDnsEntry/form.deliveryServiceStaticDnsEntry.tpl.html b/traffic_portal/app/src/common/modules/form/deliveryServiceStaticDnsEntry/form.deliveryServiceStaticDnsEntry.tpl.html
index aac08b2..19c4025 100644
--- a/traffic_portal/app/src/common/modules/form/deliveryServiceStaticDnsEntry/form.deliveryServiceStaticDnsEntry.tpl.html
+++ b/traffic_portal/app/src/common/modules/form/deliveryServiceStaticDnsEntry/form.deliveryServiceStaticDnsEntry.tpl.html
@@ -50,9 +50,9 @@ under the License.
<div class="form-group" ng-class="{'has-error': hasError(dsStaticDnsEntryForm.ttl), 'has-feedback': hasError(dsStaticDnsEntryForm.ttl)}">
<label for="ttl" class="control-label col-md-2 col-sm-2 col-xs-12">TTL *</label>
<div class="col-md-10 col-sm-10 col-xs-12">
- <input id="ttl" name="ttl" type="number" class="form-control" ng-model="staticDnsEntry.ttl" min="0" step="1" required>
+ <input id="ttl" name="ttl" type="number" class="form-control" ng-model="staticDnsEntry.ttl" min="0" step="1" pattern="\d+" required>
<small class="input-error" ng-show="hasPropertyError(dsStaticDnsEntryForm.ttl, 'required')">Required</small>
- <small class="input-error" ng-show="hasPropertyError(dsStaticDnsEntryForm.ttl, 'step') || hasPropertyError(dsStaticDnsEntryForm.ttl, 'min')">Whole Number</small>
+ <small class="input-error" ng-show="hasPropertyError(dsStaticDnsEntryForm.ttl, 'step') || hasPropertyError(dsStaticDnsEntryForm.ttl, 'min') || hasPropertyError(dsStaticDnsEntryForm.ttl, 'pattern')">Whole Number</small>
<span ng-show="hasError(dsStaticDnsEntryForm.ttl)" class="form-control-feedback"><i class="fa fa-times"></i></span>
</div>
</div>
diff --git a/traffic_portal/test/end_to_end/deliveryServices/delivery-services-spec.js b/traffic_portal/test/end_to_end/deliveryServices/delivery-services-spec.js
index 90ffb25..54d0f5d 100644
--- a/traffic_portal/test/end_to_end/deliveryServices/delivery-services-spec.js
+++ b/traffic_portal/test/end_to_end/deliveryServices/delivery-services-spec.js
@@ -52,7 +52,7 @@ describe('Traffic Portal Delivery Services Suite', function() {
steeringXmlId: "http-xml-id-" + commonFunctions.shuffle('abcdefghijklmonpqrstuvwxyz'),
longDesc: "This is only a test delivery service that should be disposed of by Automated UI Testing.",
staticDNShostName: "static-dns-xml-id-" + commonFunctions.shuffle('abcdefghijklmonpqrstuvwxyz'),
- staticDNSTTL: 50,
+ staticDNSTTL: 0,
staticDNSAddress: "cdn.test.com."
};