summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2022-06-06 22:03:51 +0000
committerGerrit Code Review <review@openstack.org>2022-06-06 22:03:51 +0000
commitd52b1d793dcea1ab354a73c6f620e6c121552f3e (patch)
tree240874310996631d20d8910d22b7a0de71932c9e
parent38d98ed2b69f74bdf26db2446f5f88e3107641ec (diff)
parent1ba0f1a1155c15935b58fda4e672b5f7e96c10c8 (diff)
downloaddesignate-d52b1d793dcea1ab354a73c6f620e6c121552f3e.tar.gz
Merge "Minimum TTL value allowed is zero" into stable/yoga
-rw-r--r--designate/objects/zone.py2
-rw-r--r--designate/tests/test_api/test_v2/test_zones.py4
-rw-r--r--designate/tests/test_central/test_service.py8
-rw-r--r--releasenotes/notes/bug-1926429-allow-ttl-min-of-zero-688f7c2cf095d89d.yaml8
4 files changed, 15 insertions, 7 deletions
diff --git a/designate/objects/zone.py b/designate/objects/zone.py
index fa09187d..8370d7d0 100644
--- a/designate/objects/zone.py
+++ b/designate/objects/zone.py
@@ -31,7 +31,7 @@ class Zone(base.DesignateObject, base.DictObjectMixin,
'tenant_id': fields.StringFields(nullable=True, read_only=False),
'name': fields.DomainField(maxLength=255),
'email': fields.EmailField(maxLength=255, nullable=True),
- 'ttl': fields.IntegerFields(nullable=True, minimum=1,
+ 'ttl': fields.IntegerFields(nullable=True, minimum=0,
maximum=2147483647),
'refresh': fields.IntegerFields(nullable=True, minimum=0,
maximum=2147483647, read_only=False),
diff --git a/designate/tests/test_api/test_v2/test_zones.py b/designate/tests/test_api/test_v2/test_zones.py
index 24845ef7..45451d0d 100644
--- a/designate/tests/test_api/test_v2/test_zones.py
+++ b/designate/tests/test_api/test_v2/test_zones.py
@@ -139,8 +139,8 @@ class ApiV2ZonesTest(ApiV2TestCase):
fixture = self.get_zone_fixture(fixture=0)
fixture['ttl'] = 0
body = fixture
- self._assert_exception('invalid_object', 400, self.client.post_json,
- '/zones', body)
+ response = self.client.post_json('/zones', body)
+ self.assertEqual(202, response.status_int)
def test_create_zone_ttl_is_greater_than_max(self):
fixture = self.get_zone_fixture(fixture=0)
diff --git a/designate/tests/test_central/test_service.py b/designate/tests/test_central/test_service.py
index 22ac3db4..e21e9754 100644
--- a/designate/tests/test_central/test_service.py
+++ b/designate/tests/test_central/test_service.py
@@ -719,18 +719,18 @@ class CentralServiceTest(CentralTestCase):
self.policy({'use_low_ttl': '!'})
self.config(min_ttl=100,
group='service:central')
- context = self.get_context()
+ context = self.get_context(project_id=1)
values = self.get_zone_fixture(fixture=1)
- values['ttl'] = 0
+ values['ttl'] = 5
- with testtools.ExpectedException(ValueError):
+ with testtools.ExpectedException(exceptions.InvalidTTL):
self.central_service.create_zone(
context, objects.Zone.from_dict(values))
def test_create_zone_below_zero_ttl(self):
self.policy({'use_low_ttl': '!'})
- self.config(min_ttl=1,
+ self.config(min_ttl=0,
group='service:central')
context = self.get_context()
diff --git a/releasenotes/notes/bug-1926429-allow-ttl-min-of-zero-688f7c2cf095d89d.yaml b/releasenotes/notes/bug-1926429-allow-ttl-min-of-zero-688f7c2cf095d89d.yaml
new file mode 100644
index 00000000..fc157bde
--- /dev/null
+++ b/releasenotes/notes/bug-1926429-allow-ttl-min-of-zero-688f7c2cf095d89d.yaml
@@ -0,0 +1,8 @@
+---
+fixes:
+ - |
+ Allows for a minimum TTL value of zero to be used instead of 1. As stated
+ in RFC https://datatracker.ietf.org/doc/html/rfc2181#section-8.
+
+ .. _bug 1926429: https://bugs.launchpad.net/designate/+bug/1926429
+