We are content to announce the release of: designate 3.0.0: DNS as a Service This release is part of the newton release series. With source available at: http://git.openstack.org/cgit/openstack/designate Please report issues through launchpad: http://bugs.launchpad.net/designate For more details, please see below. 3.0.0 ^^^^^ This release has started the migration of our services to a "worker" and "producer" model. This has started by deprecating "designate-zone- manager" and "designate-pool-manager". We have also added support for new DNS Servers, and added scheduling across pools. New Features ************ * designate-mdns, designate-agent and designate-api can now bind to multiple host:port pairs via the new "listen" configuration arguments for eacg service. * Addition of the "attribute" filter for scheduling zones across pools. This can be enabled in the "[service:central]" section of the config by adding "attribute" to the list of values in the "filters" option. * An experimental agent backend to support TinyDNS, the DNS resolver from the djbdns tools. * An experimental agent backend to support Knot DNS 2 * Added "designate-worker" and "designate-producer". This will allow for better scaling across a designate system as we move forward. * A new recordset api "/v2/recordsets" is exposed with GET method allowed only. The api can be used for retrieving recordsets across all the zones under a tenant. Filtering on certain fields is supported as well. * All designate services will now report to designate-central when they are running. This is implmented as a heartbeat reporting system. There is also a new API endpoint in the v2 API - $API_BASE/v2/service_status. This will show the list of services running, and when they last reported as running. Currently the "stats" and "capabilities" values will be blank, but will be updated in the future as services implement them. * This adds the quotas api from /admin to /v2 with some changes. All users can GET /v2/quotas/<project_id> Users with "All-Projects" permission can view other projects (by setting X-Auth-All- Projects:True in the HTTP Headers) Users with "All-Projects" and "set-quotas" can set other projects quotas Moved the API rendering to Designate Object based rendering Upgrade Notes ************* * The default port which the designate-agent service listens on has changed from 53 to 5358. This matches the port we have always used in the sample configuration, and the port used in the agent backend class. * To enable "designate-worker" and "designate-producer" add a section to your "designate.conf" called "[service:worker]" and add an option "enabled = True". Then stop "designate-pool-manager" and "designate- zone-manager", and start "designate-worker" and "designate-producer" Deprecation Notes ***************** * designate-api's api_host and api_port configuration options have been deprecated, please use the new combined "listen" argument in place of these. * designate-mdns's host and port configuration options have been deprecated, please use the new combined "listen" argument in place of these. * designate-agents's host and port configuration options have been deprecated, please use the new combined "listen" argument in place of these. * Both "designate-zone-manager" and "designate-pool-manager" are now deprecated and will be removed in a future release. Bug Fixes ********* * V1 API Users can now query v1/quotas/<project_id> for quotas * Added zone_name in zone trasfer request response. Closed bug#1580014 Changes in designate 2.0.0.0rc1..3.0.0 -------------------------------------- 0c9ffbf Infoblox: Reverse lookup zone creation fails 1e65e21 Fix for the exception on creating secondary zone b9446fc Updated from global requirements 6828716 Update UPPER_CONSTRAINTS_FILE for stable/newton ac6778c Update .gitreview for stable/newton aa23d86 Add PowerDNS 4 driver 0bc50d6 RC1 Relnotes c544126 delete python bytecode including pyo before every test run ae6e848 Resolve description parameter in v2:set floating ip b31098a [api-ref] Remove temporary block in conf.py 65b5694 Fix Grenade Gate 102f1d2 Infoblox backend:Fixed sslverify value from option 75e0794 Change PATCH method to PUT for recordset update in api-ref 19dd6d5 Config logABug feature for Designate api-ref 871522f Add name parameter to recordset create request description dcce755 Replace POST with PATCH in api-ref for set floatingIP's ptr record 49a0182 Remove recordset tests migrated to designate_tempest_plugin b12656f TrivialFix: Remove cfg import unused 06c4bc0 Clean imports in code e384a2d TrivialFix: Remove logging import unused 6ac5804 Fix ZTA API to prevent HTTP 500 upon empty body 4320baf Add api-ref dropdown 81ce132 Worker Model 773a608 Updated from global requirements 0c6babd Remove white space between print and () 176b4a2 Minor cleanup 95f451d Add support for Microsoft DNS Server backend 3d350ab Use upper constraints for all jobs in tox.ini fa9e300 Updated from global requirements f262e68 Get ready for os-api-ref sphinx theme change 4458556 Fix recordset changes so that they preserve object changes fields c5245e6 Updated from global requirements 775246a Replace assertEqual(None, *) with assertIsNone in the tests 6d21200 Cleaned up notification_handler/base.py b32c706 Fix typo 'leve'->'level' 56dc9af Remove unnecessary __init__ from functionaltests 0bf62b9 Use tempest.lib instead of tempest-lib f40681c Improve performance of recordsets API 7cd1f61 Replace assertDictEqual() with assertEqual() 3b9e00d Language fix 'imports' to 'exports' 028c9bf Fix SSHFP validation for ECDSA, ED25519, and SHA256 be39842 Updated from global requirements 87aaecb Fix api-ref methods for getting, updating and deleting recordsets a762cdf Revert 372057bddb27716acd42a88591552a8dee7b519b b31f9ea Fix some typo in the files efa6d23 Change bind -> bind9 in docs, sample configs 372057b Fix recordset changes so that they preserve object changes fields 54cea89 Add DESIGNATE_AGENT_BACKEND_DRIVER to devstack sample conf d7838a7 Fix typo in tempest.rst bb35643 Python 3: dict.itervalues() 9910d76 Typo in mitaka.rst 10bac1a Python 3: dict.iteritems() fe306f8 Documentation fix up 9862084 Remove unused LOG 0568b66 different-format-for-ipv4-and-ipv6 68fe061 Updated from global requirements eef0315 update doc index, add ops FAQ and notifications f374b5f Grenade Plugin 190f47f Docs for working with multiple pools 1687df2 Don't hardcode options we pass to oslo.context 7761394 Correct reraising of exception a72ba0a Consolidate How Tos and add Admin How Tos ac6e95b Added docs for Floatingip ptr records to api ref ffd9873 Update UUID type for py3.5 compat b7ef8cc Add Python 3.5 classifier and venv 4e7c65c Add gdnsd backend 2028d30 Updated from global requirements 2d79558 Updated from global requirements 619b475 Add v2/quotas e00b15b Updated from global requirements 5964608 Fixes log statement typo in coordination.py 53dff34 Fix typo in designate-manage.rst cd9741b Fixing several typos f3b7ac9 Fixing typo availible->available 745d607 Updated from global requirements c906060 Add missing zake lib to t-r 9deeed7 zone_name is null in zone trasfer request response 7c540ab Updated from global requirements 88ada35 Fix Invalid UUID error message to make it consistent with others ea363d5 Add missing parameters to docs of zone_ownership_transfer_accept 424ebf3 Catch duplicate db inserts in powerdns plugin 8ce138d Add docs for SSHFP, SRV, SPF and MX recordsets to api-ref 52ce6d5 Updated from global requirements a6d7ee9 Fix output of datetime objects in API bbe2b2c Add API for listing zone transfer accepts 9cb82bf Fix 'Duplicate explicit target name' error in 'tox -e docs' 0584df3 Remove unneeded renames in v2 Adapters 5c0b0f7 Move APIv2 Docs to api-ref site ad39f0b Remove migrated "unauthed" functional tests 5067eb8 Remove migrated negative tests for pools, tlds, blacklists 3171dd5 Ensure HTTP 204 responses have 0 Content-Length 6bcc95d Add docs for zone ownership transfer_accept API 2a1e347 Updated from global requirements e475d9f Removed erronous extra file e93bd9d Updated from global requirements 660b4e0 Add etc/designate/*.yaml to .gitignore eeeb1da Only load Suds when using Akamai backend 5d0e4da Add centos7, remove Fedora Vagrant VM 3167edf Add Blacklist to api-ref docs 3097446 DOC: Minor grammar and typo fixes 9d3e098 Fix typo in Docs dec0d38 Updated from global requirements 2ac164e Updated from global requirements 129b28a Add "project-id" to rrset API output 6df18b5 Make registering error handlers compliant with Flask 0.11 dd105f4 Fix parameters.yaml order ba10770 Support binding to IPv6 addresses in UDP sockets 7fa4a3b Updated from global requirements 1548138 Fix tsig param names a697157 Docs update to make it consistent with other docs ee0c6a2 remove verbose option in devstack plugin 0e58f4f Updated from global requirements dfca659 DOC: Update Ubuntu developer environment doc d1c6f4f Add Wily and Xenial devstack VMs e3cda62 Support binding to IPv6 addresses in TCP sockets 1877e1f Cleanup rndc backend 77d9f41 Modify assert statement when comparing with None bef53db DevStack: Support setting default quotas ab52862 Updated from global requirements 7b977f6 Enable v2/recordsets API for tempest plugin a8f14f6 Imported Translations from Zanata be7e32d Add djbdns backend 6ae1923 Refactor UDP query handling, add tests f388734 Catch all exceptions in PM's call to get_pool() bc74ee8 Fix typo 96bff5c Improve response codes display in api-ref docs 1eb64bf Support TCP connection pipelining d8c6c22 Updated from global requirements a2fb918 Roll up migrations to start from liberty 08dfd91 Removing cruft from before os-api-ref was a lib d34406f Fix Optional Tag for X-OpenStack-Request-ID c33ebfc Add Tsigkey to api-ref docs 63d1c30 Ensure L to M DB migrations correctly inspect current DB state 9eefe3c Fix a typo. their -> there 9a17bd6 Updated from global requirements 7406212 Remove test cases which are moved to designate_tempest_plugin 49effdd Add Tld to api-ref docs 961d1d8 Fix gate trying to use u-c for api-ref 43954cf Resolve incorrect description and response codes in api-ref docs d5e4c60 Integration/stress test using a simulated network fd6340f DevStack: Set tempest nameservers config option correctly 5d78d12 Add a style guide 5d328f0 Add Knot DNS backend 6965032 Remove zone import and export client methods + tests 9ec2e8d Add explanation of connection string in pdns sample_yaml_snippets e23eb9a Updated from global requirements 9bc1a80 Add "/" to API-Ref Docs 773528d Add Pools to API-Ref Docs 2156989 Add Limits to API-Ref Docs b4cd2c8 Update devstack dashboard+client clone+install method c41555d Add Zone Transfer Request + Accept API-Ref docs 403b6ae Add Zone Tasks, Export and Import API Docs 83d4d03 Add Recordset to api-ref docs e9db59d Start Designate API-Ref style documentation ed51f49 Ensure services shutdown during unit testing 96de5c1 Skip zone import count test, reenable pool tests 7d43570 Type checking in pool manager target sync 2554a9f Docs Update 77d083b Remove tempest plugin from non-tempest gate d4f5303 Remove more tests migrated to tempest plugin 772dc34 Updated from global requirements 76be6e0 Update Designate Architecture document 3c325b0 Expose /v2/recordsets api endpoint 4bc6599 Fix rrset serialization, improve mdns tests b60ac58 Move bandit job to voting 3cf67d6 Trivalfix of option name in designate.conf.sample c23c99a Enable V2 API as default ca7ffba Support both olso.m v4 and v5 e2c5d07 Fix the memory of the VM in VirtualBox 26dc629 Typo fix f804f30 Migrate service_statuses table charset to UTF8 a7799a2 Fix the service_status objects __str__() output fc2b24a Move heartbeat emit log messages to TRACE 6457a91 Remove msdns from the drivers list 281b4f9 Fix parameterized class decorator 40b1ad5 Fix _get_listen_on_addresses to handle port 0 b165ce1 Consolidate default port numbers into utils.py 82fcd54 Support multiple API and mDNS listen address pairs 699468c DevStack: Allow disabling of API versions 35bb49c Return early from _find_recordsets_with_records 3db4bfc Skip Pools APIv2 tests ae85322 Added attribute filter to scheduler be73f3f Fix service_status docs page 619c3cd Remove execute privilege of designate/backend/impl_bind9.py d7e35b2 Updated from global requirements 7a80815 Add descriptions f2f6b5d Minor documentation fix 7a04eea Add setup_ubuntu_devstack b9ce7e5 replace logging with oslo.log 51604e9 Add exception description, minor cleanup 78bce13 Allow api_export_size to be updated f14976d Improve exception handling, add comments 954a08e Remove contrib/tempest, as they have moved to the tempest plugin 8019155 Add Decorator to log RPCAPI Calls 00567f3 Use upper-constraints.txt for tox tests 1b673bd Move DNS OPCODEs/Classes into private_codes.py 5879c90 Fix data filtering with pagination 765d9c2 Added "experimental" status for backends 7fdce54 Updated from global requirements 44b5376 Set default sslverify value to True c9407d1 Ubuntu dev doc updates 5939880 Removed old tooling for ks CLI 0343a7d Changed the spelling of command in sample file edbf4f3 Add missing response codes in V2 API's doc 1ec3b58 Remove tests moved to tempest 620fc6e Add Agent DevStack Backend 4735d23 Fix all doc warnings and enforce clean docs ddf8a03 Moved doc file and releasenote from service_status 5213676 Updated from global requirements 29e90da Update tempest docs re scenario and slow tests ae69b5b Vagrant: Suppport local devstack / tempest clones 7abae80 Add support for getting Service Status 1554666 Update bandit.yaml + fix failing test 3e7ffd6 Updated from global requirements 1b403af Remove workaround for bug #1467907 fc2fe86 Add Tempest Plugin to DevStack Plugin 74aabd8 Refactor central/service and others d0b81a4 Refactor pool and pool_manager attribute update 0d8e048 Add Designate Tempest Docs bdeb08e Resolves metadata field output on rest call to zone import and export ab1639c Give better error messages for zone imports a6c3a55 Define context.roles with base class 5f6f606 Update vagrant local.conf for rally DS plugin debbe73 Give proper ERROR for too large exports ac08119 Move successfull policy checks to trace da8ed88 Add Memcached documentation 5386659 Remove pool config from sample config d77fe67 Make cache_result safer to use 6832fa1 Add Enhanced Logging to APIs d964469 Updated from global requirements 909cc5d Handle async Tooz calls appropriately aba5161 Docs update for zone import and export ffbb2d8 Updated from global requirements 10d8d7b Better organize the tox.ini passenv vars c7b7075 Adding v2 namespaced event to zone manager ab8208d Adding v2 namespaced event to zone manager ed29445 Do not log pool-manager-caches SQL transactions 7b5e1fd Added "view" option to bind9 rndc options 979b67d Partitoner references invalid exception class b172846 Docs update 9f2520d Run the cli functional tests in openstack ci 99a6907 Add placeholders for Mitaka DB Backports 34fe2ec Update config samples to show Identity v3 params c558525 devstack: compile message catalogs during stack.sh a54dade devstack: compile message catalogs during stack.sh 6a21a79 Partitoner references invalid exception class 2c31869 Adds missing metadata section to API docs cdedb2f Added "view" option to bind9 rndc options 8030341 Do not log pool-manager-caches SQL transactions 58800e4 Update reno for stable/mitaka f591b43 Update .gitreview for stable/mitaka e2f83c9 Log zone serial on fetch and update cdeaaf2 Fix devstack/fedora/bind9 support 2b2ffc5 Fix AutoDoc line for non existent modules Diffstat (except docs and test files) ------------------------------------- .gitignore | 2 + .gitreview | 1 + api-ref/source/conf.py | 233 +++++ api-ref/source/dns-api-v2-blacklist.inc | 240 +++++ api-ref/source/dns-api-v2-limits.inc | 54 + api-ref/source/dns-api-v2-pool.inc | 104 ++ api-ref/source/dns-api-v2-quota.inc | 196 ++++ api-ref/source/dns-api-v2-recordset.inc | 624 +++++++++++ api-ref/source/dns-api-v2-reverse-floatingips.inc | 192 ++++ api-ref/source/dns-api-v2-tld.inc | 240 +++++ api-ref/source/dns-api-v2-tsigkey.inc | 260 +++++ api-ref/source/dns-api-v2-version.inc | 37 + api-ref/source/dns-api-v2-zone-export.inc | 194 ++++ api-ref/source/dns-api-v2-zone-import.inc | 178 ++++ .../dns-api-v2-zone-ownership-transfer-accept.inc | 156 +++ .../dns-api-v2-zone-ownership-transfer-request.inc | 254 +++++ api-ref/source/dns-api-v2-zone-tasks.inc | 84 ++ api-ref/source/dns-api-v2-zone.inc | 363 +++++++ api-ref/source/index.rst | 23 + api-ref/source/parameters.yaml | 897 ++++++++++++++++ .../samples/blacklists/blacklist-response.json | 10 + .../blacklists/create-blacklist-request.json | 4 + .../blacklists/list-blacklists-response.json | 27 + .../blacklists/update-blacklist-request.json | 4 + .../blacklists/update-blacklist-response.json | 10 + .../source/samples/limits/get-limits-response.json | 10 + .../source/samples/pools/list-pools-response.json | 46 + .../source/samples/pools/show-pool-response.json | 18 + .../source/samples/quotas/get-quotas-response.json | 7 + .../source/samples/quotas/set-quotas-request.json | 3 + .../source/samples/quotas/set-quotas-response.json | 7 + .../recordsets/create-mx-recordset-request.json | 12 + .../recordsets/create-mx-recordset-response.json | 23 + .../recordsets/create-recordset-request.json | 9 + .../recordsets/create-recordset-response.json | 21 + .../recordsets/create-spf-recordset-request.json | 10 + .../recordsets/create-spf-recordset-response.json | 20 + .../recordsets/create-srv-recordset-request.json | 9 + .../recordsets/create-srv-recordset-response.json | 20 + .../recordsets/create-sshfp-recordset-request.json | 9 + .../create-sshfp-recordset-response.json | 20 + .../recordsets/delete-recordset-response.json | 22 + .../recordsets/list-all-recordset-response.json | 32 + .../list-recordset-in-zone-response.json | 32 + .../recordsets/show-recordset-response.json | 21 + .../recordsets/update-recordset-request.json | 8 + .../recordsets/update-recordset-response.json | 22 + .../list-ptr-record-response.json | 31 + .../reverse_floatingips/ptr-record-response.json | 13 + .../set-ptr-record-request.json | 5 + .../unset-ptr-record-request.json | 3 + .../source/samples/tlds/create-tld-request.json | 4 + .../source/samples/tlds/list-tlds-response.json | 26 + api-ref/source/samples/tlds/tld-response.json | 10 + .../source/samples/tlds/update-tld-request.json | 4 + .../source/samples/tlds/update-tld-response.json | 10 + .../samples/tsigkeys/create-tsigkey-request.json | 7 + .../samples/tsigkeys/list-tsigkeys-response.json | 45 + .../source/samples/tsigkeys/tsigkey-response.json | 13 + .../samples/tsigkeys/update-tsigkey-request.json | 4 + .../samples/tsigkeys/update-tsigkey-response.json | 13 + .../samples/versions/get-versions-response.json | 26 + .../samples/zones/create-zone-export-response.json | 14 + .../samples/zones/create-zone-import-response.json | 13 + .../source/samples/zones/create-zone-request.json | 7 + .../zones/create-zone-transfer-accept-request.json | 4 + .../create-zone-transfer-accept-response.json | 14 + .../create-zone-transfer-request-request.json | 3 + .../create-zone-transfer-request-response.json | 15 + .../source/samples/zones/delete-zone-response.json | 21 + .../samples/zones/list-zone-export-response.json | 26 + .../samples/zones/list-zone-import-response.json | 38 + .../zones/list-zone-transfer-accept-response.json | 37 + .../zones/list-zone-transfer-request-response.json | 32 + .../source/samples/zones/list-zones-response.json | 32 + .../samples/zones/show-zone-export-content.txt | 18 + .../samples/zones/show-zone-export-response.json | 15 + .../samples/zones/show-zone-import-response.json | 14 + .../zones/show-zone-nameservers-response.json | 8 + .../zones/show-zone-transfer-request-response.json | 10 + .../source/samples/zones/update-zone-request.json | 4 + .../source/samples/zones/update-zone-response.json | 21 + .../update-zone-transfer-request-request.json | 4 + .../update-zone-transfer-request-response.json | 11 + api-ref/source/samples/zones/zone-response.json | 21 + bandit.yaml | 248 ----- contrib/djbdns/tinydns.init | 110 ++ contrib/djbdns/tinydns.service | 44 + contrib/dns_dump_hex_to_text.py | 2 +- contrib/ipaextractor.py | 2 +- contrib/tempest/README.rst | 72 -- contrib/tempest/clients.py | 706 ------------- contrib/tempest/config.py | 1076 ------------------- contrib/tempest/dns_clients/__init__.py | 0 contrib/tempest/dns_clients/json/__init__.py | 0 contrib/tempest/dns_clients/json/domains_client.py | 79 -- contrib/tempest/dns_clients/json/records_client.py | 84 -- contrib/tempest/dns_clients/json/server_client.py | 76 -- contrib/tempest/dns_schema/__init__.py | 0 contrib/tempest/dns_schema/domains.py | 123 --- contrib/tempest/dns_schema/parameter_types.py | 23 - contrib/tempest/dns_schema/records.py | 136 --- contrib/tempest/dns_schema/servers.py | 103 -- contrib/tempest/tempest.conf.sample | 1095 -------------------- contrib/vagrant/README.rst | 1 + contrib/vagrant/Vagrantfile | 85 +- contrib/vagrant/local.conf | 9 +- contrib/vagrant/setup_ubuntu_devstack | 61 ++ designate/__init__.py | 3 +- designate/agent/__init__.py | 24 +- designate/agent/handler.py | 49 +- designate/agent/service.py | 13 + designate/api/__init__.py | 15 +- designate/api/admin/app.py | 3 - .../api/admin/controllers/extensions/quotas.py | 3 + designate/api/middleware.py | 7 + designate/api/service.py | 18 + designate/api/v1/__init__.py | 2 +- designate/api/v1/domains.py | 13 +- designate/api/v1/extensions/diagnostics.py | 2 - designate/api/v1/extensions/quotas.py | 2 - designate/api/v1/extensions/reports.py | 2 - designate/api/v1/extensions/sync.py | 2 - designate/api/v1/limits.py | 2 - designate/api/v1/records.py | 17 +- designate/api/v1/servers.py | 14 +- designate/api/v1/tsigkeys.py | 13 +- designate/api/v2/app.py | 3 - designate/api/v2/controllers/blacklists.py | 31 +- designate/api/v2/controllers/common.py | 50 + designate/api/v2/controllers/errors.py | 3 - designate/api/v2/controllers/floatingips.py | 23 +- designate/api/v2/controllers/limits.py | 2 - designate/api/v2/controllers/pools.py | 33 +- designate/api/v2/controllers/quotas.py | 78 ++ designate/api/v2/controllers/recordsets.py | 186 +--- designate/api/v2/controllers/rest.py | 9 - designate/api/v2/controllers/root.py | 9 +- designate/api/v2/controllers/service_status.py | 58 ++ designate/api/v2/controllers/tlds.py | 33 +- designate/api/v2/controllers/tsigkeys.py | 32 +- designate/api/v2/controllers/zones/__init__.py | 32 +- designate/api/v2/controllers/zones/nameservers.py | 11 +- designate/api/v2/controllers/zones/recordsets.py | 158 +++ .../api/v2/controllers/zones/tasks/__init__.py | 2 - .../api/v2/controllers/zones/tasks/abandon.py | 11 +- .../api/v2/controllers/zones/tasks/exports.py | 44 +- .../api/v2/controllers/zones/tasks/imports.py | 42 +- .../v2/controllers/zones/tasks/transfer_accepts.py | 39 +- .../controllers/zones/tasks/transfer_requests.py | 40 +- designate/api/v2/controllers/zones/tasks/xfr.py | 9 + designate/api/v2/patches.py | 10 +- designate/backend/agent.py | 52 +- designate/backend/agent_backend/base.py | 5 - .../backend/agent_backend/impl_denominator.py | 2 +- designate/backend/agent_backend/impl_djbdns.py | 350 +++++++ designate/backend/agent_backend/impl_gdnsd.py | 245 +++++ designate/backend/agent_backend/impl_knot2.py | 216 ++++ designate/backend/agent_backend/impl_msdns.py | 113 ++ designate/backend/base.py | 2 + designate/backend/impl_akamai.py | 20 +- designate/backend/impl_bind9.py | 81 +- designate/backend/impl_designate.py | 2 - designate/backend/impl_dynect.py | 2 +- designate/backend/impl_infoblox/config.py | 71 +- designate/backend/impl_infoblox/connector.py | 17 +- .../backend/impl_infoblox/object_manipulator.py | 13 +- designate/backend/impl_pdns4.py | 82 ++ designate/backend/impl_powerdns/__init__.py | 69 +- designate/backend/private_codes.py | 35 + designate/central/rpcapi.py | 165 +-- designate/central/service.py | 374 +++---- designate/cmd/pool_manager.py | 16 + designate/cmd/producer.py | 53 + designate/cmd/worker.py | 53 + designate/cmd/zone_manager.py | 24 +- designate/common/config.py | 3 +- designate/context.py | 52 +- designate/coordination.py | 39 +- designate/dnsutils.py | 8 +- designate/exceptions.py | 8 + designate/hookpoints.py | 19 +- .../en_GB/LC_MESSAGES/designate-log-warning.po | 233 +++++ designate/loggingutils.py | 43 + designate/manage/database.py | 2 +- designate/manage/pool.py | 10 +- designate/manage/pool_manager_cache.py | 3 - designate/manage/powerdns.py | 2 - designate/mdns/__init__.py | 13 +- designate/mdns/base.py | 2 - designate/mdns/handler.py | 81 +- designate/mdns/notify.py | 18 +- designate/mdns/rpcapi.py | 13 +- designate/mdns/service.py | 2 + designate/mdns/xfr.py | 3 +- designate/network_api/__init__.py | 4 +- designate/notification_handler/__init__.py | 5 +- designate/notification_handler/base.py | 30 +- designate/notification_handler/neutron.py | 8 +- designate/notification_handler/nova.py | 8 +- designate/objects/__init__.py | 1 + designate/objects/adapters/__init__.py | 1 + designate/objects/adapters/api_v1/base.py | 3 - designate/objects/adapters/api_v2/base.py | 10 +- designate/objects/adapters/api_v2/blacklist.py | 2 - designate/objects/adapters/api_v2/floating_ip.py | 2 - designate/objects/adapters/api_v2/pool.py | 2 - .../objects/adapters/api_v2/pool_attribute.py | 2 - .../objects/adapters/api_v2/pool_ns_record.py | 2 - designate/objects/adapters/api_v2/quota.py | 43 +- designate/objects/adapters/api_v2/record.py | 2 - designate/objects/adapters/api_v2/recordset.py | 51 +- .../objects/adapters/api_v2/service_status.py | 63 ++ designate/objects/adapters/api_v2/tld.py | 2 - designate/objects/adapters/api_v2/tsigkey.py | 2 - .../objects/adapters/api_v2/validation_error.py | 3 - designate/objects/adapters/api_v2/zone.py | 3 - .../objects/adapters/api_v2/zone_attribute.py | 2 - designate/objects/adapters/api_v2/zone_export.py | 8 +- designate/objects/adapters/api_v2/zone_import.py | 6 +- designate/objects/adapters/api_v2/zone_master.py | 2 - .../adapters/api_v2/zone_transfer_accept.py | 6 +- .../adapters/api_v2/zone_transfer_request.py | 5 +- designate/objects/adapters/base.py | 22 +- .../objects/adapters/yaml/pool_also_notify.py | 2 - designate/objects/adapters/yaml/pool_attribute.py | 2 - designate/objects/adapters/yaml/pool_nameserver.py | 2 - designate/objects/adapters/yaml/pool_ns_record.py | 2 - designate/objects/adapters/yaml/pool_target.py | 2 - .../objects/adapters/yaml/pool_target_master.py | 2 - .../objects/adapters/yaml/pool_target_option.py | 2 - designate/objects/base.py | 6 + designate/objects/pool_target.py | 1 + designate/objects/quota.py | 24 +- designate/objects/recordset.py | 15 +- designate/objects/rrdata_sshfp.py | 4 +- designate/objects/service_status.py | 61 ++ designate/policy.py | 6 +- designate/pool_manager/__init__.py | 20 +- .../pool_manager/cache/impl_memcache/__init__.py | 8 + designate/pool_manager/rpcapi.py | 28 +- designate/pool_manager/service.py | 30 +- designate/producer/__init__.py | 69 ++ designate/producer/service.py | 97 ++ designate/producer/tasks.py | 346 +++++++ designate/quota/impl_storage.py | 6 +- designate/resources/schemas/admin/quota.json | 9 +- designate/rpc.py | 30 +- designate/scheduler/__init__.py | 4 +- designate/scheduler/filters/attribute_filter.py | 70 +- designate/scheduler/filters/default_pool_filter.py | 12 +- designate/scheduler/filters/fallback_filter.py | 14 +- .../scheduler/filters/pool_id_attribute_filter.py | 4 +- designate/scheduler/filters/random_filter.py | 4 +- designate/schema/format.py | 5 +- designate/schema/validators.py | 3 - designate/service.py | 255 +++-- designate/service_status.py | 114 ++ designate/sqlalchemy/base.py | 198 ++-- designate/sqlalchemy/types.py | 4 +- designate/sqlalchemy/utils.py | 24 +- designate/storage/__init__.py | 91 +- designate/storage/base.py | 38 +- designate/storage/impl_sqlalchemy/__init__.py | 530 ++++------ .../migrate_repo/versions/038_icehouse.py | 231 ----- .../versions/039_support_soa_records.py | 168 --- .../migrate_repo/versions/040_fix_record_data.py | 37 - .../versions/041_server_pools_storage.py | 93 -- .../migrate_repo/versions/042_priority_to_data.py | 117 --- .../versions/043_modify_domains_and_records.py | 98 -- .../versions/044_add_pool_id_to_domains.py | 59 -- .../045_add_uniqueconstraint_to_pool_attributes.py | 57 - .../migrate_repo/versions/046_add_indices.py | 76 -- .../migrate_repo/versions/047_add_reverse_name.py | 110 -- .../048_add_zone_ownership_transfers_tables.py | 78 -- .../migrate_repo/versions/049_migrate_servers.py | 73 -- .../migrate_repo/versions/050_drop_servers.py | 37 - .../migrate_repo/versions/051_scoped_tsig.py | 79 -- .../migrate_repo/versions/052_secondary_zones.py | 115 -- .../migrate_repo/versions/053_pool_nameservers.py | 120 --- .../versions/054_allow_duplicate_domains.py | 56 - .../versions/055_add_created_indices.py | 48 - .../migrate_repo/versions/056_placeholder.py | 30 - .../migrate_repo/versions/057_placeholder.py | 30 - .../migrate_repo/versions/058_placeholder.py | 30 - .../migrate_repo/versions/059_placeholder.py | 30 - .../migrate_repo/versions/060_placeholder.py | 30 - .../migrate_repo/versions/061_placeholder.py | 30 - .../migrate_repo/versions/062_placeholder.py | 30 - .../migrate_repo/versions/063_placeholder.py | 30 - .../migrate_repo/versions/064_placeholder.py | 30 - .../migrate_repo/versions/065_placeholder.py | 30 - .../versions/066_add_update_status_index.py | 49 - .../migrate_repo/versions/067_zone_tasks.py | 60 -- .../migrate_repo/versions/068_add_shard_column.py | 101 -- .../versions/069_zone_tasks_location.py | 44 - .../migrate_repo/versions/070_liberty.py | 395 +++++++ .../migrate_repo/versions/070_placeholder.py | 30 - .../migrate_repo/versions/082_unique_ns_record.py | 7 +- .../migrate_repo/versions/087_placeholder.py | 26 + .../migrate_repo/versions/088_placeholder.py | 26 + .../migrate_repo/versions/089_placeholder.py | 26 + .../migrate_repo/versions/090_placeholder.py | 26 + .../migrate_repo/versions/091_placeholder.py | 26 + .../migrate_repo/versions/092_placeholder.py | 26 + .../migrate_repo/versions/093_placeholder.py | 26 + .../migrate_repo/versions/094_placeholder.py | 26 + .../migrate_repo/versions/095_placeholder.py | 26 + .../migrate_repo/versions/096_placeholder.py | 26 + .../migrate_repo/versions/097_add_services.py | 52 + .../versions/098_fix_service_charset.py | 33 + .../099_add_rrset_indexes_for_filtering_perf.py | 36 + designate/storage/impl_sqlalchemy/tables.py | 23 + .../unit/test_agent/test_backends/__init__.py | 0 .../unit/test_agent/test_backends/test_djbdns.py | 126 +++ .../unit/test_agent/test_backends/test_gdnsd.py | 85 ++ .../unit/test_agent/test_backends/test_knot2.py | 200 ++++ .../unit/test_agent/test_backends/test_msdns.py | 122 +++ designate/utils.py | 78 +- designate/worker/README.md | 206 ++++ designate/worker/__init__.py | 60 ++ designate/worker/processing.py | 79 ++ designate/worker/rpcapi.py | 77 ++ designate/worker/service.py | 172 +++ designate/worker/tasks/__init__.py | 0 designate/worker/tasks/base.py | 127 +++ designate/worker/tasks/zone.py | 609 +++++++++++ designate/worker/utils.py | 82 ++ designate/zone_manager/__init__.py | 37 - designate/zone_manager/rpcapi.py | 72 -- designate/zone_manager/service.py | 154 --- designate/zone_manager/tasks.py | 299 ------ devstack/designate_plugins/backend-agent | 103 ++ devstack/designate_plugins/backend-agent-fake | 55 + devstack/designate_plugins/backend-agent-knot2 | 130 +++ devstack/designate_plugins/backend-agent-msdns | 116 +++ devstack/designate_plugins/backend-bind9 | 6 +- devstack/designate_plugins/backend-pdns4 | 181 ++++ .../designate_plugins/backend-pdns4-mysql-db.sql | 92 ++ devstack/gate/post_test_hook.sh | 15 +- devstack/networking_test.py | 663 ++++++++++++ devstack/networking_test_monitor_tc.sh | 3 + devstack/plugin.sh | 95 +- devstack/settings | 30 +- devstack/upgrade/resources.sh | 166 +++ devstack/upgrade/settings | 11 + devstack/upgrade/shutdown.sh | 28 + devstack/upgrade/upgrade.sh | 96 ++ .../backends/sample_yaml_snippets/agent.yaml | 15 + .../backends/sample_yaml_snippets/pdns4.yaml | 16 + .../backends/sample_yaml_snippets/powerdns.yaml | 16 + etc/designate/designate.conf.sample | 166 ++- etc/designate/policy.json | 5 +- etc/designate/pools.yaml.sample-bind | 4 +- etc/designate/pools.yaml.sample-multiple-pools | 6 +- etc/designate/rootwrap.d/djbdns.filters | 4 + etc/designate/rootwrap.d/knot2.filters | 3 + .../api/v2/clients/zone_export_client.py | 75 -- .../api/v2/clients/zone_import_client.py | 61 -- .../api/v2/test_recordset_validation.py | 2 +- .../api/v2/test_zone_ownership_transfers.py | 60 +- .../notes/agent-port-number-c28462562a74cbf9.yaml | 5 + .../api-mdns-multiple-bind-c78853de46ee587d.yaml | 15 + .../notes/attribute-filter-f06a53b61f5fd111.yaml | 5 + .../djbdns-agent-backend-c84e9eeab48d2e01.yaml | 4 + .../notes/knot-agent-backend-db2893aa97d85a1d.yaml | 3 + .../notes/newton-rc-1-eddc78fac760b98a.yaml | 19 + .../notes/recordset-api-2c82abf569f7623e.yaml | 5 + .../notes/service-status-ab0e696c8f5fdef8.yaml | 11 + .../notes/v2-api-quotas-dd7e189cddcf7b96.yaml | 15 + ...-trasfer-request-response-a2e316872798d1df.yaml | 3 + releasenotes/source/index.rst | 3 +- releasenotes/source/mitaka.rst | 6 + requirements.txt | 47 +- setup.cfg | 26 +- test-requirements.txt | 17 +- tools/designate-keystone-setup | 198 ---- tox.ini | 46 +- 527 files changed, 21809 insertions(+), 15571 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 5ab5d07..1599830 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5 +5 @@ -Babel>=1.3 # BSD +Babel>=2.3.4 # BSD @@ -7 +7 @@ eventlet!=0.18.3,>=0.18.2 # MIT -Flask<1.0,>=0.10 # BSD +Flask!=0.11,<1.0,>=0.10 # BSD @@ -11,6 +11,6 @@ jsonschema!=2.5.0,<3.0.0,>=2.0.0 # MIT -keystoneauth1>=2.1.0 # Apache-2.0 -keystonemiddleware!=4.1.0,>=4.0.0 # Apache-2.0 -netaddr!=0.7.16,>=0.7.12 # BSD -oslo.config>=3.7.0 # Apache-2.0 -oslo.concurrency>=3.5.0 # Apache-2.0 -oslo.messaging>=4.0.0 # Apache-2.0 +keystoneauth1>=2.10.0 # Apache-2.0 +keystonemiddleware!=4.1.0,!=4.5.0,>=4.0.0 # Apache-2.0 +netaddr!=0.7.16,>=0.7.13 # BSD +oslo.config>=3.14.0 # Apache-2.0 +oslo.concurrency>=3.8.0 # Apache-2.0 +oslo.messaging>=5.2.0 # Apache-2.0 @@ -20 +20 @@ oslo.reports>=0.6.0 # Apache-2.0 -oslo.rootwrap>=2.0.0 # Apache-2.0 +oslo.rootwrap>=5.0.0 # Apache-2.0 @@ -22,2 +22,2 @@ oslo.serialization>=1.10.0 # Apache-2.0 -oslo.service>=1.0.0 # Apache-2.0 -oslo.utils>=3.5.0 # Apache-2.0 +oslo.service>=1.10.0 # Apache-2.0 +oslo.utils>=3.16.0 # Apache-2.0 @@ -27 +27 @@ pbr>=1.6 # Apache-2.0 -pecan>=1.0.0 # BSD +pecan!=1.0.2,!=1.0.3,!=1.0.4,>=1.0.0 # BSD @@ -29,4 +29,4 @@ python-designateclient>=1.5.0 # Apache-2.0 -python-neutronclient!=4.1.0,>=2.6.0 # Apache-2.0 -Routes!=2.0,!=2.1,>=1.12.3;python_version=='2.7' # MIT -Routes!=2.0,>=1.12.3;python_version!='2.7' # MIT -requests!=2.9.0,>=2.8.1 # Apache-2.0 +python-neutronclient>=5.1.0 # Apache-2.0 +Routes!=2.0,!=2.1,!=2.3.0,>=1.12.3;python_version=='2.7' # MIT +Routes!=2.0,!=2.3.0,>=1.12.3;python_version!='2.7' # MIT +requests>=2.10.0 # Apache-2.0 @@ -36,3 +36,3 @@ sqlalchemy-migrate>=0.9.6 # Apache-2.0 -stevedore>=1.5.0 # Apache-2.0 -suds-jurko>=0.6 # LGPL -setuptools>=16.0 # PSF/ZPL +stevedore>=1.16.0 # Apache-2.0 +suds-jurko>=0.6 # LGPLv3+ +setuptools!=24.0.0,>=16.0 # PSF/ZPL @@ -40 +40 @@ WebOb>=1.2.3 # MIT -dnspython>=1.12.0;python_version<'3.0' # http://www.dnspython.org/LICENSE +dnspython>=1.14.0 # http://www.dnspython.org/LICENSE @@ -42 +42 @@ dnspython3>=1.12.0;python_version>='3.0' # http://www.dnspython.org/LICENSE -oslo.db>=4.1.0 # Apache-2.0 +oslo.db!=4.13.1,!=4.13.2,>=4.10.0 # Apache-2.0 @@ -44,2 +44,2 @@ oslo.i18n>=2.1.0 # Apache-2.0 -oslo.context>=0.2.0 # Apache-2.0 -oslo.policy>=0.5.0 # Apache-2.0 +oslo.context>=2.9.0 # Apache-2.0 +oslo.policy>=1.9.0 # Apache-2.0 @@ -49,0 +50 @@ debtcollector>=1.2.0 # Apache-2.0 +os-win>=0.2.3 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index ae59057..90caf4c 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -8,2 +8,2 @@ coverage>=3.6 # Apache-2.0 -fixtures>=1.3.1 # Apache-2.0/BSD -mock>=1.2 # BSD +fixtures>=3.0.0 # Apache-2.0/BSD +mock>=2.0 # BSD @@ -13,2 +13,2 @@ python-subunit>=0.0.18 # Apache-2.0/BSD -requests-mock>=0.7.0 # Apache-2.0 -sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 # BSD +requests-mock>=1.0 # Apache-2.0 +sphinx!=1.3b1,<1.3,>=1.2.1 # BSD @@ -20,2 +20,2 @@ WebTest>=2.0 # MIT -tempest-lib>=0.14.0 # Apache-2.0 -reno>=0.1.1 # Apache2 +tempest>=12.1.0 # Apache-2.0 +reno>=1.8.0 # Apache2 @@ -23,2 +23,3 @@ reno>=0.1.1 # Apache2 -bandit>=0.17.3 # Apache-2.0 - +bandit>=1.1.0 # Apache-2.0 +os-api-ref>=1.0.0 # Apache-2.0 +zake>=0.1.6 # Apache-2.0