summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdesignate/backend/impl_dynect.py4
-rw-r--r--designate/central/service.py2
-rw-r--r--designate/dnsutils.py4
-rw-r--r--designate/tests/__init__.py8
-rw-r--r--designate/tests/test_api/__init__.py20
-rw-r--r--designate/tests/test_api/test_admin/__init__.py4
-rw-r--r--designate/tests/test_api/test_middleware.py12
-rw-r--r--designate/tests/test_api/test_service.py4
-rw-r--r--designate/tests/test_api/test_v2/__init__.py4
-rw-r--r--designate/tests/test_central/__init__.py20
-rw-r--r--designate/tests/test_central/test_service.py4
-rw-r--r--designate/tests/test_manage/__init__.py5
-rw-r--r--designate/tests/test_manage/test_database.py6
-rw-r--r--designate/tests/test_manage/test_pool.py6
-rw-r--r--designate/tests/test_manage/test_update_pool.py6
-rw-r--r--designate/tests/test_mdns/__init__.py20
-rw-r--r--designate/tests/test_mdns/test_handler.py4
-rw-r--r--designate/tests/test_mdns/test_service.py4
-rw-r--r--designate/tests/test_quota/test_quota.py7
-rw-r--r--designate/worker/processing.py4
-rw-r--r--releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po109
-rw-r--r--releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po11
22 files changed, 140 insertions, 128 deletions
diff --git a/designate/backend/impl_dynect.py b/designate/backend/impl_dynect.py
index 19f586f5..7e30443c 100755
--- a/designate/backend/impl_dynect.py
+++ b/designate/backend/impl_dynect.py
@@ -202,11 +202,11 @@ class DynClient(object):
self._http_log_req(method, url, kwargs)
if self.timings:
- start_time = time.time()
+ start_time = time.monotonic()
resp = self.http.request(method, url, **kwargs)
if self.timings:
self.times.append(("%s %s" % (method, url),
- start_time, time.time()))
+ start_time, time.monotonic()))
self._http_log_resp(resp)
if resp.status_code >= 400:
diff --git a/designate/central/service.py b/designate/central/service.py
index 77334dd0..e9831e80 100644
--- a/designate/central/service.py
+++ b/designate/central/service.py
@@ -1211,6 +1211,8 @@ class Service(service.RPCService):
policy.check('share_zone', context, target)
+ self._is_valid_project_id(context.project_id)
+
if zone.tenant_id == shared_zone.target_project_id:
raise exceptions.BadRequest(
'Cannot share the zone with the zone owner.')
diff --git a/designate/dnsutils.py b/designate/dnsutils.py
index 81df8409..43c45dff 100644
--- a/designate/dnsutils.py
+++ b/designate/dnsutils.py
@@ -203,12 +203,12 @@ class ZoneLock(object):
with self.lock:
# If no one holds the lock for the zone, grant it
if zone not in self.data:
- self.data[zone] = time.time()
+ self.data[zone] = time.monotonic()
return True
# Otherwise, get the time that it was locked
locktime = self.data[zone]
- now = time.time()
+ now = time.monotonic()
period = now - locktime
diff --git a/designate/tests/__init__.py b/designate/tests/__init__.py
index d65ef2bf..ac371ab7 100644
--- a/designate/tests/__init__.py
+++ b/designate/tests/__init__.py
@@ -820,7 +820,7 @@ class TestCase(base.BaseTestCase):
Zone imports spawn a thread to parse the zone file and
insert the data. This waits for this process before continuing
"""
- start_time = time.time()
+ start_time = time.monotonic()
while True:
# Retrieve it, and ensure it's the same
zone_import = self.central_service.get_zone_import(
@@ -835,7 +835,7 @@ class TestCase(base.BaseTestCase):
if error_is_ok and zone_import.status != 'PENDING':
break
- if (time.time() - start_time) > max_wait:
+ if (time.monotonic() - start_time) > max_wait:
break
time.sleep(0.5)
@@ -870,8 +870,8 @@ class TestCase(base.BaseTestCase):
Poll every `interval` seconds. `condition` can be a callable.
(Caution: some mocks behave both as values and callables.)
"""
- t_max = time.time() + timeout
- while time.time() < t_max:
+ t_max = time.monotonic() + timeout
+ while time.monotonic() < t_max:
if callable(condition):
result = condition()
else:
diff --git a/designate/tests/test_api/__init__.py b/designate/tests/test_api/__init__.py
index bf9cc4d7..e69de29b 100644
--- a/designate/tests/test_api/__init__.py
+++ b/designate/tests/test_api/__init__.py
@@ -1,20 +0,0 @@
-# Copyright 2012 Managed I.T.
-#
-# Author: Kiall Mac Innes <kiall@managedit.ie>
-#
-# 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.
-from designate.tests import TestCase
-
-
-class ApiTestCase(TestCase):
- pass
diff --git a/designate/tests/test_api/test_admin/__init__.py b/designate/tests/test_api/test_admin/__init__.py
index 82bbec29..4ff894e4 100644
--- a/designate/tests/test_api/test_admin/__init__.py
+++ b/designate/tests/test_api/test_admin/__init__.py
@@ -20,7 +20,7 @@ from webtest import TestApp
from designate.api import admin as admin_api
from designate.api import middleware
-from designate.tests.test_api import ApiTestCase
+import designate.tests
LOG = logging.getLogger(__name__)
@@ -33,7 +33,7 @@ INVALID_ID = [
]
-class AdminApiTestCase(ApiTestCase):
+class AdminApiTestCase(designate.tests.TestCase):
def setUp(self):
super(AdminApiTestCase, self).setUp()
diff --git a/designate/tests/test_api/test_middleware.py b/designate/tests/test_api/test_middleware.py
index ea162496..6e6dd3f4 100644
--- a/designate/tests/test_api/test_middleware.py
+++ b/designate/tests/test_api/test_middleware.py
@@ -23,7 +23,7 @@ from designate.api import middleware
from designate import context
from designate import exceptions
from designate import rpc
-from designate.tests.test_api import ApiTestCase
+import designate.tests
class FakeRequest(object):
@@ -43,7 +43,7 @@ class FakeRequest(object):
return "FakeResponse"
-class KeystoneContextMiddlewareTest(ApiTestCase):
+class KeystoneContextMiddlewareTest(designate.tests.TestCase):
def test_process_request(self):
app = middleware.KeystoneContextMiddleware({})
@@ -106,7 +106,7 @@ class KeystoneContextMiddlewareTest(ApiTestCase):
self.assertEqual(response, 'FakeResponse')
-class NoAuthContextMiddlewareTest(ApiTestCase):
+class NoAuthContextMiddlewareTest(designate.tests.TestCase):
def test_process_request(self):
app = middleware.NoAuthContextMiddleware({})
@@ -125,7 +125,7 @@ class NoAuthContextMiddlewareTest(ApiTestCase):
self.assertEqual(['admin'], ctxt.roles)
-class MaintenanceMiddlewareTest(ApiTestCase):
+class MaintenanceMiddlewareTest(designate.tests.TestCase):
def test_process_request_disabled(self):
self.config(maintenance_mode=False, group='service:api')
@@ -197,7 +197,7 @@ class MaintenanceMiddlewareTest(ApiTestCase):
self.assertEqual('FakeResponse', response)
-class NormalizeURIMiddlewareTest(ApiTestCase):
+class NormalizeURIMiddlewareTest(designate.tests.TestCase):
def test_strip_trailing_slases(self):
request = FakeRequest()
request.environ['PATH_INFO'] = 'resource/'
@@ -223,7 +223,7 @@ class NormalizeURIMiddlewareTest(ApiTestCase):
self.assertEqual('resource', request.environ['PATH_INFO'])
-class FaultMiddlewareTest(ApiTestCase):
+class FaultMiddlewareTest(designate.tests.TestCase):
@mock.patch.object(notifier.Notifier, "error")
def test_notify_of_fault(self, mock_notifier):
self.config(notify_api_faults=True)
diff --git a/designate/tests/test_api/test_service.py b/designate/tests/test_api/test_service.py
index 702e4af0..c0b699dc 100644
--- a/designate/tests/test_api/test_service.py
+++ b/designate/tests/test_api/test_service.py
@@ -20,10 +20,10 @@ from paste import urlmap
from designate.api import service
from designate import exceptions
-from designate.tests.test_api import ApiTestCase
+import designate.tests
-class ApiServiceTest(ApiTestCase):
+class ApiServiceTest(designate.tests.TestCase):
def setUp(self):
super(ApiServiceTest, self).setUp()
diff --git a/designate/tests/test_api/test_v2/__init__.py b/designate/tests/test_api/test_v2/__init__.py
index 938b803a..962a81c9 100644
--- a/designate/tests/test_api/test_v2/__init__.py
+++ b/designate/tests/test_api/test_v2/__init__.py
@@ -20,7 +20,7 @@ from webtest import TestApp
from designate.api import middleware
from designate.api import v2 as api_v2
-from designate.tests.test_api import ApiTestCase
+import designate.tests
LOG = logging.getLogger(__name__)
@@ -33,7 +33,7 @@ INVALID_ID = [
]
-class ApiV2TestCase(ApiTestCase):
+class ApiV2TestCase(designate.tests.TestCase):
def setUp(self):
super(ApiV2TestCase, self).setUp()
diff --git a/designate/tests/test_central/__init__.py b/designate/tests/test_central/__init__.py
index 088df403..e69de29b 100644
--- a/designate/tests/test_central/__init__.py
+++ b/designate/tests/test_central/__init__.py
@@ -1,20 +0,0 @@
-# Copyright 2012 Managed I.T.
-#
-# Author: Kiall Mac Innes <kiall@managedit.ie>
-#
-# 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.
-from designate.tests import TestCase
-
-
-class CentralTestCase(TestCase):
- pass
diff --git a/designate/tests/test_central/test_service.py b/designate/tests/test_central/test_service.py
index ae2f3416..21b29aec 100644
--- a/designate/tests/test_central/test_service.py
+++ b/designate/tests/test_central/test_service.py
@@ -39,15 +39,15 @@ from designate import exceptions
from designate import objects
from designate.storage.impl_sqlalchemy import tables
from designate.storage import sql
+import designate.tests
from designate.tests import fixtures
-from designate.tests.test_central import CentralTestCase
from designate import utils
from designate.worker import rpcapi as worker_api
LOG = logging.getLogger(__name__)
-class CentralServiceTest(CentralTestCase):
+class CentralServiceTest(designate.tests.TestCase):
def setUp(self):
super(CentralServiceTest, self).setUp()
self.stdlog = fixtures.StandardLogging()
diff --git a/designate/tests/test_manage/__init__.py b/designate/tests/test_manage/__init__.py
index dd671f43..e69de29b 100644
--- a/designate/tests/test_manage/__init__.py
+++ b/designate/tests/test_manage/__init__.py
@@ -1,5 +0,0 @@
-from designate.tests import TestCase
-
-
-class DesignateManageTestCase(TestCase):
- pass
diff --git a/designate/tests/test_manage/test_database.py b/designate/tests/test_manage/test_database.py
index c318ea42..22d3150c 100644
--- a/designate/tests/test_manage/test_database.py
+++ b/designate/tests/test_manage/test_database.py
@@ -15,14 +15,14 @@ from io import StringIO
from unittest import mock
from designate.manage import database
-from designate import tests as designate_tests
+import designate.tests
-class TestManageDatabase(designate_tests.TestCase):
+class TestManageDatabase(designate.tests.TestCase):
def setUp(self):
super(TestManageDatabase, self).setUp()
- self.stdlog = designate_tests.fixtures.StandardLogging()
+ self.stdlog = designate.tests.fixtures.StandardLogging()
self.useFixture(self.stdlog)
self.db_cmds = database.DatabaseCommands()
diff --git a/designate/tests/test_manage/test_pool.py b/designate/tests/test_manage/test_pool.py
index 1abf8f6a..51927172 100644
--- a/designate/tests/test_manage/test_pool.py
+++ b/designate/tests/test_manage/test_pool.py
@@ -20,9 +20,9 @@ import oslo_messaging
from designate.central import service
from designate.manage import base
from designate.manage import pool
+import designate.tests
from designate.tests import fixtures
from designate.tests import resources
-from designate.tests.test_manage import DesignateManageTestCase
LOG = logging.getLogger(__name__)
@@ -36,9 +36,9 @@ def get_pools(name='pools.yaml'):
return yaml.safe_load(pool_obj)
-class ManagePoolTestCase(DesignateManageTestCase):
+class ManagePoolTestCase(designate.tests.TestCase):
def setUp(self):
- super(DesignateManageTestCase, self).setUp()
+ super(ManagePoolTestCase, self).setUp()
self.stdlog = fixtures.StandardLogging()
self.useFixture(self.stdlog)
diff --git a/designate/tests/test_manage/test_update_pool.py b/designate/tests/test_manage/test_update_pool.py
index c7cf1457..8254bda8 100644
--- a/designate/tests/test_manage/test_update_pool.py
+++ b/designate/tests/test_manage/test_update_pool.py
@@ -17,8 +17,8 @@ from oslo_log import log as logging
from designate.manage import base
from designate.manage import pool
from designate import objects
+import designate.tests
from designate.tests import fixtures
-from designate.tests.test_manage import DesignateManageTestCase
LOG = logging.getLogger(__name__)
@@ -34,9 +34,9 @@ def hydrate_pool_targets(target_masters):
return pool_targets
-class UpdatePoolTestCase(DesignateManageTestCase):
+class UpdatePoolTestCase(designate.tests.TestCase):
def setUp(self):
- super(DesignateManageTestCase, self).setUp()
+ super(UpdatePoolTestCase, self).setUp()
self.stdlog = fixtures.StandardLogging()
self.useFixture(self.stdlog)
diff --git a/designate/tests/test_mdns/__init__.py b/designate/tests/test_mdns/__init__.py
index 203ff334..e69de29b 100644
--- a/designate/tests/test_mdns/__init__.py
+++ b/designate/tests/test_mdns/__init__.py
@@ -1,20 +0,0 @@
-# Copyright 2014 Hewlett-Packard Development Company, L.P.
-#
-# Author: Kiall Mac Innes <kiall@hpe.com>
-#
-# 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.
-from designate.tests import TestCase
-
-
-class MdnsTestCase(TestCase):
- pass
diff --git a/designate/tests/test_mdns/test_handler.py b/designate/tests/test_mdns/test_handler.py
index d8eeaac1..9efdfdcd 100644
--- a/designate/tests/test_mdns/test_handler.py
+++ b/designate/tests/test_mdns/test_handler.py
@@ -28,7 +28,7 @@ import testtools
from designate import context
from designate.mdns import handler
from designate import objects
-from designate.tests.test_mdns import MdnsTestCase
+import designate.tests
CONF = cfg.CONF
default_pool_id = CONF['service:central'].default_pool_id
@@ -49,7 +49,7 @@ ANSWER = [
]
-class MdnsRequestHandlerTest(MdnsTestCase):
+class MdnsRequestHandlerTest(designate.tests.TestCase):
def setUp(self):
super(MdnsRequestHandlerTest, self).setUp()
self.mock_tg = mock.Mock()
diff --git a/designate/tests/test_mdns/test_service.py b/designate/tests/test_mdns/test_service.py
index d25f2ab9..4a20c0f9 100644
--- a/designate/tests/test_mdns/test_service.py
+++ b/designate/tests/test_mdns/test_service.py
@@ -24,7 +24,7 @@ import dns
import dns.message
from oslo_log import log as logging
-from designate.tests.test_mdns import MdnsTestCase
+import designate.tests
LOG = logging.getLogger(__name__)
@@ -33,7 +33,7 @@ def hex_wire(response):
return binascii.b2a_hex(response.to_wire())
-class MdnsServiceTest(MdnsTestCase):
+class MdnsServiceTest(designate.tests.TestCase):
# DNS packet with IQUERY opcode
query_payload = binascii.a2b_hex(
"271209000001000000000000076578616d706c6503636f6d0000010001"
diff --git a/designate/tests/test_quota/test_quota.py b/designate/tests/test_quota/test_quota.py
index 0596ec65..0c685e4e 100644
--- a/designate/tests/test_quota/test_quota.py
+++ b/designate/tests/test_quota/test_quota.py
@@ -17,16 +17,17 @@ from unittest import mock
from oslo_config import cfg
from oslo_log import log as logging
-from testscenarios import load_tests_apply_scenarios as load_tests # noqa
+import testscenarios
from designate import exceptions
from designate import quota
-from designate import tests
+import designate.tests
LOG = logging.getLogger(__name__)
+load_tests = testscenarios.load_tests_apply_scenarios
-class QuotaTestCase(tests.TestCase):
+class QuotaTestCase(designate.tests.TestCase):
scenarios = [
('noop', dict(quota_driver='noop')),
('storage', dict(quota_driver='storage'))
diff --git a/designate/worker/processing.py b/designate/worker/processing.py
index 59f8fcbe..cf280033 100644
--- a/designate/worker/processing.py
+++ b/designate/worker/processing.py
@@ -70,9 +70,9 @@ class Executor(object):
if callable(tasks):
tasks = [tasks]
- start_time = time.time()
+ start_time = time.monotonic()
results = [r for r in self._executor.map(self.do, tasks)]
- elapsed_time = time.time() - start_time
+ elapsed_time = time.monotonic() - start_time
LOG.debug(
'Finished Task(s): %(tasks)s in %(time)fs',
diff --git a/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po b/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
index 7e453f6a..f2ed1769 100644
--- a/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
+++ b/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
@@ -9,11 +9,11 @@ msgid ""
msgstr ""
"Project-Id-Version: Designate Release Notes\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-03-06 16:30+0000\n"
+"POT-Creation-Date: 2023-05-02 19:37+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2023-02-10 12:08+0000\n"
+"PO-Revision-Date: 2023-05-08 10:13+0000\n"
"Last-Translator: Andi Chandler <andi@gowling.com>\n"
"Language-Team: English (United Kingdom)\n"
"Language: en_GB\n"
@@ -29,11 +29,8 @@ msgstr "1.0.2"
msgid "10.0.0"
msgstr "10.0.0"
-msgid "10.0.0.0rc1"
-msgstr "10.0.0.0rc1"
-
-msgid "10.0.2-4"
-msgstr "10.0.2-4"
+msgid "10.0.2-6"
+msgstr "10.0.2-6"
msgid "11.0.0"
msgstr "11.0.0"
@@ -41,8 +38,8 @@ msgstr "11.0.0"
msgid "11.0.2"
msgstr "11.0.2"
-msgid "11.0.2-4"
-msgstr "11.0.2-4"
+msgid "11.0.2-6"
+msgstr "11.0.2-6"
msgid "12.0.0"
msgstr "12.0.0"
@@ -50,8 +47,8 @@ msgstr "12.0.0"
msgid "12.1.0"
msgstr "12.1.0"
-msgid "12.1.0-6"
-msgstr "12.1.0-6"
+msgid "12.1.0-10"
+msgstr "12.1.0-10"
msgid "13.0.0"
msgstr "13.0.0"
@@ -62,17 +59,35 @@ msgstr "13.0.1"
msgid "13.0.2"
msgstr "13.0.2"
+msgid "13.0.2-6"
+msgstr "13.0.2-6"
+
msgid "14.0.0"
msgstr "14.0.0"
msgid "14.0.1"
msgstr "14.0.1"
+msgid "14.0.2"
+msgstr "14.0.2"
+
+msgid "14.0.2-3"
+msgstr "14.0.2-3"
+
msgid "15.0.0"
msgstr "15.0.0"
-msgid "15.0.0.0rc1"
-msgstr "15.0.0.0rc1"
+msgid "15.0.0-6"
+msgstr "15.0.0-6"
+
+msgid "16.0.0"
+msgstr "16.0.0"
+
+msgid "16.0.0-15"
+msgstr "16.0.0-15"
+
+msgid "16.0.0-8"
+msgstr "16.0.0-8"
msgid "2.0.0"
msgstr "2.0.0"
@@ -80,6 +95,9 @@ msgstr "2.0.0"
msgid "2.1.0"
msgstr "2.1.0"
+msgid "2023.1 Series Release Notes"
+msgstr "2023.1 Series Release Notes"
+
msgid "3.0.0"
msgstr "3.0.0"
@@ -432,6 +450,22 @@ msgstr ""
"alembic package has been added."
msgid ""
+"Designate will now use the openstacksdk to access neutron instead of the "
+"deprecated neutronclient."
+msgstr ""
+"Designate will now use the openstacksdk to access neutron instead of the "
+"deprecated neutronclient."
+
+msgid ""
+"Designate will now use the openstacksdk to access neutron instead of the "
+"deprecated neutronclient. The python-neutronclient module requirement has "
+"been replaced by the openstacksdk module."
+msgstr ""
+"Designate will now use the openstacksdk to access Neutron instead of the "
+"deprecated neutronclient. The python-neutronclient module requirement has "
+"been replaced by the openstacksdk module."
+
+msgid ""
"Designate-Sink service now supports notification listener pooling for those "
"oslo.messaging drivers that support this feature (currently those are "
"``rabbit``/``kombu`` and ``kafka``). `Listener pools <https://docs.openstack."
@@ -454,6 +488,13 @@ msgstr ""
"flooded with duplicate service entries."
msgid ""
+"Fixed `bug 2015762`_ which could cause managed records to occasionally fail "
+"to delete due to a race condition."
+msgstr ""
+"Fixed `bug 2015762`_ which could cause managed records to occasionally fail "
+"to delete due to a race condition."
+
+msgid ""
"Fixed a bug preventing `service_statuses` from properly updating when "
"Designate services were configured with multiple workers."
msgstr ""
@@ -461,6 +502,11 @@ msgstr ""
"Designate services were configured with multiple workers."
msgid ""
+"Fixed a bug that allowed users to create a zone share for the zone owner."
+msgstr ""
+"Fixed a bug that allowed users to create a zone share for the zone owner."
+
+msgid ""
"Fixed a bug where deleting a zone transfer request may fail when using a "
"system scoped token."
msgstr ""
@@ -518,6 +564,9 @@ msgstr ""
"service statuses. In addition, a compatibility workaround was added for the "
"incorrect /v2/service_status path."
+msgid "Fixed compatibility issues with SQLAlchemy 2.x."
+msgstr "Fixed compatibility issues with SQLAlchemy 2.x."
+
msgid "Fixed designate compatibility with jsonschema >= 4.16.0."
msgstr "Fixed designate compatibility with jsonschema >= 4.16.0."
@@ -592,6 +641,15 @@ msgstr "Liberty Series Release Notes"
msgid "Mitaka Series Release Notes"
msgstr "Mitaka Series Release Notes"
+msgid ""
+"Moved zone serial updates to a `designate-producer` task called "
+"`increment_serial` to fix race conditions and to reduce the number of "
+"updates to the upstream DNS servers when performing multiple DNS updates."
+msgstr ""
+"Moved zone serial updates to a `designate-producer` task called "
+"`increment_serial` to fix race conditions and to reduce the number of "
+"updates to the upstream DNS servers when performing multiple DNS updates."
+
msgid "New Features"
msgstr "New Features"
@@ -618,6 +676,13 @@ msgid "Newton Series Release Notes"
msgstr "Newton Series Release Notes"
msgid ""
+"Now that zones can be shared with multiple projects, recordsets and records "
+"can have project identifiers that are different than the parent zone."
+msgstr ""
+"Now that zones can be shared with multiple projects, recordsets and records "
+"can have project identifiers that are different than the parent zone."
+
+msgid ""
"OSprofiler support requires passing of trace information between various "
"OpenStack services. This information is securely signed by one of HMAC keys, "
"defined in designate.conf configuration file. To allow cross-project tracing "
@@ -928,6 +993,17 @@ msgstr ""
"config file."
msgid ""
+"The backend agent framework and agent based drivers are deprecated for "
+"removal in the \"C\" release. The following backend agent drivers are now "
+"deprecated: Bind9 (Agent), Denominator, Microsoft DNS (Agent), Djbdns "
+"(Agent), Gdnsd (Agent), Knot2 (Agent)."
+msgstr ""
+"The backend agent framework and agent based drivers are deprecated for "
+"removal in the \"C\" release. The following backend agent drivers are now "
+"deprecated: Bind9 (Agent), Denominator, Microsoft DNS (Agent), Djbdns "
+"(Agent), Gdnsd (Agent), Knot2 (Agent)."
+
+msgid ""
"The central service was not using a global lock which can lead to a race "
"condition in a high availability setup leading to missing recordsets in the "
"DNS backend. This release includes a partial backport of a distributed "
@@ -1166,6 +1242,13 @@ msgstr "Yoga Series Release Notes"
msgid "Zed Series Release Notes"
msgstr "Zed Series Release Notes"
+msgid ""
+"Zones can now be shared with other projects, allowing them to create and "
+"manage recordsets and records in the zone."
+msgstr ""
+"Zones can now be shared with other projects, allowing them to create and "
+"manage recordsets and records in the zone."
+
msgid "`LP#1971856 <https://bugs.launchpad.net/designate/+bug/1971856>`__"
msgstr "`LP#1971856 <https://bugs.launchpad.net/designate/+bug/1971856>`__"
diff --git a/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po b/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
index 236641bc..cffcae7a 100644
--- a/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
+++ b/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Designate Release Notes\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-03-06 16:30+0000\n"
+"POT-Creation-Date: 2023-05-02 19:37+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -26,15 +26,6 @@ msgstr "2.0.0"
msgid "3.0.0"
msgstr "3.0.0"
-msgid "3.0.0.0b1"
-msgstr "3.0.0.0b1"
-
-msgid "3.0.0.0b2"
-msgstr "3.0.0.0b2"
-
-msgid "3.0.0.0rc1"
-msgstr "3.0.0.0rc1"
-
msgid "ASync Export"
msgstr "Export Async"