We are glad to announce the release of: designate 14.0.0: DNS as a Service This release is part of the yoga release series. The source is available from: https://opendev.org/openstack/designate Download the package from: https://tarballs.openstack.org/designate/ Please report issues through: https://bugs.launchpad.net/designate/+bugs For more details, please see below. Changes in designate 13.0.0..14.0.0 ----------------------------------- 66cc876e Fix zone update when adding new Bind9 target to pool. 93ebb1af Add inactive value to floating ip status 8ce022a7 Fix Designate for use with oslo.context>=4.0.0 694d189f Make CentOS 9 Stream job non-voting f4439587 Checks for invalid denylist regex patterns b1e1974f Fix grenade job for mod_wsgi to uwsgi transition 907a0296 Add proper quota error messages 7e543c2d Fixed incorrect message when zone import failed due to quota eed5042c Simplify create zone import implementation 5469116d Remove legacy logic for deleting records c38810b1 Remove unused central code df10ff5b Fix recordset_records quota enforcement 9541a297 Integrate OSprofiler and Designate 3c495ed7 Updated status logic to always NOTIFY on change 30b9a085 setup.cfg: Replace dashes by underscores ba8968c0 Fix typo of intro document 07a8a9d6 Add non-voting dnspython latest release unit test 0c7d218b Fix duplicate zone when creating ptr records 0275aaad Add a BIND9 job on CentOS 9 Stream 1cef20ed Allow email subadresses to be used within mail url of CAA records 6c80f616 Move context from tenant to project_id bff3d5f6 Fix designate-manage pool update bugs 395a4a29 Fix a typo in the tsigkey policy file 7ec7adc4 Modernize PTR implementation in Central 7b28bbeb Add dig command to devstack instructions 631b18bd Fix API reference for service statuses fa607f8f Add RBAC policy admin guide. 1504fbee Updating python testing classifier as per Yoga testing runtime 5f87d207 Fix support for scoped tokens and default roles 296a5ada Improve wording for validation error messages 256f8892 Add hacking check D710 for LOG.warn() acd930d3 Fix dns.query.tcp/udp not always handling ipv6 properly b9a4e36c Remove LOG.exceptions from __call__ 17dc01d6 Fix apache wsgi config for CentOS e2b136ef Fix test_dispatch_opcode_update unit test 2928502c bump py37 to py3 in tox.ini 0e16095a Enable H306 check and fix import ordering 79c61e46 Deprecate parameters of SSLMiddleware 1e366443 Run neutron integration job in gate 4b58446d Revert "Move back to mod_wsgi for devstack" 604fd8cf Add fips jobs 03a5d5d7 Allow TXT record over 255 characters if split 4807c232 Fix race condition in the sink when deleting records 771197c2 Remove Akamai (eDNS SOAP API) backend 897fc792 Fix test failures with dnspython>=2 2f17dd20 Update Quotas documentation 4c13dbea Imported Translations from Zanata a84821ae Remove references to sys.version_info ef15d07a Add Python3 yoga unit tests 3e45cdc6 Update master for stable/xena f67ae198 Fix count_record policy to use the right deprecation variable fcfb5dbd Fix typo in the find_pool deprecated rule b3363cc8 Fix typos in zone policy deprecations c4f57753 Fix update blacklist policy deprecation 626c60fc Replace deprecated assertDictContainsSubset 0b973a3c Replace deprecated assertRaisesRegexp 2e6611b1 Fix API reference for list service statuses 9bdc4a69 Add template for testing review or branch f215cd7c Add CLI examples to user section Diffstat (except docs and test files) ------------------------------------- .zuul.yaml | 62 +- api-ref/source/dns-api-v2-service-status.inc | 66 +- api-ref/source/parameters.yaml | 55 +- .../service_status/service_status_list.json | 4 +- .../service_status/service_status_show.json | 14 + contrib/archive/backends/impl_ipa/__init__.py | 4 +- contrib/archive/backends/impl_ipa/auth.py | 8 +- .../notification_handler/sample.py | 2 +- contrib/designate-ext-samplehandler/setup.cfg | 4 +- contrib/dns_dump_raw.py | 2 +- contrib/dns_dump_server.py | 2 +- contrib/fixleadingzeros.py | 11 +- contrib/vagrant/local.conf | 8 + contrib/zoneextractor.py | 6 +- designate/agent/handler.py | 9 +- designate/agent/service.py | 6 +- designate/api/admin/__init__.py | 2 +- designate/api/admin/app.py | 2 +- .../api/admin/controllers/extensions/counts.py | 5 +- .../api/admin/controllers/extensions/export.py | 4 +- .../api/admin/controllers/extensions/quotas.py | 6 +- .../api/admin/controllers/extensions/reports.py | 2 +- .../api/admin/controllers/extensions/tenants.py | 4 +- .../api/admin/controllers/extensions/zones.py | 2 +- designate/api/middleware.py | 13 +- designate/api/v2/__init__.py | 2 +- designate/api/v2/app.py | 2 +- designate/api/v2/controllers/blacklists.py | 7 +- designate/api/v2/controllers/floatingips.py | 4 +- designate/api/v2/controllers/limits.py | 3 +- designate/api/v2/controllers/pools.py | 6 +- designate/api/v2/controllers/quotas.py | 2 +- designate/api/v2/controllers/recordsets.py | 4 +- designate/api/v2/controllers/reverse.py | 2 +- designate/api/v2/controllers/root.py | 19 +- designate/api/v2/controllers/service_status.py | 2 +- designate/api/v2/controllers/tlds.py | 6 +- designate/api/v2/controllers/tsigkeys.py | 7 +- designate/api/v2/controllers/zones/__init__.py | 8 +- designate/api/v2/controllers/zones/nameservers.py | 4 +- designate/api/v2/controllers/zones/recordsets.py | 8 +- .../api/v2/controllers/zones/tasks/__init__.py | 18 +- .../api/v2/controllers/zones/tasks/abandon.py | 4 +- .../api/v2/controllers/zones/tasks/exports.py | 13 +- .../api/v2/controllers/zones/tasks/imports.py | 6 +- .../v2/controllers/zones/tasks/transfer_accepts.py | 6 +- .../controllers/zones/tasks/transfer_requests.py | 8 +- designate/api/v2/controllers/zones/tasks/xfr.py | 4 +- designate/api/wsgi.py | 4 +- designate/backend/agent.py | 40 +- .../backend/agent_backend/impl_denominator.py | 10 +- designate/backend/agent_backend/impl_djbdns.py | 2 +- designate/backend/agent_backend/impl_gdnsd.py | 6 +- designate/backend/agent_backend/impl_knot2.py | 2 +- designate/backend/agent_backend/impl_msdns.py | 6 +- designate/backend/base.py | 9 +- designate/backend/impl_akamai.py | 259 ---- designate/backend/impl_akamai_v2.py | 4 +- designate/backend/impl_bind9.py | 35 +- designate/backend/impl_designate.py | 2 +- designate/backend/impl_dynect.py | 2 +- designate/backend/impl_infoblox/__init__.py | 5 +- designate/backend/impl_ns1.py | 4 +- designate/backend/impl_nsd4.py | 2 +- designate/backend/impl_pdns4.py | 4 +- designate/central/rpcapi.py | 52 +- designate/central/service.py | 1556 ++++++++++---------- designate/cmd/agent.py | 2 +- designate/cmd/api.py | 2 +- designate/cmd/central.py | 2 +- designate/cmd/mdns.py | 2 +- designate/cmd/producer.py | 2 +- designate/cmd/sink.py | 2 +- designate/common/constants.py | 33 + designate/common/policies/__init__.py | 2 - designate/common/policies/base.py | 72 +- designate/common/policies/blacklist.py | 2 +- designate/common/policies/context.py | 50 +- designate/common/policies/diagnostics.py | 42 - designate/common/policies/pool.py | 2 +- designate/common/policies/quota.py | 2 +- designate/common/policies/record.py | 2 +- designate/common/policies/recordset.py | 64 +- designate/common/policies/tsigkey.py | 15 +- designate/common/policies/zone.py | 39 +- designate/common/policies/zone_export.py | 24 +- designate/common/policies/zone_import.py | 2 +- designate/common/policies/zone_transfer_accept.py | 6 +- designate/common/policies/zone_transfer_request.py | 25 +- designate/common/profiler.py | 88 ++ designate/conf/__init__.py | 4 +- designate/conf/akamai.py | 47 - designate/conf/api.py | 8 + designate/context.py | 33 +- designate/dnsutils.py | 156 +- designate/exceptions.py | 13 + designate/hacking/checks.py | 11 + designate/heartbeat_emitter.py | 2 +- designate/hookpoints.py | 4 +- designate/manage/pool.py | 10 +- designate/manage/tlds.py | 4 +- designate/mdns/base.py | 2 +- designate/mdns/handler.py | 2 +- designate/mdns/notify.py | 36 +- designate/mdns/rpcapi.py | 4 +- designate/mdns/service.py | 8 +- designate/mdns/xfr.py | 2 +- designate/network_api/fake.py | 2 +- designate/notification_handler/base.py | 52 +- designate/notifications.py | 2 +- designate/objects/adapters/api_v2/base.py | 4 +- designate/objects/adapters/api_v2/blacklist.py | 3 +- designate/objects/adapters/api_v2/floating_ip.py | 3 +- designate/objects/adapters/api_v2/pool.py | 3 +- .../objects/adapters/api_v2/pool_attribute.py | 2 +- .../objects/adapters/api_v2/pool_ns_record.py | 3 +- designate/objects/adapters/api_v2/quota.py | 3 +- designate/objects/adapters/api_v2/record.py | 3 +- designate/objects/adapters/api_v2/recordset.py | 5 +- .../objects/adapters/api_v2/service_status.py | 3 +- designate/objects/adapters/api_v2/tld.py | 3 +- designate/objects/adapters/api_v2/tsigkey.py | 3 +- .../objects/adapters/api_v2/validation_error.py | 2 +- designate/objects/adapters/api_v2/zone.py | 3 +- .../objects/adapters/api_v2/zone_attribute.py | 2 +- designate/objects/adapters/api_v2/zone_export.py | 3 +- designate/objects/adapters/api_v2/zone_import.py | 3 +- designate/objects/adapters/api_v2/zone_master.py | 2 +- .../adapters/api_v2/zone_transfer_accept.py | 3 +- .../adapters/api_v2/zone_transfer_request.py | 13 +- designate/objects/adapters/base.py | 2 +- designate/objects/adapters/yaml/pool.py | 3 +- .../objects/adapters/yaml/pool_also_notify.py | 3 +- designate/objects/adapters/yaml/pool_attribute.py | 2 +- designate/objects/adapters/yaml/pool_nameserver.py | 3 +- designate/objects/adapters/yaml/pool_ns_record.py | 2 +- designate/objects/adapters/yaml/pool_target.py | 3 +- .../objects/adapters/yaml/pool_target_master.py | 3 +- .../objects/adapters/yaml/pool_target_option.py | 2 +- designate/objects/base.py | 8 +- designate/objects/blacklist.py | 4 +- designate/objects/fields.py | 55 +- designate/objects/floating_ip.py | 9 +- designate/objects/recordset.py | 2 +- designate/objects/rrdata_a.py | 4 +- designate/objects/rrdata_aaaa.py | 4 +- designate/objects/rrdata_caa.py | 5 +- designate/objects/rrdata_cert.py | 4 +- designate/objects/rrdata_cname.py | 4 +- designate/objects/rrdata_mx.py | 4 +- designate/objects/rrdata_naptr.py | 4 +- designate/objects/rrdata_ns.py | 4 +- designate/objects/rrdata_ptr.py | 4 +- designate/objects/rrdata_soa.py | 4 +- designate/objects/rrdata_spf.py | 6 +- designate/objects/rrdata_srv.py | 4 +- designate/objects/rrdata_sshfp.py | 4 +- designate/objects/rrdata_txt.py | 44 +- designate/objects/zone.py | 6 +- designate/objects/zone_master.py | 2 +- designate/plugin.py | 5 +- designate/policy.py | 19 +- designate/producer/service.py | 4 +- designate/producer/tasks.py | 17 +- designate/quota/base.py | 17 +- designate/quota/impl_storage.py | 2 +- designate/resources/wsdl/EnhancedDNS.xml | 238 --- designate/rpc.py | 21 +- designate/scheduler/filters/default_pool_filter.py | 2 +- designate/scheduler/filters/fallback_filter.py | 2 +- .../filters/in_doubt_default_pool_filter.py | 2 +- .../scheduler/filters/pool_id_attribute_filter.py | 2 +- designate/scheduler/filters/random_filter.py | 2 +- designate/schema/__init__.py | 6 +- designate/service.py | 10 +- designate/sqlalchemy/base.py | 2 +- designate/sqlalchemy/session.py | 28 + designate/sqlalchemy/utils.py | 10 +- designate/storage/__init__.py | 2 +- designate/storage/base.py | 6 - designate/storage/impl_sqlalchemy/__init__.py | 27 +- .../migrate_repo/versions/082_unique_ns_record.py | 4 +- .../versions/085_add_zone_attributes.py | 4 +- .../migrate_repo/versions/086_new_pools_tables.py | 2 +- .../migrate_repo/versions/097_add_services.py | 4 +- designate/storage/impl_sqlalchemy/tables.py | 2 +- .../nova/compute.instance.create.end-2.json | 180 +++ .../test_notification_handler/test_neutron.py | 42 +- designate/utils.py | 6 +- designate/worker/README.md | 2 +- designate/worker/processing.py | 2 +- designate/worker/rpcapi.py | 4 +- designate/worker/service.py | 6 +- designate/worker/tasks/zone.py | 44 +- designate/worker/utils.py | 82 -- devstack/designate_plugins/backend-akamai | 150 -- devstack/exercise.sh | 5 - devstack/lib/wsgi | 36 + devstack/networking_test.py | 10 +- devstack/plugin.sh | 40 +- devstack/settings | 2 +- devstack/statsd_mock_server.py | 2 +- devstack/upgrade/from-xena/upgrade-designate | 27 + devstack/upgrade/upgrade.sh | 4 + etc/designate/api-paste.ini | 15 +- lower-constraints.txt | 2 +- playbooks/enable-fips.yaml | 3 + ...x-recordset-records-quota-76ed3095dd2afbbe.yaml | 4 + ...atterns-not-being-checked-ec1f1316ccc6cb1d.yaml | 16 + ...x-update-zone-create-zone-ada1fd81de479492.yaml | 4 + ...emove-Akamai-eNDS-backend-1c73a734e8f8ddfa.yaml | 5 + .../Support-scoped-tokens-6b7d6052a258cd11.yaml | 4 + .../bp-designate-os-profiler-3f507d5e1e319f3d.yaml | 13 + ...33-allow-caa-mail-subaddr-d02cdc46bbb118ad.yaml | 10 + ...ecate-ssl-middleware-opts-bee401944e40fc63.yaml | 8 + .../notes/fix-service-status-ba18270651011ee6.yaml | 6 + .../notes/new-ptr-status-69958252a2f294c9.yaml | 5 + .../remove-unused-rpc-calls-b123902ea0c55c19.yaml | 15 + .../notes/rpc-version-update-f87b852b361d0aad.yaml | 7 + releasenotes/source/index.rst | 1 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 13 +- releasenotes/source/xena.rst | 6 + requirements.txt | 2 +- setup.cfg | 2 +- tools/install_venv.py | 1 - tools/install_venv_common.py | 4 - tox.ini | 11 +- 316 files changed, 4708 insertions(+), 4131 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index d3b1baae..d995a9c8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -24,0 +25 @@ oslo.versionedobjects>=1.31.2 # Apache-2.0 +osprofiler>=3.4.0 # Apache-2.0 @@ -36 +36,0 @@ stevedore>=1.20.0 # Apache-2.0 -suds-jurko>=0.6 # LGPLv3+