././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1638524437.8484795 designate-10.0.2/0000775000175000017500000000000000000000000013560 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/.coveragerc0000664000175000017500000000013700000000000015702 0ustar00zuulzuul00000000000000[run] branch = True source = designate omit = designate/tests/* [report] ignore_errors = True ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/.stestr.conf0000664000175000017500000000010200000000000016022 0ustar00zuulzuul00000000000000[DEFAULT] test_path=${OS_TEST_PATH:-./designate/tests} top_dir=./ ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/.zuul.yaml0000664000175000017500000000661100000000000015525 0ustar00zuulzuul00000000000000- job: name: designate-base parent: devstack-tempest vars: &base_vars devstack_localrc: DESIGNATE_SERVICE_PORT_DNS: 5322 TEMPEST_PLUGINS: /opt/stack/designate-tempest-plugin USE_PYTHON3: true devstack_plugins: designate: https://opendev.org/openstack/designate devstack_services: designate: true s-account: false s-container: false s-object: false s-proxy: false c-bak: false tox_envlist: all tempest_test_regex: | designate_tempest_plugin.* required-projects: &base_required_projects - openstack/designate - openstack/designate-dashboard - openstack/designate-tempest-plugin - openstack/python-designateclient timeout: 4200 irrelevant-files: &base_irrelevant_files - ^.*\.rst$ - ^api-ref/.*$ - ^doc/.*$ - ^etc/.*$ - ^releasenotes/.*$ - job: name: designate-base-ipv6-only parent: devstack-tempest-ipv6 description: | Designate devstack-tempest base job for IPv6-only deployment irrelevant-files: *base_irrelevant_files required-projects: *base_required_projects vars: *base_vars - job: name: designate-bind9 post-run: playbooks/designate-bind9/post.yaml parent: designate-base - job: name: designate-pdns4 post-run: playbooks/designate-pdns4/post.yaml parent: designate-base vars: devstack_localrc: DESIGNATE_BACKEND_DRIVER: pdns4 - job: name: designate-pdns4-postgres parent: designate-pdns4 vars: devstack_services: mysql: False postgresql: True voting: false - job: name: designate-ipv6-only-bind9 post-run: playbooks/designate-bind9/post.yaml parent: designate-base-ipv6-only - job: name: designate-ipv6-only-pdns4 post-run: playbooks/designate-pdns4/post.yaml parent: designate-base-ipv6-only vars: devstack_localrc: DESIGNATE_BACKEND_DRIVER: pdns4 - job: name: designate-grenade-pdns4 parent: legacy-dsvm-base required-projects: - openstack/grenade - openstack/devstack-gate - openstack/designate - openstack/designate-dashboard - openstack/designate-tempest-plugin - openstack/python-designateclient run: playbooks/legacy/grenade-devstack-designate-pdns4/run.yaml post-run: playbooks/legacy/grenade-devstack-designate-pdns4/post.yaml timeout: 10800 irrelevant-files: - ^.*\.rst$ - ^api-ref/.*$ - ^doc/.*$ - ^etc/.*$ - ^releasenotes/.*$ - project-template: name: designate-devstack-jobs check: jobs: - designate-bind9 - designate-pdns4 - designate-grenade-pdns4 - designate-ipv6-only-pdns4 - designate-ipv6-only-bind9 gate: queue: designate jobs: - designate-bind9 - designate-pdns4 - designate-grenade-pdns4 - designate-ipv6-only-pdns4 - designate-ipv6-only-bind9 - project: templates: - designate-devstack-jobs - openstack-cover-jobs - openstack-python3-ussuri-jobs - publish-openstack-docs-pti - periodic-stable-jobs - check-requirements - release-notes-jobs-python3 check: jobs: - neutron-tempest-plugin-designate-scenario-ussuri gate: queue: designate experimental: jobs: - designate-pdns4-postgres ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524437.0 designate-10.0.2/AUTHORS0000664000175000017500000002342600000000000014637 0ustar00zuulzuul00000000000000Adam Harwell Akihiro Motoki Alex Barclay Alex Monk Alex Schultz Alexander Maretskiy Alexandra Settle Alexandra Settle Alin Balutoiu Alok Jani Andreas Jaeger Andreas Jaeger Andrew Bogott Andrew Ruthven Andrew Spiers Andrey Perminov Angus Lees Anusree Arjun Baindur Artom Lifshitz Atsushi SAKAI Attila Fazekas AvnishPal Ben George Ben Nemec Bertrand Lallau Bertrand Lallau Betsy Luzader Boris Pavlovic Béla Vancsics Cao Xuan Hoang CaptTofu Cedric Brandily Chandan Kumar ChangBo Guo(gcb) Chaozhe.Chen Charles Neill Charles Short Chris Johnson Christian Berendt Clayton O'Neill Clenimar Filemon Colleen Murphy Corey Bryant Cuong Nguyen Dag Stenstad Dai Dang Van Damon Li Daniel Allegood Darshan Sanghani David Rabel Davide Guerri Diana Clarke Dirk Mueller Dmitry Galkin Doug Hellmann Dougal Matthews Dr. Jens Harbott Duong Ha-Quang Elena Ezhova Endre Karlson Endre Karlson Endre Karlson Eric Larson Eric Larson Erik Olof Gunnar Andersson Erik Olof Gunnar Andersson Federico Ceratto Federico Ceratto Federico Ceratto Flavio Percoco Gauvain Pocentek Ghanshyam Ghanshyam Mann Graham Graham Hayes Graham Hayes Graham Hayes Graham Hayes Graham Hayes Harm Weites Hieu LE Hironori Shiina Hoang Trung Hieu Ian Wienand Ihar Hrachyshka Iswarya_Vakati JC Martin James Li Javier Ramirez Jean-Philippe Evrard Jeff Feng Jens Harbott Jeremy Stanley Jesse Pretorius Jimmy McCrory Joe Gordon Joe Harrison Joe McBride John Belamaric John Schwarz Jordan Cazamias JordanP Jorge Niedbalski Julien Danjou KATO Tomoyuki Kai Zhang Ken'ichi Ohmichi Kiall Mac Innes Kiall Mac Innes Kiall Mac Innes Kiall Mac Innes Kien Nguyen Kieran Spear Kumar Acharya Lucky Luong Anh Tuan MAnupama Mark Goddard MasayaAoyama Matt Riedemann Matt Thompson Maurice Schreiber Michael Chapman Michael Krotscheck Michael Still Mike Carden Mimi Monjurul Hasan Monty Taylor Nam Nguyen Hoai Naveen Chekuri Ngo Quoc Cuong Nguyen Hai Nguyen Hung Phuong Nguyen Phuong An Nguyen Van Trung Nick Silkey Nicolas Bock Nicolas Bock Nikolay Fedotov Ondřej Nový OpenStack Release Bot Patrick Galbraith Patrick Galbraith Paul Glass Pavlo Shchelokovskyy Petr Kovar Pradeep Kumar Singh Praveen Yalagandula Rafael Rivero Rahman Syed Rajath Agasthya Rensen Rich Megginson Ritesh Anand Rocky Ronald Bradford Rudrajit Tapadar Russell Bryant Russell Tweed Ryan Bak Ryan Petrello Sascha Peilicke Sean McGinnis Selvakumar S Selvakumar S Sergey Kraynev Sergey Skripnick ShangXiao Sharmin Choksey Shuquan Huang Simon McCartney Slawomir Kaplonski Steve Kowalik Swapnil Kulkarni (coolsvap) THOMAS J. COCOZZELLO Takahito Hirose Takashi NATSUME Thierry Carrez Thomas Bechtold Thomas Goirand Thomas Herve Tim Freund Tim Simmons TimSimmons Tin Lam Tom Walsh Tony Xu Tytus Kurek Venkata Mahesh Jonnalagadda Victor Stinner Vinod Mangalpally Vu Cong Tuan XieYingYun Yaguo Zhou Yasha Bubnov Yatin Kumbhare ZhiQiang Fan ZhongShengping Zhongyue Luo alokmaurya andrewbogott avnish betsy luzader caowei caoyuan caoyue chao liu chenxing chenxing chioleong deepakmourya emmanuel.ankutse eric gaofei gecong1973 gengchc2 ghanshyam hamzah alqtaishat hardik igor inspurericzhang jacky06 junbo kairat_kushaev keisuke_yamamoto kenichiro matsuda koteswar leiyashuai lilintan lingyongxu maestropandy melissaml michael.dong@rackspace.com mimi8890 naggappan nayna-patel nizam pengyuesheng qinchunhua ravikumar-venkatesan rjrjr rmulugu rrickard saradpatel sharat.sharma shihanzhang sonu.kumar stanzgy swetha-chandrasekaran taoguo twm2016 venkatamahesh vishal mahajan wangqi wengjiangang wu.chunyang zhang.lei zhangdebo zhangyanxian zhangyanxian zhouhenglc Łukasz Jernaś ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/CONTRIBUTING.rst0000664000175000017500000000116400000000000016223 0ustar00zuulzuul00000000000000The source repository for this project can be found at: https://opendev.org/openstack/designate Pull requests submitted through GitHub are not monitored. To start contributing to OpenStack, follow the steps in the contribution guide to set up and use Gerrit: https://docs.openstack.org/contributors/code-and-documentation/quick-start.html Bugs should be filed on Launchpad: https://bugs.launchpad.net/designate For more specific information about contributing to this repository, see the designate contributor guide: https://docs.openstack.org/designate/latest/contributor/getting-involved.html#contributing ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524437.0 designate-10.0.2/ChangeLog0000664000175000017500000032721700000000000015346 0ustar00zuulzuul00000000000000CHANGES ======= 10.0.2 ------ * Fix pool update with duplicate masters * Support filtering on zone import/export list 10.0.1 ------ * Update zones masters using pool target masters * Fix pdns4 devstack plugin * Drop lower-constraints test * pdns4 backend: check if zone exists before attempting delete * Fix lower-constraints test not constraining properly * fix database sync always get the wrong value 10.0.0 ------ * Fix designate-sink shutdown issue * Update TOX\_CONSTRAINTS\_FILE for stable/ussuri * Update .gitreview for stable/ussuri 10.0.0.0rc1 ----------- * Imported Translations from Zanata * Imported Translations from Zanata * Community Goal: Project PTL & Contrib Docs Update * Imported Translations from Zanata * Imported Translations from Zanata * Adding distributed locking to central * Stop setting version specific basepython binaries * Cleanup py27 support * Update hacking for Python3 * Clean up api middlewares * Fix issue with neutron\_api tests * Imported Translations from Zanata * Re-factored Heartbeat implementation * Cleanup docs building * Update the Akamai DNS Driver matrix information * Make the postgres job experimental * Use Tempest 'all' tox env * Remove unused legacy playbooks * Drop setcap on python binary * Drop use of USE\_SYSTEMD var in devstack plugin * Fixing services getting stuck on shutdown * Implement create/delete zone for Akamai v2 API * Fixed neutron endpoint override * Improve sink recordset creation * Imported Translations from Zanata * Updated reno for dropping Python 2 support * Simplified network api implementation * Don't use hasattr to lazy-load properties * [ussuri][goal] Drop python 2.7 support and testing * Delete removed dashboard panel when upgrading * Removed unused SSLMiddleware * Clean up pecan Request patching * Move pecan\_debug into cfg section * Remove broken target sync extension * Run grenade old side with python3 * Don't install Horizon as part of the upgrade test * Make designate reproducible * Renamed enable\_host\_header by default reno * Fix api version not providing the full url * Switch to Ussuri jobs * Remove wsgi eventlet monkey patch * Switch to apache for designate-api * Enable graceful shutdown of mdns * Don't install v1 dashboard panel * designate-manage pool update --dry-run not should pass argument * fix Secondary zone can not xfr * fix ListObjectMixin.\_obj\_from\_primitive bug * Updated Readme * Drop use of DESIGNATE\_AUTH\_CACHE\_DIR * Reduce log spam from coordinator * Update devstack to use workers * Update master for stable/train 9.0.0 ----- * Experimental wsgi support * fix call obj\_reset\_changes with recursive=True raise error * Set enable\_host\_header in documentation * Removed deprecated powerdns 3 driver * Removed deprecated pool-manager implementation * Refactored service layer * fix get the name servers for a zone not validate zone\_id * Add missing RabbitMQ configuration to install guides * Build man pages for the commands that are documented * Make IPv6 jobs voting * Add pdf-docs env to tox.ini * Adjusted default heartbeat interval and renamed file * Only log zone not found when notifing * Only log unexpected rndc errors * Fix bug in recordset status * Standardizing install guides * Updated install guide * Blacklist eventlet 0.21.0,0.23.0,0.25.0 * Fixed error in install guide * Fixed broken kolla install link * Skip grenade jobs on Release note changes * Updated Release notes for Train * Fix ipv6 bugs with devstack and pdns4 driver * Docs: Fix broken links and make more robust * Add non voting ipv6 only jobs * Fix missing \_static folder breaking gate * Ensure coordination IDs are encoded * Drop creating extra endpoints in devstack * Fixing 404 link * Use zone.tenant\_id when context.project\_id is None for pdns3 * Blacklist sphinx 2.1.0 (autodoc bug) * Use zone.tenant\_id as tenant if context.project\_id is None * Update api-ref location * Cleaned up mdns handler and added better test coverage * Improve log message for better understanding * Bump to hacking 1.1.0 * Fix postgres job and make it non-voting for now * Fixed akamai default wsdl path * Add some additional logging for failing task test * Remove unused code in utils and improved utils testing * Change configuration to be consistent with underlines * Rewrote bind9 backend unit tests * Add Python 3 Train unit tests * Moved test\_context to designate.tests.unit * Removing manage command for akamai backend * Update vagrant config * Improved CAA record test coverage * Improved worker test coverage * Only register dynamic pool options when running designate-manage * Fixed oslo deprecated warning when running devstack * Finalized centralization of configuration * Improving test coverage of designate backend * Fixed renaming topic breaking service * Fixed issue with documentation breaking CI * Updated context to use project\_id * Added config opts unit tests * Added sink unit tests * Simplified metrics implementation * Modernized agent tests * Modernized dnsutils tests * Modernized mdns tests * Renamed unit.test\_api to unit.api * Moved most configuration into designate.conf * Remove KS v2 support and add region support * Removing unused code and updated unit tests readme * Fix api-ref building * Adding basic socket tests and fixed a typo * Modernized backend tests * Modernized pool manager tests * Modernized scheduler tests * Modernized object tests * Lazy-load PowerDNS 4 logs + cleaned up tests * Modernized producer tests * Modernized workers tests * Added PowerDNS 4 unit tests * Fixed typo in PowerDNS tests * Added basic synchronized\_zone tests * Don't bind to tcp/udp when running unit-tests * Clean fix for bandit exclusions change * Cap to sphinx 2.0.0 on Python 2.7 * Clean up zone locking * Blacklist Bandit 1.6.0 due to directory exclusion bug * Update Python 3 test runtimes for Train * Designate service\_statuses is not working * Remove unused debug code * Ensure pdns4 driver is consistent with other drivers * Replace git.openstack.org URLs with opendev.org URLs * OpenDev Migration Patch * Dropping the py35 testing * Replace RCPDispatcher with decorator * Update Driver statuses * Added missing service\_statuses metadata * Switch to using project\_id for network\_api * Modernize tox * Fix DBDeadLock error resulting into 500 * Update Zuul Jobs * Check TXT/SPF records for RFC1035 sec. 5.1 * Replace openstack.org git:// URLs with https:// * Allow pdns4 backend to select tsigkey * Fixing stevedore warning when running devstack * Update master for stable/stein * Update json module to jsonutils 8.0.0 ----- * Allow non localhost connections to pdns api * Modernized RPC impl and fixed service tests * Set worker model to be the default * Add devstack VENV build support * Setup designate with default zones quota * Make unit-testing more robust * Use oslo\_serialization instead of the json module directly * nit: remove downgrade methods and add release note * Fix the child search logic during zone deletion * Drop python3.5 job after switching to Bionic * Fix test failures for new dnspython module * Add designate-status command for upgrade checks * Imported Translations from Zanata * Change openstack-dev to openstack-discuss * Fix the record\_types for CAA and NAPTR * Imported Translations from Zanata * Imported Translations from Zanata * Add blueprint in README.rst * Imported Translations from Zanata * CAA DNS records * NAPTR DNS records * Imported Translations from Zanata * Standardize colorized logging * Replace deprecated "decodestring()" * Add openstack-python37-jobs template * Move to GreenThreadPoolExecutor * Increment versioning with pbr instruction * Update sphinx extension logging * Don't quote {posargs} in tox.ini * Fixing RabbitMQ gate timeouts * Add top-level CLI reference page in docs * Fix venv target for creating release notes * Imported Translations from Zanata * Imported Translations from Zanata * Fixing Python 3.x issues introduced with eventlet update * Imported Translations from Zanata * Use templates for cover and lower-constraints * Improve configuration guide * Check the project zone quota when accepting zone transfer * Update link tags in README * Remove install-guide-jobs * Add docs for project-id verification feature * Remove -u root as mysql is executed with root user * Update links in README * switch documentation job to new PTI * import zuul job settings from project-config * Removing removed bandit plugins to fix gate * Imported Translations from Zanata * Update reno for stable/rocky 7.0.0 ----- * Imported Translations from Zanata * Worker should send NOTIFY also to all servers in 'also\_notifies' pool settings * Simplify olso.log setup * Make update\_status use synchronized\_zone * Change Bad Action from a traceback into a warning 7.0.0.0b3 --------- * Enable mutable config in designate * Reenable py3.6 tempest jobs + add py36 tox * Removed deprecated managed option in notification handler * Set py36 gate non voting * Replace use of os.errno.\* with errno.\* * Replace StopIteration with return for PEP 0479 * Remove testrepository * Replace testr to stestr * Added CONTRIBUTING.rst file to the project * Don't run tempest jobs when patching releasenote * Verify project-id when setting quota * Allow newer versions of Flask * Use listener pools in designate-sink * Init config before service start * Fix systemctl command in Ubuntu installation guide * Imported Translations from Zanata * Document --record instead of --records * [Docs] Fix the incorrect designate service name * Switch to oslo\_messaging.ConfFixture.transport\_url 7.0.0.0b2 --------- * fix tox python3 overrides * fix a typo in code * Switch to using stestr * Ensure the old files before build * Allow to check pep8 along with D000 * Add unique constraint to service\_statuses * Fix contents render for notification.rst * Replace Chinese punctuation with English punctuation * Start replacing designate legacy jobs * Make Neutron integration job voting * Change copyright information for field.py * Add release notes link to README * fix a typo: s/extention/extension 7.0.0.0b1 --------- * uncap eventlet * Ensure we do not pass invalid data for A records * Update auth\_uri option to www\_authenticate\_uri * Move pep8 checks to py3 by default * Replace deprecated LOG.warn with LOG.warning * Updated from global requirements * Follow the new PTI for document build * Updated from global requirements * add lower-constraints job * Updated from global requirements * Fix policy name * Updated from global requirements * Remove translation of log messages * Updated from global requirements * Updated from global requirements * Do not filter pools by attributes when non are provided * Imported Translations from Zanata * Updated from global requirements * Updated from global requirements * Removing downgrade commands * Resolve get\_dns\_view error after selecting multi-tenant view * Add os-testr in test-requirements.txt * Updated from global requirements * Updated from global requirements * Imported Translations from Zanata * Migrate object to OVO (7) * Migrate object to OVO (6) * Migrate object to OVO (5) * Migrate object to OVO (4) * Migrate object to OVO (3) * Migrate object to OVO (2) * Migrate object to OVO * Remove empty files * Remove install-guide tox env * Keep NS records for subdomains during Zone import * Skip grenade job on irrelevant changes * Fix unicode not define in doc with py3 * Updated from global requirements * Remove Hacking check for log translation * Updated from global requirements * Imported Translations from Zanata * Add sample\_default for pybasedir in \_\_init\_\_.py * Update reno for stable/queens 6.0.0 ----- * Fix typo * Imported Translations from Zanata * os-loganayze fix * Correct link address in docs * Zuul: Remove project name * Updated from global requirements 6.0.0.0b3 --------- * Updated from global requirements * Remove use of unsupported TEMPEST\_SERVICES variable * Use secure random to generate transfer key * Make requirements voting again, update .zuul.yaml * Updated from global requirements * Updated from global requirements * Remove the deprecated "giturl" option * Remove v1 API * Run neutron-tempest-plugin-designate-scenario job * PyMySQL 0.8.0 compat fix * Imported Translations from Zanata * Update deletion date for (zone|pool)-manager * Updated from global requirements * Updated from global requirements * Remove debug line from grenade plugin * Remove sample config from setup.cfg 6.0.0.0b2 --------- * Updated from global requirements * Make designate.conf reproducible * Remove unneeded requirements file * Remove partial sample config * Update CI Jobs * Docs Refactor * Add zone 'attributes' to api-ref * Update installation docs * Enable worker and producer by default in devstack local.conf * Update .gitignore * Fix running gate jobs * Enable worker and producer by default in devstack * Update to correct status tables * Migrate to Zuul v3 * Fix servicing IPv6 based TCP connections * Add validation to improve pep8 check for designate project * Revise the Installation Guide structure * Remove setting of version/release from releasenotes * Updated from global requirements * Update devstack.rst * Add kolla installation guide * Update PTR Record example * Updated from global requirements * Imported Translations from Zanata * Update the description of pool-2 in multiple-pools.yaml * Show the correct ptr record instead of the first one * Improve powerdns pools in yaml file * Add pools.yaml.sample-infoblox file * correct LOG.warning args in object\_manipulator.py * Use oslo.context from\_dict unmodified * Imported Translations from Zanata * Updated from global requirements * Imported Translations from Zanata * Add Docs for the policy in code work * Imported Translations from Zanata 6.0.0.0b1 --------- * Remove explicit lockdown of flake8 * Implement policy in code (4) * Implement policy in code (3) * Implement policy in code (2) * Implement policy in code (1) * Imported Translations from Zanata * Remove SCREEN\_LOGDIR from devstack * Don't attempt to escalate designate-manage privileges * Copy all dashboard panel files in devstack install * Update gitignore list * Check for multi level tlds * Use generic user for both zuul v2 and v3 * Ignore .stestr/ * Updated from global requirements * Remove user\_identity dummy param from context * Call base from\_dict in DesignateContext * Cleanup test-requirements * Dev docs cleanup * Update vagrant boxes * Include all rootwrap filters when building wheels * Update tests to fix gate * Updated from global requirements * Move default DNS driver to bind9 * Updated from global requirements * Updated from global requirements * Delay rpc initialization until config is available * Skip test failing after oslo.messaging update * Fix broken /developer/ links * infoblox backend multi\_tenant always return true, because the value of multi\_tenant is a unicode 0 * Replace DbMigrationError with DBMigrationError * Update docs formatting * Updated from global requirements * Stop creating admin and internal endpoints in devstack plugin * Fix tls startup in devstack plugin * Fix to use "." to source script files * writing convention: do not use “-y” for package install * Updated from global requirements * Improving the designate topology * Remove unused cfg import and fix uuid format in test-case * Imported Translations from Zanata * Update reno for stable/pike 5.0.0 ----- * Improve and update docs * Improving auto-genconfig for producer cfg * Fix a integrations doc link * Change correctly producer-task conf * Updated from global requirements * use oslo\_utils.uuidutils module * doc: Populate the 'install' section * doc: Populate the 'configuration' section * Fix AXFR queries under py3.5 5.0.0.0b3 --------- * Updated from global requirements * Updated from global requirements * Remove deprecated cfg in notification and add format-v6 test * Updated from global requirements * Update the documentation link * Update URLs in documents according to document migration * Auto-generate designate.conf.sample via genconfig testenv * use the same command for 'docs' env build as CI uses for real doc builds * complete the migration from oslosphinx to openstackdocstheme * rearrange existing documentation according to the new standard layout * Fix task tests under py3 * Fix pool tests in py3 * Make central service tests py3 compatible * Eliminate annoying oslo.messaging timed out message * Fix missing database privileges and config references * Updated from global requirements * Stop using deprecated 'message' attribute in Exception * Improving cover testenv * Optimize the link address * Improving check warning build\_sphinx * Fix missing format of impl\_infoblox config file * Updated from global requirements * Remove unnecessary setUp function in testcase * Remove .testrepository/times.dbm * Return PoolList as a right list object * Fix UUID and String value in test\_pool * Improve testcase * Fix issue with value in nsd4 and powerdns test-case * Fix wrong Tld name * Fix issues with value pool-manger and bind9 tests * Fix issue with 'priority' value in pool\_ns\_record * Updated from global requirements * Add 'DELETED', 'NO\_ZONE' and 'SUCCESS' status for objects * Fix doc generation for Python3 * Ensure TTL is not 0 for zone imports * Make the Zone object py3 compatible * Fix remaining API tests under python3 * Fix testcase with ttl value * Add '.' into zone format in \_build\_zones method * Fix mistaken object * Updated from global requirements * Unskip and fix handler tests in py3 * Updated from global requirements * Fix agent unit tests on py3 * Fix test notification driver configuration * nova/neutron format integration is failed * Remove usage of parameter enforce\_type * Trivial fix typos while reading doc * Updated from global requirements * Blacklist python 3 UT because of eventlet bug * Remove unused variable * Remove old oslo.messaging transport aliases * Unskip py3 tests that depend on eventlet 0.21.0 * Fix wrong usage of producer interval type in UT * Trivial fix pep8 and typos * Updated from global requirements * Unskip py3 tests that no longer fail * Enable posargs for the py35 tests * Refactor NSD4 UT for using upstream eventlet * [docs] Rearranges index.rst to build nicer with the theme * Move RPC topics which hard-coded in Designate project * Fix some reST field lists in docstrings * Fix zone creation example in install guide * Fix pools.yaml examples in install guide * Add instructions for SUSE to install guide * Updated from global requirements * Add SOA to RECORD\_TYPES in sqlalchemy.tables and remove eventlet constraint 5.0.0.0b1 --------- * Make Pools documentation better * Switch to the OpenStack Docs Theme * [install-guide] Add install-rdo * Remove usage of option 'verbose' * Use https instead of http for git.openstack.org in designate * [docs] Add missing upgrade guides * Indicating the location tests directory in oslo\_debug\_helper * Updated from global requirements * Move docs to tempest plugin repo * Actually write out tempest config file * Remove old functional tests * New Docs toctree * Bump hacking to new required version * Change 'tocreate' to 'to create' * Updated from global requirements * [doc] Update Ubuntu dev environment doc * Updated from global requirements * Update Architecture Doc * Updated from global requirements * [docs] Merge Developer Guidelines into Getting Involved page * Add basic information on sink + neutron * Point Users at the main install guide site * Remove old docs content * Add note for running designate-tempest-plugins * load default pool from storage * fix \`tox -e docs\` errors * Remove a py34 environment from tox * Turn off V1 API by default * pool not pools * Updated from global requirements * Install Guide Plugin * Added in doubt default pool filter to scheduler * Fix broken grenade gate * Updated from global requirements * Fix warnings in api-ref * Update reno for stable/ocata 4.0.0 ----- * Add warning message to akamai driver * Do not send DNS queries against hostnames * Validate NS records on a pool during an update * Allow for zones / pools with no attributes * Use exit code 1 for failed designate-manage pool commands * Switch to decorators.idempotent\_id * Fix noop metrics timed decorator 4.0.0.0b3 --------- * Updated from global requirements * Make notifications pluggable * Use the oslo\_utils address parser * Make exception catching more python3-ish * Updated from global requirements * Use designate.utils.generate\_uuid instead of str(uuid.uuid4) * change from domain to zone at configfile * DOC Remove a couple of repeated words * Fix a typo in designate/worker/tasks/zone.py * Updated from global requirements * [api-ref] fix create zone export endpoint * Fix typo in upgrade doc * Use tenacity instead of retrying * The usage of LOG mismatch in the code * [backend:akamai] fix retrieval of tsig\_key\_name 4.0.0.0b2 --------- * Remove lowercase constarint for pgsql * Use modules for import not objects * Updated from global requirements * Add pGSQL support for pdns4 driver in devstack * Fix grenade to use the driver specified in the gate * Update Devstack plugin * Set import exceptions in tox.ini configuration * Show team and repo badges on README * Add v6 support in \_get\_ip\_data * Fix a typo in parameters.yaml * Fix DB migration with postgresql * Updated from global requirements * Updated from global requirements * Updated from global requirements * Fix noop client getters * [api-ref] add optional zone create parameter 'masters' * Remove tests ported to tempest plugin * Fix typo * Switch stats client import to use oslo\_utils * cors: update default configuration in config * Updated from global requirements * Follow up - removing old dirs + config * Remove the method \_dispatch in rpc * Don't include openstack/common in flake8 exclude list * Add noop metrics client * Remove Oslo Incubator Code * Updated from global requirements * fix link to docs.openstack.org in release notes for mitaka * [Trivial] Fix some typos in designate * Fix unit tests for oslo.config 3.18.0 * Fix for allowing user to create zone other than ending with TLD * Update .coveragerc after the removal of respective directory * Fix Mitaka Upgrade Doc * Changed the home-page link * Use ConfigParser instead of SafeConfigParser * Updated from global requirements * Fix a typo * Updated from global requirements * Enable release notes translation * Updated from global requirements * Remove vim header from source files * Fix typo a-an, than-then, wrong character case * Fix typos in models.py & bind9.filters * Updated from global requirements * Infoblox: Reverse lookup zone creation fails * Fix for the exception on creating secondary zone * Add API description for deleting zone export record to api-ref * TrivialFix: Remove default=None when set value in Config * Using sys.exit(main()) instead of main() * Trivial: Remove vim header from source files * Remove Routes from requirements * api-ref v2 recordset: document X-Designate-Edit-Managed-Records header * Updated from global requirements * Fix typos in zone.py & pools.rst & scheduler.rst * Update reno for stable/newton 3.0.0.0rc1 ---------- * Some typos need to be fixed * Updating the sample handler to be compatible with mitaka/newton * Add PowerDNS 4 driver * Updated from global requirements * RC1 Relnotes * delete python bytecode including pyo before every test run * Resolve description parameter in v2:set floating ip * Add Monasca-statsd metric generation * [api-ref] Remove temporary block in conf.py * Fix Grenade Gate * Infoblox backend:Fixed sslverify value from option * Change PATCH method to PUT for recordset update in api-ref * Config logABug feature for Designate api-ref * Add name parameter to recordset create request description * Replace POST with PATCH in api-ref for set floatingIP's ptr record * Remove recordset tests migrated to designate\_tempest\_plugin * TrivialFix: Remove cfg import unused * Clean imports in code * TrivialFix: Remove logging import unused 3.0.0.0b3 --------- * Fix ZTA API to prevent HTTP 500 upon empty body * Add api-ref dropdown * Worker Model * Updated from global requirements * Remove white space between print and () * Minor cleanup * Add support for Microsoft DNS Server backend * Use upper constraints for all jobs in tox.ini * Updated from global requirements * Get ready for os-api-ref sphinx theme change * Fix recordset changes so that they preserve object changes fields * Updated from global requirements * Replace assertEqual(None, \*) with assertIsNone in the tests * Cleaned up notification\_handler/base.py * Fix typo 'leve'->'level' * Remove unnecessary \_\_init\_\_ from functionaltests * Use tempest.lib instead of tempest-lib * Improve performance of recordsets API * Replace assertDictEqual() with assertEqual() * Language fix 'imports' to 'exports' * Fix SSHFP validation for ECDSA, ED25519, and SHA256 * Updated from global requirements * Fix api-ref methods for getting, updating and deleting recordsets * Revert 372057bddb27716acd42a88591552a8dee7b519b * Fix some typo in the files * Change bind -> bind9 in docs, sample configs * Fix recordset changes so that they preserve object changes fields * Add DESIGNATE\_AGENT\_BACKEND\_DRIVER to devstack sample conf * Fix typo in tempest.rst * Python 3: dict.itervalues() * Typo in mitaka.rst * Python 3: dict.iteritems() * Documentation fix up * Remove unused LOG * different-format-for-ipv4-and-ipv6 * Updated from global requirements * update doc index, add ops FAQ and notifications * Grenade Plugin * Docs for working with multiple pools 3.0.0.0b2 --------- * Don't hardcode options we pass to oslo.context * Correct reraising of exception * Consolidate How Tos and add Admin How Tos * Added docs for Floatingip ptr records to api ref * Update UUID type for py3.5 compat * Add Python 3.5 classifier and venv * Add gdnsd backend * Updated from global requirements * Updated from global requirements * Add v2/quotas * Updated from global requirements * Fixes log statement typo in coordination.py * Fix typo in designate-manage.rst * Fixing several typos * Fixing typo availible->available * Updated from global requirements * Add missing zake lib to t-r * zone\_name is null in zone trasfer request response * Updated from global requirements * Fix Invalid UUID error message to make it consistent with others * Add test cases for GET /v2/zones/tasks/transfer\_accepts/ * Add missing parameters to docs of zone\_ownership\_transfer\_accept * Catch duplicate db inserts in powerdns plugin * Add docs for SSHFP, SRV, SPF and MX recordsets to api-ref * Updated from global requirements * Fix output of datetime objects in API * Add API for listing zone transfer accepts * Fix 'Duplicate explicit target name' error in 'tox -e docs' * Remove unneeded renames in v2 Adapters * Move APIv2 Docs to api-ref site * Remove migrated "unauthed" functional tests * Remove migrated negative tests for pools, tlds, blacklists * Ensure HTTP 204 responses have 0 Content-Length * Add docs for zone ownership transfer\_accept API * Updated from global requirements * Removed erronous extra file * Updated from global requirements * Add etc/designate/\*.yaml to .gitignore * Only load Suds when using Akamai backend * Add centos7, remove Fedora Vagrant VM * Add Blacklist to api-ref docs * DOC: Minor grammar and typo fixes * Fix typo in Docs * Updated from global requirements 3.0.0.0b1 --------- * Updated from global requirements * Add "project-id" to rrset API output * Make registering error handlers compliant with Flask 0.11 * Fix parameters.yaml order * Support binding to IPv6 addresses in UDP sockets * Updated from global requirements * Fix tsig param names * Docs update to make it consistent with other docs * remove verbose option in devstack plugin * Updated from global requirements * DOC: Update Ubuntu developer environment doc * Add Wily and Xenial devstack VMs * Support binding to IPv6 addresses in TCP sockets * Cleanup rndc backend * Modify assert statement when comparing with None * DevStack: Support setting default quotas * Updated from global requirements * Enable v2/recordsets API for tempest plugin * Imported Translations from Zanata * Add djbdns backend * Refactor UDP query handling, add tests * Catch all exceptions in PM's call to get\_pool() * Fix typo * Improve response codes display in api-ref docs * Support TCP connection pipelining * Updated from global requirements * Roll up migrations to start from liberty * Removing cruft from before os-api-ref was a lib * Fix Optional Tag for X-OpenStack-Request-ID * Partitioner - Rety on failure to get members * Add Tsigkey to api-ref docs * Ensure L to M DB migrations correctly inspect current DB state * Fix a typo. their -> there * Updated from global requirements * Remove test cases which are moved to designate\_tempest\_plugin * Add Tld to api-ref docs * Fix gate trying to use u-c for api-ref * Resolve incorrect description and response codes in api-ref docs * Integration/stress test using a simulated network * DevStack: Set tempest nameservers config option correctly * Add a style guide * Add Knot DNS backend * Remove zone import and export client methods + tests * Add explanation of connection string in pdns sample\_yaml\_snippets * Updated from global requirements * Add "/" to API-Ref Docs * Add Pools to API-Ref Docs * Add Limits to API-Ref Docs * Update devstack dashboard+client clone+install method * Add Zone Transfer Request + Accept API-Ref docs * Add Zone Tasks, Export and Import API Docs * Add Recordset to api-ref docs * Start Designate API-Ref style documentation * Ensure services shutdown during unit testing * Skip zone import count test, reenable pool tests * Type checking in pool manager target sync * Docs Update * Remove tempest plugin from non-tempest gate * Remove more tests migrated to tempest plugin * Updated from global requirements * Update Designate Architecture document * Expose /v2/recordsets api endpoint * Fix rrset serialization, improve mdns tests * Move bandit job to voting * Trivalfix of option name in designate.conf.sample * Enable V2 API as default * Support both olso.m v4 and v5 * Fix the memory of the VM in VirtualBox * Typo fix * Migrate service\_statuses table charset to UTF8 * Fix the service\_status objects \_\_str\_\_() output * Move heartbeat emit log messages to TRACE * Remove msdns from the drivers list * Fix parameterized class decorator * Fix \_get\_listen\_on\_addresses to handle port 0 * Consolidate default port numbers into utils.py * Support multiple API and mDNS listen address pairs * DevStack: Allow disabling of API versions * Return early from \_find\_recordsets\_with\_records * Skip Pools APIv2 tests * Added attribute filter to scheduler * Fix service\_status docs page * Remove execute privilege of designate/backend/impl\_bind9.py * Updated from global requirements * Add descriptions * Minor documentation fix * Add setup\_ubuntu\_devstack * replace logging with oslo.log * Add exception description, minor cleanup * Allow api\_export\_size to be updated * Improve exception handling, add comments * Remove contrib/tempest, as they have moved to the tempest plugin * Add Decorator to log RPCAPI Calls * Use upper-constraints.txt for tox tests * Move DNS OPCODEs/Classes into private\_codes.py * Fix data filtering with pagination * Added "experimental" status for backends * Updated from global requirements * Set default sslverify value to True * Ubuntu dev doc updates * Removed old tooling for ks CLI * Changed the spelling of command in sample file * Add missing response codes in V2 API's doc * Remove tests moved to tempest * Add Agent DevStack Backend * Fix all doc warnings and enforce clean docs * Moved doc file and releasenote from service\_status * Updated from global requirements * Update tempest docs re scenario and slow tests * Vagrant: Suppport local devstack / tempest clones * Add support for getting Service Status * Update bandit.yaml + fix failing test * Updated from global requirements * Remove workaround for bug #1467907 * Add Tempest Plugin to DevStack Plugin * Refactor central/service and others * Refactor pool and pool\_manager attribute update * Add Designate Tempest Docs * Resolves metadata field output on rest call to zone import and export * Give better error messages for zone imports * Define context.roles with base class * Update vagrant local.conf for rally DS plugin * Give proper ERROR for too large exports * Move successfull policy checks to trace * Add Memcached documentation * Remove pool config from sample config * Make cache\_result safer to use * Add Enhanced Logging to APIs * Updated from global requirements * Handle async Tooz calls appropriately * Docs update for zone import and export * Updated from global requirements * Better organize the tox.ini passenv vars 2.0.0 ----- * Adding v2 namespaced event to zone manager * Adding v2 namespaced event to zone manager * Do not log pool-manager-caches SQL transactions * Added "view" option to bind9 rndc options * Partitoner references invalid exception class * Docs update * Run the cli functional tests in openstack ci * Add placeholders for Mitaka DB Backports * Update config samples to show Identity v3 params * devstack: compile message catalogs during stack.sh * devstack: compile message catalogs during stack.sh * Partitoner references invalid exception class * Adds missing metadata section to API docs * Added "view" option to bind9 rndc options * Do not log pool-manager-caches SQL transactions * Update reno for stable/mitaka * Update .gitreview for stable/mitaka 2.0.0.0rc1 ---------- * Log zone serial on fetch and update * Enable use of Pools YAML * Add New Pools DB Tables and Code * Default to not logging all SQL Quries made during a test run * DevStack: Explicitly install libcap2-bin and don't fail without AA * Documentation changes for Admin API Quotas page * Add release note for not allowing .json on urls * Avoid logging tracebacks for EAGAIN errors * Fix devstack/fedora/bind9 support * Add scheduler for pools * Switch get\_serial\_number logging to debug * Do not allow GET /resource.json * Fix \_find\_masters + unit tests * Replace deprecated LOG.warn with LOG.warning * Strip "\n" character from result * Move zone masters to a new table * Cleanup unused Oslo Incubator \_i18n * Added "expected" to OverQuota Exceptions * Add warning to devstack/README.rst * Updated from global requirements * Fix for TCP connections not sending full content * Moved CORS middleware configuration into set\_defaults * Updated from global requirements 2.0.0.0b3 --------- * Use a single recordset validation method * Ensure the zone records quota is enforced * Use assertGreater() * Improve error handling for TCP connections * Use lazy properties in services * Fixed typos in docstrings * Add syntax highlighting to backend docs * Updated from global requirements * Move SOA refresh interval into unit tests * Fix AutoDoc line for non existent modules * Update README to RST * Set Ubuntu as primary Vagrantfile VM * Update PoolAlsoNotify object name * Fix bug where building validators for ListObjects fails * Add AttributeListObjectMixin class * Set InvalidRecordSetName and InvalidRecordSetLocation as expected * Stop using WritableLogger() which is deprecated * Add an on-demand single-target sync method * Update Bind 9 backend and other documentation * Cleanup after enable files refactor * Randomize SOA refresh interval * Allow to use project\_name in handler formats * Updated from global requirements * Syntax, grammar, and typo fixes * Fix a missing '\' in doc * Minor unicode test fixes * Add delayed NOTIFY * Actually poll for zone deletes * Improve performance and utility of Recovery * A request hook interface for the functional test client * Ensure ZoneManager emits valid objects * Update numbering of dashboard enable files * Updated from global requirements * Functional tests for MX, TXT, SPF, SSHFP validation * Use "# noqa" instead of "#flake8: noqa" * Simplify NeutronFloatingHandler process\_notification * Change the name of the test\_create\_wildcard\_NS test * Updated from global requirements * Switch "managed" fields from unicode to string * Minor test cleanup * Use unicode strings in description fields * Fix misspellings * Make supported record type configurable * Log stacktraces of MultipleExceptions in functionaltests * Added Keystone and RequestID headers to CORS middleware * Remove outdated pot files * Fix wildcard NS record * Updated from global requirements * Update functional test TLDCLient * Policy.json still has references to domain * Add docs for PATCH and DELETE call of Zone transfer request * Switch to mock fixtures, minor cleanup * Add validation for MX, TXT, and SSHFP records * Do not create /dev/shm/designate * Fix integration doc that example config not formatted * Fix order of installation in Devstack * Fix \_assert\_exception() * Ensure mocks are stopped after use * Fixes wording of exceptions for delete * Fix the python34 check job * Rename zone > domain for errors in V1 * Updated from global requirements * Replace assertEqual(None, \*) with assertIsNone in tests * test: make enforce\_type=True in CONF.set\_override * Update the link to CLI Reference * Add retry logic on periodic\_sync * Skip possible heisenbug test\_init\_no\_pool\_targets * Fix V1 Quotas API Extension * Use tmpfs on /dev/shm for database if available * Update unit test execution syntax Closes-Bug: #1532802 * Document that keystone auth can use memcached * Added bandit to designate * Updated from global requirements 2.0.0.0b2 --------- * Update email addresses hp.com to hpe.com * Add FloatingIPs reverse endpoint * Improve unit testing * Added doc for /v2/tsigkeys endpoint * Updated from global requirements * Update periodic-sync-seconds help * Retry Coordinator start indefinitely * Fix CI Tempest jobs * [docs] Create installing Liberty on Ubuntu * Add UniqueConstraint for pool\_id + hostname * Tox: ignore Rope dirs * Replace deprecated LOG.warn with LOG.warning * Add Pool Manager tests * Move to [oslo\_messaging\_rabbit] * Add test of BIND9 backend * Remove unused comments in create zone * Improve logging in designate.zone\_manager * Update Devstack docs * Improve logging in designate.notification\_handler * Improve logging in designate.agent * Fix tox ValueError: No closing quotation * Use keystoneauth instead of keystoneclient * Add documentation for Limits * Deprecated tox -downloadcache option removed * Describe how to install Designate client * Set zone in ERROR status on periodic sync fail * Remove iso8601 dependency * Object model: require "priority" field * Emit notification on update\_status() on a zone * Removes MANIFEST.in as it is not needed explicitely by PBR * Use git.openstack.org as Git repository * Switch devstack to use local.conf * pass environment variables of proxy to tox * Fix NO\_DOMAIN handling with The Big Rename * Remove version from setup.cfg 2.0.0.0b1 --------- * Remove py26 support from designate * Updated from global requirements * Check TXT record length limit * Remove deprecated devstack in contrib * Updated from global requirements * Migrate existing Devstack integration into a Devstack plugin * Another improvement of info level log messages * Improving info level log messages * Test database schema and indexes * Replaces map() with six.moves.map() to provide py2/3 compatibility * Added HTTP\_X\_FORWARDED\_PROTO/HOST support to API * Updated from global requirements * Ensure designate-manage reads config before policy * Adds api\_export\_size attribute to admin API * Add Reno for release notes tracking * Add mdns unit tests for main service handler * Hide zones flagged for deletion in API v1 * Rename all references of Domain to Zone * Added placeholder migrations for stable/liberty * Improve logging in designate.network\_api * Add support for interface and service * Handle NO\_DOMAIN status * remove default=None for config options * Fix argument order in assertEqual to (expect, obs) * Switch to oslo.reports * Use oslo\_config PortOpt type for port options * Removes zone files when a zone is deleted * Use assertIn and assertNotIn * Use assertTrue/False instead of assertEqual(T/F) * Uses assertIsNone instead of assertEqual(None, \*\*\*) * Use oslo\_config IPOpt support * Updated from global requirements * Fixes Output for zone type filter * Added CORS support to Designate * Fix order of argument in assertEqual * Updated api-export-size attribute in quota update docs * Add functional tests for TLDs * Fix typos in sample config files * Block oslo.messaging 2.6.0 release * retry creates/deletes in the pool manager * Use assertFalse instead of assertEqual(False, \*\*\*) 1.0.0 ----- * Fix handling of Pool NS changes * Fix order of arguments in assertEqual * Functional tests: optionally disable ssl cert validation * Functional tests: Use a configurable url pattern * Fix order of argument in assertEqual * Functional tests: optionally skip admin actions in setups * Added test cases for records * Fix handling of Pool NS changes * Clear out pyc files before a tox run * Fix order of argument in assertEqual * Fix order of argument in assertEqual * Fix order of argument in assertEqual * Unauthed tests for Pools (Security) * Unauthed tests for Blacklists (Security) * Unauthed tests for Zones (Security) * Cleanup of Translations * Cleanup of Translations * Added test cases for tsigkeys extention for V1 api * Functional tests: configure putting the version in the url * Open Mitaka development 1.0.0.0rc1 ---------- * Add zone type specific validators * Ensure recordset name checking accounts for child domains * Ensure blacklists complete in a reasonable time * Fix unhandled exceptions in adapters parsing * Add Kilo upgrade nodes * Fix #1494799 handle limit=max on v2 and Admin APIs * Ensure unique records when listing recordsets * Fix race condition in V1 Records API * Fix Vagrantfile for Rally repo changes * Correct a possible DNSService connection leak * Ensure API workers > 1 starts correctly * Updated from global requirements * Change ignore-errors to ignore\_errors * A functional test to check CNAME recordsets allow only 1 record * Unauthed tests for RecordSets (Security) * Ensure CNAME RRSets only have one record * Remove functional-tests.log, update .gitignore * Updated from global requirements * Imported Translations from Zanata * Add backend for Designate using SECONDARY zones * [zm] Periodic Secondary zone refresh task * Replace request.request\_mac with request.mac * Handling Forbidden Exception * Check the contents of a zone export in the functional tests * Cleanup data created in the functional tests * Agent - If no allow\_notify hosts are specified, allow all * Change ip->host in the agent * Updated from global requirements * Modify centrals 'purge\_domains' arguments * Implement deleted zone purging * Fix AXFR / Secondary zone functionality * Activate pep8 check that \_ is imported * Fix typos in comments 1.0.0.0b3 --------- * Updated from global requirements * Updated from global requirements * Correct generated links when behind an SSL terminating proxy * Correct pool\_target options in sample config * The address for cloning designate is corrected * Asynchronous Zone Export * Add a service catalog override url for the functional tests * Refactor Zone Import Internals * Remove unused dependency: discover * Add functional tests that query for wildcard records * Grammar mistakes have been corrected * Show functional test request logging * Update docs for the functional tests * Fixes bug 1484332 git url was wrong. Modified to proper url * Add DomainMaster Object to designate objects * Add functional tests for wildcard records * Updated from global requirements * Refactor notify logic into backends * Replaces str to byte to provide py3 compatibility * Replaces x.keys() with six.iterkeys(x) * Export Zones * Provide error messages on CRUD actions * Verify DNS changes when updating RRSet * Fixing datagen random\_pool\_data * Move iteration code to base task * Updated from global requirements * Fix zone transfer requests + add tempest tests * Cleaning up add\_filters * Add a iteritems = items on DictObjectMixin * Remove auth\* related param keys in middleware * Convert str to byte for py3 compatibility * Added 'add\_filters' to ClientMixin for GET vars * Updated from global requirements * Imported Translations from Transifex * Updated from global requirements * Fix eleven typos on designate documentation * Implement test timeout helper. Minor fixes * Install dnspython3 on py3 * Added some unit tests to test\_domains.py * Added some unit tests in test\_servers.py * Add \_\_str\_\_() methods to DesignateObjects * Wildcard records * Fixed a test case name * Enable filter on get pools * Add support for Host header in REST queries * Increase unit tests coverage * Updated from global requirements * Add tests for limits api in V1 api * Imported Translations from Transifex * Replace assertTrue(a in b) with assertIn(a, b) 1.0.0.0b2 --------- * Ensure RecordSet quotas are enforced * Ensure a single RRSet over max\_packet\_size doesn't loop forever * Introduce a Production Guidelines document * Fix the incorrect JSON format in v1 REST API doc * Updated from global requirements * Reject invalid filters * Add unit testing for pool * Imported Translations from Transifex * Fixes designate-manage tld's command by passing the correct params * Fixed timeout variable scope issues * Updated from global requirements * Fix test in test\_coordination.py for py3 compatibility * Fixup v2 API Validation * Remove unused V2 schemas * Fix duplicate domain error handling * Only print flake8 table if there is results * Create unit tests dir, move objects tests there * Replacing dict.iteritems() with dict.items() * Replaced print with print() to provide py 2/3 compatibility * Updated from global requirements * Modify UT in test\_limits.py * Add some UTs to test\_pools.py * Add some UTs to test\_zones.py * Allow multiple reader/writers to UDP DNS Sockets * Add some UTs to test\_tsigkeys.py * Add some UTs to test\_recordsets.py * DevStack: Support installing client at released versions * Added some UTs to test\_tlds.py * Correct exists event field names * Add functional tox env * Add some UTs to test\_records.py for record update * Fix the displayed error message in V2 API * Add Zone Manager Service options to sample config * Add some UTs to test\_records.py * Fix iteritems > items to avoid recursion loops * Add some missing UTs to test\_domains.py * Pass configration of what tasks are enabled * Update ubuntu-dev guide * Add some basic missing UTs to test\_utils.py * Fix broken UTs due to PY3 in test\_import\_export * Convert old style class to new style class * Refactor mDNS packet finalization * Add \_\_pycache\_\_ to ST2 Ignore * Correct sample coord URL * Default to memcache for PM cache * Ensure only one pool-manager performs periodic tasks * Implement support for LeaderElections * Standup coordination during start * Increase coverage of RRset tests * Handle unhandled exception in dnsutils.py for py3 * Imported Translations from Transifex * Fix for ttl values * Test - add nicer formating to flake8 output * Functional tests for Blacklists * Enable filter on blacklists & tlds * Switch from MySQL-python to PyMySQL * Error message for database config * Correct 'DESIGNATE\_SQL\_DEBUG' export behaviour * Add tasks and periodic emits * Resolve one py3 compatibility issue * Add support for BETWEEN and add tests * Fixed broken UTs in notification\_handler module * Fix broken UTs for python3 * Ensure test\_find\_zone\_imports waits for all imports * Ensure validations account for trailing newlines * Fix broken UTs in test\_mdns.test\_handler * Updated from global requirements * Fix broken UTs in test\_coordination for py34 * Add v1 API deprecation warnings * Designate Dashboard now has it's own repo * Replace Exception.message with six.text\_type(Exception) * Fix broken UTs due to py3 * Updated from global requirements * Add zone filter for TTL, description, & status * Use released versions of tempest-lib * DevStack: Keystone V3 Service/Endpoint Creation * DevStack: Keystone V3 User Creation * Return the correct recordsets total\_count * Use six.iterkeys(x) instead of x.keys() * Replace dict.items() with list(dict.items()) * fix broken UTs for python3 compatibility * Standardize API service launcher * Add DevStack support for coordination URL * Rename coordination tests to match established naming pattern * Silence some DEBUG logs * oslo.service triggers shutdown * Replace dict.iterkeys() with six.iterkeys(dict) * Remove 'L' from long int * Add shard and domain\_shard to tables * Enable designate-zone-manager in DSVM gates * Replace dict.iteritems() with dict.items() * Update urllib/urlparse to use six.moves * Use six.moves.map/zip in place of map/zip * Allow logging hookpoint intialization * Add Zone Manager service shim * Remove leftover print statement in tests * Add a couple of new hacking checks * Add base for coordination as a mixin / tooz * Updated from global requirements * Add py3 compatibility related changes * Ensure quotas ext doesn't mutate dict during iteration * Re-arrange default log levels and add iso8601 * Updated from global requirements 1.0.0.0b1 --------- * port to oslo.service * Edits to dev guide, juno guide, and kilo guide * Updated from global requirements * Asynchronous Zone Import * Fix incorrect status code on Pool update * Updated from global requirements * Enable random hash seeds * Update version for Liberty * Updated from global requirements 1.0.0a0 ------- * Added expected=True to InvalidDomainName * Eventlet+DNSPython breaks /etc/hosts resolution * Add Tempest tests for V2 Pools * Add utility code for negative testing * Updated from global requirements * Add tempest-lib from git for gate devstack * Reset check\_for\_tlds after deleting the last TLD * Updated from global requirements * Updated from global requirements * Sync with oslo-incubator 61f4461f91 * Correcting missing import for dashboard messaging * Changes in rally-jobs/README.rst * Updated from global requirements * Enforce usage of project scoped token * Agent: Optional middleware to rate limit NOTIFYs * Mark Infoblox as Release Compatible * Give a nicer error upon 401 from Akamai * Add domain record detail screen * Add .eggs to .gitignore * Updated from global requirements * Add the Hook Point API * Fix exceptions on pep8 check due to missing tempest.conf * Pin python version to 2.7 * Add filter for status on recordsets * Fix the v2 XFR task API * Add Backend grading, and associated docs page * Fix designate-manage pool show\_config command * Imported Translations from Transifex * Drop incubating theme from docs * Updating cmd/manage.py get\_arg\_string() argument parser * Infoblox Backend * Update Dashboard requirements * Drop use of 'oslo' namespace package * Disable recursive queries with bind in Devstack * DevStack: Attempt to cleanup stale domains * DevStack: Remove SOA/NS checks * Add some more settings to the sample conf file * Add NSD4 backend * Add tests for dynect * Add Akamai Management comamnds * Fix check+set race condition in APIv1/Sink * Remove unnecessary RestController usage * Set cfg.pool\_target.options as secret * Allow sink to create multiple entries per instance * updating tox pep8 issues * Add quota check for domain create * Moved RecordSet lookup to a custom join query * Add support for settings wsgi MAX\_HEADER\_LINE * Switch pip-missing-reqs for pip-check-reqs * Add suds-jurko to requirements.txt * Utility script to help create n+ records at a time * Updated from global requirements * Ensure Sink Handlers encode UTF8 names * Add docs for X-Auth-Sudo-Tenant-ID api header * Drop use of 'oslo' namespace package * Updated from global requirements * Improve UX of create and update record screen * Vagrant: NFS should only be used for libvirt * Fixed SO\_REUSEPORT not supported by Linux <3.9 * Fix a wrong obj\_reset\_changes field * Imported Translations from Transifex * Updated from global requirements * Drop use of 'oslo' namespace package * Updated from global requirements 2015.1.0 -------- * Remove duplicated index on table 'records' of pDNS backend * central.update\_status should be transactional * Add an index to speed up update\_status * Add the /v2/zones//nameservers endpoint back * Add the /v2/zones//nameservers endpoint back * Update JSON in howtos examples to match the API * Service ThreadPool size should be configurable * Handle socket.error's in mDNS * Move the Central rpcapi update\_status to cast * PM: Ensure only one periodic task runs per host * Ensure addition of TSIG do not trigger a TooBig exception * Simplify designate.api.versions * Allow to use network label in nova\_fixed handler format * Denominator Agent * Imported Translations from Transifex * Minor fixes: pep8 and redundant code * central.update\_status should be transactional * Include README.rst in dashboard sdist * Functional tests to check recordset ownership * Zone ownership tests * Rally is now openstack/rally * Handle socket.error's in mDNS * Remove duplicated index on table 'records' of pDNS backend * Imported Translations from Transifex * PM: Ensure only one periodic task runs per host * Functional tests: minus tempest, plus noauth support * Service ThreadPool size should be configurable * Ensure addition of TSIG do not trigger a TooBig exception * Release Import of Translations from Transifex * Correct designate-dashboard domain detail screen * Update PM pooling defaults * Add policy support to designatedashboard * update .gitreview for stable/kilo * Correct mDNS TCP/UDP socket flags * Move the Central rpcapi update\_status to cast * Shuffle of the order of BIND9 masters * Updated from global requirements * Update JSON in howtos examples to match the API * Shuffle of the order of BIND9 masters * Correct mDNS TCP/UDP socket flags * Imported Translations from Transifex 2015.1.0rc1 ----------- * Fix missing '/' in self link after zone import * Reduce excessive stacktraces in logs * Move Zone Import / Export to /admin API * Ensure mDNS TCP/UDP threads service unhandled exceptions * Correct the max\_zone\_name\_length name * Add validation of RRSet Type * Change rackspace.com > example.com in docs * Remove unused pool view * Refactored BaseAddressHandler * Switch to API v2 as the new CURRENT * Add stable/kilo placeholder migrations * DevStack: Reduce periodic intervals in the gate * Open Liberty development * Restrict editing of managed records to policy based ACL * Imported Translations from Transifex * Added tenant impersonation to API * Fixup DevStack Horizon install * Validate SRV records have the correct name on the recordset * Fixed sort key to not sort by an un-indexed field by default * Fix Record Object conversions * Fix handling of filtering params * Add Ceilometer support to DevStack plugin * DevStack: Akamai/Dyn Support for Jenkins Credentials and Exercises * Split out Optional OpenStack services in localrc * Support Vagrant Libvirt * First Tempest tests for recordsets * Remove zone wrapper object in Tempest tests * Add global limits to V2 limits endpoint * Fix min\_ttl config to be an IntOpt * Implement default and max page size for V2 API * Fix output of errors on base recordset properties * Correct min-ttl default config value * Update periodic sync defaults * Ensure mDNS can AXFR zones over 65k * Fixup updates in the agent backend * Fix support for PostgreSQL * Imported Translations from Transifex * Akamai: mDNS must run on port 53 * Agent Pool Manager Backend * Add Akamai EDNS Backend * DynECT: Convert to a Pool Backend * Add also-notifies support to Pool Manager * Implement Pool Targets * Reduce the # of SQL queries during AXFRs * Add code to allow triggering of AXFR from API * Fix 'zone' link in transfer\_accepts * Imported Translations from Transifex * Enable Record Data Validation in v2 API * Sync up FIP behaviour to match latest PoolManager * Fix ownership issue with Zone's created on set fip * Fixed rootwrap file installation * Add \_to\_string() methods on RRData Objects * Add Schema to RRData Objects * Replace API\_v2 views with Adapters * RFC1996 Requires NOTIFY packets have the AA flag set * Ensure mDNS originated queries are non-blocking * Unwind mDNS XFRMixin from NotifyEndpoint and Handler * Correct Pool Object * Add API\_v2 Adapter Objects * Support mDNS response up to 65k * Install etc/designate/\* files * forgot missing \_\_init\_\_.py file * Allow for duplicate domains in different pools * Remove usage of relative\_path in ValidationError Objects * Fix handling of wildcards in api / storage * Reduce the # of records loaded by Central.update\_status * improving designatedashboard packaging * Imported Translations from Transifex * Fixed misspellings in central * Validation Error Middleware does translation of keys to new format * Added FloatingIP object to DesignateObjects * Omit deleting zones from mass ns record updates * Imported Translations from Transifex * Archive non-pool backends * Combine Backend and PoolBackend * Refacor function for parsing host:port strings * Spelling & formatting doc fixes * Updated from global requirements * Revert "Disable tempest in the gate, for now" * Retry serial number check in one more case * Move Pool NS Records to their own table * Imported Translations from Transifex * Don't allow updates to zones that are being deleted 2015.1.0b3 ---------- * Imported Translations from Transifex * Remove "Including all tenants items" debug log * Disable tempest in the gate, for now * Fix the use of private symbols from oslo.messaging * Ensure Quotas can be updated concurrently * Only attempt XFR if zone.type is SECONDARY * Add Admin API and add extensions * Add DESIGNATE\_SQL\_DEBUG toggle * Move the DesignateAdapter to return non-wrapped objects * Imported Translations from Transifex * Added ValidationErrorMiddleware * Added Schemas to DesignateObjects * MDNS part of Secondary zones * Support secondary zones * Add iPythonNotebook files to git ignore * Implement TSIG Support in mDNS * Imported Translations from Transifex * Add Tempest zone tests * Enable Tempest Functional Tests * Use the oslo.policy package * Smarter Create/Delete in BIND9/Agent * Imported Translations from Transifex * Send the correct domain object to update\_domain * Update localrc docs sample * Fix DesignateObjects ListObjectMixin interactions * Introduce Guru Meditation Reports into Designate * Call central's update\_status correctly * Initial Pool API docs * Fixed ssl.PROTOCOL\_SSLv3 not supported by Python 2.7.9 * Agent configuration and BIND9 improvements * Validate SSHFP records * Create DesignateAdapter and surrounding infrastructure * Imported Translations from Transifex * Updated from global requirements * Updated from global requirements * Fix exception handling * Imported Translations from Transifex * Add initial code for tempest tests * Updated from global requirements * devstack/install.sh shouldn't rely on exact paths * Add designate-agent to DevStack * Updated from global requirements * Rename \_retrieve\_from\_cache to \_retrieve\_statuses * Updated from global requirements * Imported Translations from Transifex * Updated from global requirements * Implement Scoped TSIG Key Support * Service Class Cleanup - Part 3/3 * Service Class Cleanup - Part 2/3 * Service Class Cleanup - Part 1/3 * Fixed \_is\_superdomain check in central * Imported Translations from Transifex * Add Developer Guidelines docs page * Update default managed\_resource\_email * Update tests to use Object.from\_dict() method * Sync with oslo-incubator * Remove explicit thread-local update in context * Ensure pool\_manager cache keys are strings * Remove bulk actions from records page * Add python-memcached>=1.48 to requirements.txt * Add error state transition for creation of domains * Modifications for Resilient Pool Manager Cache * Ensure DNSPython modules are imported correctly * Add howto for creating PTR records * Imported Translations from Transifex * A small intro to the REST API * Implement an Object.from\_dict() method * Updated from global requirements * Deprecate designate-sink non managed mode * Retry transactions on database deadlocks * Correct PoolAttribute module name * Set PYTHONDONTWRITEBYTECODE=1 in tox.ini * Use fully qualified domain names in the mx record examples * Workaround eventlet 0.17's broken monkeypatching * Pass SSL CA Cert to client * Pass ssl no verify to client * Assume a new developer won't create a "designate" user in the dev guide * Add noop cache support to Pool Manager * Allow MiniDNS to Send Everything Over TCP * Replace nova with designate in pybasedir help * Updated from global requirements * Add memcache support to Pool Manager * Get on an abandon zone returns 405 * Ensure count record/recordsets respect deleted domains * Deleting a recordset returns 202 * Fix up links in Ubuntu Dev Environment * Imported Translations from Transifex * Docs: Top level Install Guides section * Docs: Automate How To Index * Fix Production Arch docs * Update Designate Architecture Docs * Docs: Howto Create and Manage Domains * Added docs env to tox * Updated Sample Config and Documentation Page * Update Getting Started Guide * Doc sprint: Update glossary * Doc sprint: Update Getting Involved * Update zone status when recordsets are changed * DevStack: Sync function rename with DevStack * Updated from global requirements * Return correct response codes for v2 recordset api * Fix a reference link in the doc * Doc: fix the designate-manage powerdns sync command * Fix some typos in 6 files * Nameservers added via /v2/pools are not validated * Imported Translations from Transifex * Return a status field from the recordsets API * Remove dead server code in storage and add tests 2015.1.0b2 ---------- * Updated from global requirements * Add pretty\_tox subunit wrapper * Add a new API for abandoning a zone from storage * Allow Periodic Sync to be restricted to a subset of zones * Add pool\_manager migrate.cfg in MANIFEST.in * Updated from global requirements * Cleanup use of oslo.messaging's ConfFixture * Add a debug tox environment * Imported Translations from Transifex * Extract fixtures into their own module * Updated from global requirements * Agent cleanup/refactoring * Imported Translations from Transifex * The New Agent * Imported Translations from Transifex * Refactor RecordSet Relation Loads * Ensure Pool Manager Cache is Cleared * Move some methods from mdns to dnsutils * Switch to oslo.log * Imported Translations from Transifex * Fix v2 api update\_recordset * Fix sink neutron\_floatingip handler passing payload * Temporary fix for bad \_dispatch() invocation * Server Pool Storage Clean Up * Call the Correct Pool Manager Instance for the Domain * Clean requirements * Periodic sync and recover Timers Throw Descriptive Errors * Updated from global requirements * Imported Translations from Transifex * Move PM warning log inside the correct if block * Update mDNS to accept server object * Pool Manager should reuse the existing threadgroup * Pool Manager Throws An Error When No Servers are Defined * Add Unit Tests for Pool Manager * Ensure Pool Manager Works for Multiple Backend Servers * Add more tests to the central service * Add more unit tests to mdns service * Add more unit tests to Base Object class * Add Unit Tests for v2 API Reports * PowerDNS Backend Tests * Updated from global requirements * Moved to oslo\_utils namespace * Remove dead designate.wsgi * Remove dead SQLAlchemy code * Add .coveragerc configuration file * Update Vagrantfile with new Ubuntu box * Moved to oslo\_db namespace * Imported Translations from Transifex * Fix powerdns db table records missing column disabled * Update README.md doc build instructions * Switch to oslo\_middleware namespace * Imported Translations from Transifex * Updated from global requirements * Updated from global requirements * Allow Domain to Be Created on More Than One Server * Better Logging for Pool Manager * Separate Periodic Recovery from Periodic Sync * Domain Creation Includes Zone Transfer For Proper Status * Updated from global requirements * Migrate Server table * Updated from global requirements * Pool\_Attribute Storage Tests * Change SLA check for Designate * Adds negative unittests to test\_domains.py and test\_records.py * Adds negative tests to test\_records.py * Imported Translations from Transifex 2015.1.0b1 ---------- * Remove duplicate fields from ZoneTransferRequest object * Documentation, comments, and extraneous code fixes * Post-pool merge cleanup * Adds negative tests to test\_records.py * Imported Translations from Transifex * Added smart update of Records Objects in v2 * Changed oslo.messaging's default log level * Fixed the syntax of obj\_reset\_changes in SQLA * Pool Manager Integration with Central * Remove the agent service and old-style backend tests * Remove the non-pools bind9 backend * Convert PowerDNS to a Pools Backend * Pools Config Changes * Add Werkzeug>=0.7 to requirements.txt * Adds "domain-servers-list" to test\_domains.py * Cleanup validation regex's * Adds negative tests to test\_servers.py * Updated from global requirements * Imported Translations from Transifex * Switch to oslo.context and sync from incubator * Standardize creation of rpcapi client instances * Updated from global requirements * rename oslo.concurrency to oslo\_concurrency * Updated from global requirements * Imported Translations from Transifex * Workflow documentation is now in infra-manual * Updated from global requirements * Add DynECT DevStack plugin * Handle multi-packet TCP queries * Allow DevStack to retry DNS queries to handle async CRUD * Handle priority the same way as when create\_record * Correct RRSet delete notification * Pool Manager * Add docs for MX, SSHFP, SPF and SRV record set types * Add metadata, totalcount fields to zones/recordsets collections * Add bashate tox env for DevStack plugin * Update DevStack PORT vars for naming consistency * Update gate\_hook to support multiple drivers * Added designate-dashboard code to contrib/designate-dashboard * Rename rally-scenarios/ to rally-jobs/ * Imported Translations from Transifex * Updated from global requirements * Added functionality to allow for zone ownership transfers * Updated from global requirements * Add Rally to Vagrant VM * Move Central notifications to a decorator * Add a reverse name columns to domains/recordsets * Updated from global requirements * Fix rally job readme file * Add synchronized\_domain decorator * Add some helpful SQL indices * Return the correct RRSet object in Central.create\_recordset * Updated from global requirements * Detect CPU on OSX as well * Fix rally gates * Can't Access Default Pool through API * Add tox check for missing pip requirements * Add rally job related files * Updated from global requirements * Support Nested/Recursive Object Validations * Add basic validation functionality to DesignateObjects * Updated from global requirements * Move import code to dnsutils * Add a new field type 'relation' to objects * Imported Translations from Transifex * Missing Unique Constraint on Pool Attributes table * Add ability to configure extensions via local.conf * Move from incubator to o.concurrency * Fixed API v1 issue with horizon * Add Symantec's nova and neutron plugins to docs * Add pool\_id column to Domains Table * Imported Translations from Transifex * Pool Manager - Central/Storage Changes * Pool Manager - BIND9 Pool Backend Driver Fixes * Updated from global requirements * Pool Manager - Pool Manager Proxy Backend and Devstack * Imported Translations from Transifex * Imported Translations from Transifex * Support for server pools in minidns * Initial documentation for v2 API record sets * Move rec.priority into rec.data * Imported Translations from Transifex * API for pools * Server Pools Storage * Updated from global requirements * Pool Manager Service Changes * Ensure version column is correctly incremented * Updated from global requirements * Updated from global requirements * Implement a DesignateObject Registry * Correct int datatypes during zone import * Enforce all Object attributes are private or well defined * Add a UUID Schema format checker * Convert Object FIELDS from list to dict * Reduce SQLAlchemy loglevel during tests * Updated from global requirements * Imported Translations from Transifex * Imported Translations from Transifex * Updated from global requirements * Add a new PowerDNS backend based on MiniDNS * Ensure mDNS sends NOTIFYs on all zone changes * PowerDNS schema should cascade domain deletes * Add Jinja2 to requirements.txt * Switch to oslo.middleware and remove deprecated incubator * Sync oslo-incubator and remove json|str utils * Imported Translations from Transifex * Multi backend attepts to read a deleted domain * Bind a random port for MDNS tests * Open Kilo development 2014.2.rc1 ---------- * Use devstack's new way of doing things * Updated from global requirements * Fixes missing Module Index in Sphinx-build * Make use of SQLA Core in PowerDNS * Prevent update/delete of managed records in v1 API * Fixes minor errors and warning in Sphinx build * Fixes docstring typos * Updated from global requirements * Notif handlers:remove double check of event type * Imported Translations from Transifex * Missing Tests for Blacklist storage layer methods * Fix example response for reports/tenant * Update oslosphinx requirement * Fix issues with timeout and if a domain exists * Add v1 missing api docs * Backends need to implement c/u/d\_recordset * Updated from global requirements * Missing tests for TLD storage layer methods * Updating README * Removing \*.shapes files from Desginate diagrams * Add png for \`Designate-PowerDNS-Detail\` * Adding Dia file for \`Designate-PowerDNS-Detail\` * Adding Dia file for \`Designate-MultiZone\` * Adding Dia file for \`Designate-Simple\` * Bind9 zone file should end with a new line * Correct Vagrant+DevStack paths * Use non-deprecated notification\_driver * Split Vagrant out of contrib/devstack * Fixed the logging of powerdns metadata addition / removals * Updated from global requirements * Fix warnings made by keystone\_authtoken * Devstack Integration : Coding style fix * Getting deleted recordsets returns a 404 * Devstack setup : use get\_or\_create\_\* helpers * Updated from global requirements * Downgrade in 039 does not delete NS recordsets * Add index on powerdns.records.designate\_record\_id * Updated from global requirements * Support filtering on Zone/RecordSet status * \_find\_recordsets returns active recordsets only * Ensure designate-api has policy initialized * Ensure designate-sink has policy initialized * Rollback master backend on all exceptions in multi backend * Delete SOA records correctly on a downgrade * Call \_handle\_query\_error correctly * Updated from global requirements * Update README.md doc links 2014.2.b3 --------- * warn against sorting requirements * Creating a Recordset doesn't increment the serial number * Support the same api versions format as keystone * Imported Translations from Transifex * Fixed policy loading in agent service * Imported Translations from Transifex * Implement mDNS Middleware * Squash Icehouse DB Migrations * Move DNS packet serialization into mDNS service * Update default notification-topics for nova/neutron * Received notifications context is not a DesignateContext * Add support for AXFR requests * Expose SOA and NS records * Fix get\_record\_id to return only the requested id * Fix DevStack xtrace output * Updated from global requirements * Updated from global requirements * Updated from global requirements * Imported Translations from Transifex * Validate that no parent zones are created in another tenant * Issue one SQL statement per execute() call * Added policy checking for all all\_tenent=True contexts * Add two more hacking checks * Updated from global requirements * Imported Translations from Transifex * V2 Report Uses 'Domains' * Ensure Object change lists are sorted during to\_primitive * Reimplement Filtering by Record Data * API v1 for creating domains ignore some attributes now * Fixes a typo in the binary name for test's service fixture * Designate API tests for Tempest Framework * Add proxy support to dynect client * Add instructions on installing Designate with MySQL backend * Imported Translations from Transifex * Migrate to SQLAlchemy Core * Update testr config for better logging * Remove obsolete methods from Storage * Empty RecordSets can be re-provisioned * Install only the necessary files during a DevStack gate run * devstack exercise for deletion, dns checking * Set python hash seed to 0 in tox.ini * Add quotas documentation * Imported Translations from Transifex * Switchover to oslo.i18n package * Remove the Priority Field in V2 * Moved the thread storage to a per instance level, vs global * Update from oslo-incubator * Use auth\_token from keystonemiddleware * Move oslotest into test-requirements.txt * Imported Translations from Transifex * Updated from global requirements 2014.2.b2 --------- * Revert o.m and o.c 1.4.0 alpha updates * Add a minimal gate\_hook.sh script * Moved v2 API errors to separate controller * Enable X-Auth-Project flag in HTTP headers * Cleaning up index.rst file * Imported Translations from Transifex * Handle tcp requests correctly in mdns * Modify Recordset API * Clear out junk from Vagrant+DevStack configs * Correct JSON Syntax is v2 Collections Docs * Ensure o.c.local is populated with the current Context * DevStack: Enable V2 API * DevStack: Correct the key's passed to setup\_colorized\_logging * PowerDNS: Ensure each greenthread uses it's own Session instance * Ensure eventlet monkey patching happens as early as possible * Attach records to RecordSet objects * Ensure each greenthread uses it's own Session instance * Add docs for links, pagination, filtering * Enable hacking check H104 * Add validate\_log\_translations flake8 check * Imported Translations from Transifex * Avoid logging "Expected" exceptions returned over RPC * Fixed issue with elevated contexts modifying the original context * Imported Translations from Transifex * Port Report Extensions from v1 to v2 * Added proper handling for 405 errors * Fixed D701 Hacking check * Implement a ListObjectMixin class * Implement equality methods on DesignateObject * Updated from global requirements * Answer dns record queries * Iterator methods should be on DictObjectMixin * Added oslosphinx theme & enabled the incubating theme * Enabled hacking check H401 * Update's should use objects * Provide a standard method for populating an object from a model * Expand Zones Documentation * Updated from global requirements * Don't create new objects when doing a create\_\* * Track the original/persisted values in Objects * Object fields should not be marked changed if the value has not changed * Ensure RPC serializes all types to primitives * Setup for translation * Implement DesignateObject.\_\_deepcopy\_\_ * Change API filter wildcard from '%' to '\*' * Updated from global requirements * Ensure contrib/devstack/install.sh works from any path * Ensure we always accept trailing /'s in URLs * Updated from global requirements * Change logging level AUDIT to INFO * Ensure DesignateObject.from\_sqla does not trigger change tracking * Update stackforge references to openstack * Support recursive object serialization * Revert "Added olso sphinx, and enabled it for building docs" * Update .gitreview for repository move * Specify minimum and maximum correctly in schemas * Add Extensions to the v2 API * Added olso sphinx, and enabled it for building docs * Don't monkeypatch pecan.core.Request in newer versions of pecan * mdns: Add support for NOTIFY's * Implement change tracking in DesignateObjects * Ensure that 404's are returned as JSON * Change log string format to '%' for consistency * Objects should have a concrete list of their fields * Added all fields to limits endpoint, and corrected casing * Fixes default content type on /v2/zones endpoint * Unify Storage vs Rest of World fixture creation * Switch to oslo.db and fix cmd.manage * Added \*.sqlite3 to gitignore * Remove the StorageAPI class * Indent lines for readability * Switch to oslotest library * Finalize tox.ini codes * Fix style errors H305 and H307 * Fix style error E265 * Fix style error E251 * Fix style error E111 * Fix style error H236 * Update hacking package, fix I18n style issues * Sync with global-requirements * Sync in o.middleware and replace our own * DevStack: PowerDNS and Bind9 should listen on SERVICE\_HOST * DevStack: Fix Bind9 Apparmor profile * Change log statements to meet I18n guidelines * DevStack: Additional exercises for records and domain-servers-list * DevStack/Vagrant: Specify the minimum supported Vagrant version * DevStack Gate: Enable Designate exercises * DevStack: Sync up our logging options * DevStack: Sync up our service startup commands * DevStack/Vagrant: Set # of CPU's to # of physical cores * DevStack/Vagrant: Don't configure LOGFILE by default * DevStack: Support configuring bind host/port * DevStack: Migrate from keystone CLI to OpenStack CLI * DevStack: Support PowerDNS on Fedora * DevStack: Support devstack with bind9 backend on Fedora * DevStack: Split backends out into plugins * DevStack: Use a timeout rather than hard sleep * DevStack: Support running with bind9 as non-root user * DevStack: Default to PowerDNS rather than the fake backend * DevStack: Ensure PowerDNS is configured correctly * Add DevStack Vagrantfile * Sync test-requirements with global-requirements * Partial sync with global-requirements * Add pre/post dsvm test hooks * Added detection of powerdns package name to devstack script * Wait a little after starting Designate * Revert "add sink support to designate devstack" * Bug #1261894: Deleting Record With BIND 9 Driver Fails * Ensure we configure all keystone middleware options * Ensure our DevStack plugin cleans up services it starts * Switch stop\_designate to use screen\_stop rather than \`kill\` * Ensure designte-sink does not exit when no handlers are enabled * Implement mDNS Service * API now passes objects to central * Ability to pass along multiple endpoints * Fix FreeIPA tests mock's * Adding custom flake8 check for mutable default arguments * DynECT backend exceptions should be added to allowed exmods * Create missing domains during Bind9Backend start * Update DevStack docs for the contrib/devstack plugin * Correct DESIGNATE\_TEST\_NSREC default value * Correct typo in DynECT backend * set default auth\_strategy to keystone * Allow Roles to be Passed When Using Noauth Middleware * add support for FreeIPA backend - phase 6 - devstack * add support for FreeIPA backend - phase 5 - requirements * add support for FreeIPA backend - phase 4 - migration * add support for FreeIPA backend - phase 3 - live tests * add support for FreeIPA backend - phase 2 - tests * add support for FreeIPA backend - phase 1 * Ensure objects are passed over RPC * add sink support to designate devstack * Update oslo.policy * only call sink handlers for supported event types * Print versions * Raise correct exception on blocked operation * Ignore 404 on deletion * Remove redundant setup.cfg entry points * Correct DynECT backend config option types * Fixed the self link returned for floating IPs * sink crashes due to a missing \_get\_handler\_event\_types * Update Record object with structured RRdata * Post oslo.messaging fixes * DynECT support * Remove leftover bin/\* files * Set a Configurable Minimum TTL * Allow targeting of specific agent * Update Storage layer to return objects * Update install\_venv from Oslo * Sync with openstack/oslo-incubator * Sync with openstack/requirements * Sync up openstack-common.conf * Switch to oslo.messaging * v1 api does not allow priority of 0 * WIP - Implement Capture the Notification Context in Designate Sink * Sync requirements with openstack/requirements * Open Juno development 2014.1 ------ * Read the Docs needs a single requirements file * Remove designate-manage dependancy on cliff * Fix sync functionality in V1 / central * Provide a production like guide for Ubuntu * Blacklists API Documentation * Document the PowerDNS backend 2014.1.b3 --------- * Ensure that request body in v2 contains valid fields * Remove JSONSchema 1.3 compatibility code * Support more record types * create\_server fails if server is not unique * Sync with global-requirements repo * V2 API zone import/export documentation * Return 404 for empty parameters in URLs * Ensure that URL is valid while validating UUID * Return 400 for invalid Json for api v2 * Introduce nameservers endpoint for zones * Standardize doc requirements * Ensure Storage Implementions match the Interface * Ensure that wanted API calls returns exceptions * Fill in missing Records tests for V2 api * UUID changes to api / utils * Remove use of uuidutils.generate\_uuid * Fixes filtering in delete and update in PowerDNS * Register as a endpoint without version * Handle invalid pagination parameters * Add the handler plugin example to the contrib folder * Add Bind9 Support to the DevStack Plugin * Correct misspelled words 2014.1.b2 --------- * DevStack: Set the correct state\_path * Disabled paging by default * Don't install designate packages twice with Devstack * Add support for paging in V2 api for collections * Add RMQ+Other options to sample config * Switch to oslo.rootwrap * Sync with oslo-incubator 9a7f2f85 * Sync with global-requirements * Blacklists mysql error * Add paging to Central rpcapi and service * Adds support for paging in the storage layer * Shouldn't pass items to get\_collection\_href here * Ensure default DB connection strings use unique defaults * Fix arguments in get\_collection\_href * Default state-path to /var/lib/designate * Adds a setting for the location of the nzf files * Stop abusing state\_path in find\_config * Add a new ExtensionPlugin class * Add Unit Tests for Blacklists V2 * Update notification\_driver documentation * Import TLDs to Designate * Prevent Schema regex's from capturing input * General Plugin Cleanups * Create API calls to Manage Blacklisted Domains * Fix TLD Delete From Storage * Sync with oslo-incubator rev fa785cea * Sync with openstack/requirements rev 661e6bad * Various small fixes to documentation * Keep the DevStack plugin in-tree * Add TLD Api documentation * Make Database Interactions More Transactional * Remote Designate Agent Calls Fail * Remove dnsmasq backend * Replace os.exists with os.path.exists * Validate name during v2 zone create * Sink - Delete record on floatingip.delete event * Check if RS belongs in childzone * Add APIs for managing TLDs * provide designate getting started instructions for Fedora 19 * Update setup.cfg for the Neutron -> Quantum handler rename * Remove dependencies on pep8, pyflakes and flake8 * Sync with global requirements * Ensure APIv2 list respose formats are correct * FloatingIP PTR record functionality * Moved Limits API endpoint to a RESTController * Return a HTTP 405 for unsupported HTTP methods * six is now a requirement of many of the oslo-incubator modules * Made Pecan HTML debugging an option for v2 API * PowerDNS backend tests * Ensure Flask uses our JSON Encoder * Add support for specifying tenant/user/token in the NoAuthMiddleware * Removing Docs about the old Sudo mechanismn * Designate requires Babel during runtime now * Cleanup API v2 Link Generation and Views * Ensure migrations run on PostgreSQL * Switch out designate.notifier for oslo's version * Reinstate RecordSet placement validation * Sync with oslo-incubator * The default port is not 0.0.0.0, it is 9001 * Ensure JSON Schema format validators operate only on strings * Database fixture * Ensure SQLite has the correct unique\_record index * Docs spelling/capitalization fixes * Specify column names during the PowerDNS backends InsertFromSelect's * Do not try to update records if there are none * Introduce RecordSets concept to core, and add initial RRSet API to v2 * Provide support for "All Tenants" access * Correct migration 33 * Fixed bug where sync\_all could not be run * Use % when printing keyfile/certfile errors * Make sure that certfile and keyfile are readable * BUG# 1258262 Added secret parameter to options for sensitive data * Bug #1257888: Remote Designate Agent Call Fails * Denormalize tenant\_id into the records table * Multi-backend * Put test resources into own folder * Backend tests restructure * Ensure logs are captured and displayed when tests fail * Fix typo in config and rename Quantrum > Neutron everywhere * Multiple testing fixes * Allow a context to be elevated to admin status * Don't require domain\_id in find\_record\* methods * Pass the service-catalog if any to the context * Add placeholder migrations to allow backports to Havana * Added a check for HTTP\_X\_IDENTITY\_STATUS * Add SLDs that act like TLDs * Support building wheels (PEP-427) * Add .testrepository to ST2 project ignore * nsd4slave backend * Update notifications towards oslo.messaging * Switch to testr / testtools / fixtures, remove nose * Update PPA URL * Expose touch\_domain via an API extension * Update TLD list per IANA list version 2013110700 * Fix inconsistent dnspython imports bug * Domain Import/Export * Update setup.cfg for Icehouse development cycle 2013.2 ------ * Ensure we're compatible with JSONSchema 1.3.0 through 2.2.0 * Sync requirements with stable/havana requirements * Zoneextractor tool * Ensure all FakeBackend methods use info level logs * Abstract quota enforcement in central service * Minor tox.ini changes, should speed things up * Add status fields for domains and records * Correct JSONSchemas for min/max TTLs * Added info on flake8 to docs * Update domains when servers are created, modified or deleted * Add rudimentary migration testing * docs: Correct errors in the Create Record examples * BIND9 Plugin Cleanup * Ensure beta versions are not downloaded from pypi * Correct PowerDNS migration 006 * Monkeypatch WebTest to support HTTP PATCH * Give more meaningful error message when no servers are configured * Add initial BIND9 backend docs * Ensure default TTL is respected by PowerDNS backend * Allow default SOA values to be configured * Ensure tables are InnoDB and UTF8 * Cleaned up fake backend backend * Central RPCAPI should call the correct sync methods * Add APIv2 Zones Controller * Fixed broken links in README.md * Fixup CNAME placement validation * PowerDNS - Correctly quote TXT and SPF record * Fix utils.render\_temaplate\_to\_file() test case name * Revert "PowerDNS - Ensure SPF records are quoted correctly" * docs: Add 'description' field to domains * Cleanup v2 schema links * Add description field to v2 schemas * Minor v1 records schema corrections * Add "Invalid TLD" error message * Correct V2 limits schema * Switch to EntryPoints for the binaries * Add API v2 /limits endpoint * Update Getting Started Guide * Sync doc/requirements.txt with openstack/requirements * API Version 2 - Initial Framework * Sync requirements with openstack/requirements * Add more API documentation for record types * Bug 1206849: Add more logging to the API Layer * PowerDNS - Ensure SPF records are quoted correctly * Add Description Field to Domains/Records * Update PBR to 0.5.21 * Fixup incorrect exception handler * Update PBR * Restore JSONSchema 1.1.0 compatibility * Fix a minor doc build warning * Ensure all errors raised from netaddr are caught * Internal SQLA Storage Consistency Cleanup * Ensure the deleted column is not truncated * Update 'Getting Started' Doc * Reduce logspam from amqp * Ensure backend resources are always deletable * Refactor JSONSchema handling code * Remove out of date TODOs from README * Move doc/examples to doc/source/examples * Move Keystone config to main designate config * re-org docs & add details on production architecture * Ensure Code Coverage only includes designate * better ipv4 validation * Replace missing indexes for SQLite * Ensure StorageAPI always re-raises exceptions appropriately * corrected event details in Nova Handler notes * Logging & docs improvement for notification\_handler * Remove unnecessary default criterion value * find\_record should take a domain\_id argument * find\_records does not need to perform an is\_admin check * Sync requirements with openstack/requirements * Remove openstack.common.cfg * Remove invalid entrypoints * Accept trailing /'s on URLs * Add 'Getting Started' Doc * Implement a Quota management API extension * bug# 1198890 internal api tidy * Update docs links from moniker.rtfd.org to designate.rtfd.org * Add DevStack documentation page * Override default config values correctly * Middlewares should tell you they have started * Sync with oslo-incubator stable/grizzly * Update link to designate-cookbook * Add doc link to sample plugin repo * Add a related links page to the docs * Remove comments from \*requirements.txt (workaround pbr bug) * bug# 1198849 - from blallau * Update the outdated install document * Ensure sphinx and sphinxcontrib-httpdomain are installed for doc builds * Ensure RTD builds install all the necessary deps * bug# 1198885 - report 'latest' instead 'None' on database-sync * Ensure central cleans up storage if the backend fails * Add the Request-ID as a HTTP reponse header * Carry oslo-incubator review #34949 * Sync with oslo stable/grizzly c7862b5239822d701b7fb155faa4607eff602627 * Ensure all backend methods respect deleted domains * quota-domain-records sould be an IntOpt * Ensure the unique index on domains.name is correctly dropped * Bug #1194889 - Fix migration 16 on SQLite * Added notes on setting up a designate dev environment * bug/1195284 - correct ttl checks to match RFC * Add simple Maintenance Mode WSGI middleware * Update jsonschema dependancy * Sync requirements with openstack/requirements (except jsonschema) * Keep deleted domains in the DB * Ensure domains that fail to create are cleaned * Ensure request media-types are sane * Ensure records are unique, per RFC2181 Sec 5.0 * Add LICENSE file * Rename to designate in .gitreview * Rename keystone-setup script for designate * Correct some overzealous s/moniker/designate/'s * Bump version to 2013.2 * Correct a few links broken during the s/moniker/designate/ * Rename Moniker -> Designate * Switch to Flake8 and add Hacking checks * Sync requirements with openstack/requirements. (Except jsonschema) * Fix pyflakes error * Guard against deletion of a parent domain * Remove unused SQLA utils code * Ensure record placement validation does not prevent updates * Validate UUID URL parameters * Add request-id to the API's fault responses * Switch to PBR * Helper utilities * The utils module in oslo is no more * Ensure create domain/record records call the correct count\_\* methods * Ensure our quotas/limits are consistent with other OpenStack projects * Implement Quota Support * Ensure two PTR records cannot have the same name * Update import of oslo's processutils * Extend reports API extension with more information * Cleanup method/varible ordering in the various places they are defined * Update report API ext method names to match URLs * Remove unnecessary try/catches from API extensions * Ensure all error responses are JSON * Ensure API calls fail when junk/unexpected properties are supplied * Add tests to ensure domain notifications are sent correctly * Removing unused test helpers * Add periodic\_task from Oslo * Correct the service name used in notifications * Add a "force" option to context sudo * Add Central.find\_\*() methods * Show log level in moniker-manage output * Commands should extend our Base Command, rather than cliff.Command * Remove un-used base CLI command classes * Update to the latest loopingcall from oslo * Convert openstack-common.conf to the new format * Ensure X-Moniker-Sudo-Tenant-ID values are either a UUID or int * Prefix all Moniker notifications with "dns." * Add a test case for email addr's with a trailing period * 0.0.0.0 is an invalid IPv4 address * Cleanup PowerDNS database schema * Support all valid (per RFC1035) email addresses * Implement support for RPC Versioning * Remove redundant moniker-manage commands * Ensure record changes trigger a backend serial increment * Abstract API exception handling * Tighten up TTL and Priority acceptable value ranges * Added /reports, /reports/domains, /reports/records & /reports/tenants * A domain may not have a NULL TTL * Ensure supplied email addresses are valid for use in the SOA RNAME field * Add support for specifying custom domain/record name max lengths * Validate SRV record format * Add localhost, localdomain and local and remove com, net, org from default blacklist * Set the default value for accepted TLD's to match the IANA TLD list * Quick fix to oslo-wsgi for wsgi.Service compat with service.ProcessLauncher * Domain name's should not be accepted with wildcards * Add 'accepted\_tld\_list' config option * Add ability to "touch" a domain via the API * Allow for record create/update/delete's and domain updates's without incrementing the serial number * Add a simple profiling decorator * Prevent is\_subrecord iterating past the domain name itself * Revert "A domain's TTL must not be null." * A domain's TTL must not be null * Use the 'fake' backend by default * Make Diagnostics and Sync API's optional * Separate notification handling from the central service * Remove base Plugin testcase * API tests should tearDown in the correct order * Refactor DNSMasq plugin for easier transition to the upcoming transactional changes * Remove the distinction between a storage engine and connection * Add Also-Notify support to PowerDNS backend * Wrap backend interactions in try/catch blocks * Add a base 'Backend' exception class for backend specific exceptions to extend from * Fetching a domain's list of authoritative name servers should not be filtered by tenant\_id * Ensure database-sync works when no version is specified * Rename sync-all to the more accurate "sync-domains" * Ensure we enforce the various rules for CNAME records * Add novalocal to the default domain name blacklist * Fixup migration #12 and support a target version when doing a database-sync * Ensure migrate.cfg's are included in the sdist tarball * Saner default values for SOA * Ensure serial number does not go backwards * Pin to jsonschema less than 1.0 * Rename the X-Moniker-Tenant-ID header to X-Moniker-Sudo-Tenant-ID to make more clear its meaning and use * Support SSHFP records * Correct migration #10 * Massively improve hostname validation * Move diagnostics API resource under /v1/ and split out the sync methods * Add support for plugin provided API resources * Add 'servers' link to domain schema * Drop the ipv4 and ipv6 columns from servers. It's never been used and makes little sense * Add ability to fetch the list of nameservers hosting a particular domain * Consistently use try/except/else * Ensure doc examples use valid JSON * Correct Context-Type -> Content-Type typo in docs * Attach context to local.store a little earlier * Ensure tools/\* is included in sdist * Remove unnecessary test api-paste and policy.json * Ensure resources are included in dist packages * Ensure we attach the context object to oslo-local for oslo-log to find * Simple implementation of DNSMasq backend * PowerDNS: Allow domain type to be configured * Ensure PowerDNS backup updates the SOA serial when necessary * Add ordername/auth cols to PowerDNS Record model * Set the auth field correctly for PowerDNS * Allow Context properties to be passed through get\_admin\_context() * Fixup moniker-manage sync commands * Add moniker-manage CLI commands to trigger sync's * Allow admin context's to retrieve domains from all tenants * PowerDNS currently only supports hmac-md5 TSIG * Calls to get\_servers from backends should use an admin context * Add moniker-manage commands for maintaining servers and TSIG keys * Use a dash as the command separater in moniker-manage * Fix incorrect column name used when updating a TSIG key * Add support for TSIG to PowerDNS backend * Add tests for incorrect domain\_id checks * Ensure records belong to the domain\_id supplied in the URL * Pass TSIG Key Create/Update/Delete to backend implementations * Fixup a rebase gone wrong. * Provide initial support for TSIG * Pass an instance of the central service, or the central\_api proxy to backends * Add initial PowerDNS migration repo * Fixup bug in bind9 backend * Domain Sync should not attempt to delete records after deleting the domain * Prevent renaming of a domain, and ensure records are contained in their parent domain * Add SPF to type ENUM in Records Table * Update REST API docs to remove links * Remove some magic from the RPC Backend API * Add naive domain/record synchronization implementations 2013.1.alpha1 ------------- * Ensure config files are included in sdist tarball * Rename moniker-api-paste.ini -> api-paste.ini * Cleanup and simplify Tenant "Sudo" Code * Cleanup Blacklist code, Protect from sub-domain hijacking. Upgrade to pyflakes 0.6.1 * Override the format for records * Replace reserved domain suffixes with regex based domain name blacklist * Use Policy enforcement to record an Audit trail * Update to JSONSchema 0.8 final * Re-add version.py * Initial Diagnostics API endpoint * Sync with Oslo 30a50c8a * Move config files from 'etc/' to 'etc/moniker/' to match what oslo's update.py expects * Allow Moniker Services to Spawn N processes each * Add sample config entry for reserved\_domain\_suffixes * Change to rootwrapper - bug #1075120 * A Domain's TTL should be optional * Sanitize content field for certain record types * Pass server list from central -> backend for domain operations * Add sample PowerDNS backend config * Minor doc cleanup's * Update Docs with GetRecord call * PowerDNS Backend Driver * Fix bug #1075268 - Support multiple notification handlers listening to the same notification type * Log messages produced by the Keystone Auth Token middleware * Add support for a "sudo" like mechanism in the API * Add dummy versions list endpoint * Add support for admin-reserved DNS domain name suffixes * Add support for PTR records * \*Really\* cleanup the sample config this time * Sync with oslo a8973c52 * Add tests for API 409 Handling (Duplicates / Conflicts) * Add tests for API 404 Handling * Handle RPC timeout's appropriately in the API * Updated Docs with recent API changes, particularly records * Cleanup sample config file * Add tests for KeystoneContextMiddleware and NoAuthMiddleware * Allow wildcard DNS records using a \* * Update MANIFEST.in to ensure only sample configs are included * Ensure \`moniker-manage --version\` reports the correct version number * Sync with oslo-incubator ad93e4e3 * Fix coverage output folder * Switch to a single config file, using a config group per service * Fixup default policy.json * Allow configuration file to be specified via --config-file * Add more happy path API tests for servers/domains/records * Ensure Schema handle datetime objects appropriately * Centralize argv slicing * Use consistent base class name for moniker.backend tests * Remove dead code from moniker.storage * Fixup hostname regex + add some tests for valid host names * Provide sample logdir config option * Sync with oslo 8888ad01 * Ensure bin/moniker-manage is executable * Ensure MANIFEST.in is correct - No longer include \*.pyc * Exclude ST2 project file from sdist * Ditch pre\_version argument to oslo-version * Added generic SQLOPTS * Record TTL should default to, and accept, NULL values * Remove unnecessary if/else block from the bind9 zone template * Move database\_connection sample config to the correct section * Remove unnecessary steps from the install guide * Ensure partial API updates are validated correctly * Include setup-requires in tox.ini * Sync with Oslo e6c576d9 * Fixup sample moniker-api.conf * moniker-manage CLI should read DB connection string from correct config group * Minor install doc corrections * Ensure Plugin config declarations are compatible with oslo-config's \`import\_opt\` method * Partial fix for bug #1074093 * Correctly raise Duplicate exceptions with MySQL * Fixup migration #3 for MySQL * Add /bind9 to .gitignore * Fixup bind9 zone template * bug #1086467, fixed by using moniker record ID in dns\_domains column * Fixup final pyflakes error + enable pyflakes check by default * Fixup Server JSONSchema * Allow the central and agent services to have separate defaults for the backend\_driver config option * cfg.CONF is a global, let's not pass it around unnecessarily * Add backend\_driver default to moniker-central.conf * Switch to plain .json schemas and improve Schema handling * Added central backend changes and rpc plugin. Added write\_database flag to mysqlbind agent * Fix inconsistencies in use of IPAddr and UUID instances * Fixup API after breakage in change Ie65b6d25 * Cleanup use of Flask Blueprint's in the API * Sync with Oslo-Incubator 1fd7694e * Move SQLA types to shared location * Add empty testcase for the MySQL Bind9 backend * Working mysqlbind agent. Thank you to Endre and Kiall for the help! * Fixed a single-letter typo in docs * Move out session from the sqlalchemy impl to a more re-usable place * Keystone helper * Change the use of self.conf to cfg.CONF[self.name] * Fixup sample agent config * Tests cleanup and add helpers * Add more test helpers * More install doc corrections * Install doc corrections * POST helper for API tests * Do teardown properly * Abstract test functionality a bit more - make more use of get\_\*\_fixture * Fixup config access in bind9 backend * Add DB init commands to README.md * Add first API test for listing servers * The PyFlakes tox env should not run by default * Process only events with handlers - skip the rest * Fixes bug #1081525 * Typo fix in install docs * Move fixtures to be available to all tests * Move docs where they belong (RTFD) * Add cliff to pip-requires and ensure all bin/ files are checked with pep8 * Make us client library independent for server side operations * Fix so it invokes on load * Generalize tests of plugins take 2, bug #1080415 * Add Quantum handlers for floating ip with tests * Fixes bug #1080467 * Generalize testcases for handlers, bug #1080415 * Fix broken version for migrate. * Implemented deltetion in the bind9 agent, fixed deletion in the backend, added migrate for foreign key changes * Cleanup tox / test deps * Fix most issues identified by PyFlakes * Add PyFlakes tox env * Update readme a bit * Add Quantum samples * Minor test cleanups * Remove \`get\_config\_overrides\` method from tests * Add policy checks for all resource create/update/delete/get/list actions * Pull Keystone middleware from the keystone client package * Restrict the Servers resource to admin users * Parse roles from Keystone into the Context * Track plugin name and type within records * Update the docs to use virtualenv's --no-site-packages flag * Update docs according to latest plugin change * Abstract out functionality into plugins * Fixed bind9 agent backend to handle new domains properly * Add \*.egg to .gitignore * Subclass OS-Common's Context class * Added fix to zone template to append dot to end of data for various records that require it * Add utils.resource\_string() method * Ensure Agent service calls the backends register\_opts() method * Be consistent with sample state\_path configuration value * Switch bind9 agent to a driver based implementation * Sync up notification handler test naming * Remove backported unittest assertions in favour of unittest2 * Ensure database-connection config variable is defined correctly * Minor sample config file fixes * Make notification handler config option name consistent * Add nosexcover and nosehtmloutput Nosetests plugins to tools/test-requires * Document state-path configuration option * Fix bug #1075595 - Ensure a missing configuration file raises an error * Ensure the bind9 agent logs an error when there are no servers configured * Provide a sane sample database\_connection config value * Ensure we depend on SQLAlchemy 7.x * Added moniker API documentation * Re-order tox.ini sections * Fixup broken migration * Cleanup UnitTest assert backports * Add initial support for handling notifications from other OpenStack services * Add filtering to the storage layers get\_\* methods * Split on "+" to determine driver. * Update requirements for monikerclient -> python-monikerclient * Add pypi trove classifiers * Import and make use of openstack.common.version module * Sync with OS-Common 3d6c2368a5de16d875341426db8ddc9888213264 * Remove duplicated line from docs * Update docs a little * Add requirements for RTD * Cache pip downloads on Jenkins * Remove Travis CI config, now that Moniker is on Gerrit * Fixup deps and tox.ini for Stackforge+Gerrit * Update docs for Servers API * Hide autogenated doc files in Sublime Text 2 project * Add sample API call to the sphinx docs (It's not necessarily accurate!) * Add sphinx doc skeleton * Update MANIFEST.in * Ensure CLI only loads local file if it exists * Move optional dep's to their own file * Use a local config file only when it exists * Sync with OS Common aca1805d911caefe14a73edb6ced281cf54e7ad2 * Update default config files * Remove DB migrations from TODO list * Move SQLA dep in pip-requires to indicate it is optional (kinda) * Complete Skipped storage tests * Ensure we use a single Service instance per test case * Ensure tearDown is performed in the reverse order of setUp * Switch from Query.filter() -> Query.get() for single record fetches * Add Storage test for get\_record/get\_records * Minor cleanup * Lower the default SQL debug level * NULL is an acceptable value for tenant\_id * Ensure \`moniker database\` commands read the moniker-central config file * Cleanup SQLA migrate changes + "Un-Abstract" the type definitions * Migrate scripts now work! Also re-coded the tenant\_id NULL fix * Found a bug that allows insertion into domains with NULL tenant\_id * Changes to get sqlalchemy migrate to work. Still not there * Move create/destroy DB hacks to the tests themselves, and ensure they respect the storage driver choice * Update DB CLI commands for database -> storage changes * Fixup previous commit * Saner default values for Path+DB configs * Ensure the SQLA tests actually use the SQLA driver * Remove unnecessary hack inherited from ceilometer * Rename "sqla" to "impl\_sqlalchemy" * Fix license headers and skip setting engine before connection * Attempt to make backends more driver based like in Ceilometer * Switch from git:// to GubHub tarball via https for python-monikerclient dep * Rename sql\_connection to the more generic database\_connection * PEP8 Fix * Add database init + sync commands * Backport a few of assert methods not present in Py26. Fixes the tests on Py26 * Remove pypi from travis-ci config * Add openstack.nose\_plugin as a test dep * Add Openstack-Nose test dep * Fixup Travis-CI and tox config * Two newlines needed for zone files that have more than one RR to have one newline at end * Add Travis-CI config file * Final fixes for migrations addition * Add tests policy.json * Ensure utils.find\_config() raises correctly on failure to find config * Policy implementation (part 1) * Add Database driver server method tests * Ensure agents recieve the correct params for delete\_domain calls * Handle \`exceptions.Forbidden\` appropriately in the API * Correct handling of duplicates * Fixup PEP8 errors in previous merge + remove license info from empty files * Add SQLAlchemy Migrate dep * Add some missing deps required by OS-Common * Delete duplicated schemas.py * Include newer bin/ files on tox pep8 checks * Use the latest version of PEP8 * Re-creating changes, this time with Git identity set! \* Changes to models.py to set column width \* Added initial migration scripts * Add PasteDeploy dep to tools/pip-requires * Remove duplicate requirement on setuptools-git * Extract setup-requires from setup.py * Add tests\_require to setup.py * Move TODO's to the bottom on the readme * Move some dep's from test-requires to pip-requires * Add some \*really\* basic instructions * Add .venv to gitignore file * Ensure all bin/ files are as "dumb" as possible * Add Moniker Central tests for domains and records * Remove temporary keystone config options * Remove Debug API endpoint + Remove some unneeded imports * Switch from Flask's WSGI Server to OpenStack Commons + Use PasteDeploy for easier Keystone integration * Add OpenStack Common WSGI module * Ensuring fitering a empty collection works * Move API app from \_\_init\_\_.py -> app.py * Use fake RPC backend for testing * Add Moniker Central server management tests * Remove some un-used imports * Move create schema hack into into it's own method * Add tox and venv to ST2 folder ignores * Fix another missing license header * Add skeleton test framework * Fix license headers * Make use of OpenStack Common setup module * Ensure the bind9 agent's output path is created, if necessary * Ensure delete's are flushed to the DB immediately * Ensure moniker's exceptions are re-raised over RPC * Reapply WIP openstack common patch from https://review.openstack.org/#/c/13953/ * Ensure the RNDC call only supplies a config file option if one has been explicitly set * Remove leftover config file * Sync with OpenStack Common rev f182936b * Add some temp config vars to disable keystone and use a default tenant/user instead * Lots of changes: * Add utils and exception modules from openstack-common * Switch default sql\_connection to an in-memory sqlite DB * Sync to openstack-common rev 974989d9 * Remove leftover file * Add TODO note * Rename TODO list * Initial Public Commit ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/LICENSE0000664000175000017500000002363700000000000014600 0ustar00zuulzuul00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. ././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1638524437.8484795 designate-10.0.2/PKG-INFO0000664000175000017500000001113000000000000014651 0ustar00zuulzuul00000000000000Metadata-Version: 1.2 Name: designate Version: 10.0.2 Summary: DNS as a Service Home-page: https://docs.openstack.org/designate/latest/ Author: OpenStack Author-email: openstack-discuss@lists.openstack.org License: UNKNOWN Description: ======================== Team and repository tags ======================== .. image:: https://governance.openstack.org/tc/badges/designate.svg :target: https://governance.openstack.org/tc/reference/tags/index.html .. Change things from this point on =================== OpenStack Designate =================== Designate is an OpenStack project, providing DNSaaS. IRC: #openstack-dns @ freenode Installation: https://docs.openstack.org/designate/latest/ API --- To learn how to use Designate's API, consult the documentation available online at: - `DNS API Reference `__ For more information on OpenStack APIs, SDKs and CLIs in general, refer to: - `OpenStack for App Developers `__ - `Development resources for OpenStack clouds `__ Development =========== Designate follows the `OpenStack Gerrit Workflow`_ Setup ----- Setup a working environment: .. code-block:: bash git clone https://opendev.org/openstack/designate cd designate virtualenv .venv . .venv/bin/activate pip install -r requirements.txt -r test-requirements.txt pip install -e . Building Docs ------------- To build the documentation from the restructured text source, do the following: .. code-block:: bash tox -e docs Now point your browser at doc/build/html/index.html (the official documentation is published to `docs.openstack.org`_ by the maintainers. Testing ------- Execute all unit tests .. code-block:: shell tox -e py36 Execute only backend tests .. code-block:: shell tox -e py36 -- unit.backend Execute only a single test .. code-block:: shell tox -e py36 -- unit.backend.test_pdns4.PDNS4BackendTestCase.test_create_zone_success Contributing ------------ Install the git-review package to make life easier .. code-block:: shell pip install git-review Branch, work, & submit: .. code-block:: shell # cut a new branch, tracking master git checkout --track -b bug/id origin/master # work work work git add stuff git commit # rebase/squash to a single commit before submitting git rebase -i # submit git-review Other Information ----------------- * Free software: Apache license * Documentation: https://docs.openstack.org/designate/latest/ * Release notes: https://docs.openstack.org/releasenotes/designate/ * Source: https://opendev.org/openstack/designate * Bugs: https://bugs.launchpad.net/designate * Blueprints: https://blueprints.launchpad.net/designate .. _OpenStack Gerrit Workflow: https://docs.openstack.org/infra/manual/developers.html#development-workflow .. _docs.openstack.org: https://docs.openstack.org/designate/latest/ Platform: UNKNOWN Classifier: Environment :: OpenStack Classifier: Environment :: No Input/Output (Daemon) Classifier: Intended Audience :: Information Technology Classifier: Intended Audience :: System Administrators Classifier: License :: OSI Approved :: Apache Software License Classifier: Operating System :: POSIX :: Linux Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Topic :: Internet :: Name Service (DNS) Requires-Python: >=3.6 ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/README.rst0000664000175000017500000000530000000000000015245 0ustar00zuulzuul00000000000000======================== Team and repository tags ======================== .. image:: https://governance.openstack.org/tc/badges/designate.svg :target: https://governance.openstack.org/tc/reference/tags/index.html .. Change things from this point on =================== OpenStack Designate =================== Designate is an OpenStack project, providing DNSaaS. IRC: #openstack-dns @ freenode Installation: https://docs.openstack.org/designate/latest/ API --- To learn how to use Designate's API, consult the documentation available online at: - `DNS API Reference `__ For more information on OpenStack APIs, SDKs and CLIs in general, refer to: - `OpenStack for App Developers `__ - `Development resources for OpenStack clouds `__ Development =========== Designate follows the `OpenStack Gerrit Workflow`_ Setup ----- Setup a working environment: .. code-block:: bash git clone https://opendev.org/openstack/designate cd designate virtualenv .venv . .venv/bin/activate pip install -r requirements.txt -r test-requirements.txt pip install -e . Building Docs ------------- To build the documentation from the restructured text source, do the following: .. code-block:: bash tox -e docs Now point your browser at doc/build/html/index.html (the official documentation is published to `docs.openstack.org`_ by the maintainers. Testing ------- Execute all unit tests .. code-block:: shell tox -e py36 Execute only backend tests .. code-block:: shell tox -e py36 -- unit.backend Execute only a single test .. code-block:: shell tox -e py36 -- unit.backend.test_pdns4.PDNS4BackendTestCase.test_create_zone_success Contributing ------------ Install the git-review package to make life easier .. code-block:: shell pip install git-review Branch, work, & submit: .. code-block:: shell # cut a new branch, tracking master git checkout --track -b bug/id origin/master # work work work git add stuff git commit # rebase/squash to a single commit before submitting git rebase -i # submit git-review Other Information ----------------- * Free software: Apache license * Documentation: https://docs.openstack.org/designate/latest/ * Release notes: https://docs.openstack.org/releasenotes/designate/ * Source: https://opendev.org/openstack/designate * Bugs: https://bugs.launchpad.net/designate * Blueprints: https://blueprints.launchpad.net/designate .. _OpenStack Gerrit Workflow: https://docs.openstack.org/infra/manual/developers.html#development-workflow .. _docs.openstack.org: https://docs.openstack.org/designate/latest/ ././@PaxHeader0000000000000000000000000000003300000000000011451 xustar000000000000000027 mtime=1638524437.676475 designate-10.0.2/api-ref/0000775000175000017500000000000000000000000015103 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1638524437.7004757 designate-10.0.2/api-ref/source/0000775000175000017500000000000000000000000016403 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/conf.py0000664000175000017500000001510200000000000017701 0ustar00zuulzuul00000000000000# 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. # # ironic documentation build configuration file, created by # sphinx-quickstart on Sat May 1 15:17:47 2010. # # This file is execfile()d with the current directory set to # its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import os import sys html_theme = 'openstackdocs' html_theme_options = { "sidebar_mode": "toc", "sidebar_dropdown": "api_ref", } extensions = [ 'os_api_ref', 'openstackdocstheme' ] # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath('../../')) sys.path.insert(0, os.path.abspath('../')) sys.path.insert(0, os.path.abspath('./')) # -- General configuration ---------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. # # source_encoding = 'utf-8' # The master toctree document. master_doc = 'index' # General information about the project. project = u'Designate API Reference' copyright = u'OpenStack Foundation' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # # language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: # today = '' # Else, today_fmt is used as the format for a strftime call. # today_fmt = '%B %d, %Y' # The reST default role (used for this markup: `text`) to use # for all documents. # default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. # add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). add_module_names = False # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # -- Options for man page output ---------------------------------------------- # Grouping the document tree for man pages. # List of tuples 'sourcefile', 'target', u'title', u'Authors name', 'manual' # -- Options for HTML output -------------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. # html_theme_path = ["."] # html_theme = '_theme' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. # html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. # html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". # html_title = None # A shorter title for the navigation bar. Default is the same as html_title. # html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. # html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. # html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". # html_static_path = ['_static'] # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. # html_use_smartypants = True # Custom sidebar templates, maps document names to template names. # html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. # html_additional_pages = {} # If false, no module index is generated. # html_use_modindex = True # If false, no index is generated. # html_use_index = True # If true, the index is split into individual pages for each letter. # html_split_index = False # If true, links to the reST sources are added to the pages. # html_show_sourcelink = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. # html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). # html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'designatedoc' # -- Options for LaTeX output ------------------------------------------------- # The paper size ('letter' or 'a4'). # latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). # latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass # [howto/manual]). latex_documents = [ ('index', 'Designate.tex', u'OpenStack DNS API Documentation', u'OpenStack Foundation', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. # latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. # latex_use_parts = False # Additional stuff for the LaTeX preamble. # latex_preamble = '' # Documents to append as an appendix to all manuals. # latex_appendices = [] # If false, no module index is generated. # latex_use_modindex = True ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/dns-api-v2-blacklist.inc0000664000175000017500000001151200000000000022724 0ustar00zuulzuul00000000000000========== Blacklists ========== The blacklist entries are used to manage blacklisted zones. If a zone is blacklisted, then it cannot be used to create a zone. By default, only an admin can manage these entries. Blacklisted zones are stored as a regular expression (regex) pattern in the Database/Storage in the blacklists table. Create Blacklist ================ .. rest_method:: POST /v2/blacklists Create a Blacklist Response codes -------------- .. rest_status_code:: success status.yaml - 201 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 405 - 409 - 500 - 503 Request Parameters ------------------ .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - pattern: blacklist_pattern - description: blacklist_description Request Example --------------- .. literalinclude:: samples/blacklists/create-blacklist-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - pattern: blacklist_pattern - description: blacklist_description - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/blacklists/blacklist-response.json :language: javascript List Blacklists --------------- .. rest_method:: GET /v2/blacklists List all blacklists .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request Parameters ------------------ .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - pattern: blacklist_pattern_filter Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - pattern: blacklist_pattern - description: blacklist_description - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/blacklists/list-blacklists-response.json :language: javascript Show Blacklist ============== .. rest_method:: GET /v2/blacklists/{blacklist_id} Show a blacklist .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - blacklist_id: blacklist_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - pattern: blacklist_pattern - description: blacklist_description - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/blacklists/blacklist-response.json :language: javascript Update Blacklist ================ .. rest_method:: PATCH /v2/blacklists/{blacklist_id} Update a Blacklist Normal response codes: 200 Error response codes: 405,404,403,401,400,503 Request Parameters ------------------ .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - pattern: blacklist_pattern - description: blacklist_description - blacklist_id: blacklist_id Request Example --------------- .. literalinclude:: samples/blacklists/update-blacklist-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - pattern: blacklist_pattern - description: blacklist_description - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/blacklists/update-blacklist-response.json :language: javascript Delete a Blacklist ================== .. rest_method:: DELETE /v2/blacklists/{blacklist_id} Delete a blacklist .. rest_status_code:: success status.yaml - 204 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - blacklist_id: blacklist_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/dns-api-v2-limits.inc0000664000175000017500000000206700000000000022262 0ustar00zuulzuul00000000000000====== Limits ====== Show the limits for the current project Get Project Limits ================== .. rest_method:: GET /v2/limits List project limits .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - max_page_limit: max_page_limit - max_recordset_name_length: max_recordset_name_length - max_recordset_records: max_recordset_records - max_zone_name_length: max_zone_name_length - max_zone_records: max_zone_records - max_zone_recordsets: max_zone_recordsets - max_zones: max_zones - min_ttl: min_ttl Response Example ---------------- .. literalinclude:: samples/limits/get-limits-response.json :language: javascript ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/dns-api-v2-pool.inc0000664000175000017500000000401400000000000021724 0ustar00zuulzuul00000000000000===== Pools ===== Get information about the pools in a designate install List all Pools ============== .. rest_method:: GET /v2/pools Get the list of Pools. .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - description: description - id: pool_id - attributes: pool_attributes - project_id: project_id - ns_records: pool_ns_records - name: pool_name - created_at: created_at - updated_at: updated_at - links: links - metadata: metadata Response Example ---------------- .. literalinclude:: samples/pools/list-pools-response.json :language: javascript Show a Pool =========== .. rest_method:: GET /v2/pools/{pool_id} Get a specific Pool Normal response codes: 200 Error response codes: 405,404,403,401,400,503 .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - pool_id: path_pool_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - description: description - id: pool_id - attributes: pool_attributes - project_id: project_id - ns_records: pool_ns_records - name: pool_name - created_at: created_at - updated_at: updated_at - links: links - metadata: metadata Response Example ---------------- .. literalinclude:: samples/pools/show-pool-response.json :language: javascript ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/dns-api-v2-quota.inc0000664000175000017500000000745300000000000022116 0ustar00zuulzuul00000000000000====== Quotas ====== Quota operations. View Quotas =========== .. rest_method:: GET /v2/quotas/{project_id} View a projects quotas This returns a key:value set of quotas on the system. .. note:: If a user is viewing another projects quotas, they will need to set ``x-auth-all-projects`` to ``True`` They will need a role with the ``All-Projects`` permission to do this. .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - project_id: path_project_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id Response Example ---------------- .. literalinclude:: samples/quotas/get-quotas-response.json :language: javascript View Current Project's Quotas ============================= .. rest_method:: GET /v2/quotas/ View the quotas for the current project This returns a key:value set of quotas on the system. .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - project_id: path_project_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id Response Example ---------------- .. literalinclude:: samples/quotas/get-quotas-response.json :language: javascript Set Quotas ========== .. rest_method:: PATCH /v2/quotas/{project_id} Set a projects quotas The request should be a key:value set of quotas to be set This returns a key:value set of quotas on the system. .. note:: If a user is updating another projects quotas, they will need to set ``x-auth-all-projects`` to ``True`` They will need a role with the "All-Projects" and "set-quotas" permission to do this. .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request Example --------------- .. literalinclude:: samples/quotas/set-quotas-request.json :language: javascript Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - project_id: path_project_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id Response Example ---------------- .. literalinclude:: samples/quotas/set-quotas-response.json :language: javascript Reset Quotas ============ .. rest_method:: DELETE /v2/quotas/{project_id} Reset all quotas for a project to default .. note:: If a user is resetting another projects quotas, they will need to set ``x-auth-all-projects`` to ``True`` They will need a role with the ``All-Projects`` and "set-quotas" permission to do this. .. rest_status_code:: success status.yaml - 204 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - project_id: path_project_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/dns-api-v2-recordset.inc0000664000175000017500000003327600000000000022761 0ustar00zuulzuul00000000000000========== Recordsets ========== Recordsets operations. Create Recordset ================ .. rest_method:: POST /v2/zones/{zone_id}/recordsets Create a recordset in a zone .. rest_status_code:: success status.yaml - 202 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - name: recordset_name - zone_id: path_zone_id - ttl: recordset_ttl - description: recordset_description - type: recordset_type - records: recordset_records Request Example --------------- .. literalinclude:: samples/recordsets/create-recordset-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - project_id: project_id - name: recordset_name - ttl: recordset_ttl - status: status - action: action - zone_id: recordset_zone_id - zone_name: recordset_zone_name - description: recordset_description - type: recordset_type - version: version - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/recordsets/create-recordset-response.json :language: javascript List Recordsets in a Zone ========================= .. rest_method:: GET /v2/zones/{zone_id}/recordsets This lists all recordsets in a zone .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_id: path_zone_id - limit: limit - marker: marker - sort_dir: sort_dir - sort_key: sort_key - name: recordset_name_filter - type: recordset_type_filter - ttl: recordset_ttl_filter - data: recordset_data_filter - status: recordset_status_filter - description: recordset_description_filter Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - project_id: project_id - name: recordset_name - ttl: recordset_ttl - status: status - action: action - zone_id: recordset_zone_id - zone_name: recordset_zone_name - description: recordset_description - type: recordset_type - version: version - created_at: created_at - updated_at: updated_at - links: links - metadata: metadata Response Example ---------------- .. literalinclude:: samples/recordsets/list-recordset-in-zone-response.json :language: javascript List all Recordsets owned by project ==================================== .. rest_method:: GET /v2/recordsets This lists all recordsets owned by a project in Designate .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_id: path_zone_id - limit: limit - marker: marker - sort_dir: sort_dir - sort_key: sort_key - name: recordset_name_filter - type: recordset_type_filter - ttl: recordset_ttl_filter - data: recordset_data_filter - status: recordset_status_filter - description: recordset_description_filter Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - project_id: project_id - name: recordset_name - ttl: recordset_ttl - status: status - action: action - zone_id: recordset_zone_id - zone_name: recordset_zone_name - description: recordset_description - type: recordset_type - version: version - created_at: created_at - updated_at: updated_at - links: links - metadata: metadata Response Example ---------------- .. literalinclude:: samples/recordsets/list-all-recordset-response.json :language: javascript Show a Recordset ================ .. rest_method:: GET /v2/zones/{zone_id}/recordsets/{recordset_id} Show an single recordset .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_id: path_zone_id - recordset_id: path_recordset_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - project_id: project_id - name: recordset_name - ttl: recordset_ttl - status: status - action: action - zone_id: recordset_zone_id - zone_name: recordset_zone_name - description: recordset_description - type: recordset_type - version: version - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/recordsets/show-recordset-response.json :language: javascript Update a Recordset ================== .. rest_method:: PUT /v2/zones/{zone_id}/recordsets/{recordset_id} Update a recordset .. rest_status_code:: success status.yaml - 202 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - x-designate-edit-managed-records: x-designate-edit-managed-records - zone_id: path_zone_id - recordset_id: path_recordset_id - ttl: recordset_ttl - description: recordset_description - records: recordset_records Request Example --------------- .. literalinclude:: samples/recordsets/update-recordset-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - project_id: project_id - name: recordset_name - ttl: recordset_ttl - status: status - action: action - zone_id: recordset_zone_id - zone_name: recordset_zone_name - description: recordset_description - type: recordset_type - version: version - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/recordsets/update-recordset-response.json :language: javascript Delete a Recordset ================== .. rest_method:: DELETE /v2/zones/{zone_id}/recordsets/{recordset_id} Delete a recordset .. rest_status_code:: success status.yaml - 202 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - x-designate-edit-managed-records: x-designate-edit-managed-records - zone_id: path_zone_id - recordset_id: path_recordset_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - project_id: project_id - name: recordset_name - ttl: recordset_ttl - status: status - action: action - zone_id: recordset_zone_id - zone_name: recordset_zone_name - description: recordset_description - type: recordset_type - version: version - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/recordsets/update-recordset-response.json :language: javascript Create a MX Recordset ===================== .. rest_method:: POST /v2/zones/{zone_id}/recordsets Create a MX recordset in a zone .. rest_status_code:: success status.yaml - 202 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - x-designate-edit-managed-records: x-designate-edit-managed-records - zone_id: path_zone_id - name: recordset_name - ttl: recordset_ttl - description: recordset_description - type: recordset_type - records: recordset_records Request Example --------------- .. literalinclude:: samples/recordsets/create-mx-recordset-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - project_id: project_id - name: recordset_name - ttl: recordset_ttl - status: status - action: action - zone_id: recordset_zone_id - zone_name: recordset_zone_name - description: recordset_description - type: recordset_type - version: version - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/recordsets/create-mx-recordset-response.json :language: javascript Create a SSHFP Recordset ======================== .. rest_method:: POST /v2/zones/{zone_id}/recordsets Create a SSHFP recordset in a zone .. rest_status_code:: success status.yaml - 202 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_id: path_zone_id - name: recordset_name - ttl: recordset_ttl - description: recordset_description - type: recordset_type - records: recordset_records Request Example --------------- .. literalinclude:: samples/recordsets/create-sshfp-recordset-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - project_id: project_id - name: recordset_name - ttl: recordset_ttl - status: status - action: action - zone_id: recordset_zone_id - zone_name: recordset_zone_name - description: recordset_description - type: recordset_type - version: version - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/recordsets/create-sshfp-recordset-response.json :language: javascript Create a SPF Recordset ====================== .. rest_method:: POST /v2/zones/{zone_id}/recordsets Create a SPF recordset in a zone .. rest_status_code:: success status.yaml - 202 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_id: path_zone_id - name: recordset_name - ttl: recordset_ttl - description: recordset_description - type: recordset_type - records: recordset_records Request Example --------------- .. literalinclude:: samples/recordsets/create-spf-recordset-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - project_id: project_id - name: recordset_name - ttl: recordset_ttl - status: status - action: action - zone_id: recordset_zone_id - zone_name: recordset_zone_name - description: recordset_description - type: recordset_type - version: version - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/recordsets/create-spf-recordset-response.json :language: javascript Create a SRV Recordset ====================== .. rest_method:: POST /v2/zones/{zone_id}/recordsets Create a SRV recordset in a zone .. rest_status_code:: success status.yaml - 202 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_id: path_zone_id - name: recordset_name - ttl: recordset_ttl - description: recordset_description - type: recordset_type - records: recordset_records Request Example --------------- .. literalinclude:: samples/recordsets/create-srv-recordset-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - project_id: project_id - name: recordset_name - ttl: recordset_ttl - status: status - action: action - zone_id: recordset_zone_id - zone_name: recordset_zone_name - description: recordset_description - type: recordset_type - version: version - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/recordsets/create-srv-recordset-response.json :language: javascript ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/dns-api-v2-reverse-floatingips.inc0000664000175000017500000001024000000000000024741 0ustar00zuulzuul00000000000000=========== FloatingIPs =========== In order to use the FloatingIPs functionality you will need to have a FloatingIP associated to your project in Neutron. Set FloatingIP's PTR record ============================ .. rest_method:: PATCH /v2/reverse/floatingips/{region}:{floatingip_id} Set a PTR record for the given FloatingIP. The domain if it does not exist will be provisioned automatically. .. rest_status_code:: success status.yaml - 202 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - ptrdname: fptrd_name - description: fptr_description - ttl: fptr_ttl - region: region - floatingip_id: floatingip_id Request Example --------------- .. literalinclude:: samples/reverse_floatingips/set-ptr-record-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: fptr_id - ptrdname: fptrd_name - description: fptr_description - ttl: fptr_ttl - address: floatingip_address - status: status - action: action - links: links Response Example ---------------- .. literalinclude:: samples/reverse_floatingips/ptr-record-response.json :language: javascript Show FloatingIP's PTR record ============================ .. rest_method:: GET /v2/reverse/floatingips/{region}:{floatingip_id} Shows a particular FloatingIP PTR .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - region: region - floatingip_id: floatingip_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: fptr_id - ptrdname: fptrd_name - description: fptr_description - ttl: fptr_ttl - address: floatingip_address - status: status - action: action - links: links Response Example ---------------- .. literalinclude:: samples/reverse_floatingips/ptr-record-response.json :language: javascript List FloatingIP's PTR record ============================ .. rest_method:: GET /v2/reverse/floatingips List FloatingIP PTR records .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: fptr_id - ptrdname: fptrd_name - description: fptr_description - ttl: fptr_ttl - address: floatingip_address - status: status - action: action - links: links Response Example ---------------- .. literalinclude:: samples/reverse_floatingips/list-ptr-record-response.json :language: javascript Unset FloatingIP's PTR record ============================= .. rest_method:: PATCH /v2/reverse/floatingips/{region}:{floatingip_id} Unset the PTR record for a FloatingIP .. rest_status_code:: success status.yaml - 202 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - region: region - floatingip_id: floatingip_id Request Example --------------- .. literalinclude:: samples/reverse_floatingips/unset-ptr-record-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/dns-api-v2-service-status.inc0000664000175000017500000000170300000000000023736 0ustar00zuulzuul00000000000000================ Service Statuses ================ The Service Status entries are used to track the health state of the services in the Designate system. Each service will report in it's health via RPC or using HTTP. List Statuses ============= .. rest_method:: GET /v2/service_status List all Services and statuses. .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request Parameters ------------------ .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id Response Example ---------------- .. literalinclude:: samples/service_status/service_status_list.json :language: javascript ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/dns-api-v2-tld.inc0000664000175000017500000001037400000000000021544 0ustar00zuulzuul00000000000000=== Tld === Tld operations. Create Tld ========== .. rest_method:: POST /v2/tlds Create a tld .. rest_status_code:: success status.yaml - 201 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - name: tld_name - description: tld_description Request Example --------------- .. literalinclude:: samples/tlds/create-tld-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - name: tld_name - description: tld_description - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/tlds/tld-response.json :language: javascript Show Tld ======== .. rest_method:: GET /v2/tlds/{tld_id} Show a tld .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - tld_id: tld_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - name: tld_name - description: tld_description - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/tlds/tld-response.json :language: javascript List Tlds ========= .. rest_method:: GET /v2/tlds List the tlds associated with the Project .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - limit: limit - marker: marker - sort_dir: sort_dir - sort_key: sort_key - name: tld_name_filter Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - name: tld_name - description: tld_description - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/tlds/list-tlds-response.json :language: javascript Update Tld ========== .. rest_method:: PATCH /v2/tlds/{tld_id} Update a tld .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - tld_id: tld_id - name: tld_name - description: tld_description Request Example --------------- .. literalinclude:: samples/tlds/update-tld-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - name: tld_name - description: tld_description - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/tlds/update-tld-response.json :language: javascript Delete Tld ========== .. rest_method:: DELETE /v2/tlds/{tld_id} Delete a tld .. rest_status_code:: success status.yaml - 204 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - tld_id: tld_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/dns-api-v2-tsigkey.inc0000664000175000017500000001241000000000000022431 0ustar00zuulzuul00000000000000======= Tsigkey ======= Transaction signatures (TSIG) is a mechanism used to secure DNS messages and to provide secure server-to-server communication (usually between master and slave server, but can be extended for dynamic updates as well). Create Tsigkeys =============== .. rest_method:: POST /v2/tsigkeys Create a new Tsigkey .. rest_status_code:: success status.yaml - 201 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - name: tsigkey_name - algorithm: tsigkey_algorithm - secret: tsigkey_secret - scope: tsigkey_scope - resource_id: resource_id Request Example --------------- .. literalinclude:: samples/tsigkeys/create-tsigkey-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - resource_id: resource_id - name: tsigkey_name - scope: tsigkey_scope - secret: tsigkey_secret - algorithm: tsigkey_algorithm - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/tsigkeys/tsigkey-response.json :language: javascript List Tsigkeys ============= .. rest_method:: GET /v2/tsigkeys List all tsigkeys .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request Parameters ------------------ .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - limit: limit - marker: marker - sort_dir: sort_dir - sort_key: sort_key - name: tsigkey_name_filter - algorithm: tsigkey_algorithm_filter - scope: tsigkey_scope_filter Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - resource_id: resource_id - name: tsigkey_name - scope: tsigkey_scope - secret: tsigkey_secret - algorithm: tsigkey_algorithm - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/tsigkeys/list-tsigkeys-response.json :language: javascript Show a Tsigkey ============== .. rest_method:: GET /v2/tsigkeys/{tsigkey_id} Show a tsigkey .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - tsigkey_id: tsigkey_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - resource_id: resource_id - name: tsigkey_name - scope: tsigkey_scope - secret: tsigkey_secret - algorithm: tsigkey_algorithm - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/tsigkeys/tsigkey-response.json :language: javascript Update Tsigkey ================ .. rest_method:: PATCH /v2/tsigkeys/{tsigkey_id} Update the attribute(s) of an existing tsigkey .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request Parameters ------------------ .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - name: tsigkey_name - algorithm: tsigkey_algorithm - secret: tsigkey_secret - scope: tsigkey_scope - resource_id: resource_id - tsigkey_id: tsigkey_id Request Example --------------- .. literalinclude:: samples/tsigkeys/update-tsigkey-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - resource_id: resource_id - name: tsigkey_name - scope: tsigkey_scope - secret: tsigkey_secret - algorithm: tsigkey_algorithm - created_at: created_at - updated_at: updated_at - links: links Response Example ---------------- .. literalinclude:: samples/tsigkeys/update-tsigkey-response.json :language: javascript Delete a Tsigkey ================ .. rest_method:: DELETE /v2/tsigkeys/{tsigkey_id} Delete a tsigkey .. rest_status_code:: success status.yaml - 204 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - tsigkey_id: tsigkey_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/dns-api-v2-version.inc0000664000175000017500000000111700000000000022441 0ustar00zuulzuul00000000000000============ API Versions ============ Show all enabled API versions List all API versions ===================== .. rest_method:: GET / .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- No parameters needed Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id Response Example ---------------- .. literalinclude:: samples/versions/get-versions-response.json :language: javascript ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/dns-api-v2-zone-export.inc0000664000175000017500000001176700000000000023262 0ustar00zuulzuul00000000000000============ Zone Exports ============ Zone exports can be an asynchronous operation, and there are different endpoints to view the status and progress of an export Create a Zone Export ==================== .. rest_method:: POST /v2/zones/{zone_id}/tasks/export Export a zone. .. note:: This POST should have no body .. rest_status_code:: success status.yaml - 202 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_id: path_zone_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: zone_export_id - location: zone_export_location - status: zone_export_status - zone_id: zone_export_zone_id - message: zone_export_message - project_id: project_id - created_at: created_at - updated_at: updated_at - version: version Response Example ---------------- .. literalinclude:: samples/zones/create-zone-export-response.json :language: javascript List all Zone Exports ===================== .. rest_method:: GET /v2/zones/tasks/exports .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_id: zone_export_zone_id_filter - message: zone_export_message_filter - status: zone_export_status_filter Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: zone_export_id - location: zone_export_location - status: zone_export_status - zone_id: zone_export_zone_id - project_id: project_id - created_at: created_at - updated_at: updated_at - version: version - links: links - metadata: metadata Response Example ---------------- .. literalinclude:: samples/zones/list-zone-export-response.json :language: javascript Show a Zone Export Information ============================== .. rest_method:: GET /v2/zones/tasks/exports/{zone_export_id} .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_export_id: path_zone_export_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: zone_export_id - location: zone_export_location - status: zone_export_status - zone_id: zone_export_zone_id - project_id: project_id - created_at: created_at - updated_at: updated_at - version: version - links: links Response Example ---------------- .. literalinclude:: samples/zones/show-zone-export-response.json :language: javascript Retrive a Zone Export from the Designate Datastore ================================================== .. rest_method:: GET /v2/zones/tasks/exports/{zone_export_id}/export .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 .. note:: This endpoint will send a response with a ``text/dns`` content-type. If the client does not include a ``Accepts: text/dns`` header the request will be rejected. Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_export_id: path_zone_export_id - accepts: zone_export_accepts Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id Response Example ---------------- .. literalinclude:: samples/zones/show-zone-export-content.txt :language: text Delete a Zone Export ==================== .. rest_method:: DELETE /v2/zones/tasks/exports/{zone_export_id} This will just delete the record of the zone export, not the exported zone. The zone will have to be deleted from the zone delete API .. rest_status_code:: success status.yaml - 204 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_export_id: path_zone_export_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/dns-api-v2-zone-import.inc0000664000175000017500000000755700000000000023255 0ustar00zuulzuul00000000000000=========== Zone Import =========== Zone imports are an asynchronous operation, and there are different endpoints to view the status and progress of an import Create a Zone Import ==================== .. rest_method:: POST /v2/zones/tasks/imports Import a zone. .. note:: This POST should have no body, and the content-type should be text/dns .. rest_status_code:: success status.yaml - 202 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: zone_import_id - status: zone_import_status - zone_id: zone_import_zone_id - message: zone_import_message - project_id: project_id - created_at: created_at - updated_at: updated_at - version: version Response Example ---------------- .. literalinclude:: samples/zones/create-zone-import-response.json :language: javascript List all Zone Imports ===================== .. rest_method:: GET /v2/zones/tasks/imports .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_id: zone_import_zone_id_filter - message: zone_import_message_filter - status: zone_import_status_filter Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: zone_import_id - status: zone_import_status - zone_id: zone_import_zone_id - project_id: project_id - created_at: created_at - updated_at: updated_at - version: version - links: links - metadata: metadata Response Example ---------------- .. literalinclude:: samples/zones/list-zone-import-response.json :language: javascript Show a Zone Import ================== .. rest_method:: GET /v2/zones/tasks/imports/{zone_import_id} .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_import_id: path_zone_import_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: zone_import_id - status: zone_import_status - zone_id: zone_import_zone_id - project_id: project_id - created_at: created_at - updated_at: updated_at - version: version - links: links Response Example ---------------- .. literalinclude:: samples/zones/show-zone-import-response.json :language: javascript Delete a Zone Import ==================== .. rest_method:: DELETE /v2/zones/tasks/imports/{zone_import_id} This will just delete the record of the zone import, not the imported zone. The zone will have to be deleted from the zone delete API .. rest_status_code:: success status.yaml - 204 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_import_id: path_zone_import_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/dns-api-v2-zone-ownership-transfer-accept.inc0000664000175000017500000000742600000000000027033 0ustar00zuulzuul00000000000000================================== Zone Ownership Transfers - Accepts ================================== Designate allows users to transer ownership of a zone between projects. For the final step, the receiving project has to accept the new zone, using the ``transfer_accepts`` API Create Zone Transfer Accept ============================ .. rest_method:: POST /v2/zones/tasks/transfer_accepts This accepts an offer of a ownership transfer .. rest_status_code:: success status.yaml - 201 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - key: zone_transfer_request_key - zone_transfer_request_id: zone_transfer_request_id Request Example ---------------- .. literalinclude:: samples/zones/create-zone-transfer-accept-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: zone_transfer_accept_id - status: zone_transfer_request_status - project_id: project_id - zone_id: zone_transfer_request_id - key: zone_transfer_request_key - created_at: created_at - updated_at: updated_at - zone_transfer_request_id: zone_transfer_request_id - links: links Response Example ---------------- .. literalinclude:: samples/zones/create-zone-transfer-accept-response.json :language: javascript Get Zone Transfer Accept ======================== .. rest_method:: GET /v2/zones/tasks/transfer_requests/{zone_transfer_accept_id} .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_transfer_accept_id: path_zone_transfer_accept_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: zone_transfer_accept_id - status: zone_transfer_request_status - project_id: project_id - zone_id: zone_transfer_request_id - key: zone_transfer_request_key - created_at: created_at - updated_at: updated_at - zone_transfer_request_id: zone_transfer_request_id - links: links Response Example ---------------- .. literalinclude:: samples/zones/create-zone-transfer-accept-response.json :language: javascript List Zone Transfer Accepts =========================== .. rest_method:: GET /v2/zones/tasks/transfer_accepts This will list all your accepted ownership transfer. .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - status: zone_transfer_accept_status_filter Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: zone_transfer_accept_id - project_id: project_id - status: zone_transfer_request_status - zone_id: zone_transfer_request_id - key: zone_transfer_request_key - created_at: created_at - updated_at: updated_at - zone_transfer_request_id: zone_transfer_request_id - links: links - metadata: metadata Response Example ---------------- .. literalinclude:: samples/zones/list-zone-transfer-accept-response.json :language: javascript ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/dns-api-v2-zone-ownership-transfer-request.inc0000664000175000017500000001502000000000000027251 0ustar00zuulzuul00000000000000=================================== Zone Ownership Transfers - Requests =================================== Designate allows users to transer ownership of a zone between projects. The traditional route is to create a ``zone_transfer_request``, communicate the key and ID out of band to the intended owner, and they create a ``zone_transfer_accept`` using this information, which will move the ownership of the zone that project. Create Zone Transfer Request ============================ .. rest_method:: POST /v2/zones/{zone_id}/tasks/transfer_requests This creates an offer to transfer the zone to a different project. The request can be scoped to single project if the ``project_id`` parameter is supplied. .. note:: This POST can have no body. .. rest_status_code:: success status.yaml - 201 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_id: path_zone_id - target_project_id: zone_transfer_request_target_project_id - description: description Request Example ---------------- .. literalinclude:: samples/zones/create-zone-transfer-request-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: zone_transfer_request_id - project_id: project_id - description: description - status: zone_transfer_request_status - zone_id: zone_transfer_request_zone_id - zone_name: zone_transfer_request_zone_name - key: zone_transfer_request_key - target_project_id: zone_transfer_request_target_project_id - created_at: created_at - updated_at: updated_at - version: version Response Example ---------------- .. literalinclude:: samples/zones/create-zone-transfer-request-response.json :language: javascript List Zone Transfer Requests =========================== .. rest_method:: GET /v2/zones/tasks/transfer_requests This will list all your outgoing requests, and any incoming requests that have been scoped to your project. .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - status: zone_transfer_request_status_filter Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: zone_transfer_request_id - project_id: project_id - description: description - status: zone_transfer_request_status - zone_id: zone_transfer_request_zone_id - zone_name: zone_transfer_request_zone_name - key: zone_transfer_request_key - target_project_id: zone_transfer_request_target_project_id - created_at: created_at - updated_at: updated_at - version: version Response Example ---------------- .. literalinclude:: samples/zones/list-zone-transfer-request-response.json :language: javascript Show a Zone Transfer Request ============================ .. rest_method:: GET /v2/zones/tasks/transfer_requests/{zone_transfer_request_id} .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_transfer_request_id: path_zone_transfer_request_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: zone_transfer_request_id - project_id: project_id - description: description - status: zone_transfer_request_status - zone_id: zone_transfer_request_zone_id - zone_name: zone_transfer_request_zone_name - key: zone_transfer_request_key - target_project_id: zone_transfer_request_target_project_id - created_at: created_at - updated_at: updated_at - version: version Response Example ---------------- .. literalinclude:: samples/zones/show-zone-transfer-request-response.json :language: javascript Update a Zone Transfer Request ============================== .. rest_method:: PATCH /v2/zones/tasks/transfer_requests/{zone_transfer_request_id} .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_transfer_request_id: path_zone_transfer_request_id - target_project_id: zone_transfer_request_target_project_id - description: description Request Example ---------------- .. literalinclude:: samples/zones/update-zone-transfer-request-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: zone_transfer_request_id - project_id: project_id - description: description - status: zone_transfer_request_status - zone_id: zone_transfer_request_zone_id - zone_name: zone_transfer_request_zone_name - key: zone_transfer_request_key - target_project_id: zone_transfer_request_target_project_id - created_at: created_at - updated_at: updated_at - version: version Response Example ---------------- .. literalinclude:: samples/zones/update-zone-transfer-request-response.json :language: javascript Delete a Zone Transfer Request ============================== .. rest_method:: DELETE /v2/zones/tasks/transfer_requests/{zone_transfer_request_id} .. rest_status_code:: success status.yaml - 204 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_transfer_request_id: path_zone_transfer_request_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/dns-api-v2-zone-tasks.inc0000664000175000017500000000351200000000000023053 0ustar00zuulzuul00000000000000========== Zone Tasks ========== Zone tasks. Abandon Zone ============ .. rest_method:: POST /v2/zones/{zone_id}/tasks/abandon Abandon a zone. This removes a zone from the designate database without removing it from the backends. .. note:: This POST should have no body. .. warning:: This is a protentially dangerous operation, and should only be used if required .. rest_status_code:: success status.yaml - 204 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_id: path_zone_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id Manually Trigger an Update of a Secondary Zone ============================================== .. rest_method:: POST /v2/zones/{zone_id}/tasks/xfr Trigger a new XFR from the upstream DNS servers This will cause designate to query the name servers and if the version in Designate is out of date, import the new version. This is useful if an upstream server failed to send a notify to Designate .. note:: This POST should have no body. .. important:: This is only useful on SECONDARY zones. .. rest_status_code:: success status.yaml - 202 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_id: path_zone_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/dns-api-v2-zone.inc0000664000175000017500000001636300000000000021740 0ustar00zuulzuul00000000000000==== Zone ==== Zone operations. Create Zone =========== .. rest_method:: POST /v2/zones Create a zone .. rest_status_code:: success status.yaml - 202 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 409 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - name: zone_name - email: zone_email - ttl: zone_ttl - description: zone_description - masters: zone_masters - type: zone_type - attributes: zone_attributes Request Example --------------- .. literalinclude:: samples/zones/create-zone-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - pool_id: zone_pool_id - project_id: project_id - name: zone_name - email: zone_email - ttl: zone_ttl - serial: zone_serial - status: status - action: action - description: zone_description - masters: zone_masters - type: zone_type - transfered_at: zone_transfered_at - version: version - created_at: created_at - updated_at: updated_at - attributes: zone_attributes - links: links Response Example ---------------- .. literalinclude:: samples/zones/zone-response.json :language: javascript List Zones ========== .. rest_method:: GET /v2/zones List all zones .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - limit: limit - marker: marker - sort_dir: sort_dir - sort_key: sort_key - name: zone_name_filter - type: zone_type_filter - email: zone_email_filter - status: zone_status_filter - description: zone_description_filter - ttl: zone_ttl_filter Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - pool_id: zone_pool_id - project_id: project_id - name: zone_name - email: zone_email - ttl: zone_ttl - serial: zone_serial - status: status - action: action - description: zone_description - masters: zone_masters - type: zone_type - transfered_at: zone_transfered_at - version: version - created_at: created_at - updated_at: updated_at - attributes: zone_attributes - links: links - metadata: metadata Response Example ---------------- .. literalinclude:: samples/zones/list-zones-response.json :language: javascript Show a Zone =========== .. rest_method:: GET /v2/zones/{zone_id} Show a zone .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_id: path_zone_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - pool_id: zone_pool_id - project_id: project_id - name: zone_name - email: zone_email - ttl: zone_ttl - serial: zone_serial - status: status - action: action - description: zone_description - masters: zone_masters - type: zone_type - transfered_at: zone_transfered_at - version: version - created_at: created_at - updated_at: updated_at - attributes: zone_attributes - links: links Response Example ---------------- .. literalinclude:: samples/zones/zone-response.json :language: javascript Get the Name Servers for a Zone =============================== .. rest_method:: GET /v2/zones/{zone_id}/nameservers Show the nameservers for a zone .. rest_status_code:: success status.yaml - 200 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_id: path_zone_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - hostname: zone_nameserver_hostname - priority: zone_nameserver_priority Response Example ---------------- .. literalinclude:: samples/zones/show-zone-nameservers-response.json :language: javascript Update a Zone ============= .. rest_method:: PATCH /v2/zones/{zone_id} Update the attribute(s) for an existing zone. .. rest_status_code:: success status.yaml - 202 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_id: path_zone_id - email: zone_email_update - ttl: zone_ttl - description: zone_description Request Example --------------- .. literalinclude:: samples/zones/update-zone-request.json :language: javascript Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - pool_id: zone_pool_id - project_id: project_id - name: zone_name - email: zone_email - ttl: zone_ttl - serial: zone_serial - status: status - action: action - description: zone_description - masters: zone_masters - type: zone_type - transfered_at: zone_transfered_at - version: version - created_at: created_at - updated_at: updated_at - attributes: zone_attributes - links: links Response Example ---------------- .. literalinclude:: samples/zones/update-zone-response.json :language: javascript Delete a Zone ============= .. rest_method:: DELETE /v2/zones/{zone_id} Delete a zone .. rest_status_code:: success status.yaml - 202 .. rest_status_code:: error status.yaml - 400 - 401 - 403 - 404 - 405 - 503 Request ------- .. rest_parameters:: parameters.yaml - x-auth-token: x-auth-token - x-auth-all-projects: x-auth-all-projects - x-auth-sudo-project-id: x-auth-sudo-project-id - zone_id: path_zone_id Response Parameters ------------------- .. rest_parameters:: parameters.yaml - x-openstack-request-id: x-openstack-request-id - id: id - pool_id: zone_pool_id - project_id: project_id - name: zone_name - email: zone_email - ttl: zone_ttl - serial: zone_serial - status: status - action: action - description: zone_description - masters: zone_masters - type: zone_type - transfered_at: zone_transfered_at - version: version - created_at: created_at - updated_at: updated_at - attributes: zone_attributes - links: links Response Example ---------------- .. literalinclude:: samples/zones/delete-zone-response.json :language: javascript ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/index.rst0000664000175000017500000000130400000000000020242 0ustar00zuulzuul00000000000000:tocdepth: 2 ======== DNS API ======== .. rest_expand_all:: .. include:: dns-api-v2-version.inc .. include:: dns-api-v2-zone.inc .. include:: dns-api-v2-zone-import.inc .. include:: dns-api-v2-zone-export.inc .. include:: dns-api-v2-zone-tasks.inc .. include:: dns-api-v2-zone-ownership-transfer-request.inc .. include:: dns-api-v2-zone-ownership-transfer-accept.inc .. include:: dns-api-v2-recordset.inc .. include:: dns-api-v2-pool.inc .. include:: dns-api-v2-limits.inc .. include:: dns-api-v2-tld.inc .. include:: dns-api-v2-tsigkey.inc .. include:: dns-api-v2-blacklist.inc .. include:: dns-api-v2-quota.inc .. include:: dns-api-v2-service-status.inc .. include:: dns-api-v2-reverse-floatingips.inc ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/parameters.yaml0000664000175000017500000004462200000000000021442 0ustar00zuulzuul00000000000000#################### # Header Variables # #################### x-auth-all-projects: description: | If enabled this will show results from all projects in Designate in: header required: false type: bool x-auth-sudo-project-id: description: | This allows a user to impersonate another project in: header required: false type: string x-auth-token: description: | Token used to identify the user from keystone in: header required: false type: string x-designate-edit-managed-records: description: | If enabled this will all users to edit records flagged as managed in: header required: false type: bool x-openstack-request-id: description: | ID of the request in: header required: true type: string zone_export_accepts: description: > Content-Type that will be accepted by the client. This endpoint will send a response with a ``text/dns`` content-type. If the client does not include a ``Accepts: text/dns`` header in: header required: true type: string #################### # Path Variables # #################### blacklist_id: description: | ID for this blacklist in: path required: true type: uuid floatingip_id: description: | ID for the floatingip associated with the project in: path required: true type: uuid path_pool_id: description: | ID for this pool in: path required: true type: uuid path_project_id: description: | ID for the project in: path required: true type: uuid path_recordset_id: description: | ID for the recordset in: path required: true type: uuid path_zone_export_id: description: | ID for this zone export in: path required: true type: uuid path_zone_id: description: | ID for the zone in: path required: true type: uuid path_zone_import_id: description: | ID for this zone import in: path required: true type: uuid path_zone_transfer_accept_id: description: | ID for this zone transfer accept in: path required: true type: uuid path_zone_transfer_request_id: description: | ID for this zone transfer request in: path required: true type: uuid region: description: | Openstack region in: path required: true type: string tld_id: description: | ID for this tld in: path required: true type: uuid tsigkey_id: description: | ID for this tsigkey in: path required: true type: uuid #################### # Query Variables # #################### blacklist_pattern_filter: description: | Filter results to only show blacklists that have a pattern matching the filter in: query required: false type: string limit: description: | Requests a page size of items. Returns a number of items up to a limit value. Use the ``limit`` parameter to make an initial limited request and use the ID of the last-seen item from the response as the ``marker`` parameter value in a subsequent limited request. in: query required: false type: integer marker: description: | The ID of the last-seen item. Use the ``limit`` parameter to make an initial limited request and use the ID of the last-seen item from the response as the ``marker`` parameter value in a subsequent limited request. in: query required: false type: string recordset_data_filter: description: | Filter results to only show recordsets that have a record with data matching the filter in: query required: false type: string recordset_description_filter: description: | Filter results to only show recordsets that have a description matching the filter in: query required: false type: string recordset_name_filter: description: | Filter results to only show recordsets that have a name matching the filter in: query required: false type: string recordset_status_filter: description: | Filter results to only show recordsets that have a status matching the filter in: query required: false type: string recordset_ttl_filter: description: | Filter results to only show recordsets that have a ttl matching the filter in: query required: false type: string recordset_type_filter: description: | Filter results to only show recordsets that have a type matching the filter in: query required: false type: string sort_dir: description: | Sorts the response by the requested sort direction. A valid value is ``asc`` (ascending) or ``desc`` (descending). Default is ``asc``. You can specify multiple pairs of sort key and sort direction query parameters. If you omit the sort direction in a pair, the API uses the natural sorting direction of the server attribute that is provided as the ``sort_key``. in: query required: false type: string sort_key: description: | Sorts the response by the this attribute value. Default is ``id``. You can specify multiple pairs of sort key and sort direction query parameters. If you omit the sort direction in a pair, the API uses the natural sorting direction of the server attribute that is provided as the ``sort_key``. in: query required: false type: string tld_name_filter: description: | Filter results to only show tlds that have a name matching the filter in: query required: false type: string tsigkey_algorithm_filter: description: | Filter results to only show tsigkeys that have an algorithm matching the filter in: query required: false type: string tsigkey_name_filter: description: | Filter results to only show tsigkeys that have a name matching the filter in: query required: false type: string tsigkey_scope_filter: description: | Filter results to only show tsigkeys that have a scope matching the filter in: query required: false type: string zone_description_filter: description: | Filter results to only show zones that have a description matching the filter in: query required: false type: string zone_email_filter: description: | Filter results to only show zones that have an email matching the filter in: query required: false type: string zone_export_message_filter: description: | Filter results to only show ``zone_exports`` that have a ``message`` matching the filter in: query required: false type: string zone_export_status_filter: description: | Filter results to only show ``zone_exports`` that have a ``status`` matching the filter in: query required: false type: string zone_export_zone_id_filter: description: | Filter results to only show ``zone_exports`` that have a ``zone_id`` matching the filter in: query required: false type: uuid zone_import_message_filter: description: | Filter results to only show zone_imports that have a ``message`` matching the filter in: query required: false type: string zone_import_status_filter: description: | Filter results to only show zone_imports that have a ``status`` matching the filter in: query required: false type: string zone_import_zone_id_filter: description: | Filter results to only show zone_imports that have a ``zone_id`` matching the filter in: query required: false type: uuid zone_name_filter: description: | Filter results to only show zones that have a name matching the filter in: query required: false type: string zone_status_filter: description: | Filter results to only show zones that have a status matching the filter in: query required: false type: string zone_transfer_accept_status_filter: description: | Filter results to only show ``zone_transfer_accepts`` that have a ``status`` matching the filter in: query required: false type: string zone_transfer_request_status_filter: description: | Filter results to only show ``zone_transfer_requests`` that have a ``status`` matching the filter in: query required: false type: string zone_ttl_filter: description: | Filter results to only show zones that have a ttl matching the filter in: query required: false type: integer zone_type_filter: description: | Filter results to only show zones that have a type matching the filter in: query required: false type: string #################### # Body Variables # #################### action: description: | current action in progress on the resource in: body required: true type: enum blacklist_description: description: | Description for this blacklist in: body required: false type: string blacklist_pattern: description: | Pattern for this blacklist in: body required: true type: string created_at: description: | Date / Time when resource was created in: body required: true type: datestamp description: description: | Description for the resource. Only shown in API / Horizon in: body required: true type: string floatingip_address: description: | The floatingip address for this PTR record. in: body required: true type: string fptr_description: description: | Description for this PTR record in: body required: true type: string fptr_id: description: | ID for PTR record in the format of : in: body required: true type: string fptr_ttl: description: | Time to live for this PTR record in: body required: true type: uuid fptrd_name: description: | Domain name for this PTR record in: body required: true type: string id: description: | ID for the resource in: body required: true type: uuid links: description: | Links to the resource, and other related resources. When a response has been broken into pages, we will include a ``next`` link that should be followed to retrieve all results in: body required: true type: object max_page_limit: description: | The max amount of items allowed per page in: body required: true type: integer max_recordset_name_length: description: | The max length of a recordset name in: body required: true type: integer max_recordset_records: description: | The max amount of records contained in a recordset in: body required: true type: integer max_zone_name_length: description: | The max length of a zone name in: body required: true type: integer max_zone_records: description: | The max amount of records in a zone in: body required: true type: integer max_zone_recordsets: description: | The max amount of recordsets per zone in: body required: true type: integer max_zones: description: | The max amount of zones for this project in: body required: true type: integer metadata: description: | Returns the ``total_count`` of resources matching this filter in: body required: true type: object min_ttl: description: | The lowest ttl allowed on this system in: body required: true type: integer pool_attributes: description: > Key:Value pairs of information about this pool. This information can be used by the scheduler to place zones on the correct pools in: body required: true type: object pool_id: description: | ID for this pool in: body required: true type: uuid pool_name: description: | Name for this pool in: body required: true type: string pool_ns_records: description: | Name Servers for this pool. Any zones hosted by this pool should be delegated to these DNS servers in: body required: true type: string project_id: description: | ID for the project that owns the resource in: body required: true type: uuid recordset_description: description: | Description for this recordset in: body required: false type: string recordset_name: description: | DNS Name for the recordset in: body required: true type: hostname recordset_records: description: | A list of data for this recordset. Each item will be a separate record in Designate These items should conform to the DNS spec for the record type - e.g. A records must be IPv4 addresses, CNAME records must be a hostname. in: body required: true type: string recordset_ttl: description: | TTL (Time to Live) for the recordset. in: body required: false type: integer recordset_type: description: | They RRTYPE of the recordset. in: body required: true type: string recordset_zone_id: description: | ID for the zone that contains this recordset in: body required: true type: uuid recordset_zone_name: description: | The name of the zone that contains this recordset in: body required: true type: string resource_id: description: | resource id for this tsigkey which can be either zone or pool id in: body required: true type: string status: description: | status of the resource in: body required: true type: enum tld_description: description: | Description for this tld in: body required: false type: string tld_name: description: | Name for this tld in: body required: true type: string tsigkey_algorithm: description: | The encryption algorithm for this tsigkey in: body required: true type: string tsigkey_name: description: | Name for this tsigkey in: body required: true type: string tsigkey_scope: description: | scope for this tsigkey which can be either ZONE or POOL scope in: body required: true type: string tsigkey_secret: description: | The actual key to be used in: body required: true type: string updated_at: description: | Date / Time when resource last updated in: body required: false type: datestamp version: description: | Version of the resource in: body required: true type: integer zone_attributes: description: | Key:Value pairs of information about this zone, and the pool the user would like to place the zone in. This information can be used by the scheduler to place zones on the correct pool. in: body required: false type: dict zone_description: description: | Description for this zone in: body required: false type: string zone_email: description: | e-mail for the zone. Used in SOA records for the zone in: body required: true type: string zone_email_update: description: | e-mail for the zone. Used in SOA records for the zone in: body required: false type: string zone_export_id: description: | ID for this zone export in: body required: true type: uuid zone_export_location: description: > Where the exported zone is published to. There are currently one placement option available - designate. This will be shown by ``designate://``. As more drivers are added, this will expand to include swift - this will be indicated by location being set to ``swift:////`` This is also allowed be a webserver if the operator implements a different data store, and will be indicted by ``http://`` When a zone export is complete, the location will be updated, and the exported zone file will be available at the location specified. in: body required: false type: string zone_export_message: description: | Message about the current status of the export in: body required: false type: uuid zone_export_status: description: | Current status of the zone export in: body required: true type: string zone_export_zone_id: description: | ID for the zone that is being exported in: body required: false type: uuid zone_import_id: description: | ID for this zone import in: body required: true type: uuid zone_import_message: description: | Message about the current status of the import in: body required: false type: uuid zone_import_status: description: | Current status of the zone import in: body required: true type: uuid zone_import_zone_id: description: | ID for the zone that was created by this import in: body required: false type: uuid zone_masters: description: | Mandatory for secondary zones. The servers to slave from to get DNS information in: body required: false type: enum zone_name: description: | DNS Name for the zone in: body required: true type: domainname zone_nameserver_hostname: description: | The hostname of the nameserver that the zone should be delegated to in: body required: true type: hostname zone_nameserver_priority: description: | The priority of the nameserver. This is used to determine the order of the the nameserver listings, and which server is used in the SOA record for the zone. in: body required: true type: integer zone_pool_id: description: | ID for the pool hosting this zone in: body required: true type: uuid zone_serial: description: | current serial number for the zone in: body required: true type: integer zone_transfer_accept_id: description: | ID for this zone transfer accept in: body required: true type: uuid zone_transfer_accept_status: description: | Current status of the zone transfer request in: body required: true type: string zone_transfer_request_id: description: | ID for this zone transfer request in: body required: true type: uuid zone_transfer_request_key: description: > Key that is used as part of the zone transfer accept process. This is only shown to the creator, and must be communicated out of band. in: body required: true type: string zone_transfer_request_status: description: | Current status of the zone transfer request in: body required: true type: string zone_transfer_request_target_project_id: description: > A project ID that the request will be limited to. No other project will be allowed to accept this request. in: body required: false type: string zone_transfer_request_zone_id: description: | ID for the zone that is being exported in: body required: true type: uuid zone_transfer_request_zone_name: description: | the name of the zone that is being exported in: body required: true type: string zone_transfered_at: description: | For secondary zones. The last time an update was retrieved from the master servers in: body required: true type: enum zone_ttl: description: | TTL (Time to Live) for the zone. in: body required: false type: integer zone_type: description: | Type of zone. PRIMARY is controlled by Designate, SECONDARY zones are slaved from another DNS Server. Defaults to PRIMARY in: body required: false type: enum ././@PaxHeader0000000000000000000000000000003300000000000011451 xustar000000000000000027 mtime=1638524437.676475 designate-10.0.2/api-ref/source/samples/0000775000175000017500000000000000000000000020047 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1638524437.7004757 designate-10.0.2/api-ref/source/samples/blacklists/0000775000175000017500000000000000000000000022202 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/blacklists/blacklist-response.json0000664000175000017500000000052400000000000026702 0ustar00zuulzuul00000000000000{ "description": "This is a blacklisted domain.", "links": { "self": "http://127.0.0.1:9001/v2/blacklists/af91edb5-ede8-453f-af13-feabdd088f9c" }, "pattern": "^([A-Za-z0-9_\\-]+\\.)*example\\.com\\.$", "created_at": "2016-05-20 06:15:42", "updated_at": null, "id": "af91edb5-ede8-453f-af13-feabdd088f9c" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/blacklists/create-blacklist-request.json0000664000175000017500000000016000000000000027771 0ustar00zuulzuul00000000000000{ "pattern" : "^([A-Za-z0-9_\\-]+\\.)*example\\.com\\.$", "description" : "This is a blacklisted domain." } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/blacklists/list-blacklists-response.json0000664000175000017500000000163600000000000030043 0ustar00zuulzuul00000000000000{ "blacklists": [ { "description": "This is a blacklisted domain.", "links": { "self": "http://127.0.0.1:9001/v2/blacklists/af91edb5-ede8-453f-af13-feabdd088f9c" }, "pattern": "^([A-Za-z0-9_\\-]+\\.)*example\\.com\\.$", "created_at": "2016-05-20 06:15:42", "updated_at": null, "id": "af91edb5-ede8-453f-af13-feabdd088f9c" }, { "description": "Example blacklisted domain.", "links": { "self": "http://127.0.0.1:9001/v2/blacklists/f26e22f8-619f-4738-9077-0586e7cb76bd" }, "pattern": "^examples\\.com\\.$", "created_at": "2016-05-20 06:22:12", "updated_at": null, "id": "f26e22f8-619f-4738-9077-0586e7cb76bd" } ], "links": { "self": "http://127.0.0.1:9001/v2/blacklists" } } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/blacklists/update-blacklist-request.json0000664000175000017500000000013100000000000030006 0ustar00zuulzuul00000000000000{ "pattern" : "^examples\\.com\\.$", "description" : "Updated the description" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/blacklists/update-blacklist-response.json0000664000175000017500000000051200000000000030157 0ustar00zuulzuul00000000000000{ "description": "Updated the description", "links": { "self": "http://127.0.0.1:9001/v2/blacklists/f26e22f8-619f-4738-9077-0586e7cb76bd" }, "pattern": "^examples\\.com\\.$", "created_at": "2016-05-20 06:22:12", "updated_at": "2016-05-20 06:41:34", "id": "f26e22f8-619f-4738-9077-0586e7cb76bd" } ././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1638524437.7004757 designate-10.0.2/api-ref/source/samples/limits/0000775000175000017500000000000000000000000021350 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/limits/get-limits-response.json0000664000175000017500000000033600000000000026157 0ustar00zuulzuul00000000000000{ "max_page_limit": 1000, "max_recordset_name_length": 255, "max_recordset_records": 20, "max_zone_name_length": 255, "max_zone_records": 500, "max_zone_recordsets": 500, "max_zones": 10, "min_ttl": null } ././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1638524437.7004757 designate-10.0.2/api-ref/source/samples/pools/0000775000175000017500000000000000000000000021203 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/pools/list-pools-response.json0000664000175000017500000000213000000000000026033 0ustar00zuulzuul00000000000000{ "metadata": { "total_count": 2 }, "links": { "self": "http://127.0.0.1:9001/v2/pools" }, "pools": [ { "description": null, "id": "794ccc2c-d751-44fe-b57f-8894c9f5c842", "project_id": null, "created_at": "2015-02-18T22:18:58.000000", "attributes": null, "ns_records": [ { "hostname": "ns1.example.org.", "priority": 1 } ], "links": { "self": "http://127.0.0.1:9001/v2/pools/794ccc2c-d751-44fe-b57f-8894c9f5c842" }, "name": "default", "updated_at": "2015-02-19T15:59:44.000000" }, { "description": null, "id": "d1716333-8c16-490f-85ee-29af36907605", "project_id": "noauth-project", "created_at": "2015-02-23T21:56:33.000000", "attributes": null, "ns_records": [ { "hostname": "ns2.example.org.", "priority": 1 } ], "links": { "self": "http://127.0.0.1:9001/v2/pools/d1716333-8c16-490f-85ee-29af36907605" }, "name": "example_pool", "updated_at": null } ] } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/pools/show-pool-response.json0000664000175000017500000000064100000000000025662 0ustar00zuulzuul00000000000000{ "description": null, "id": "d1716333-8c16-490f-85ee-29af36907605", "project_id": "noauth-project", "created_at": "2015-02-23T21:56:33.000000", "attributes": null, "ns_records": [ { "hostname": "ns2.example.org.", "priority": 1 } ], "links": { "self": "http://127.0.0.1:9001/v2/pools/d1716333-8c16-490f-85ee-29af36907605" }, "name": "example_pool", "updated_at": null } ././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1638524437.7004757 designate-10.0.2/api-ref/source/samples/quotas/0000775000175000017500000000000000000000000021363 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/quotas/get-quotas-response.json0000664000175000017500000000020400000000000026177 0ustar00zuulzuul00000000000000{ "api_export_size": 1000, "recordset_records": 20, "zone_records": 500, "zone_recordsets": 500, "zones": 100 } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/quotas/set-quotas-request.json0000664000175000017500000000002500000000000026046 0ustar00zuulzuul00000000000000{ "zones": 500 } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/quotas/set-quotas-response.json0000664000175000017500000000020400000000000026213 0ustar00zuulzuul00000000000000{ "api_export_size": 1000, "recordset_records": 20, "zone_records": 500, "zone_recordsets": 500, "zones": 500 } ././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1638524437.7044759 designate-10.0.2/api-ref/source/samples/recordsets/0000775000175000017500000000000000000000000022224 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/recordsets/create-mx-recordset-request.json0000664000175000017500000000041600000000000030463 0ustar00zuulzuul00000000000000{ "name" : "mail.example.org.", "description" : "An MX recordset.", "type" : "MX", "ttl" : 3600, "records" : [ "10 mail1.example.org.", "20 mail2.example.org.", "30 mail3.example.org.", "40 mail4.example.org." ] } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/recordsets/create-mx-recordset-response.json0000664000175000017500000000126300000000000030632 0ustar00zuulzuul00000000000000{ "status": "PENDING", "description": "An MX recordset.", "links": { "self": "http://127.0.0.1:9001/v2/zones/f6b472ed-1be8-47e8-87a7-687169cacca8/recordsets/c3c1f506-adcf-4751-ae5b-1c5ff00d2e1a" }, "created_at": "2016-06-21 06:34:36", "updated_at": null, "records": [ "10 mail1.example.org.", "30 mail3.example.org.", "20 mail2.example.org.", "40 mail4.example.org." ], "zone_id": "f6b472ed-1be8-47e8-87a7-687169cacca8", "version": 1, "ttl": 3600, "action": "CREATE", "zone_name": "example.org.", "type": "MX", "id": "c3c1f506-adcf-4751-ae5b-1c5ff00d2e1a", "name": "mail.example.org." } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/recordsets/create-recordset-request.json0000664000175000017500000000023000000000000030033 0ustar00zuulzuul00000000000000{ "name" : "example.org.", "description" : "This is an example record set.", "type" : "A", "ttl" : 3600, "records" : [ "10.1.0.2" ] } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/recordsets/create-recordset-response.json0000664000175000017500000000121500000000000030205 0ustar00zuulzuul00000000000000{ "description": "This is an example record set.", "links": { "self": "https://127.0.0.1:9001/v2/zones/2150b1bf-dee2-4221-9d85-11f7886fb15f/recordsets/f7b10e9b-0cae-4a91-b162-562bc6096648" }, "updated_at": null, "records": [ "10.1.0.2" ], "ttl": 3600, "id": "f7b10e9b-0cae-4a91-b162-562bc6096648", "name": "example.org.", "project_id": "4335d1f0-f793-11e2-b778-0800200c9a66", "zone_id": "2150b1bf-dee2-4221-9d85-11f7886fb15f", "zone_name": "example.com.", "created_at": "2014-10-24T19:59:44.000000", "version": 1, "type": "A", "status": "PENDING", "action": "CREATE" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/recordsets/create-spf-recordset-request.json0000664000175000017500000000023000000000000030621 0ustar00zuulzuul00000000000000{ "name" : "foospf.example.org.", "description" : "An SPF recordset.", "type" : "SPF", "ttl" : 3600, "records" : [ "v=spf1 +all" ] } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/recordsets/create-spf-recordset-response.json0000664000175000017500000000111200000000000030767 0ustar00zuulzuul00000000000000{ "status": "PENDING", "description": "An SPF recordset.", "links": { "self": "http://127.0.0.1:9001/v2/zones/f6b472ed-1be8-47e8-87a7-687169cacca8/recordsets/c05a6740-2602-4439-bb70-187dd6547c13" }, "created_at": "2016-06-21 12:31:44", "updated_at": null, "records": [ "v=spf1 +all" ], "zone_id": "f6b472ed-1be8-47e8-87a7-687169cacca8", "version": 1, "ttl": 3600, "action": "CREATE", "zone_name": "example.org.", "type": "SPF", "id": "c05a6740-2602-4439-bb70-187dd6547c13", "name": "foospf.example.org." } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/recordsets/create-srv-recordset-request.json0000664000175000017500000000026200000000000030650 0ustar00zuulzuul00000000000000{ "name" : "_http._tcp.example.org.", "description" : "An SRV recordset.", "type" : "SRV", "ttl" : 3600, "records" : [ "10 0 5060 www.example.org." ] } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/recordsets/create-srv-recordset-response.json0000664000175000017500000000113500000000000031016 0ustar00zuulzuul00000000000000{ "status": "PENDING", "description": "An SRV recordset.", "links": { "self": "http://127.0.0.1:9001/v2/zones/f6b472ed-1be8-47e8-87a7-687169cacca8/recordsets/cc3299b3-c3cd-47e5-9876-8c1d4ad1b88e" }, "created_at": "2016-06-21 12:44:38", "updated_at": null, "records": [ "10 0 5060 www.example.org." ], "zone_id": "f6b472ed-1be8-47e8-87a7-687169cacca8", "version": 1, "ttl": 3600, "action": "CREATE", "zone_name": "example.org.", "type": "SRV", "id": "cc3299b3-c3cd-47e5-9876-8c1d4ad1b88e", "name": "_http._tcp.example.org." } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/recordsets/create-sshfp-recordset-request.json0000664000175000017500000000031700000000000031162 0ustar00zuulzuul00000000000000{ "name" : "foo.example.org.", "description" : "An SSHFP recordset.", "type" : "SSHFP", "ttl" : 3600, "records" : [ "1 2 6467a09c59607b01fef22ef6918c44a2eaaa14a5e055cfe91bf614b5796d2df0" ] } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/recordsets/create-sshfp-recordset-response.json0000664000175000017500000000113000000000000031322 0ustar00zuulzuul00000000000000{ "status": "ACTIVE", "description": null, "links": { "self": "http://127.0.0.1:9001/v2/zones/f6b472ed-1be8-47e8-87a7-687169cacca8/recordsets/5fb9d67c-86ac-4ae9-80d5-4c23f7a16b29" }, "created_at": "2016-06-21 12:15:35", "updated_at": null, "records": [ "2 1 75e080122854693164599205f49d7475ed17d09b" ], "zone_id": "f6b472ed-1be8-47e8-87a7-687169cacca8", "version": 1, "ttl": 3600, "action": "NONE", "zone_name": "example.org.", "type": "SSHFP", "id": "5fb9d67c-86ac-4ae9-80d5-4c23f7a16b29", "name": "foo.example.org." } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/recordsets/delete-recordset-response.json0000664000175000017500000000122700000000000030207 0ustar00zuulzuul00000000000000{ "description": "Updated description", "links": { "self": "https://127.0.0.1:9001/v2/zones/2150b1bf-dee2-4221-9d85-11f7886fb15f/recordsets/f7b10e9b-0cae-4a91-b162-562bc6096648" }, "updated_at": null, "records": [ "10.1.0.2", "10.1.0.3", ], "ttl": null, "id": "f7b10e9b-0cae-4a91-b162-562bc6096648", "name": "example.org.", "project_id": "4335d1f0-f793-11e2-b778-0800200c9a66", "zone_id": "2150b1bf-dee2-4221-9d85-11f7886fb15f", "zone_name": "example.com.", "created_at": "2014-10-24T19:59:44.000000", "version": 2, "type": "A", "status": "PENDING", "action": "DELETE" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/recordsets/list-all-recordset-response.json0000664000175000017500000000210400000000000030461 0ustar00zuulzuul00000000000000{ "recordsets": [ { "description": "This is an example record set.", "links": { "self": "https://127.0.0.1:9001/v2/zones/2150b1bf-dee2-4221-9d85-11f7886fb15f/recordsets/f7b10e9b-0cae-4a91-b162-562bc6096648" }, "updated_at": null, "records": [ "10.1.0.2" ], "ttl": 3600, "id": "f7b10e9b-0cae-4a91-b162-562bc6096648", "name": "example.org.", "project_id": "4335d1f0-f793-11e2-b778-0800200c9a66", "zone_id": "2150b1bf-dee2-4221-9d85-11f7886fb15f", "zone_name": "example.com.", "created_at": "2014-10-24T19:59:44.000000", "version": 1, "type": "A", "status": "PENDING", "action": "CREATE" } ], "links": { "self": "http://127.0.0.1:9001/v2/recordsets?limit=1", "next": "http://127.0.0.1:9001/v2/recordsets?limit=1&marker=45fd892d-7a67-4f65-9df0-87273f228d6c" }, "metadata": { "total_count": 2 } } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/recordsets/list-recordset-in-zone-response.json0000664000175000017500000000223200000000000031272 0ustar00zuulzuul00000000000000{ "recordsets": [ { "description": "This is an example record set.", "links": { "self": "https://127.0.0.1:9001/v2/zones/2150b1bf-dee2-4221-9d85-11f7886fb15f/recordsets/f7b10e9b-0cae-4a91-b162-562bc6096648" }, "updated_at": null, "records": [ "10.1.0.2" ], "ttl": 3600, "id": "f7b10e9b-0cae-4a91-b162-562bc6096648", "name": "example.org.", "project_id": "4335d1f0-f793-11e2-b778-0800200c9a66", "zone_id": "2150b1bf-dee2-4221-9d85-11f7886fb15f", "zone_name": "example.com.", "created_at": "2014-10-24T19:59:44.000000", "version": 1, "type": "A", "status": "PENDING", "action": "CREATE" } ], "links": { "self": "http://127.0.0.1:9001/v2/zones/2150b1bf-dee2-4221-9d85-11f7886fb15f/recordsets?limit=1", "next": "http://127.0.0.1:9001/v2/zones/2150b1bf-dee2-4221-9d85-11f7886fb15f/recordsets?limit=1&marker=45fd892d-7a67-4f65-9df0-87273f228d6c" }, "metadata": { "total_count": 2 } } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/recordsets/show-recordset-response.json0000664000175000017500000000121200000000000027717 0ustar00zuulzuul00000000000000{ "description": "This is an example record set.", "links": { "self": "https://127.0.0.1:9001/v2/zones/2150b1bf-dee2-4221-9d85-11f7886fb15f/recordsets/f7b10e9b-0cae-4a91-b162-562bc6096648" }, "updated_at": null, "records": [ "10.1.0.2" ], "ttl": 3600, "id": "f7b10e9b-0cae-4a91-b162-562bc6096648", "name": "example.org.", "project_id": "4335d1f0-f793-11e2-b778-0800200c9a66", "zone_id": "2150b1bf-dee2-4221-9d85-11f7886fb15f", "zone_name": "example.com.", "created_at": "2014-10-24T19:59:44.000000", "version": 1, "type": "A", "status": "ACTIVE", "action": "NONE" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/recordsets/update-recordset-request.json0000664000175000017500000000016400000000000030060 0ustar00zuulzuul00000000000000{ "description" : "Updated description", "ttl" : null, "records" : [ "10.1.0.2", "10.1.0.3" ] } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/recordsets/update-recordset-response.json0000664000175000017500000000122600000000000030226 0ustar00zuulzuul00000000000000{ "description": "Updated description", "links": { "self": "https://127.0.0.1:9001/v2/zones/2150b1bf-dee2-4221-9d85-11f7886fb15f/recordsets/f7b10e9b-0cae-4a91-b162-562bc6096648" }, "updated_at": null, "records": [ "10.1.0.2", "10.1.0.3" ], "ttl": null, "id": "f7b10e9b-0cae-4a91-b162-562bc6096648", "name": "example.org.", "project_id": "4335d1f0-f793-11e2-b778-0800200c9a66", "zone_id": "2150b1bf-dee2-4221-9d85-11f7886fb15f", "zone_name": "example.com.", "created_at": "2014-10-24T19:59:44.000000", "version": 2, "type": "A", "status": "PENDING", "action": "UPDATE" } ././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1638524437.7044759 designate-10.0.2/api-ref/source/samples/reverse_floatingips/0000775000175000017500000000000000000000000024121 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/reverse_floatingips/list-ptr-record-response.json0000664000175000017500000000167600000000000031714 0ustar00zuulzuul00000000000000{ "links": { "self": "http://127.0.0.1:9001/v2/reverse/floatingips" }, "floatingips": [ { "status": "ACTIVE", "ptrdname": "smtp.example.com.", "description": null, "links": { "self": "http://127.0.0.1:9001/v2/reverse/floatingips/RegionOne:c5742ac0-d0f3-4304-a039-9423f727eb96" }, "ttl": 600, "address": "172.24.4.10", "action": "NONE", "id": "RegionOne:c5742ac0-d0f3-4304-a039-9423f727eb96" }, { "status": "ACTIVE", "ptrdname": "tftp.example.com.", "description": null, "links": { "self": "http://127.0.0.1:9001/v2/reverse/floatingips/RegionOne:9860717d-3da6-43df-a0ec-fa8b0e71ea86" }, "ttl": 600, "address": "172.24.4.6", "action": "NONE", "id": "RegionOne:9860717d-3da6-43df-a0ec-fa8b0e71ea86" } ] } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/reverse_floatingips/ptr-record-response.json0000664000175000017500000000060200000000000030727 0ustar00zuulzuul00000000000000{ "status": "PENDING", "ptrdname": "smtp.example.com.", "description": "This is a floating ip for 127.0.0.1", "links": { "self": "http://127.0.0.1:9001/v2/reverse/floatingips/RegionOne:c5742ac0-d0f3-4304-a039-9423f727eb96" }, "ttl": 600, "address": "172.24.4.10", "action": "CREATE", "id": "RegionOne:c5742ac0-d0f3-4304-a039-9423f727eb96" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/reverse_floatingips/set-ptr-record-request.json0000664000175000017500000000015500000000000031355 0ustar00zuulzuul00000000000000{ "ptrdname" : "smtp.example.com.", "description" : "This is a floating ip for 10.0.0.8", "ttl": 600 } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/reverse_floatingips/unset-ptr-record-request.json0000664000175000017500000000003100000000000031711 0ustar00zuulzuul00000000000000{ "ptrdname": null } ././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1638524437.7044759 designate-10.0.2/api-ref/source/samples/service_status/0000775000175000017500000000000000000000000023112 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/service_status/service_status_list.json0000664000175000017500000000113600000000000030104 0ustar00zuulzuul00000000000000{ "service_statuses": [ { "links": { "self": "http://127.0.0.1:9001/v2/service_status/af91edb5-ede8-453f-af13-feabdd088f9c" }, "hostname": "dns-2.example.com.", "status": "UP", "service_name": "api", "stats": null, "capabilities": null, "created_at": "2016-05-20 06:15:42", "heartbeated_at": "2016-07-20 12:14:41", "id": "af91edb5-ede8-453f-af13-feabdd088f9c" } ], "links": { "self": "http://127.0.0.1:9001/v2/service_status" } } ././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1638524437.7084758 designate-10.0.2/api-ref/source/samples/tlds/0000775000175000017500000000000000000000000021015 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/tlds/create-tld-request.json0000664000175000017500000000007600000000000025425 0ustar00zuulzuul00000000000000{ "name" : "com", "description" : "tld description" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/tlds/list-tlds-response.json0000664000175000017500000000121700000000000025464 0ustar00zuulzuul00000000000000{ "tlds": [ { "name": "edu", "links": { "self": "http://127.0.0.1:9001/v2/tlds/a7bba387-712b-4b42-9368-4508642c6113" }, "created_at": "2016-05-10 05:21:40", "updated_at": null, "id": "a7bba387-712b-4b42-9368-4508642c6113", "description": "demo TLD" }, { "name": "com", "links": { "self": "http://127.0.0.1:9001/v2/tlds/cfee7486-7ce4-4851-9c38-7b0fe3d42ee9" }, "created_at": "2016-05-18 05:07:58", "updated_at": null, "id": "cfee7486-7ce4-4851-9c38-7b0fe3d42ee9", "description": "tld description" } ], "links": {"self": "http://127.0.0.1:9001/v2/tlds" } } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/tlds/tld-response.json0000664000175000017500000000042000000000000024323 0ustar00zuulzuul00000000000000{ "name": "com", "links": { "self": "http://127.0.0.1:9001/v2/tlds/cfee7486-7ce4-4851-9c38-7b0fe3d42ee9" }, "created_at": "2016-05-18 05:07:58", "updated_at": null, "id": "cfee7486-7ce4-4851-9c38-7b0fe3d42ee9", "description": "tld description" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/tlds/update-tld-request.json0000664000175000017500000000011700000000000025440 0ustar00zuulzuul00000000000000{ "name" : "org", "description" : "Updated the name from com to org" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/tlds/update-tld-response.json0000664000175000017500000000045200000000000025610 0ustar00zuulzuul00000000000000{ "name": "org", "links": { "self": "http://127.0.0.1:9001/v2/tlds/cfee7486-7ce4-4851-9c38-7b0fe3d42ee9" }, "created_at": "2016-05-18 05:07:58", "updated_at": "2016-05-18 05:45:24", "id": "cfee7486-7ce4-4851-9c38-7b0fe3d42ee9", "description": "Updated the name from com to org" } ././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1638524437.7084758 designate-10.0.2/api-ref/source/samples/tsigkeys/0000775000175000017500000000000000000000000021711 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/tsigkeys/create-tsigkey-request.json0000664000175000017500000000025500000000000027214 0ustar00zuulzuul00000000000000{ "name": "Example key", "algorithm": "hmac-sha256", "secret": "SomeSecretKey", "scope": "POOL", "resource_id": "d96851d0-765c-4ee9-bbdf-153345270bd3" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/tsigkeys/list-tsigkeys-response.json0000664000175000017500000000307700000000000027262 0ustar00zuulzuul00000000000000{ "tsigkeys": [ { "links": { "self": "http://127.0.0.1:9001/v2/tsigkeys/f94d03ca-bd55-4321-8e93-8d363737ab5c" }, "name": "Example key", "algorithm": "hmac-sha256", "resource_id": "5866274f-ee8d-42ee-94f9-29000f040949", "created_at": "2016-04-19 18:52:54", "updated_at": null, "secret": "some secret key", "scope": "POOL", "id": "f94d03ca-bd55-4321-8e93-8d363737ab5c" }, { "links": { "self": "http://127.0.0.1:9001/v2/tsigkeys/6bba6f00-dc33-4665-bb37-15f6188bb305" }, "name": "Example key2", "algorithm": "hmac-sha256", "resource_id": "8a5ba22a-347e-4e92-9747-d2c3e67fbb45", "created_at": "2016-05-19 02:17:54", "updated_at": null, "secret": "SomeSecretKey", "scope": "POOL", "id": "6bba6f00-dc33-4665-bb37-15f6188bb305" }, { "links": { "self": "http://127.0.0.1:9001/v2/tsigkeys/c429b860-9f68-4e5f-a2ff-65760a64ceaa" }, "name": "Example key3", "algorithm": "hmac-sha256", "resource_id": "d96851d0-765c-4ee9-bbdf-153345270bd3", "created_at": "2016-05-19 05:52:45", "updated_at": null, "secret": "SomeSecretKey", "scope": "POOL", "id": "c429b860-9f68-4e5f-a2ff-65760a64ceaa" } ], "links": { "self": "http://127.0.0.1:9001/v2/tsigkeys" } } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/tsigkeys/tsigkey-response.json0000664000175000017500000000061500000000000026121 0ustar00zuulzuul00000000000000{ "links": { "self": "http://127.0.0.1:9001/v2/tsigkeys/c429b860-9f68-4e5f-a2ff-65760a64ceaa" }, "name": "Example key", "algorithm": "hmac-sha256", "resource_id": "d96851d0-765c-4ee9-bbdf-153345270bd3", "created_at": "2016-05-19 05:52:45", "updated_at": null, "secret": "SomeSecretKey", "scope": "POOL", "id": "c429b860-9f68-4e5f-a2ff-65760a64ceaa" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/tsigkeys/update-tsigkey-request.json0000664000175000017500000000006300000000000027230 0ustar00zuulzuul00000000000000{ "name": "example_tsigkey", "scope": "ZONE" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/tsigkeys/update-tsigkey-response.json0000664000175000017500000000066400000000000027405 0ustar00zuulzuul00000000000000{ "links": { "self": "http://127.0.0.1:9001/v2/tsigkeys/c429b860-9f68-4e5f-a2ff-65760a64ceaa" }, "name": "example_tsigkey", "algorithm": "hmac-sha256", "resource_id": "d96851d0-765c-4ee9-bbdf-153345270bd3", "created_at": "2016-05-19 05:52:45", "updated_at": "2016-05-19 06:29:14", "secret": "SomeSecretKey", "scope": "ZONE", "id": "c429b860-9f68-4e5f-a2ff-65760a64ceaa" } ././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1638524437.7084758 designate-10.0.2/api-ref/source/samples/versions/0000775000175000017500000000000000000000000021717 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/versions/get-versions-response.json0000664000175000017500000000052200000000000027072 0ustar00zuulzuul00000000000000{ "versions": { "values": [ { "id": "v2", "links": [ { "href": "http://127.0.0.1:9001/v2", "rel": "self" } ], "status": "CURRENT" } ] } } ././@PaxHeader0000000000000000000000000000003300000000000011451 xustar000000000000000027 mtime=1638524437.712476 designate-10.0.2/api-ref/source/samples/zones/0000775000175000017500000000000000000000000021205 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/create-zone-export-response.json0000664000175000017500000000063300000000000027471 0ustar00zuulzuul00000000000000{ "status": "PENDING", "zone_id": "074e805e-fe87-4cbb-b10b-21a06e215d41", "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/exports/8ec17fe1-d1f9-41b4-aa98-4eeb4c27b720" }, "created_at": "2015-08-27T20:57:03.000000", "updated_at": null, "version": 1, "location": null, "message": null, "project_id": "1", "id": "8ec17fe1-d1f9-41b4-aa98-4eeb4c27b720" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/create-zone-import-response.json0000664000175000017500000000054300000000000027462 0ustar00zuulzuul00000000000000{ "status": "PENDING", "zone_id": null, "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/imports/074e805e-fe87-4cbb-b10b-21a06e215d41" }, "created_at": "2015-05-08T15:43:42.000000", "updated_at": null, "version": 1, "message": null, "project_id": "1", "id": "074e805e-fe87-4cbb-b10b-21a06e215d41" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/create-zone-request.json0000664000175000017500000000032600000000000026003 0ustar00zuulzuul00000000000000{ "attributes": { "tier": "gold", "ha": "true" }, "name": "example.org.", "email": "joe@example.org", "type": "PRIMARY", "ttl": 7200, "description": "This is an example zone." } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/create-zone-transfer-accept-request.json0000664000175000017500000000014000000000000031054 0ustar00zuulzuul00000000000000{ "key":"FUGXMZ5N", "zone_transfer_request_id":"794fdf58-6e1d-41da-8b2d-16b6d10c8827" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/create-zone-transfer-accept-response.json0000664000175000017500000000107000000000000031225 0ustar00zuulzuul00000000000000{ "status": "COMPLETE", "zone_id": "b4542f5a-f1ea-4ec1-b850-52db9dc3f465", "links": { "self": "http://10.0.4.46:9001/v2/zones/tasks/transfer_accepts/fe8c30f5-42f6-4af1-8cbf-e31a810d8c33", "zone": "http://10.0.4.46:9001/v2/zones/b4542f5a-f1ea-4ec1-b850-52db9dc3f465" }, "created_at": "2016-06-22 06:13:55", "updated_at": "null", "key": "FUGXMZ5N", "project_id": "2e43de7ce3504a8fb90a45382532c37e", "id": "fe8c30f5-42f6-4af1-8cbf-e31a810d8c33", "zone_transfer_request_id": "794fdf58-6e1d-41da-8b2d-16b6d10c8827" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/create-zone-transfer-request-request.json0000664000175000017500000000003200000000000031305 0ustar00zuulzuul00000000000000{ "project_id": "1" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/create-zone-transfer-request-response.json0000664000175000017500000000074200000000000031463 0ustar00zuulzuul00000000000000{ "created_at": "2014-07-17T20:34:40.882579", "description": null, "id": "f2ad17b5-807a-423f-a991-e06236c247be", "key": "9Z2R50Y0", "project_id": "1", "status": "ACTIVE", "target_project_id": "123456", "updated_at": null, "zone_id": "6b78734a-aef1-45cd-9708-8eb3c2d26ff8", "zone_name": "qa.dev.example.com.", "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/transfer_requests/f2ad17b5-807a-423f-a991-e06236c247be" } } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/delete-zone-response.json0000664000175000017500000000116200000000000026147 0ustar00zuulzuul00000000000000{ "id": "a86dba58-0043-4cc6-a1bb-69d5e86f3ca3", "pool_id": "572ba08c-d929-4c70-8e42-03824bb24ca2", "project_id": "4335d1f0-f793-11e2-b778-0800200c9a66", "name": "example.org.", "email": "joe@example.org", "ttl": 600, "serial": 1404757531, "status": "PENDING", "action": "DELETE", "description": "Updated Description", "masters": [], "type": "PRIMARY", "transferred_at": null, "version": 1, "created_at": "2014-07-07T18:25:31.275934", "updated_at": null, "links": { "self": "https://127.0.0.1:9001/v2/zones/a86dba58-0043-4cc6-a1bb-69d5e86f3ca3" } } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/list-zone-export-response.json0000664000175000017500000000165000000000000027201 0ustar00zuulzuul00000000000000{ "exports": [ { "status": "COMPLETE", "zone_id": "17a8d6b3-6ace-4857-b113-a707c5f975b1", "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/exports/204be410-0a9c-44b8-839e-bc4df3bb0d9a", "export": "http://127.0.0.1:9001/v2/zones/tasks/exports/204be410-0a9c-44b8-839e-bc4df3bb0d9a/export" }, "created_at": "2016-04-04T01:53:29.000000", "updated_at": "2016-04-04T01:53:29.000000", "version": 2, "location": "designate://v2/zones/tasks/exports/204be410-0a9c-44b8-839e-bc4df3bb0d9a/export", "message": null, "project_id": "1de6e2fdc22342d3bef6340c7b70f497", "id": "204be410-0a9c-44b8-839e-bc4df3bb0d9a" } ], "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/exports" }, "metadata": { "total_count": 1 } } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/list-zone-import-response.json0000664000175000017500000000272700000000000027200 0ustar00zuulzuul00000000000000{ "imports": [ { "status": "COMPLETE", "zone_id": "047888ee-e9dd-4c08-8b44-ab2e879e01bd", "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/imports/0436a86e-ffc1-4d38-82a7-d75170fcd2a9", "href": "http://127.0.0.1:9001/v2/zones/047888ee-e9dd-4c08-8b44-ab2e879e01bd" }, "created_at": "2016-04-05T06:03:06.000000", "updated_at": "2016-04-05T06:03:06.000000", "version": 2, "message": "example.com. imported", "project_id": "1de6e2fdc22342d3bef6340c7b70f497", "id": "0436a86e-ffc1-4d38-82a7-d75170fcd2a9" }, { "status": "COMPLETE", "zone_id": "68a17870-7f81-470a-b5e9-2753460fd6dc", "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/imports/f0aa4ac1-f975-46a4-b417-339acd1ea8e3", "href": "http://127.0.0.1:9001/v2/zones/68a17870-7f81-470a-b5e9-2753460fd6dc" }, "created_at": "2016-04-05T06:06:26.000000", "updated_at": "2016-04-05T06:06:26.000000", "version": 2, "message": "temp.org. imported", "project_id": "1de6e2fdc22342d3bef6340c7b70f497", "id": "f0aa4ac1-f975-46a4-b417-339acd1ea8e3" } ], "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/imports" }, "metadata": { "total_count": 2 } } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/list-zone-transfer-accept-response.json0000664000175000017500000000271200000000000030741 0ustar00zuulzuul00000000000000{ "metadata": { "total_count": 2 }, "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/transfer_accepts" }, "transfer_accepts": [{ "status": "COMPLETE", "zone_id": "8db93d1a-59e3-4143-a393-5821abea0a46", "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/afb4222b-18b3-44b3-9f54-e0dfdba1be44", "zone": "http://127.0.0.1:9001/v2/zones/8db93d1a-59e3-4143-a393-5821abea0a46" }, "created_at": "2016-06-01 05:35:35", "updated_at": "2016-06-01 05:35:35", "key": null, "project_id": "85604ecfb5334b50bd40ca53fc1d710f", "id": "afb4222b-18b3-44b3-9f54-e0dfdba1be44", "zone_transfer_request_id": "d223f7ef-77a6-459e-abd3-b4dbc97338e7" }, { "status": "COMPLETE", "zone_id": "925bfc45-8901-4aca-aa12-18afaf0879e2", "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/ecbc7091-c498-4ec4-9893-68b06297fe50", "zone": "http://127.0.0.1:9001/v2/zones/925bfc45-8901-4aca-aa12-18afaf0879e2" }, "created_at": "2016-06-01 10:06:36", "updated_at": "2016-06-01 10:06:37", "key": null, "project_id": "85604ecfb5334b50bd40ca53fc1d710f", "id": "ecbc7091-c498-4ec4-9893-68b06297fe50", "zone_transfer_request_id": "94cf9bd3-4137-430b-bf75-4e690430258c" } ] } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/list-zone-transfer-request-response.json0000664000175000017500000000231100000000000031165 0ustar00zuulzuul00000000000000{ "transfer_requests": [ { "created_at": "2014-07-17T20:34:40.882579", "description": "This was created by the requesting project", "id": "f2ad17b5-807a-423f-a991-e06236c247be", "key": "9Z2R50Y0", "project_id": "1", "status": "ACTIVE", "target_project_id": "123456", "updated_at": null, "zone_id": "6b78734a-aef1-45cd-9708-8eb3c2d26ff8", "zone_name": "qa.dev.example.com.", "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/transfer_requests/f2ad17b5-807a-423f-a991-e06236c247be" } }, { "description": "This is scoped to the requesting project", "id": "efd2d720-b0c4-43d4-99f7-d9b53e08860d", "zone_id": "2c4d5e37-f823-4bee-9859-031cb44f80e7", "zone_name": "subdomain.example.com.", "status": "ACTIVE", "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/transfer_requests/efd2d720-b0c4-43d4-99f7-d9b53e08860d" } } ], "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/transfer_requests" } } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/list-zones-response.json0000664000175000017500000000216700000000000026051 0ustar00zuulzuul00000000000000{ "zones": [ { "id": "a86dba58-0043-4cc6-a1bb-69d5e86f3ca3", "pool_id": "572ba08c-d929-4c70-8e42-03824bb24ca2", "project_id": "4335d1f0-f793-11e2-b778-0800200c9a66", "name": "example.org.", "email": "joe@example.org", "ttl": 7200, "serial": 1404757531, "status": "ACTIVE", "action": "CREATE", "description": "This is an example zone.", "masters": [], "type": "PRIMARY", "transferred_at": null, "version": 1, "created_at": "2014-07-07T18:25:31.275934", "updated_at": null, "attributes": { "tier": "gold", "ha": "true" }, "links": { "self": "https://127.0.0.1:9001/v2/zones/a86dba58-0043-4cc6-a1bb-69d5e86f3ca3" } } ], "links": { "self": "http://127.0.0.1:9001/v2/zones?limit=1", "next": "http://127.0.0.1:9001/v2/zones?limit=1&marker=45fd892d-7a67-4f65-9df0-87273f228d6c" }, "metadata": { "total_count": 2 } } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/show-zone-export-content.txt0000664000175000017500000000052200000000000026665 0ustar00zuulzuul00000000000000$ORIGIN example.com. $TTL 42 example.com. IN SOA ns.designate.com. nsadmin.example.com. ( 1394213803 ; serial 3600 ; refresh 600 ; retry 86400 ; expire 3600 ; minimum ) example.com. IN NS ns.designate.com. example.com. IN MX 10 mail.example.com. ns.example.com. IN A 10.0.0.1 mail.example.com. IN A 10.0.0.2 ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/show-zone-export-response.json0000664000175000017500000000117300000000000027206 0ustar00zuulzuul00000000000000{ "status": "COMPLETE", "zone_id": "6625198b-d67d-47dc-8d29-f90bd60f3ac4", "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/exports/8ec17fe1-d1f9-41b4-aa98-4eeb4c27b720", "export": "http://127.0.0.1:9001/v2/zones/tasks/exports/8ec17fe1-d1f9-41b4-aa98-4eeb4c27b720/export" }, "created_at": "2015-08-27T20:57:03.000000", "updated_at": "2015-08-27T20:57:03.000000", "version": 2, "location": "designate://v2/zones/tasks/exports/8ec17fe1-d1f9-41b4-aa98-4eeb4c27b720/export", "message": null, "project_id": "noauth-project", "id": "8ec17fe1-d1f9-41b4-aa98-4eeb4c27b720" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/show-zone-import-response.json0000664000175000017500000000102500000000000027173 0ustar00zuulzuul00000000000000{ "status": "COMPLETE", "zone_id": "6625198b-d67d-47dc-8d29-f90bd60f3ac4", "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/imports/074e805e-fe87-4cbb-b10b-21a06e215d41", "href": "http://127.0.0.1:9001/v2/zones/6625198b-d67d-47dc-8d29-f90bd60f3ac4" }, "created_at": "2015-05-08T15:43:42.000000", "updated_at": "2015-05-08T15:43:42.000000", "version": 2, "message": "example.com. imported", "project_id": "noauth-project", "id": "074e805e-fe87-4cbb-b10b-21a06e215d41" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/show-zone-nameservers-response.json0000664000175000017500000000017200000000000030215 0ustar00zuulzuul00000000000000{ "nameservers": [ { "hostname": "ns1.example.com.", "priority": 10 } ] } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/show-zone-transfer-request-response.json0000664000175000017500000000056200000000000031200 0ustar00zuulzuul00000000000000{ "description": "This is scoped to the requesting project", "id": "efd2d720-b0c4-43d4-99f7-d9b53e08860d", "zone_id": "2c4d5e37-f823-4bee-9859-031cb44f80e7", "zone_name": "subdomain.example.com.", "status": "ACTIVE", "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/transfer_requests/efd2d720-b0c4-43d4-99f7-d9b53e08860d" } } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/update-zone-request.json0000664000175000017500000000007500000000000026023 0ustar00zuulzuul00000000000000{ "ttl": 600, "description": "Updated Description" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/update-zone-response.json0000664000175000017500000000126200000000000026170 0ustar00zuulzuul00000000000000{ "id": "a86dba58-0043-4cc6-a1bb-69d5e86f3ca3", "pool_id": "572ba08c-d929-4c70-8e42-03824bb24ca2", "project_id": "4335d1f0-f793-11e2-b778-0800200c9a66", "name": "example.org.", "email": "joe@example.org", "ttl": 600, "serial": 1404757531, "status": "PENDING", "action": "UPDATE", "description": "Updated Description", "masters": [], "type": "PRIMARY", "transferred_at": null, "version": 1, "created_at": "2014-07-07T18:25:31.275934", "updated_at": null, "attributes": { "tier": "gold", "ha": "true" }, "links": { "self": "https://127.0.0.1:9001/v2/zones/a86dba58-0043-4cc6-a1bb-69d5e86f3ca3" } } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/update-zone-transfer-request-request.json0000664000175000017500000000013600000000000031331 0ustar00zuulzuul00000000000000{ "description": "This is scoped to the new project", "target_project_id": "987654" } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/update-zone-transfer-request-response.json0000664000175000017500000000061600000000000031502 0ustar00zuulzuul00000000000000{ "description": "This is scoped to the new project", "target_project_id": "987654", "id": "efd2d720-b0c4-43d4-99f7-d9b53e08860d", "zone_id": "2c4d5e37-f823-4bee-9859-031cb44f80e7", "zone_name": "subdomain.example.com.", "status": "ACTIVE", "links": { "self": "http://127.0.0.1:9001/v2/zones/tasks/transfer_requests/efd2d720-b0c4-43d4-99f7-d9b53e08860d" } } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/samples/zones/zone-response.json0000664000175000017500000000126700000000000024715 0ustar00zuulzuul00000000000000{ "id": "a86dba58-0043-4cc6-a1bb-69d5e86f3ca3", "pool_id": "572ba08c-d929-4c70-8e42-03824bb24ca2", "project_id": "4335d1f0-f793-11e2-b778-0800200c9a66", "name": "example.org.", "email": "joe@example.org", "ttl": 7200, "serial": 1404757531, "status": "ACTIVE", "action": "CREATE", "description": "This is an example zone.", "masters": [], "type": "PRIMARY", "transferred_at": null, "version": 1, "created_at": "2014-07-07T18:25:31.275934", "updated_at": null, "attributes": { "tier": "gold", "ha": "true" }, "links": { "self": "https://127.0.0.1:9001/v2/zones/a86dba58-0043-4cc6-a1bb-69d5e86f3ca3" } } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/api-ref/source/status.yaml0000664000175000017500000000303400000000000020612 0ustar00zuulzuul00000000000000 200: default: | Request was successful. 201: default: | Request has been fulfilled and new resource created. 202: default: | Request is accepted, but processing may take some time. 203: default: | Returned information is not full set, but a subset. 204: default: | Request fulfilled but service does not return anything. 300: default: | The resource corresponds to more than one representation. 400: default: | Some content in the request was invalid. 401: default: | User must authenticate before making a request. 403: default: | Policy does not allow current user to do this operation. 404: default: | The requested resource could not be found. 405: default: | Method is not valid for this endpoint and resource. 409: default: | This resource has an action in progress that would conflict with this request. 413: default: | This operation cannot be completed. 415: default: | The entity of the request is in a format not supported by the requested resource for the method. 500: default: | Something went wrong with the service which prevents it from fulfilling the request. 501: default: | The service does not have the functionality required to fulfill this request. 503: default: | The service cannot handle the request right now. ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/babel.cfg0000664000175000017500000000002100000000000015277 0ustar00zuulzuul00000000000000[python: **.py] ././@PaxHeader0000000000000000000000000000003300000000000011451 xustar000000000000000027 mtime=1638524437.712476 designate-10.0.2/contrib/0000775000175000017500000000000000000000000015220 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000003300000000000011451 xustar000000000000000027 mtime=1638524437.676475 designate-10.0.2/contrib/archive/0000775000175000017500000000000000000000000016641 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000003300000000000011451 xustar000000000000000027 mtime=1638524437.712476 designate-10.0.2/contrib/archive/backends/0000775000175000017500000000000000000000000020413 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000003300000000000011451 xustar000000000000000027 mtime=1638524437.712476 designate-10.0.2/contrib/archive/backends/impl_ipa/0000775000175000017500000000000000000000000022205 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/archive/backends/impl_ipa/__init__.py0000664000175000017500000004140600000000000024323 0ustar00zuulzuul00000000000000# Copyright 2014 Red Hat, Inc. # # Author: Rich Megginson # # 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. import pprint import time import requests from oslo_config import cfg from oslo_log import log as logging from oslo_serialization import jsonutils as json from oslo_utils import importutils from designate import exceptions from designate.backend import base from designate.i18n import _LE LOG = logging.getLogger(__name__) IPA_DEFAULT_PORT = 443 class IPABaseError(exceptions.Backend): error_code = 500 error_type = 'unknown_ipa_error' class IPAAuthError(IPABaseError): error_type = 'authentication_error' # map of designate domain parameters to the corresponding # ipa parameter # NOTE: ipa manages serial, and does not honor # increment_serial=False - this means the designate serial # and the ipa serial will diverge if updates are made # using increment_serial=False domain2ipa = {'ttl': 'dnsttl', 'email': 'idnssoarname', 'serial': 'idnssoaserial', 'expire': 'idnssoaexpire', 'minimum': 'idnssoaminimum', 'refresh': 'idnssoarefresh', 'retry': 'idnssoaretry'} # map of designate record types to ipa rectype2iparectype = {'A': ('arecord', '%(data)s'), 'AAAA': ('aaaarecord', '%(data)s'), 'MX': ('mxrecord', '%(data)s'), 'CNAME': ('cnamerecord', '%(data)s'), 'TXT': ('txtrecord', '%(data)s'), 'SRV': ('srvrecord', '%(data)s'), 'NS': ('nsrecord', '%(data)s'), 'PTR': ('ptrrecord', '%(data)s'), 'SPF': ('spfrecord', '%(data)s'), 'SSHFP': ('sshfprecord', '%(data)s'), 'NAPTR': ('naptrrecord', '%(data)s'), 'CAA': ('caarecord', '%(data)s'), } IPA_INVALID_DATA = 3009 IPA_NOT_FOUND = 4001 IPA_DUPLICATE = 4002 IPA_NO_CHANGES = 4202 class IPAUnknownError(IPABaseError): pass class IPACommunicationFailure(IPABaseError): error_type = 'communication_failure' pass class IPAInvalidData(IPABaseError): error_type = 'invalid_data' pass class IPADomainNotFound(IPABaseError): error_type = 'domain_not_found' pass class IPARecordNotFound(IPABaseError): error_type = 'record_not_found' pass class IPADuplicateDomain(IPABaseError): error_type = 'duplicate_domain' pass class IPADuplicateRecord(IPABaseError): error_type = 'duplicate_record' pass ipaerror2exception = { IPA_INVALID_DATA: { 'dnszone': IPAInvalidData, 'dnsrecord': IPAInvalidData }, IPA_NOT_FOUND: { 'dnszone': IPADomainNotFound, 'dnsrecord': IPARecordNotFound }, IPA_DUPLICATE: { 'dnszone': IPADuplicateDomain, 'dnsrecord': IPADuplicateRecord }, # NOTE: Designate will send updates with all fields # even if they have not changed value. If none of # the given values has changed, IPA will return # this error code - this can be ignored IPA_NO_CHANGES: { 'dnszone': None, 'dnsrecord': None } } def abs2rel_name(domain, rsetname): """convert rsetname from absolute form foo.bar.tld. to the name relative to the domain. For IPA, if domain is rsetname, then use "@" as the relative name. If rsetname does not end with a subset of the domain, the just return the raw rsetname """ if rsetname.endswith(domain): idx = rsetname.rfind(domain) if idx == 0: rsetname = "@" elif idx > 0: rsetname = rsetname[:idx].rstrip(".") return rsetname class IPABackend(base.Backend): __plugin_name__ = 'ipa' @classmethod def get_cfg_opts(cls): group = cfg.OptGroup( name='backend:ipa', title="Configuration for IPA Backend" ) opts = [ cfg.StrOpt('ipa-host', default='localhost.localdomain', help='IPA RPC listener host - must be FQDN'), cfg.IntOpt('ipa-port', default=IPA_DEFAULT_PORT, help='IPA RPC listener port'), cfg.StrOpt('ipa-client-keytab', help='Kerberos client keytab file'), cfg.StrOpt('ipa-auth-driver-class', default='designate.backend.impl_ipa.auth.IPAAuth', help='Class that implements the authentication ' 'driver for IPA'), cfg.StrOpt('ipa-ca-cert', help='CA certificate for use with https to IPA'), cfg.StrOpt('ipa-base-url', default='/ipa', help='Base URL for IPA RPC, relative to host[:port]'), cfg.StrOpt('ipa-json-url', default='/json', help='URL for IPA JSON RPC, relative to IPA base URL'), cfg.IntOpt('ipa-connect-retries', default=1, help='How many times Designate will attempt to retry ' 'the connection to IPA before giving up'), cfg.BoolOpt('ipa-force-ns-use', default=False, help='IPA requires that a specified ' 'name server or SOA MNAME is resolvable - if this ' 'option is set, Designate will force IPA to use a ' 'given name server even if it is not resolvable'), cfg.StrOpt('ipa-version', default='2.65', help='IPA RPC JSON version') ] return [(group, opts)] def start(self): LOG.debug('IPABackend start') self.request = requests.Session() authclassname = cfg.CONF[self.name].ipa_auth_driver_class authclass = importutils.import_class(authclassname) self.request.auth = \ authclass(cfg.CONF[self.name].ipa_client_keytab, cfg.CONF[self.name].ipa_host) ipa_base_url = cfg.CONF[self.name].ipa_base_url if ipa_base_url.startswith("http"): # full URL self.baseurl = ipa_base_url else: # assume relative to https://host[:port] self.baseurl = "https://" + cfg.CONF[self.name].ipa_host ipa_port = cfg.CONF[self.name].ipa_port if ipa_port != IPA_DEFAULT_PORT: self.baseurl += ":" + str(ipa_port) self.baseurl += ipa_base_url ipa_json_url = cfg.CONF[self.name].ipa_json_url if ipa_json_url.startswith("http"): # full URL self.jsonurl = ipa_json_url else: # assume relative to https://host[:port] self.jsonurl = self.baseurl + ipa_json_url xtra_hdrs = {'Content-Type': 'application/json', 'Referer': self.baseurl} self.request.headers.update(xtra_hdrs) self.request.verify = cfg.CONF[self.name].ipa_ca_cert self.ntries = cfg.CONF[self.name].ipa_connect_retries self.force = cfg.CONF[self.name].ipa_force_ns_use def create_zone(self, context, zone): LOG.debug('Create Zone %r' % zone) ipareq = {'method': 'dnszone_add', 'id': 0} params = [zone['name']] servers = self.central_service.get_zone_ns_records(self.admin_context) # just use the first one for zone creation - add the others # later, below - use force because designate assumes the NS # already exists somewhere, is resolvable, and already has # an A/AAAA record args = {'idnssoamname': servers[0]['name']} if self.force: args['force'] = True for dkey, ipakey in list(domain2ipa.items()): if dkey in zone: args[ipakey] = zone[dkey] ipareq['params'] = [params, args] self._call_and_handle_error(ipareq) # add NS records for all of the other servers if len(servers) > 1: ipareq = {'method': 'dnsrecord_add', 'id': 0} params = [zone['name'], "@"] args = {'nsrecord': servers[1:]} if self.force: args['force'] = True ipareq['params'] = [params, args] self._call_and_handle_error(ipareq) def update_zone(self, context, zone): LOG.debug('Update Zone %r' % zone) ipareq = {'method': 'dnszone_mod', 'id': 0} params = [zone['name']] args = {} for dkey, ipakey in list(domain2ipa.items()): if dkey in zone: args[ipakey] = zone[dkey] ipareq['params'] = [params, args] self._call_and_handle_error(ipareq) def delete_zone(self, context, zone): LOG.debug('Delete Zone %r' % zone) ipareq = {'method': 'dnszone_del', 'id': 0} params = [zone['name']] args = {} ipareq['params'] = [params, args] self._call_and_handle_error(ipareq) def create_recordset(self, context, domain, recordset): LOG.debug('Discarding create_recordset call, not-applicable') def update_recordset(self, context, domain, recordset): LOG.debug('Update RecordSet %r / %r' % (domain, recordset)) # designate allows to update a recordset if there are no # records in it - we should ignore this case if not self._recset_has_records(context, recordset): LOG.debug('No records in %r / %r - skipping' % (domain, recordset)) return # The only thing IPA allows is to change the ttl, since that is # stored "per recordset" if 'ttl' not in recordset: return ipareq = {'method': 'dnsrecord_mod', 'id': 0} dname = domain['name'] rsetname = abs2rel_name(dname, recordset['name']) params = [domain['name'], rsetname] args = {'dnsttl': recordset['ttl']} ipareq['params'] = [params, args] self._call_and_handle_error(ipareq) def delete_recordset(self, context, domain, recordset): LOG.debug('Delete RecordSet %r / %r' % (domain, recordset)) # designate allows to delete a recordset if there are no # records in it - we should ignore this case if not self._recset_has_records(context, recordset): LOG.debug('No records in %r / %r - skipping' % (domain, recordset)) return ipareq = {'method': 'dnsrecord_mod', 'id': 0} dname = domain['name'] rsetname = abs2rel_name(dname, recordset['name']) params = [domain['name'], rsetname] rsettype = rectype2iparectype[recordset['type']][0] args = {rsettype: None} ipareq['params'] = [params, args] self._call_and_handle_error(ipareq) def create_record(self, context, domain, recordset, record): LOG.debug('Create Record %r / %r / %r' % (domain, recordset, record)) ipareq = {'method': 'dnsrecord_add', 'id': 0} params, args = self._rec_to_ipa_rec(domain, recordset, [record]) ipareq['params'] = [params, args] self._call_and_handle_error(ipareq) def update_record(self, context, domain, recordset, record): LOG.debug('Update Record %r / %r / %r' % (domain, recordset, record)) # for modify operations - IPA does not support a way to change # a particular field in a given record - e.g. for an MX record # with several values, IPA stores them like this: # name: "server1.local." # data: ["10 mx1.server1.local.", "20 mx2.server1.local."] # we could do a search of IPA, compare the values in the # returned array - but that adds an additional round trip # and is error prone # instead, we just get all of the current values and send # them in one big modify criteria = {'recordset_id': record['recordset_id']} reclist = self.central_service.find_records(self.admin_context, criteria) ipareq = {'method': 'dnsrecord_mod', 'id': 0} params, args = self._rec_to_ipa_rec(domain, recordset, reclist) ipareq['params'] = [params, args] self._call_and_handle_error(ipareq) def delete_record(self, context, domain, recordset, record): LOG.debug('Delete Record %r / %r / %r' % (domain, recordset, record)) ipareq = {'method': 'dnsrecord_del', 'id': 0} params, args = self._rec_to_ipa_rec(domain, recordset, [record]) args['del_all'] = 0 ipareq['params'] = [params, args] self._call_and_handle_error(ipareq) def ping(self, context): LOG.debug('Ping') # NOTE: This call will cause ipa to issue an error, but # 1) it should not throw an exception # 2) the response will indicate ipa is running # 3) the bandwidth usage is minimal ipareq = {'method': 'dnszone_show', 'id': 0} params = ['@'] args = {} ipareq['params'] = [params, args] retval = {'result': True} try: self._call_and_handle_error(ipareq) except Exception as e: retval = {'result': False, 'reason': str(e)} return retval def _rec_to_ipa_rec(self, domain, recordset, reclist): dname = domain['name'] rsetname = abs2rel_name(dname, recordset['name']) params = [dname, rsetname] rectype = recordset['type'] vals = [] for record in reclist: vals.append(rectype2iparectype[rectype][1] % record) args = {rectype2iparectype[rectype][0]: vals} ttl = recordset.get('ttl') or domain.get('ttl') if ttl is not None: args['dnsttl'] = ttl return params, args def _ipa_error_to_exception(self, resp, ipareq): exc = None if resp['error'] is None: return exc errcode = resp['error']['code'] method = ipareq['method'] methtype = method.split('_')[0] exclass = ipaerror2exception.get(errcode, {}).get(methtype, IPAUnknownError) if exclass: LOG.debug("Error: ipa command [%s] returned error [%s]" % (pprint.pformat(ipareq), pprint.pformat(resp))) elif errcode: # not mapped LOG.debug("Ignoring IPA error code %d: %s" % (errcode, pprint.pformat(resp))) return exclass def _call_and_handle_error(self, ipareq): if 'version' not in ipareq['params'][1]: ipareq['params'][1]['version'] = cfg.CONF[self.name].ipa_version need_reauth = False while True: status_code = 200 try: if need_reauth: self.request.auth.refresh_auth() rawresp = self.request.post(self.jsonurl, data=json.dumps(ipareq)) status_code = rawresp.status_code except IPAAuthError: status_code = 401 if status_code == 401: if self.ntries == 0: # persistent inability to auth LOG.error(_LE("Error: could not authenticate to IPA - " "please check for correct keytab file")) # reset for next time self.ntries = cfg.CONF[self.name].ipa_connect_retries raise IPACommunicationFailure() else: LOG.debug("Refresh authentication") need_reauth = True self.ntries -= 1 time.sleep(1) else: # successful - reset self.ntries = cfg.CONF[self.name].ipa_connect_retries break try: resp = json.loads(rawresp.text) except ValueError: # response was not json - some sort of error response LOG.debug("Error: unknown error from IPA [%s]" % rawresp.text) raise IPAUnknownError("unable to process response from IPA") # raise the appropriate exception, if error exclass = self._ipa_error_to_exception(resp, ipareq) if exclass: # could add additional info/message to exception here raise exclass() return resp def _recset_has_records(self, context, recordset): """Return True if the recordset has records, False otherwise""" criteria = {'recordset_id': recordset['id']} num = self.central_service.count_records(self.admin_context, criteria) return num > 0 ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/archive/backends/impl_ipa/auth.py0000664000175000017500000000416000000000000023521 0ustar00zuulzuul00000000000000# Copyright 2014 Red Hat, Inc. # # Author: Rich Megginson # # 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. import os import logging from requests import auth import kerberos from designate.utils import generate_uuid from designate.backend.impl_ipa import IPAAuthError from designate.i18n import _LW from designate.i18n import _LE LOG = logging.getLogger(__name__) class IPAAuth(auth.AuthBase): def __init__(self, keytab, hostname): # store the kerberos credentials in memory rather than on disk os.environ['KRB5CCNAME'] = "MEMORY:" + generate_uuid() self.token = None self.keytab = keytab self.hostname = hostname if self.keytab: os.environ['KRB5_CLIENT_KTNAME'] = self.keytab else: LOG.warning(_LW('No IPA client kerberos keytab file given')) def __call__(self, request): if not self.token: self.refresh_auth() request.headers['Authorization'] = 'negotiate ' + self.token return request def refresh_auth(self): service = "HTTP@" + self.hostname flags = kerberos.GSS_C_MUTUAL_FLAG | kerberos.GSS_C_SEQUENCE_FLAG try: (_, vc) = kerberos.authGSSClientInit(service, flags) except kerberos.GSSError as e: LOG.error(_LE("caught kerberos exception %r") % e) raise IPAAuthError(str(e)) try: kerberos.authGSSClientStep(vc, "") except kerberos.GSSError as e: LOG.error(_LE("caught kerberos exception %r") % e) raise IPAAuthError(str(e)) self.token = kerberos.authGSSClientResponse(vc) ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/archive/backends/impl_multi.py0000664000175000017500000001243000000000000023140 0ustar00zuulzuul00000000000000# Copyright (C) 2013 eNovance SAS # # Author: Artom Lifshitz # # 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. import logging from oslo_config import cfg from oslo_utils import excutils from designate import backend from designate.backend import base LOG = logging.getLogger(__name__) CFG_GROUP = 'backend:multi' class MultiBackend(base.Backend): """ Multi-backend backend This backend dispatches calls to a master backend and a slave backend. It enforces master/slave ordering semantics as follows: Creates for tsigkeys, servers and domains are done on the master first, then on the slave. Updates for tsigkeys, servers and domains and all operations on records are done on the master only. It's assumed masters and slaves use an external mechanism to sync existing domains, most likely XFR. Deletes are done on the slave first, then on the master. If the create on the slave fails, the domain/tsigkey/server is deleted from the master. If delete on the master fails, the domain/tdigkey/server is recreated on the slave. """ __plugin_name__ = 'multi' @classmethod def get_cfg_opts(cls): group = cfg.OptGroup( name=CFG_GROUP, title="Configuration for multi-backend Backend" ) opts = [ cfg.StrOpt('master', default='fake', help='Master backend'), cfg.StrOpt('slave', default='fake', help='Slave backend'), ] return [(group, opts)] def __init__(self, central_service): super(MultiBackend, self).__init__(central_service) self.central = central_service self.master = backend.get_backend(cfg.CONF[CFG_GROUP].master, central_service) self.slave = backend.get_backend(cfg.CONF[CFG_GROUP].slave, central_service) def start(self): self.master.start() self.slave.start() def stop(self): self.slave.stop() self.master.stop() def create_tsigkey(self, context, tsigkey): self.master.create_tsigkey(context, tsigkey) try: self.slave.create_tsigkey(context, tsigkey) except Exception: with excutils.save_and_reraise_exception(): self.master.delete_tsigkey(context, tsigkey) def update_tsigkey(self, context, tsigkey): self.master.update_tsigkey(context, tsigkey) def delete_tsigkey(self, context, tsigkey): self.slave.delete_tsigkey(context, tsigkey) try: self.master.delete_tsigkey(context, tsigkey) except Exception: with excutils.save_and_reraise_exception(): self.slave.create_tsigkey(context, tsigkey) def create_zone(self, context, zone): self.master.create_zone(context, zone) try: self.slave.create_zone(context, zone) except Exception: with excutils.save_and_reraise_exception(): self.master.delete_zone(context, zone) def update_zone(self, context, zone): self.master.update_zone(context, zone) def delete_zone(self, context, zone): # Fetch the full zone from Central first, as we may # have to recreate it on slave if delete on master fails deleted_context = context.deepcopy() deleted_context.show_deleted = True full_domain = self.central.find_zone( deleted_context, {'id': zone['id']}) self.slave.delete_zone(context, zone) try: self.master.delete_zone(context, zone) except Exception: with excutils.save_and_reraise_exception(): self.slave.create_zone(context, zone) [self.slave.create_record(context, zone, record) for record in self.central.find_records( context, {'domain_id': full_domain['id']})] def create_recordset(self, context, zone, recordset): self.master.create_recordset(context, zone, recordset) def update_recordset(self, context, zone, recordset): self.master.update_recordset(context, zone, recordset) def delete_recordset(self, context, zone, recordset): self.master.delete_recordset(context, zone, recordset) def create_record(self, context, zone, recordset, record): self.master.create_record(context, zone, recordset, record) def update_record(self, context, zone, recordset, record): self.master.update_record(context, zone, recordset, record) def delete_record(self, context, zone, recordset, record): self.master.delete_record(context, zone, recordset, record) def ping(self, context): return { 'master': self.master.ping(context), 'slave': self.slave.ping(context) } ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/consume.py0000664000175000017500000000232500000000000017245 0ustar00zuulzuul00000000000000# Copyright 2016 Rackspace, Inc. # # Author: Tim Simmons # # 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. """ This dumb script allows you to see what's being dumped onto the notifications.info queue nabbed from: https://pika.readthedocs.io/en/latest/examples/blocking_consume.html """ import pika def on_message(channel, method_frame, header_frame, body): print(method_frame.delivery_tag) print(body) channel.basic_ack(delivery_tag=method_frame.delivery_tag) connection = pika.BlockingConnection() channel = connection.channel() channel.basic_consume(on_message, 'notifications.info') try: channel.start_consuming() except KeyboardInterrupt: channel.stop_consuming() connection.close() ././@PaxHeader0000000000000000000000000000003300000000000011451 xustar000000000000000027 mtime=1638524437.716476 designate-10.0.2/contrib/designate-ext-samplehandler/0000775000175000017500000000000000000000000022576 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/designate-ext-samplehandler/.gitignore0000664000175000017500000000032200000000000024563 0ustar00zuulzuul00000000000000*.pyc *.dat TAGS *.egg* build .coverage .tox cover venv .venv *.sublime-workspace *.sqlite var/* etc/*.conf etc/*.ini AUTHORS ChangeLog doc/source/api/* doc/build/* dist designate_ext_samplehandler/versioninfo ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/designate-ext-samplehandler/MANIFEST.in0000664000175000017500000000031700000000000024335 0ustar00zuulzuul00000000000000include AUTHORS include ChangeLog include designate_ext_samplehandler/versioninfo include *.txt *.ini *.cfg *.rst *.md exclude .gitignore exclude .gitreview exclude *.sublime-project global-exclude *.pyc ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/designate-ext-samplehandler/README.rst0000664000175000017500000000024700000000000024270 0ustar00zuulzuul00000000000000Sample Designate Notification Handler Extension =============================================== This repo provides a sample plugin for a custom notification handler. ././@PaxHeader0000000000000000000000000000003300000000000011451 xustar000000000000000027 mtime=1638524437.716476 designate-10.0.2/contrib/designate-ext-samplehandler/designate_ext_samplehandler/0000775000175000017500000000000000000000000030320 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/designate-ext-samplehandler/designate_ext_samplehandler/__init__.py0000664000175000017500000000000000000000000032417 0ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000021300000000000011451 xustar0000000000000000112 path=designate-10.0.2/contrib/designate-ext-samplehandler/designate_ext_samplehandler/notification_handler/ 27 mtime=1638524437.716476 designate-10.0.2/contrib/designate-ext-samplehandler/designate_ext_samplehandler/notification_handle0000775000175000017500000000000000000000000034242 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000022100000000000011450 xustar0000000000000000123 path=designate-10.0.2/contrib/designate-ext-samplehandler/designate_ext_samplehandler/notification_handler/__init__.py 22 mtime=1638524406.0 designate-10.0.2/contrib/designate-ext-samplehandler/designate_ext_samplehandler/notification_handle0000664000175000017500000000000000000000000034232 0ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000021700000000000011455 xustar0000000000000000121 path=designate-10.0.2/contrib/designate-ext-samplehandler/designate_ext_samplehandler/notification_handler/sample.py 22 mtime=1638524406.0 designate-10.0.2/contrib/designate-ext-samplehandler/designate_ext_samplehandler/notification_handle0000664000175000017500000000526400000000000034253 0ustar00zuulzuul00000000000000# Copyright 2013 Hewlett-Packard Development Company, L.P. # # Author: Kiall Mac Innes # # 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 oslo_config import cfg from oslo_log import log as logging from designate.context import DesignateContext from designate.objects import Record from designate.notification_handler.base import NotificationHandler LOG = logging.getLogger(__name__) # Setup a config group cfg.CONF.register_group(cfg.OptGroup( name='handler:sample', title="Configuration for Sample Notification Handler" )) # Setup the config options cfg.CONF.register_opts([ cfg.StrOpt('control-exchange', default='nova'), cfg.ListOpt('notification-topics', default=['designate']), cfg.StrOpt('zone-name', default='example.org.'), cfg.StrOpt('zone-id', default='12345'), ], group='handler:sample') class SampleHandler(NotificationHandler): """Sample Handler""" __plugin_name__ = 'sample' def get_exchange_topics(self): """ Return a tuple of (exchange, [topics]) this handler wants to receive events from. """ exchange = cfg.CONF[self.name].control_exchange topics = [topic for topic in cfg.CONF[self.name].notification_topics] return exchange, topics def get_event_types(self): return [ 'compute.instance.create.end' ] def process_notification(self, context, event_type, payload): # Do something with the notification.. e.g: zone_id = cfg.CONF[self.name].zone_id zone_name = cfg.CONF[self.name].zone_name record_name = '%s.%s' % (payload['instance_id'], zone_name) context = DesignateContext().elevated() context.all_tenants = True # context.edit_managed_records = True for fixed_ip in payload['fixed_ips']: recordset_values = { 'zone_id': zone_id, 'name': record_name, 'type': 'A' if fixed_ip['version'] == 4 else 'AAAA' } record_values = { 'data': fixed_ip['address'], } self._create_or_update_recordset( context, [Record(**record_values)], **recordset_values ) ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/designate-ext-samplehandler/designate_ext_samplehandler/version.py0000664000175000017500000000134300000000000032360 0ustar00zuulzuul00000000000000# Copyright 2013 Hewlett-Packard Development Company, L.P. # # Author: Kiall Mac Innes # # 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. import pbr.version version_info = pbr.version.VersionInfo('designate-ext-samplehandler') ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/designate-ext-samplehandler/requirements.txt0000664000175000017500000000011600000000000026060 0ustar00zuulzuul00000000000000pbr>=0.6,<1.0 -e git+https://github.com/openstack/designate.git#egg=designate ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/designate-ext-samplehandler/setup.cfg0000664000175000017500000000255500000000000024426 0ustar00zuulzuul00000000000000[metadata] name = designate-ext-samplehandler summary = Sample Designate Handler Extension description-file = README.rst author = Kiall Mac Innes author-email = kiall@hp.com classifier = Environment :: OpenStack Intended Audience :: Information Technology Intended Audience :: System Administrators License :: OSI Approved :: Apache Software License Operating System :: POSIX :: Linux Programming Language :: Python Programming Language :: Python :: 2 Programming Language :: Python :: 2.7 Programming Language :: Python :: 2.6 [global] setup-hooks = pbr.hooks.setup_hook [files] packages = designate_ext_samplehandler [entry_points] designate.notification.handler = sample = designate_ext_samplehandler.notification_handler.sample:SampleHandler [build_sphinx] all_files = 1 build-dir = doc/build source-dir = doc/source [egg_info] tag_build = tag_date = 0 tag_svn_revision = 0 [compile_catalog] directory = designate-ext-samplehandler/locale domain = designate-ext-samplehandler [update_catalog] domain = designate-ext-samplehandler output_dir = designate-ext-samplehandler/locale input_file = designate-ext-samplehandler/locale/designate-ext-samplehandler.pot [extract_messages] keywords = _ gettext ngettext l_ lazy_gettext mapping_file = babel.cfg output_file = designate-ext-samplehandler/locale/designate-ext-samplehandler.pot ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/designate-ext-samplehandler/setup.py0000775000175000017500000000141500000000000024314 0ustar00zuulzuul00000000000000#!/usr/bin/env python # Copyright (c) 2013 Hewlett-Packard Development Company, L.P. # # 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. # THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT import setuptools setuptools.setup( setup_requires=['pbr'], pbr=True) ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/designate-ext-samplehandler/test-requirements.txt0000664000175000017500000000002400000000000027033 0ustar00zuulzuul00000000000000hacking>=0.8.0,<0.9 ././@PaxHeader0000000000000000000000000000003300000000000011451 xustar000000000000000027 mtime=1638524437.716476 designate-10.0.2/contrib/djbdns/0000775000175000017500000000000000000000000016464 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/djbdns/tinydns.init0000775000175000017500000000477000000000000021054 0ustar00zuulzuul00000000000000#! /bin/bash ### BEGIN INIT INFO # Provides: tinydns # Required-Start: $local_fs $remote_fs $network # Required-Stop: $local_fs $remote_fs $network # Should-Start: $syslog # Should-Stop: $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: tinydns daemon processes # Description: Start the TinyDNS resolver ### END INIT INFO # Documentation # man tinydns # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. . /lib/lsb/init-functions NAME=tinydns DAEMON=/usr/bin/$NAME DAEMON_USER=djbdns DESC="the tinydns daemon" ROOTDIR=/var/lib/djbdns PATH=/sbin:/bin:/usr/sbin:/usr/bin LAUNCHER=/usr/bin/envuidgid LAUNCHER_ARGS="$DAEMON_USER envdir ./env softlimit -d300000 $DAEMON" PIDFILE=/run/$NAME.pid # Exit if executable is not installed [ -x "$DAEMON" ] || exit 0 set -x case "$1" in start) if [ ! -d "$ROOTDIR" ]; then log_action_msg "Not starting $DESC: $ROOTDIR is missing." exit 0 fi log_action_begin_msg "Starting $DESC" if start-stop-daemon --stop --signal 0 --quiet --pidfile $PIDFILE --exec $DAEMON; then log_action_end_msg 0 "already running" else if start-stop-daemon --start --verbose --make-pidfile --chdir $ROOTDIR --pidfile $PIDFILE --exec $LAUNCHER -- $LAUNCHER_ARGS then log_action_end_msg 0 else log_action_end_msg 1 exit 1 fi fi ;; stop) log_action_begin_msg "Stopping $DESC" pid=$(cat $PIDFILE 2>/dev/null) || true if test ! -f $PIDFILE -o -z "$pid"; then log_action_end_msg 0 "not running - there is no $PIDFILE" exit 0 fi if start-stop-daemon --stop --signal INT --quiet --pidfile $PIDFILE --exec $DAEMON; then rm -f $PIDFILE elif kill -0 $pid 2>/dev/null; then log_action_end_msg 1 "Is $pid not $NAME? Is $DAEMON a different binary now?" exit 1 else log_action_end_msg 1 "$DAEMON died: process $pid not running; or permission denied" exit 1 fi ;; reload) echo "Not implemented, use restart" exit 1 ;; restart|force-reload) $0 stop $0 start ;; status) if test ! -r $(dirname $PIDFILE); then log_failure_msg "cannot read PID file $PIDFILE" exit 4 fi pid=$(cat $PIDFILE 2>/dev/null) || true if test ! -f $PIDFILE -o -z "$pid"; then log_failure_msg "$NAME is not running" exit 3 fi if ps "$pid" >/dev/null 2>&1; then log_success_msg "$NAME is running" exit 0 else log_failure_msg "$NAME is not running" exit 1 fi ;; *) log_action_msg "Usage: $0 {start|stop|restart|force-reload|status}" >&2 exit 1 ;; esac exit 0 ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/djbdns/tinydns.service0000664000175000017500000000165300000000000021543 0ustar00zuulzuul00000000000000# # Replace /var/lib/djbdns if needed # [Unit] Description=tinydns DNS resolver Documentation=man:tinydns Documentation=https://cr.yp.to/djbdns.html After=network.target Requires=network.target Wants=network.target ConditionPathExists=/var/lib/djbdns [Service] Type=forking PIDFile=/run/tinydns.pid Environment="ROOT=/var/lib/djbdns" ExecStart=/usr/bin/tinydns ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry=TERM/5/KILL/5 --pidfile /run/tinydns.pid TimeoutStopSec=30 KillMode=mixed PermissionsStartOnly=true Restart=on-abnormal RestartSec=2s LimitNOFILE=65536 WorkingDirectory=/var/lib/djbdns User=$ug_name Group=$ug_name # Hardening # CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_CHOWN CAP_FOWNER NoNewPrivileges=yes PrivateDevices=yes PrivateTmp=yes ProtectHome=yes ProtectSystem=full # TODO: restrict ReadOnlyDirectories ReadOnlyDirectories=/ ReadWriteDirectories=-/var/lib/djbdns [Install] WantedBy=multi-user.target ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/dns_dump_dnspy.py0000775000175000017500000000172200000000000020625 0ustar00zuulzuul00000000000000#!/usr/bin/env python # Copyright 2014 Hewlett-Packard Development Company, L.P. # # Author: Kiall Mac Innes # # 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. import binascii import dns import dns.message import dns.rdatatype # Prepare a Packet request = dns.message.make_query( qname='example.com.', rdtype=dns.rdatatype.A, ) request.set_opcode(dns.opcode.UPDATE) # Print the hex representation of the Request print(binascii.b2a_hex(request.to_wire())) ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/dns_dump_hex_to_text.py0000664000175000017500000000153700000000000022023 0ustar00zuulzuul00000000000000#!/usr/bin/env python # Copyright 2014 Hewlett-Packard Development Company, L.P. # # Author: Kiall Mac Innes # # 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. import binascii import sys import dns import dns.message import dns.rdatatype unhexed = binascii.unhexlify(sys.argv[1]) response = dns.message.from_wire(unhexed) print(response.to_text()) ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/dns_dump_raw.py0000775000175000017500000000160500000000000020261 0ustar00zuulzuul00000000000000#!/usr/bin/env python # Copyright 2014 Hewlett-Packard Development Company, L.P. # # Author: Kiall Mac Innes # # 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. import sys import binascii import dns import dns.message wire = sys.argv[1] # Prepare the Message message = dns.message.from_wire(binascii.a2b_hex(wire)) # Print the test representation of the message print(message.to_text()) ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/dns_dump_server.py0000775000175000017500000000201600000000000020773 0ustar00zuulzuul00000000000000#!/usr/bin/env python # Copyright 2014 Hewlett-Packard Development Company, L.P. # # Author: Kiall Mac Innes # # 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. import socket import binascii # Bind to UDP 5355 sock_udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock_udp.bind(('', 5355)) # Receive a Packet payload, addr = sock_udp.recvfrom(8192) # Print the hex representation of the packet print(binascii.b2a_hex(payload)) # The request just happens to be a kinda-ish valid response sock_udp.sendto(payload, addr) ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/fixleadingzeros.py0000775000175000017500000000773000000000000021001 0ustar00zuulzuul00000000000000#!/usr/bin/env python # Copyright (C) 2018 Verizon # # Author: Graham Hayes # # 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. import sys import argparse import logging import dns.exception from dns.ipv4 import inet_aton import netaddr from designateclient.v2 import client from designateclient import shell from keystoneauth1.identity import generic from keystoneauth1 import session as keystone_session auth = generic.Password( auth_url=shell.env('OS_AUTH_URL'), username=shell.env('OS_USERNAME'), password=shell.env('OS_PASSWORD'), project_name=shell.env('OS_PROJECT_NAME'), project_domain_id=shell.env('OS_PROJECT_DOMAIN_ID'), user_domain_id=shell.env('OS_USER_DOMAIN_ID')) session = keystone_session.Session(auth=auth) client = client.Client(session=session) logging.basicConfig() LOG = logging.getLogger('fixleadingzeros') def find_bad_recordsets(): bad_recordsets = {} LOG.debug("Looking for all A recordsets") recordsets = client.recordsets.list_all_zones(criterion={'type': 'A', }) LOG.debug("Found %d A recordsets", len(recordsets)) LOG.debug("Filtering recordsets") for recordset in recordsets: for record in recordset['records']: try: inet_aton(record) except dns.exception.SyntaxError: bad_recordsets[recordset['id']] = recordset LOG.debug("Found %d A invaild recordsets", len(bad_recordsets)) return bad_recordsets def show_recordsets(recordsets): for rs in recordsets: LOG.info( ("%(name)s - %(records)s - Zone ID: %(zone_id)s - " "Project ID: %(project_id)s ") % recordsets[rs]) def fix_bad_recordsets(bad_recordsets): LOG.debug("Removing leading zeros in IPv4 addresses") for rs in bad_recordsets: new_records = [] for ip in bad_recordsets[rs]['records']: new_records.append( str(netaddr.IPAddress(ip, flags=netaddr.ZEROFILL).ipv4()) ) bad_recordsets[rs]['records'] = new_records return bad_recordsets def update_recordsets(recordsets): LOG.info("Updating recordsets") for rs in recordsets: LOG.debug(("Updating %(name)s - %(records)s - Zone ID: %(zone_id)s - " "Project ID: %(project_id)s ") % recordsets[rs]) client.recordsets.update( recordsets[rs]['zone_id'], recordsets[rs]['id'], {'records': recordsets[rs]['records']} ) def main(): parser = argparse.ArgumentParser( description='Fix any recordsets that have leading zeros in A records') parser.add_argument('-v', '--verbose', action='store_true', help='verbose output') parser.add_argument('-d', '--dry-run', action='store_true', help='do not modify records, just log bad records') parser.add_argument('-a', '--all-projects', action='store_true', help="Run on all projects") args = parser.parse_args() if args.verbose: LOG.setLevel(logging.DEBUG) else: LOG.setLevel(logging.INFO) if args.all_projects: client.session.all_projects = True bad_recordsets = find_bad_recordsets() LOG.info("Bad recordsets") show_recordsets(bad_recordsets) fixed_recordsets = fix_bad_recordsets(bad_recordsets) LOG.info("Fixed recordsets") show_recordsets(fixed_recordsets) if not args.dry_run: update_recordsets(fixed_recordsets) if __name__ == '__main__': sys.exit(main()) ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/public_suffix_list.dat0000664000175000017500000023731100000000000021616 0ustar00zuulzuul00000000000000ac com.ac edu.ac gov.ac net.ac mil.ac org.ac ad nom.ad ae co.ae net.ae org.ae sch.ae ac.ae gov.ae mil.ae aero accident-investigation.aero accident-prevention.aero aerobatic.aero aeroclub.aero aerodrome.aero agents.aero aircraft.aero airline.aero airport.aero air-surveillance.aero airtraffic.aero air-traffic-control.aero ambulance.aero amusement.aero association.aero author.aero ballooning.aero broker.aero caa.aero cargo.aero catering.aero certification.aero championship.aero charter.aero civilaviation.aero club.aero conference.aero consultant.aero consulting.aero control.aero council.aero crew.aero design.aero dgca.aero educator.aero emergency.aero engine.aero engineer.aero entertainment.aero equipment.aero exchange.aero express.aero federation.aero flight.aero freight.aero fuel.aero gliding.aero government.aero groundhandling.aero group.aero hanggliding.aero homebuilt.aero insurance.aero journal.aero journalist.aero leasing.aero logistics.aero magazine.aero maintenance.aero media.aero microlight.aero modelling.aero navigation.aero parachuting.aero paragliding.aero passenger-association.aero pilot.aero press.aero production.aero recreation.aero repbody.aero res.aero research.aero rotorcraft.aero safety.aero scientist.aero services.aero show.aero skydiving.aero software.aero student.aero trader.aero trading.aero trainer.aero union.aero workinggroup.aero works.aero af gov.af com.af org.af net.af edu.af ag com.ag org.ag net.ag co.ag nom.ag ai off.ai com.ai net.ai org.ai al com.al edu.al gov.al mil.al net.al org.al am ao ed.ao gv.ao og.ao co.ao pb.ao it.ao aq ar com.ar edu.ar gob.ar gov.ar int.ar mil.ar musica.ar net.ar org.ar tur.ar arpa e164.arpa in-addr.arpa ip6.arpa iris.arpa uri.arpa urn.arpa as gov.as asia at ac.at co.at gv.at or.at au com.au net.au org.au edu.au gov.au asn.au id.au info.au conf.au oz.au act.au nsw.au nt.au qld.au sa.au tas.au vic.au wa.au act.edu.au nsw.edu.au nt.edu.au qld.edu.au sa.edu.au tas.edu.au vic.edu.au wa.edu.au qld.gov.au sa.gov.au tas.gov.au vic.gov.au wa.gov.au aw com.aw ax az com.az net.az int.az gov.az org.az edu.az info.az pp.az mil.az name.az pro.az biz.az ba com.ba edu.ba gov.ba mil.ba net.ba org.ba bb biz.bb co.bb com.bb edu.bb gov.bb info.bb net.bb org.bb store.bb tv.bb *.bd be ac.be bf gov.bf bg a.bg b.bg c.bg d.bg e.bg f.bg g.bg h.bg i.bg j.bg k.bg l.bg m.bg n.bg o.bg p.bg q.bg r.bg s.bg t.bg u.bg v.bg w.bg x.bg y.bg z.bg 0.bg 1.bg 2.bg 3.bg 4.bg 5.bg 6.bg 7.bg 8.bg 9.bg bh com.bh edu.bh net.bh org.bh gov.bh bi co.bi com.bi edu.bi or.bi org.bi biz bj asso.bj barreau.bj gouv.bj bm com.bm edu.bm gov.bm net.bm org.bm *.bn bo com.bo edu.bo gov.bo gob.bo int.bo org.bo net.bo mil.bo tv.bo br abc.br adm.br adv.br agr.br aju.br am.br aparecida.br arq.br art.br ato.br b.br belem.br bio.br blog.br bmd.br bsb.br cim.br cng.br cnt.br com.br coop.br cri.br cuiaba.br def.br ecn.br eco.br edu.br emp.br eng.br esp.br etc.br eti.br far.br flog.br floripa.br fortal.br fm.br fnd.br fot.br fst.br g12.br ggf.br gov.br ac.gov.br al.gov.br am.gov.br ap.gov.br ba.gov.br ce.gov.br df.gov.br es.gov.br go.gov.br ma.gov.br mg.gov.br ms.gov.br mt.gov.br pa.gov.br pb.gov.br pe.gov.br pi.gov.br pr.gov.br rj.gov.br rn.gov.br ro.gov.br rr.gov.br rs.gov.br sc.gov.br se.gov.br sp.gov.br to.gov.br gru.br imb.br ind.br inf.br jampa.br jor.br jus.br leg.br lel.br londrina.br macapa.br maceio.br mat.br med.br mil.br mp.br mus.br natal.br net.br niteroi.br *.nom.br not.br ntr.br odo.br org.br osasco.br palmas.br poa.br ppg.br pro.br psc.br psi.br qsl.br radio.br rec.br recife.br riobranco.br sjc.br slg.br srv.br taxi.br teo.br tmp.br trd.br tur.br tv.br udi.br vet.br vix.br vlog.br wiki.br zlg.br bs com.bs net.bs org.bs edu.bs gov.bs bt com.bt edu.bt gov.bt net.bt org.bt bv bw co.bw org.bw by gov.by mil.by com.by of.by bz com.bz net.bz org.bz edu.bz gov.bz ca ab.ca bc.ca mb.ca nb.ca nf.ca nl.ca ns.ca nt.ca nu.ca on.ca pe.ca qc.ca sk.ca yk.ca gc.ca cat cc cd gov.cd cf cg ch ci org.ci or.ci com.ci co.ci edu.ci ed.ci ac.ci net.ci go.ci asso.ci aéroport.ci int.ci presse.ci md.ci gouv.ci *.ck !www.ck cl gov.cl gob.cl co.cl mil.cl cm co.cm com.cm gov.cm net.cm cn ac.cn com.cn edu.cn gov.cn net.cn org.cn mil.cn 公司.cn 网络.cn 網絡.cn ah.cn bj.cn cq.cn fj.cn gd.cn gs.cn gz.cn gx.cn ha.cn hb.cn he.cn hi.cn hl.cn hn.cn jl.cn js.cn jx.cn ln.cn nm.cn nx.cn qh.cn sc.cn sd.cn sh.cn sn.cn sx.cn tj.cn xj.cn xz.cn yn.cn zj.cn hk.cn mo.cn tw.cn co arts.co com.co edu.co firm.co gov.co info.co int.co mil.co net.co nom.co org.co rec.co web.co com coop cr ac.cr co.cr ed.cr fi.cr go.cr or.cr sa.cr cu com.cu edu.cu org.cu net.cu gov.cu inf.cu cv cw com.cw edu.cw net.cw org.cw cx gov.cx cy ac.cy biz.cy com.cy ekloges.cy gov.cy ltd.cy name.cy net.cy org.cy parliament.cy press.cy pro.cy tm.cy cz de dj dk dm com.dm net.dm org.dm edu.dm gov.dm do art.do com.do edu.do gob.do gov.do mil.do net.do org.do sld.do web.do dz com.dz org.dz net.dz gov.dz edu.dz asso.dz pol.dz art.dz ec com.ec info.ec net.ec fin.ec k12.ec med.ec pro.ec org.ec edu.ec gov.ec gob.ec mil.ec edu ee edu.ee gov.ee riik.ee lib.ee med.ee com.ee pri.ee aip.ee org.ee fie.ee eg com.eg edu.eg eun.eg gov.eg mil.eg name.eg net.eg org.eg sci.eg *.er es com.es nom.es org.es gob.es edu.es et com.et gov.et org.et edu.et biz.et name.et info.et net.et eu fi aland.fi *.fj *.fk fm fo fr com.fr asso.fr nom.fr prd.fr presse.fr tm.fr aeroport.fr assedic.fr avocat.fr avoues.fr cci.fr chambagri.fr chirurgiens-dentistes.fr experts-comptables.fr geometre-expert.fr gouv.fr greta.fr huissier-justice.fr medecin.fr notaires.fr pharmacien.fr port.fr veterinaire.fr ga gb gd ge com.ge edu.ge gov.ge org.ge mil.ge net.ge pvt.ge gf gg co.gg net.gg org.gg gh com.gh edu.gh gov.gh org.gh mil.gh gi com.gi ltd.gi gov.gi mod.gi edu.gi org.gi gl co.gl com.gl edu.gl net.gl org.gl gm gn ac.gn com.gn edu.gn gov.gn org.gn net.gn gov gp com.gp net.gp mobi.gp edu.gp org.gp asso.gp gq gr com.gr edu.gr net.gr org.gr gov.gr gs gt com.gt edu.gt gob.gt ind.gt mil.gt net.gt org.gt *.gu gw gy co.gy com.gy edu.gy gov.gy net.gy org.gy hk com.hk edu.hk gov.hk idv.hk net.hk org.hk 公司.hk 教育.hk 敎育.hk 政府.hk 個人.hk 个人.hk 箇人.hk 網络.hk 网络.hk 组織.hk 網絡.hk 网絡.hk 组织.hk 組織.hk 組织.hk hm hn com.hn edu.hn org.hn net.hn mil.hn gob.hn hr iz.hr from.hr name.hr com.hr ht com.ht shop.ht firm.ht info.ht adult.ht net.ht pro.ht org.ht med.ht art.ht coop.ht pol.ht asso.ht edu.ht rel.ht gouv.ht perso.ht hu co.hu info.hu org.hu priv.hu sport.hu tm.hu 2000.hu agrar.hu bolt.hu casino.hu city.hu erotica.hu erotika.hu film.hu forum.hu games.hu hotel.hu ingatlan.hu jogasz.hu konyvelo.hu lakas.hu media.hu news.hu reklam.hu sex.hu shop.hu suli.hu szex.hu tozsde.hu utazas.hu video.hu id ac.id biz.id co.id desa.id go.id mil.id my.id net.id or.id sch.id web.id ie gov.ie il ac.il co.il gov.il idf.il k12.il muni.il net.il org.il im ac.im co.im com.im ltd.co.im net.im org.im plc.co.im tt.im tv.im in co.in firm.in net.in org.in gen.in ind.in nic.in ac.in edu.in res.in gov.in mil.in info int eu.int io com.io iq gov.iq edu.iq mil.iq com.iq org.iq net.iq ir ac.ir co.ir gov.ir id.ir net.ir org.ir sch.ir ایران.ir ايران.ir is net.is com.is edu.is gov.is org.is int.is it gov.it edu.it abr.it abruzzo.it aosta-valley.it aostavalley.it bas.it basilicata.it cal.it calabria.it cam.it campania.it emilia-romagna.it emiliaromagna.it emr.it friuli-v-giulia.it friuli-ve-giulia.it friuli-vegiulia.it friuli-venezia-giulia.it friuli-veneziagiulia.it friuli-vgiulia.it friuliv-giulia.it friulive-giulia.it friulivegiulia.it friulivenezia-giulia.it friuliveneziagiulia.it friulivgiulia.it fvg.it laz.it lazio.it lig.it liguria.it lom.it lombardia.it lombardy.it lucania.it mar.it marche.it mol.it molise.it piedmont.it piemonte.it pmn.it pug.it puglia.it sar.it sardegna.it sardinia.it sic.it sicilia.it sicily.it taa.it tos.it toscana.it trentino-a-adige.it trentino-aadige.it trentino-alto-adige.it trentino-altoadige.it trentino-s-tirol.it trentino-stirol.it trentino-sud-tirol.it trentino-sudtirol.it trentino-sued-tirol.it trentino-suedtirol.it trentinoa-adige.it trentinoaadige.it trentinoalto-adige.it trentinoaltoadige.it trentinos-tirol.it trentinostirol.it trentinosud-tirol.it trentinosudtirol.it trentinosued-tirol.it trentinosuedtirol.it tuscany.it umb.it umbria.it val-d-aosta.it val-daosta.it vald-aosta.it valdaosta.it valle-aosta.it valle-d-aosta.it valle-daosta.it valleaosta.it valled-aosta.it valledaosta.it vallee-aoste.it valleeaoste.it vao.it vda.it ven.it veneto.it ag.it agrigento.it al.it alessandria.it alto-adige.it altoadige.it an.it ancona.it andria-barletta-trani.it andria-trani-barletta.it andriabarlettatrani.it andriatranibarletta.it ao.it aosta.it aoste.it ap.it aq.it aquila.it ar.it arezzo.it ascoli-piceno.it ascolipiceno.it asti.it at.it av.it avellino.it ba.it balsan.it bari.it barletta-trani-andria.it barlettatraniandria.it belluno.it benevento.it bergamo.it bg.it bi.it biella.it bl.it bn.it bo.it bologna.it bolzano.it bozen.it br.it brescia.it brindisi.it bs.it bt.it bz.it ca.it cagliari.it caltanissetta.it campidano-medio.it campidanomedio.it campobasso.it carbonia-iglesias.it carboniaiglesias.it carrara-massa.it carraramassa.it caserta.it catania.it catanzaro.it cb.it ce.it cesena-forli.it cesenaforli.it ch.it chieti.it ci.it cl.it cn.it co.it como.it cosenza.it cr.it cremona.it crotone.it cs.it ct.it cuneo.it cz.it dell-ogliastra.it dellogliastra.it en.it enna.it fc.it fe.it fermo.it ferrara.it fg.it fi.it firenze.it florence.it fm.it foggia.it forli-cesena.it forlicesena.it fr.it frosinone.it ge.it genoa.it genova.it go.it gorizia.it gr.it grosseto.it iglesias-carbonia.it iglesiascarbonia.it im.it imperia.it is.it isernia.it kr.it la-spezia.it laquila.it laspezia.it latina.it lc.it le.it lecce.it lecco.it li.it livorno.it lo.it lodi.it lt.it lu.it lucca.it macerata.it mantova.it massa-carrara.it massacarrara.it matera.it mb.it mc.it me.it medio-campidano.it mediocampidano.it messina.it mi.it milan.it milano.it mn.it mo.it modena.it monza-brianza.it monza-e-della-brianza.it monza.it monzabrianza.it monzaebrianza.it monzaedellabrianza.it ms.it mt.it na.it naples.it napoli.it no.it novara.it nu.it nuoro.it og.it ogliastra.it olbia-tempio.it olbiatempio.it or.it oristano.it ot.it pa.it padova.it padua.it palermo.it parma.it pavia.it pc.it pd.it pe.it perugia.it pesaro-urbino.it pesarourbino.it pescara.it pg.it pi.it piacenza.it pisa.it pistoia.it pn.it po.it pordenone.it potenza.it pr.it prato.it pt.it pu.it pv.it pz.it ra.it ragusa.it ravenna.it rc.it re.it reggio-calabria.it reggio-emilia.it reggiocalabria.it reggioemilia.it rg.it ri.it rieti.it rimini.it rm.it rn.it ro.it roma.it rome.it rovigo.it sa.it salerno.it sassari.it savona.it si.it siena.it siracusa.it so.it sondrio.it sp.it sr.it ss.it suedtirol.it sv.it ta.it taranto.it te.it tempio-olbia.it tempioolbia.it teramo.it terni.it tn.it to.it torino.it tp.it tr.it trani-andria-barletta.it trani-barletta-andria.it traniandriabarletta.it tranibarlettaandria.it trapani.it trentino.it trento.it treviso.it trieste.it ts.it turin.it tv.it ud.it udine.it urbino-pesaro.it urbinopesaro.it va.it varese.it vb.it vc.it ve.it venezia.it venice.it verbania.it vercelli.it verona.it vi.it vibo-valentia.it vibovalentia.it vicenza.it viterbo.it vr.it vs.it vt.it vv.it je co.je net.je org.je *.jm jo com.jo org.jo net.jo edu.jo sch.jo gov.jo mil.jo name.jo jobs jp ac.jp ad.jp co.jp ed.jp go.jp gr.jp lg.jp ne.jp or.jp aichi.jp akita.jp aomori.jp chiba.jp ehime.jp fukui.jp fukuoka.jp fukushima.jp gifu.jp gunma.jp hiroshima.jp hokkaido.jp hyogo.jp ibaraki.jp ishikawa.jp iwate.jp kagawa.jp kagoshima.jp kanagawa.jp kochi.jp kumamoto.jp kyoto.jp mie.jp miyagi.jp miyazaki.jp nagano.jp nagasaki.jp nara.jp niigata.jp oita.jp okayama.jp okinawa.jp osaka.jp saga.jp saitama.jp shiga.jp shimane.jp shizuoka.jp tochigi.jp tokushima.jp tokyo.jp tottori.jp toyama.jp wakayama.jp yamagata.jp yamaguchi.jp yamanashi.jp 栃木.jp 愛知.jp 愛媛.jp 兵庫.jp 熊本.jp 茨城.jp 北海道.jp 千葉.jp 和歌山.jp 長崎.jp 長野.jp 新潟.jp 青森.jp 静岡.jp 東京.jp 石川.jp 埼玉.jp 三重.jp 京都.jp 佐賀.jp 大分.jp 大阪.jp 奈良.jp 宮城.jp 宮崎.jp 富山.jp 山口.jp 山形.jp 山梨.jp 岩手.jp 岐阜.jp 岡山.jp 島根.jp 広島.jp 徳島.jp 沖縄.jp 滋賀.jp 神奈川.jp 福井.jp 福岡.jp 福島.jp 秋田.jp 群馬.jp 香川.jp 高知.jp 鳥取.jp 鹿児島.jp *.kawasaki.jp *.kitakyushu.jp *.kobe.jp *.nagoya.jp *.sapporo.jp *.sendai.jp *.yokohama.jp !city.kawasaki.jp !city.kitakyushu.jp !city.kobe.jp !city.nagoya.jp !city.sapporo.jp !city.sendai.jp !city.yokohama.jp aisai.aichi.jp ama.aichi.jp anjo.aichi.jp asuke.aichi.jp chiryu.aichi.jp chita.aichi.jp fuso.aichi.jp gamagori.aichi.jp handa.aichi.jp hazu.aichi.jp hekinan.aichi.jp higashiura.aichi.jp ichinomiya.aichi.jp inazawa.aichi.jp inuyama.aichi.jp isshiki.aichi.jp iwakura.aichi.jp kanie.aichi.jp kariya.aichi.jp kasugai.aichi.jp kira.aichi.jp kiyosu.aichi.jp komaki.aichi.jp konan.aichi.jp kota.aichi.jp mihama.aichi.jp miyoshi.aichi.jp nishio.aichi.jp nisshin.aichi.jp obu.aichi.jp oguchi.aichi.jp oharu.aichi.jp okazaki.aichi.jp owariasahi.aichi.jp seto.aichi.jp shikatsu.aichi.jp shinshiro.aichi.jp shitara.aichi.jp tahara.aichi.jp takahama.aichi.jp tobishima.aichi.jp toei.aichi.jp togo.aichi.jp tokai.aichi.jp tokoname.aichi.jp toyoake.aichi.jp toyohashi.aichi.jp toyokawa.aichi.jp toyone.aichi.jp toyota.aichi.jp tsushima.aichi.jp yatomi.aichi.jp akita.akita.jp daisen.akita.jp fujisato.akita.jp gojome.akita.jp hachirogata.akita.jp happou.akita.jp higashinaruse.akita.jp honjo.akita.jp honjyo.akita.jp ikawa.akita.jp kamikoani.akita.jp kamioka.akita.jp katagami.akita.jp kazuno.akita.jp kitaakita.akita.jp kosaka.akita.jp kyowa.akita.jp misato.akita.jp mitane.akita.jp moriyoshi.akita.jp nikaho.akita.jp noshiro.akita.jp odate.akita.jp oga.akita.jp ogata.akita.jp semboku.akita.jp yokote.akita.jp yurihonjo.akita.jp aomori.aomori.jp gonohe.aomori.jp hachinohe.aomori.jp hashikami.aomori.jp hiranai.aomori.jp hirosaki.aomori.jp itayanagi.aomori.jp kuroishi.aomori.jp misawa.aomori.jp mutsu.aomori.jp nakadomari.aomori.jp noheji.aomori.jp oirase.aomori.jp owani.aomori.jp rokunohe.aomori.jp sannohe.aomori.jp shichinohe.aomori.jp shingo.aomori.jp takko.aomori.jp towada.aomori.jp tsugaru.aomori.jp tsuruta.aomori.jp abiko.chiba.jp asahi.chiba.jp chonan.chiba.jp chosei.chiba.jp choshi.chiba.jp chuo.chiba.jp funabashi.chiba.jp futtsu.chiba.jp hanamigawa.chiba.jp ichihara.chiba.jp ichikawa.chiba.jp ichinomiya.chiba.jp inzai.chiba.jp isumi.chiba.jp kamagaya.chiba.jp kamogawa.chiba.jp kashiwa.chiba.jp katori.chiba.jp katsuura.chiba.jp kimitsu.chiba.jp kisarazu.chiba.jp kozaki.chiba.jp kujukuri.chiba.jp kyonan.chiba.jp matsudo.chiba.jp midori.chiba.jp mihama.chiba.jp minamiboso.chiba.jp mobara.chiba.jp mutsuzawa.chiba.jp nagara.chiba.jp nagareyama.chiba.jp narashino.chiba.jp narita.chiba.jp noda.chiba.jp oamishirasato.chiba.jp omigawa.chiba.jp onjuku.chiba.jp otaki.chiba.jp sakae.chiba.jp sakura.chiba.jp shimofusa.chiba.jp shirako.chiba.jp shiroi.chiba.jp shisui.chiba.jp sodegaura.chiba.jp sosa.chiba.jp tako.chiba.jp tateyama.chiba.jp togane.chiba.jp tohnosho.chiba.jp tomisato.chiba.jp urayasu.chiba.jp yachimata.chiba.jp yachiyo.chiba.jp yokaichiba.chiba.jp yokoshibahikari.chiba.jp yotsukaido.chiba.jp ainan.ehime.jp honai.ehime.jp ikata.ehime.jp imabari.ehime.jp iyo.ehime.jp kamijima.ehime.jp kihoku.ehime.jp kumakogen.ehime.jp masaki.ehime.jp matsuno.ehime.jp matsuyama.ehime.jp namikata.ehime.jp niihama.ehime.jp ozu.ehime.jp saijo.ehime.jp seiyo.ehime.jp shikokuchuo.ehime.jp tobe.ehime.jp toon.ehime.jp uchiko.ehime.jp uwajima.ehime.jp yawatahama.ehime.jp echizen.fukui.jp eiheiji.fukui.jp fukui.fukui.jp ikeda.fukui.jp katsuyama.fukui.jp mihama.fukui.jp minamiechizen.fukui.jp obama.fukui.jp ohi.fukui.jp ono.fukui.jp sabae.fukui.jp sakai.fukui.jp takahama.fukui.jp tsuruga.fukui.jp wakasa.fukui.jp ashiya.fukuoka.jp buzen.fukuoka.jp chikugo.fukuoka.jp chikuho.fukuoka.jp chikujo.fukuoka.jp chikushino.fukuoka.jp chikuzen.fukuoka.jp chuo.fukuoka.jp dazaifu.fukuoka.jp fukuchi.fukuoka.jp hakata.fukuoka.jp higashi.fukuoka.jp hirokawa.fukuoka.jp hisayama.fukuoka.jp iizuka.fukuoka.jp inatsuki.fukuoka.jp kaho.fukuoka.jp kasuga.fukuoka.jp kasuya.fukuoka.jp kawara.fukuoka.jp keisen.fukuoka.jp koga.fukuoka.jp kurate.fukuoka.jp kurogi.fukuoka.jp kurume.fukuoka.jp minami.fukuoka.jp miyako.fukuoka.jp miyama.fukuoka.jp miyawaka.fukuoka.jp mizumaki.fukuoka.jp munakata.fukuoka.jp nakagawa.fukuoka.jp nakama.fukuoka.jp nishi.fukuoka.jp nogata.fukuoka.jp ogori.fukuoka.jp okagaki.fukuoka.jp okawa.fukuoka.jp oki.fukuoka.jp omuta.fukuoka.jp onga.fukuoka.jp onojo.fukuoka.jp oto.fukuoka.jp saigawa.fukuoka.jp sasaguri.fukuoka.jp shingu.fukuoka.jp shinyoshitomi.fukuoka.jp shonai.fukuoka.jp soeda.fukuoka.jp sue.fukuoka.jp tachiarai.fukuoka.jp tagawa.fukuoka.jp takata.fukuoka.jp toho.fukuoka.jp toyotsu.fukuoka.jp tsuiki.fukuoka.jp ukiha.fukuoka.jp umi.fukuoka.jp usui.fukuoka.jp yamada.fukuoka.jp yame.fukuoka.jp yanagawa.fukuoka.jp yukuhashi.fukuoka.jp aizubange.fukushima.jp aizumisato.fukushima.jp aizuwakamatsu.fukushima.jp asakawa.fukushima.jp bandai.fukushima.jp date.fukushima.jp fukushima.fukushima.jp furudono.fukushima.jp futaba.fukushima.jp hanawa.fukushima.jp higashi.fukushima.jp hirata.fukushima.jp hirono.fukushima.jp iitate.fukushima.jp inawashiro.fukushima.jp ishikawa.fukushima.jp iwaki.fukushima.jp izumizaki.fukushima.jp kagamiishi.fukushima.jp kaneyama.fukushima.jp kawamata.fukushima.jp kitakata.fukushima.jp kitashiobara.fukushima.jp koori.fukushima.jp koriyama.fukushima.jp kunimi.fukushima.jp miharu.fukushima.jp mishima.fukushima.jp namie.fukushima.jp nango.fukushima.jp nishiaizu.fukushima.jp nishigo.fukushima.jp okuma.fukushima.jp omotego.fukushima.jp ono.fukushima.jp otama.fukushima.jp samegawa.fukushima.jp shimogo.fukushima.jp shirakawa.fukushima.jp showa.fukushima.jp soma.fukushima.jp sukagawa.fukushima.jp taishin.fukushima.jp tamakawa.fukushima.jp tanagura.fukushima.jp tenei.fukushima.jp yabuki.fukushima.jp yamato.fukushima.jp yamatsuri.fukushima.jp yanaizu.fukushima.jp yugawa.fukushima.jp anpachi.gifu.jp ena.gifu.jp gifu.gifu.jp ginan.gifu.jp godo.gifu.jp gujo.gifu.jp hashima.gifu.jp hichiso.gifu.jp hida.gifu.jp higashishirakawa.gifu.jp ibigawa.gifu.jp ikeda.gifu.jp kakamigahara.gifu.jp kani.gifu.jp kasahara.gifu.jp kasamatsu.gifu.jp kawaue.gifu.jp kitagata.gifu.jp mino.gifu.jp minokamo.gifu.jp mitake.gifu.jp mizunami.gifu.jp motosu.gifu.jp nakatsugawa.gifu.jp ogaki.gifu.jp sakahogi.gifu.jp seki.gifu.jp sekigahara.gifu.jp shirakawa.gifu.jp tajimi.gifu.jp takayama.gifu.jp tarui.gifu.jp toki.gifu.jp tomika.gifu.jp wanouchi.gifu.jp yamagata.gifu.jp yaotsu.gifu.jp yoro.gifu.jp annaka.gunma.jp chiyoda.gunma.jp fujioka.gunma.jp higashiagatsuma.gunma.jp isesaki.gunma.jp itakura.gunma.jp kanna.gunma.jp kanra.gunma.jp katashina.gunma.jp kawaba.gunma.jp kiryu.gunma.jp kusatsu.gunma.jp maebashi.gunma.jp meiwa.gunma.jp midori.gunma.jp minakami.gunma.jp naganohara.gunma.jp nakanojo.gunma.jp nanmoku.gunma.jp numata.gunma.jp oizumi.gunma.jp ora.gunma.jp ota.gunma.jp shibukawa.gunma.jp shimonita.gunma.jp shinto.gunma.jp showa.gunma.jp takasaki.gunma.jp takayama.gunma.jp tamamura.gunma.jp tatebayashi.gunma.jp tomioka.gunma.jp tsukiyono.gunma.jp tsumagoi.gunma.jp ueno.gunma.jp yoshioka.gunma.jp asaminami.hiroshima.jp daiwa.hiroshima.jp etajima.hiroshima.jp fuchu.hiroshima.jp fukuyama.hiroshima.jp hatsukaichi.hiroshima.jp higashihiroshima.hiroshima.jp hongo.hiroshima.jp jinsekikogen.hiroshima.jp kaita.hiroshima.jp kui.hiroshima.jp kumano.hiroshima.jp kure.hiroshima.jp mihara.hiroshima.jp miyoshi.hiroshima.jp naka.hiroshima.jp onomichi.hiroshima.jp osakikamijima.hiroshima.jp otake.hiroshima.jp saka.hiroshima.jp sera.hiroshima.jp seranishi.hiroshima.jp shinichi.hiroshima.jp shobara.hiroshima.jp takehara.hiroshima.jp abashiri.hokkaido.jp abira.hokkaido.jp aibetsu.hokkaido.jp akabira.hokkaido.jp akkeshi.hokkaido.jp asahikawa.hokkaido.jp ashibetsu.hokkaido.jp ashoro.hokkaido.jp assabu.hokkaido.jp atsuma.hokkaido.jp bibai.hokkaido.jp biei.hokkaido.jp bifuka.hokkaido.jp bihoro.hokkaido.jp biratori.hokkaido.jp chippubetsu.hokkaido.jp chitose.hokkaido.jp date.hokkaido.jp ebetsu.hokkaido.jp embetsu.hokkaido.jp eniwa.hokkaido.jp erimo.hokkaido.jp esan.hokkaido.jp esashi.hokkaido.jp fukagawa.hokkaido.jp fukushima.hokkaido.jp furano.hokkaido.jp furubira.hokkaido.jp haboro.hokkaido.jp hakodate.hokkaido.jp hamatonbetsu.hokkaido.jp hidaka.hokkaido.jp higashikagura.hokkaido.jp higashikawa.hokkaido.jp hiroo.hokkaido.jp hokuryu.hokkaido.jp hokuto.hokkaido.jp honbetsu.hokkaido.jp horokanai.hokkaido.jp horonobe.hokkaido.jp ikeda.hokkaido.jp imakane.hokkaido.jp ishikari.hokkaido.jp iwamizawa.hokkaido.jp iwanai.hokkaido.jp kamifurano.hokkaido.jp kamikawa.hokkaido.jp kamishihoro.hokkaido.jp kamisunagawa.hokkaido.jp kamoenai.hokkaido.jp kayabe.hokkaido.jp kembuchi.hokkaido.jp kikonai.hokkaido.jp kimobetsu.hokkaido.jp kitahiroshima.hokkaido.jp kitami.hokkaido.jp kiyosato.hokkaido.jp koshimizu.hokkaido.jp kunneppu.hokkaido.jp kuriyama.hokkaido.jp kuromatsunai.hokkaido.jp kushiro.hokkaido.jp kutchan.hokkaido.jp kyowa.hokkaido.jp mashike.hokkaido.jp matsumae.hokkaido.jp mikasa.hokkaido.jp minamifurano.hokkaido.jp mombetsu.hokkaido.jp moseushi.hokkaido.jp mukawa.hokkaido.jp muroran.hokkaido.jp naie.hokkaido.jp nakagawa.hokkaido.jp nakasatsunai.hokkaido.jp nakatombetsu.hokkaido.jp nanae.hokkaido.jp nanporo.hokkaido.jp nayoro.hokkaido.jp nemuro.hokkaido.jp niikappu.hokkaido.jp niki.hokkaido.jp nishiokoppe.hokkaido.jp noboribetsu.hokkaido.jp numata.hokkaido.jp obihiro.hokkaido.jp obira.hokkaido.jp oketo.hokkaido.jp okoppe.hokkaido.jp otaru.hokkaido.jp otobe.hokkaido.jp otofuke.hokkaido.jp otoineppu.hokkaido.jp oumu.hokkaido.jp ozora.hokkaido.jp pippu.hokkaido.jp rankoshi.hokkaido.jp rebun.hokkaido.jp rikubetsu.hokkaido.jp rishiri.hokkaido.jp rishirifuji.hokkaido.jp saroma.hokkaido.jp sarufutsu.hokkaido.jp shakotan.hokkaido.jp shari.hokkaido.jp shibecha.hokkaido.jp shibetsu.hokkaido.jp shikabe.hokkaido.jp shikaoi.hokkaido.jp shimamaki.hokkaido.jp shimizu.hokkaido.jp shimokawa.hokkaido.jp shinshinotsu.hokkaido.jp shintoku.hokkaido.jp shiranuka.hokkaido.jp shiraoi.hokkaido.jp shiriuchi.hokkaido.jp sobetsu.hokkaido.jp sunagawa.hokkaido.jp taiki.hokkaido.jp takasu.hokkaido.jp takikawa.hokkaido.jp takinoue.hokkaido.jp teshikaga.hokkaido.jp tobetsu.hokkaido.jp tohma.hokkaido.jp tomakomai.hokkaido.jp tomari.hokkaido.jp toya.hokkaido.jp toyako.hokkaido.jp toyotomi.hokkaido.jp toyoura.hokkaido.jp tsubetsu.hokkaido.jp tsukigata.hokkaido.jp urakawa.hokkaido.jp urausu.hokkaido.jp uryu.hokkaido.jp utashinai.hokkaido.jp wakkanai.hokkaido.jp wassamu.hokkaido.jp yakumo.hokkaido.jp yoichi.hokkaido.jp aioi.hyogo.jp akashi.hyogo.jp ako.hyogo.jp amagasaki.hyogo.jp aogaki.hyogo.jp asago.hyogo.jp ashiya.hyogo.jp awaji.hyogo.jp fukusaki.hyogo.jp goshiki.hyogo.jp harima.hyogo.jp himeji.hyogo.jp ichikawa.hyogo.jp inagawa.hyogo.jp itami.hyogo.jp kakogawa.hyogo.jp kamigori.hyogo.jp kamikawa.hyogo.jp kasai.hyogo.jp kasuga.hyogo.jp kawanishi.hyogo.jp miki.hyogo.jp minamiawaji.hyogo.jp nishinomiya.hyogo.jp nishiwaki.hyogo.jp ono.hyogo.jp sanda.hyogo.jp sannan.hyogo.jp sasayama.hyogo.jp sayo.hyogo.jp shingu.hyogo.jp shinonsen.hyogo.jp shiso.hyogo.jp sumoto.hyogo.jp taishi.hyogo.jp taka.hyogo.jp takarazuka.hyogo.jp takasago.hyogo.jp takino.hyogo.jp tamba.hyogo.jp tatsuno.hyogo.jp toyooka.hyogo.jp yabu.hyogo.jp yashiro.hyogo.jp yoka.hyogo.jp yokawa.hyogo.jp ami.ibaraki.jp asahi.ibaraki.jp bando.ibaraki.jp chikusei.ibaraki.jp daigo.ibaraki.jp fujishiro.ibaraki.jp hitachi.ibaraki.jp hitachinaka.ibaraki.jp hitachiomiya.ibaraki.jp hitachiota.ibaraki.jp ibaraki.ibaraki.jp ina.ibaraki.jp inashiki.ibaraki.jp itako.ibaraki.jp iwama.ibaraki.jp joso.ibaraki.jp kamisu.ibaraki.jp kasama.ibaraki.jp kashima.ibaraki.jp kasumigaura.ibaraki.jp koga.ibaraki.jp miho.ibaraki.jp mito.ibaraki.jp moriya.ibaraki.jp naka.ibaraki.jp namegata.ibaraki.jp oarai.ibaraki.jp ogawa.ibaraki.jp omitama.ibaraki.jp ryugasaki.ibaraki.jp sakai.ibaraki.jp sakuragawa.ibaraki.jp shimodate.ibaraki.jp shimotsuma.ibaraki.jp shirosato.ibaraki.jp sowa.ibaraki.jp suifu.ibaraki.jp takahagi.ibaraki.jp tamatsukuri.ibaraki.jp tokai.ibaraki.jp tomobe.ibaraki.jp tone.ibaraki.jp toride.ibaraki.jp tsuchiura.ibaraki.jp tsukuba.ibaraki.jp uchihara.ibaraki.jp ushiku.ibaraki.jp yachiyo.ibaraki.jp yamagata.ibaraki.jp yawara.ibaraki.jp yuki.ibaraki.jp anamizu.ishikawa.jp hakui.ishikawa.jp hakusan.ishikawa.jp kaga.ishikawa.jp kahoku.ishikawa.jp kanazawa.ishikawa.jp kawakita.ishikawa.jp komatsu.ishikawa.jp nakanoto.ishikawa.jp nanao.ishikawa.jp nomi.ishikawa.jp nonoichi.ishikawa.jp noto.ishikawa.jp shika.ishikawa.jp suzu.ishikawa.jp tsubata.ishikawa.jp tsurugi.ishikawa.jp uchinada.ishikawa.jp wajima.ishikawa.jp fudai.iwate.jp fujisawa.iwate.jp hanamaki.iwate.jp hiraizumi.iwate.jp hirono.iwate.jp ichinohe.iwate.jp ichinoseki.iwate.jp iwaizumi.iwate.jp iwate.iwate.jp joboji.iwate.jp kamaishi.iwate.jp kanegasaki.iwate.jp karumai.iwate.jp kawai.iwate.jp kitakami.iwate.jp kuji.iwate.jp kunohe.iwate.jp kuzumaki.iwate.jp miyako.iwate.jp mizusawa.iwate.jp morioka.iwate.jp ninohe.iwate.jp noda.iwate.jp ofunato.iwate.jp oshu.iwate.jp otsuchi.iwate.jp rikuzentakata.iwate.jp shiwa.iwate.jp shizukuishi.iwate.jp sumita.iwate.jp tanohata.iwate.jp tono.iwate.jp yahaba.iwate.jp yamada.iwate.jp ayagawa.kagawa.jp higashikagawa.kagawa.jp kanonji.kagawa.jp kotohira.kagawa.jp manno.kagawa.jp marugame.kagawa.jp mitoyo.kagawa.jp naoshima.kagawa.jp sanuki.kagawa.jp tadotsu.kagawa.jp takamatsu.kagawa.jp tonosho.kagawa.jp uchinomi.kagawa.jp utazu.kagawa.jp zentsuji.kagawa.jp akune.kagoshima.jp amami.kagoshima.jp hioki.kagoshima.jp isa.kagoshima.jp isen.kagoshima.jp izumi.kagoshima.jp kagoshima.kagoshima.jp kanoya.kagoshima.jp kawanabe.kagoshima.jp kinko.kagoshima.jp kouyama.kagoshima.jp makurazaki.kagoshima.jp matsumoto.kagoshima.jp minamitane.kagoshima.jp nakatane.kagoshima.jp nishinoomote.kagoshima.jp satsumasendai.kagoshima.jp soo.kagoshima.jp tarumizu.kagoshima.jp yusui.kagoshima.jp aikawa.kanagawa.jp atsugi.kanagawa.jp ayase.kanagawa.jp chigasaki.kanagawa.jp ebina.kanagawa.jp fujisawa.kanagawa.jp hadano.kanagawa.jp hakone.kanagawa.jp hiratsuka.kanagawa.jp isehara.kanagawa.jp kaisei.kanagawa.jp kamakura.kanagawa.jp kiyokawa.kanagawa.jp matsuda.kanagawa.jp minamiashigara.kanagawa.jp miura.kanagawa.jp nakai.kanagawa.jp ninomiya.kanagawa.jp odawara.kanagawa.jp oi.kanagawa.jp oiso.kanagawa.jp sagamihara.kanagawa.jp samukawa.kanagawa.jp tsukui.kanagawa.jp yamakita.kanagawa.jp yamato.kanagawa.jp yokosuka.kanagawa.jp yugawara.kanagawa.jp zama.kanagawa.jp zushi.kanagawa.jp aki.kochi.jp geisei.kochi.jp hidaka.kochi.jp higashitsuno.kochi.jp ino.kochi.jp kagami.kochi.jp kami.kochi.jp kitagawa.kochi.jp kochi.kochi.jp mihara.kochi.jp motoyama.kochi.jp muroto.kochi.jp nahari.kochi.jp nakamura.kochi.jp nankoku.kochi.jp nishitosa.kochi.jp niyodogawa.kochi.jp ochi.kochi.jp okawa.kochi.jp otoyo.kochi.jp otsuki.kochi.jp sakawa.kochi.jp sukumo.kochi.jp susaki.kochi.jp tosa.kochi.jp tosashimizu.kochi.jp toyo.kochi.jp tsuno.kochi.jp umaji.kochi.jp yasuda.kochi.jp yusuhara.kochi.jp amakusa.kumamoto.jp arao.kumamoto.jp aso.kumamoto.jp choyo.kumamoto.jp gyokuto.kumamoto.jp kamiamakusa.kumamoto.jp kikuchi.kumamoto.jp kumamoto.kumamoto.jp mashiki.kumamoto.jp mifune.kumamoto.jp minamata.kumamoto.jp minamioguni.kumamoto.jp nagasu.kumamoto.jp nishihara.kumamoto.jp oguni.kumamoto.jp ozu.kumamoto.jp sumoto.kumamoto.jp takamori.kumamoto.jp uki.kumamoto.jp uto.kumamoto.jp yamaga.kumamoto.jp yamato.kumamoto.jp yatsushiro.kumamoto.jp ayabe.kyoto.jp fukuchiyama.kyoto.jp higashiyama.kyoto.jp ide.kyoto.jp ine.kyoto.jp joyo.kyoto.jp kameoka.kyoto.jp kamo.kyoto.jp kita.kyoto.jp kizu.kyoto.jp kumiyama.kyoto.jp kyotamba.kyoto.jp kyotanabe.kyoto.jp kyotango.kyoto.jp maizuru.kyoto.jp minami.kyoto.jp minamiyamashiro.kyoto.jp miyazu.kyoto.jp muko.kyoto.jp nagaokakyo.kyoto.jp nakagyo.kyoto.jp nantan.kyoto.jp oyamazaki.kyoto.jp sakyo.kyoto.jp seika.kyoto.jp tanabe.kyoto.jp uji.kyoto.jp ujitawara.kyoto.jp wazuka.kyoto.jp yamashina.kyoto.jp yawata.kyoto.jp asahi.mie.jp inabe.mie.jp ise.mie.jp kameyama.mie.jp kawagoe.mie.jp kiho.mie.jp kisosaki.mie.jp kiwa.mie.jp komono.mie.jp kumano.mie.jp kuwana.mie.jp matsusaka.mie.jp meiwa.mie.jp mihama.mie.jp minamiise.mie.jp misugi.mie.jp miyama.mie.jp nabari.mie.jp shima.mie.jp suzuka.mie.jp tado.mie.jp taiki.mie.jp taki.mie.jp tamaki.mie.jp toba.mie.jp tsu.mie.jp udono.mie.jp ureshino.mie.jp watarai.mie.jp yokkaichi.mie.jp furukawa.miyagi.jp higashimatsushima.miyagi.jp ishinomaki.miyagi.jp iwanuma.miyagi.jp kakuda.miyagi.jp kami.miyagi.jp kawasaki.miyagi.jp marumori.miyagi.jp matsushima.miyagi.jp minamisanriku.miyagi.jp misato.miyagi.jp murata.miyagi.jp natori.miyagi.jp ogawara.miyagi.jp ohira.miyagi.jp onagawa.miyagi.jp osaki.miyagi.jp rifu.miyagi.jp semine.miyagi.jp shibata.miyagi.jp shichikashuku.miyagi.jp shikama.miyagi.jp shiogama.miyagi.jp shiroishi.miyagi.jp tagajo.miyagi.jp taiwa.miyagi.jp tome.miyagi.jp tomiya.miyagi.jp wakuya.miyagi.jp watari.miyagi.jp yamamoto.miyagi.jp zao.miyagi.jp aya.miyazaki.jp ebino.miyazaki.jp gokase.miyazaki.jp hyuga.miyazaki.jp kadogawa.miyazaki.jp kawaminami.miyazaki.jp kijo.miyazaki.jp kitagawa.miyazaki.jp kitakata.miyazaki.jp kitaura.miyazaki.jp kobayashi.miyazaki.jp kunitomi.miyazaki.jp kushima.miyazaki.jp mimata.miyazaki.jp miyakonojo.miyazaki.jp miyazaki.miyazaki.jp morotsuka.miyazaki.jp nichinan.miyazaki.jp nishimera.miyazaki.jp nobeoka.miyazaki.jp saito.miyazaki.jp shiiba.miyazaki.jp shintomi.miyazaki.jp takaharu.miyazaki.jp takanabe.miyazaki.jp takazaki.miyazaki.jp tsuno.miyazaki.jp achi.nagano.jp agematsu.nagano.jp anan.nagano.jp aoki.nagano.jp asahi.nagano.jp azumino.nagano.jp chikuhoku.nagano.jp chikuma.nagano.jp chino.nagano.jp fujimi.nagano.jp hakuba.nagano.jp hara.nagano.jp hiraya.nagano.jp iida.nagano.jp iijima.nagano.jp iiyama.nagano.jp iizuna.nagano.jp ikeda.nagano.jp ikusaka.nagano.jp ina.nagano.jp karuizawa.nagano.jp kawakami.nagano.jp kiso.nagano.jp kisofukushima.nagano.jp kitaaiki.nagano.jp komagane.nagano.jp komoro.nagano.jp matsukawa.nagano.jp matsumoto.nagano.jp miasa.nagano.jp minamiaiki.nagano.jp minamimaki.nagano.jp minamiminowa.nagano.jp minowa.nagano.jp miyada.nagano.jp miyota.nagano.jp mochizuki.nagano.jp nagano.nagano.jp nagawa.nagano.jp nagiso.nagano.jp nakagawa.nagano.jp nakano.nagano.jp nozawaonsen.nagano.jp obuse.nagano.jp ogawa.nagano.jp okaya.nagano.jp omachi.nagano.jp omi.nagano.jp ookuwa.nagano.jp ooshika.nagano.jp otaki.nagano.jp otari.nagano.jp sakae.nagano.jp sakaki.nagano.jp saku.nagano.jp sakuho.nagano.jp shimosuwa.nagano.jp shinanomachi.nagano.jp shiojiri.nagano.jp suwa.nagano.jp suzaka.nagano.jp takagi.nagano.jp takamori.nagano.jp takayama.nagano.jp tateshina.nagano.jp tatsuno.nagano.jp togakushi.nagano.jp togura.nagano.jp tomi.nagano.jp ueda.nagano.jp wada.nagano.jp yamagata.nagano.jp yamanouchi.nagano.jp yasaka.nagano.jp yasuoka.nagano.jp chijiwa.nagasaki.jp futsu.nagasaki.jp goto.nagasaki.jp hasami.nagasaki.jp hirado.nagasaki.jp iki.nagasaki.jp isahaya.nagasaki.jp kawatana.nagasaki.jp kuchinotsu.nagasaki.jp matsuura.nagasaki.jp nagasaki.nagasaki.jp obama.nagasaki.jp omura.nagasaki.jp oseto.nagasaki.jp saikai.nagasaki.jp sasebo.nagasaki.jp seihi.nagasaki.jp shimabara.nagasaki.jp shinkamigoto.nagasaki.jp togitsu.nagasaki.jp tsushima.nagasaki.jp unzen.nagasaki.jp ando.nara.jp gose.nara.jp heguri.nara.jp higashiyoshino.nara.jp ikaruga.nara.jp ikoma.nara.jp kamikitayama.nara.jp kanmaki.nara.jp kashiba.nara.jp kashihara.nara.jp katsuragi.nara.jp kawai.nara.jp kawakami.nara.jp kawanishi.nara.jp koryo.nara.jp kurotaki.nara.jp mitsue.nara.jp miyake.nara.jp nara.nara.jp nosegawa.nara.jp oji.nara.jp ouda.nara.jp oyodo.nara.jp sakurai.nara.jp sango.nara.jp shimoichi.nara.jp shimokitayama.nara.jp shinjo.nara.jp soni.nara.jp takatori.nara.jp tawaramoto.nara.jp tenkawa.nara.jp tenri.nara.jp uda.nara.jp yamatokoriyama.nara.jp yamatotakada.nara.jp yamazoe.nara.jp yoshino.nara.jp aga.niigata.jp agano.niigata.jp gosen.niigata.jp itoigawa.niigata.jp izumozaki.niigata.jp joetsu.niigata.jp kamo.niigata.jp kariwa.niigata.jp kashiwazaki.niigata.jp minamiuonuma.niigata.jp mitsuke.niigata.jp muika.niigata.jp murakami.niigata.jp myoko.niigata.jp nagaoka.niigata.jp niigata.niigata.jp ojiya.niigata.jp omi.niigata.jp sado.niigata.jp sanjo.niigata.jp seiro.niigata.jp seirou.niigata.jp sekikawa.niigata.jp shibata.niigata.jp tagami.niigata.jp tainai.niigata.jp tochio.niigata.jp tokamachi.niigata.jp tsubame.niigata.jp tsunan.niigata.jp uonuma.niigata.jp yahiko.niigata.jp yoita.niigata.jp yuzawa.niigata.jp beppu.oita.jp bungoono.oita.jp bungotakada.oita.jp hasama.oita.jp hiji.oita.jp himeshima.oita.jp hita.oita.jp kamitsue.oita.jp kokonoe.oita.jp kuju.oita.jp kunisaki.oita.jp kusu.oita.jp oita.oita.jp saiki.oita.jp taketa.oita.jp tsukumi.oita.jp usa.oita.jp usuki.oita.jp yufu.oita.jp akaiwa.okayama.jp asakuchi.okayama.jp bizen.okayama.jp hayashima.okayama.jp ibara.okayama.jp kagamino.okayama.jp kasaoka.okayama.jp kibichuo.okayama.jp kumenan.okayama.jp kurashiki.okayama.jp maniwa.okayama.jp misaki.okayama.jp nagi.okayama.jp niimi.okayama.jp nishiawakura.okayama.jp okayama.okayama.jp satosho.okayama.jp setouchi.okayama.jp shinjo.okayama.jp shoo.okayama.jp soja.okayama.jp takahashi.okayama.jp tamano.okayama.jp tsuyama.okayama.jp wake.okayama.jp yakage.okayama.jp aguni.okinawa.jp ginowan.okinawa.jp ginoza.okinawa.jp gushikami.okinawa.jp haebaru.okinawa.jp higashi.okinawa.jp hirara.okinawa.jp iheya.okinawa.jp ishigaki.okinawa.jp ishikawa.okinawa.jp itoman.okinawa.jp izena.okinawa.jp kadena.okinawa.jp kin.okinawa.jp kitadaito.okinawa.jp kitanakagusuku.okinawa.jp kumejima.okinawa.jp kunigami.okinawa.jp minamidaito.okinawa.jp motobu.okinawa.jp nago.okinawa.jp naha.okinawa.jp nakagusuku.okinawa.jp nakijin.okinawa.jp nanjo.okinawa.jp nishihara.okinawa.jp ogimi.okinawa.jp okinawa.okinawa.jp onna.okinawa.jp shimoji.okinawa.jp taketomi.okinawa.jp tarama.okinawa.jp tokashiki.okinawa.jp tomigusuku.okinawa.jp tonaki.okinawa.jp urasoe.okinawa.jp uruma.okinawa.jp yaese.okinawa.jp yomitan.okinawa.jp yonabaru.okinawa.jp yonaguni.okinawa.jp zamami.okinawa.jp abeno.osaka.jp chihayaakasaka.osaka.jp chuo.osaka.jp daito.osaka.jp fujiidera.osaka.jp habikino.osaka.jp hannan.osaka.jp higashiosaka.osaka.jp higashisumiyoshi.osaka.jp higashiyodogawa.osaka.jp hirakata.osaka.jp ibaraki.osaka.jp ikeda.osaka.jp izumi.osaka.jp izumiotsu.osaka.jp izumisano.osaka.jp kadoma.osaka.jp kaizuka.osaka.jp kanan.osaka.jp kashiwara.osaka.jp katano.osaka.jp kawachinagano.osaka.jp kishiwada.osaka.jp kita.osaka.jp kumatori.osaka.jp matsubara.osaka.jp minato.osaka.jp minoh.osaka.jp misaki.osaka.jp moriguchi.osaka.jp neyagawa.osaka.jp nishi.osaka.jp nose.osaka.jp osakasayama.osaka.jp sakai.osaka.jp sayama.osaka.jp sennan.osaka.jp settsu.osaka.jp shijonawate.osaka.jp shimamoto.osaka.jp suita.osaka.jp tadaoka.osaka.jp taishi.osaka.jp tajiri.osaka.jp takaishi.osaka.jp takatsuki.osaka.jp tondabayashi.osaka.jp toyonaka.osaka.jp toyono.osaka.jp yao.osaka.jp ariake.saga.jp arita.saga.jp fukudomi.saga.jp genkai.saga.jp hamatama.saga.jp hizen.saga.jp imari.saga.jp kamimine.saga.jp kanzaki.saga.jp karatsu.saga.jp kashima.saga.jp kitagata.saga.jp kitahata.saga.jp kiyama.saga.jp kouhoku.saga.jp kyuragi.saga.jp nishiarita.saga.jp ogi.saga.jp omachi.saga.jp ouchi.saga.jp saga.saga.jp shiroishi.saga.jp taku.saga.jp tara.saga.jp tosu.saga.jp yoshinogari.saga.jp arakawa.saitama.jp asaka.saitama.jp chichibu.saitama.jp fujimi.saitama.jp fujimino.saitama.jp fukaya.saitama.jp hanno.saitama.jp hanyu.saitama.jp hasuda.saitama.jp hatogaya.saitama.jp hatoyama.saitama.jp hidaka.saitama.jp higashichichibu.saitama.jp higashimatsuyama.saitama.jp honjo.saitama.jp ina.saitama.jp iruma.saitama.jp iwatsuki.saitama.jp kamiizumi.saitama.jp kamikawa.saitama.jp kamisato.saitama.jp kasukabe.saitama.jp kawagoe.saitama.jp kawaguchi.saitama.jp kawajima.saitama.jp kazo.saitama.jp kitamoto.saitama.jp koshigaya.saitama.jp kounosu.saitama.jp kuki.saitama.jp kumagaya.saitama.jp matsubushi.saitama.jp minano.saitama.jp misato.saitama.jp miyashiro.saitama.jp miyoshi.saitama.jp moroyama.saitama.jp nagatoro.saitama.jp namegawa.saitama.jp niiza.saitama.jp ogano.saitama.jp ogawa.saitama.jp ogose.saitama.jp okegawa.saitama.jp omiya.saitama.jp otaki.saitama.jp ranzan.saitama.jp ryokami.saitama.jp saitama.saitama.jp sakado.saitama.jp satte.saitama.jp sayama.saitama.jp shiki.saitama.jp shiraoka.saitama.jp soka.saitama.jp sugito.saitama.jp toda.saitama.jp tokigawa.saitama.jp tokorozawa.saitama.jp tsurugashima.saitama.jp urawa.saitama.jp warabi.saitama.jp yashio.saitama.jp yokoze.saitama.jp yono.saitama.jp yorii.saitama.jp yoshida.saitama.jp yoshikawa.saitama.jp yoshimi.saitama.jp aisho.shiga.jp gamo.shiga.jp higashiomi.shiga.jp hikone.shiga.jp koka.shiga.jp konan.shiga.jp kosei.shiga.jp koto.shiga.jp kusatsu.shiga.jp maibara.shiga.jp moriyama.shiga.jp nagahama.shiga.jp nishiazai.shiga.jp notogawa.shiga.jp omihachiman.shiga.jp otsu.shiga.jp ritto.shiga.jp ryuoh.shiga.jp takashima.shiga.jp takatsuki.shiga.jp torahime.shiga.jp toyosato.shiga.jp yasu.shiga.jp akagi.shimane.jp ama.shimane.jp gotsu.shimane.jp hamada.shimane.jp higashiizumo.shimane.jp hikawa.shimane.jp hikimi.shimane.jp izumo.shimane.jp kakinoki.shimane.jp masuda.shimane.jp matsue.shimane.jp misato.shimane.jp nishinoshima.shimane.jp ohda.shimane.jp okinoshima.shimane.jp okuizumo.shimane.jp shimane.shimane.jp tamayu.shimane.jp tsuwano.shimane.jp unnan.shimane.jp yakumo.shimane.jp yasugi.shimane.jp yatsuka.shimane.jp arai.shizuoka.jp atami.shizuoka.jp fuji.shizuoka.jp fujieda.shizuoka.jp fujikawa.shizuoka.jp fujinomiya.shizuoka.jp fukuroi.shizuoka.jp gotemba.shizuoka.jp haibara.shizuoka.jp hamamatsu.shizuoka.jp higashiizu.shizuoka.jp ito.shizuoka.jp iwata.shizuoka.jp izu.shizuoka.jp izunokuni.shizuoka.jp kakegawa.shizuoka.jp kannami.shizuoka.jp kawanehon.shizuoka.jp kawazu.shizuoka.jp kikugawa.shizuoka.jp kosai.shizuoka.jp makinohara.shizuoka.jp matsuzaki.shizuoka.jp minamiizu.shizuoka.jp mishima.shizuoka.jp morimachi.shizuoka.jp nishiizu.shizuoka.jp numazu.shizuoka.jp omaezaki.shizuoka.jp shimada.shizuoka.jp shimizu.shizuoka.jp shimoda.shizuoka.jp shizuoka.shizuoka.jp susono.shizuoka.jp yaizu.shizuoka.jp yoshida.shizuoka.jp ashikaga.tochigi.jp bato.tochigi.jp haga.tochigi.jp ichikai.tochigi.jp iwafune.tochigi.jp kaminokawa.tochigi.jp kanuma.tochigi.jp karasuyama.tochigi.jp kuroiso.tochigi.jp mashiko.tochigi.jp mibu.tochigi.jp moka.tochigi.jp motegi.tochigi.jp nasu.tochigi.jp nasushiobara.tochigi.jp nikko.tochigi.jp nishikata.tochigi.jp nogi.tochigi.jp ohira.tochigi.jp ohtawara.tochigi.jp oyama.tochigi.jp sakura.tochigi.jp sano.tochigi.jp shimotsuke.tochigi.jp shioya.tochigi.jp takanezawa.tochigi.jp tochigi.tochigi.jp tsuga.tochigi.jp ujiie.tochigi.jp utsunomiya.tochigi.jp yaita.tochigi.jp aizumi.tokushima.jp anan.tokushima.jp ichiba.tokushima.jp itano.tokushima.jp kainan.tokushima.jp komatsushima.tokushima.jp matsushige.tokushima.jp mima.tokushima.jp minami.tokushima.jp miyoshi.tokushima.jp mugi.tokushima.jp nakagawa.tokushima.jp naruto.tokushima.jp sanagochi.tokushima.jp shishikui.tokushima.jp tokushima.tokushima.jp wajiki.tokushima.jp adachi.tokyo.jp akiruno.tokyo.jp akishima.tokyo.jp aogashima.tokyo.jp arakawa.tokyo.jp bunkyo.tokyo.jp chiyoda.tokyo.jp chofu.tokyo.jp chuo.tokyo.jp edogawa.tokyo.jp fuchu.tokyo.jp fussa.tokyo.jp hachijo.tokyo.jp hachioji.tokyo.jp hamura.tokyo.jp higashikurume.tokyo.jp higashimurayama.tokyo.jp higashiyamato.tokyo.jp hino.tokyo.jp hinode.tokyo.jp hinohara.tokyo.jp inagi.tokyo.jp itabashi.tokyo.jp katsushika.tokyo.jp kita.tokyo.jp kiyose.tokyo.jp kodaira.tokyo.jp koganei.tokyo.jp kokubunji.tokyo.jp komae.tokyo.jp koto.tokyo.jp kouzushima.tokyo.jp kunitachi.tokyo.jp machida.tokyo.jp meguro.tokyo.jp minato.tokyo.jp mitaka.tokyo.jp mizuho.tokyo.jp musashimurayama.tokyo.jp musashino.tokyo.jp nakano.tokyo.jp nerima.tokyo.jp ogasawara.tokyo.jp okutama.tokyo.jp ome.tokyo.jp oshima.tokyo.jp ota.tokyo.jp setagaya.tokyo.jp shibuya.tokyo.jp shinagawa.tokyo.jp shinjuku.tokyo.jp suginami.tokyo.jp sumida.tokyo.jp tachikawa.tokyo.jp taito.tokyo.jp tama.tokyo.jp toshima.tokyo.jp chizu.tottori.jp hino.tottori.jp kawahara.tottori.jp koge.tottori.jp kotoura.tottori.jp misasa.tottori.jp nanbu.tottori.jp nichinan.tottori.jp sakaiminato.tottori.jp tottori.tottori.jp wakasa.tottori.jp yazu.tottori.jp yonago.tottori.jp asahi.toyama.jp fuchu.toyama.jp fukumitsu.toyama.jp funahashi.toyama.jp himi.toyama.jp imizu.toyama.jp inami.toyama.jp johana.toyama.jp kamiichi.toyama.jp kurobe.toyama.jp nakaniikawa.toyama.jp namerikawa.toyama.jp nanto.toyama.jp nyuzen.toyama.jp oyabe.toyama.jp taira.toyama.jp takaoka.toyama.jp tateyama.toyama.jp toga.toyama.jp tonami.toyama.jp toyama.toyama.jp unazuki.toyama.jp uozu.toyama.jp yamada.toyama.jp arida.wakayama.jp aridagawa.wakayama.jp gobo.wakayama.jp hashimoto.wakayama.jp hidaka.wakayama.jp hirogawa.wakayama.jp inami.wakayama.jp iwade.wakayama.jp kainan.wakayama.jp kamitonda.wakayama.jp katsuragi.wakayama.jp kimino.wakayama.jp kinokawa.wakayama.jp kitayama.wakayama.jp koya.wakayama.jp koza.wakayama.jp kozagawa.wakayama.jp kudoyama.wakayama.jp kushimoto.wakayama.jp mihama.wakayama.jp misato.wakayama.jp nachikatsuura.wakayama.jp shingu.wakayama.jp shirahama.wakayama.jp taiji.wakayama.jp tanabe.wakayama.jp wakayama.wakayama.jp yuasa.wakayama.jp yura.wakayama.jp asahi.yamagata.jp funagata.yamagata.jp higashine.yamagata.jp iide.yamagata.jp kahoku.yamagata.jp kaminoyama.yamagata.jp kaneyama.yamagata.jp kawanishi.yamagata.jp mamurogawa.yamagata.jp mikawa.yamagata.jp murayama.yamagata.jp nagai.yamagata.jp nakayama.yamagata.jp nanyo.yamagata.jp nishikawa.yamagata.jp obanazawa.yamagata.jp oe.yamagata.jp oguni.yamagata.jp ohkura.yamagata.jp oishida.yamagata.jp sagae.yamagata.jp sakata.yamagata.jp sakegawa.yamagata.jp shinjo.yamagata.jp shirataka.yamagata.jp shonai.yamagata.jp takahata.yamagata.jp tendo.yamagata.jp tozawa.yamagata.jp tsuruoka.yamagata.jp yamagata.yamagata.jp yamanobe.yamagata.jp yonezawa.yamagata.jp yuza.yamagata.jp abu.yamaguchi.jp hagi.yamaguchi.jp hikari.yamaguchi.jp hofu.yamaguchi.jp iwakuni.yamaguchi.jp kudamatsu.yamaguchi.jp mitou.yamaguchi.jp nagato.yamaguchi.jp oshima.yamaguchi.jp shimonoseki.yamaguchi.jp shunan.yamaguchi.jp tabuse.yamaguchi.jp tokuyama.yamaguchi.jp toyota.yamaguchi.jp ube.yamaguchi.jp yuu.yamaguchi.jp chuo.yamanashi.jp doshi.yamanashi.jp fuefuki.yamanashi.jp fujikawa.yamanashi.jp fujikawaguchiko.yamanashi.jp fujiyoshida.yamanashi.jp hayakawa.yamanashi.jp hokuto.yamanashi.jp ichikawamisato.yamanashi.jp kai.yamanashi.jp kofu.yamanashi.jp koshu.yamanashi.jp kosuge.yamanashi.jp minami-alps.yamanashi.jp minobu.yamanashi.jp nakamichi.yamanashi.jp nanbu.yamanashi.jp narusawa.yamanashi.jp nirasaki.yamanashi.jp nishikatsura.yamanashi.jp oshino.yamanashi.jp otsuki.yamanashi.jp showa.yamanashi.jp tabayama.yamanashi.jp tsuru.yamanashi.jp uenohara.yamanashi.jp yamanakako.yamanashi.jp yamanashi.yamanashi.jp *.ke kg org.kg net.kg com.kg edu.kg gov.kg mil.kg *.kh ki edu.ki biz.ki net.ki org.ki gov.ki info.ki com.ki km org.km nom.km gov.km prd.km tm.km edu.km mil.km ass.km com.km coop.km asso.km presse.km medecin.km notaires.km pharmaciens.km veterinaire.km gouv.km kn net.kn org.kn edu.kn gov.kn kp com.kp edu.kp gov.kp org.kp rep.kp tra.kp kr ac.kr co.kr es.kr go.kr hs.kr kg.kr mil.kr ms.kr ne.kr or.kr pe.kr re.kr sc.kr busan.kr chungbuk.kr chungnam.kr daegu.kr daejeon.kr gangwon.kr gwangju.kr gyeongbuk.kr gyeonggi.kr gyeongnam.kr incheon.kr jeju.kr jeonbuk.kr jeonnam.kr seoul.kr ulsan.kr *.kw ky edu.ky gov.ky com.ky org.ky net.ky kz org.kz edu.kz net.kz gov.kz mil.kz com.kz la int.la net.la info.la edu.la gov.la per.la com.la org.la lb com.lb edu.lb gov.lb net.lb org.lb lc com.lc net.lc co.lc org.lc edu.lc gov.lc li lk gov.lk sch.lk net.lk int.lk com.lk org.lk edu.lk ngo.lk soc.lk web.lk ltd.lk assn.lk grp.lk hotel.lk ac.lk lr com.lr edu.lr gov.lr org.lr net.lr ls co.ls org.ls lt gov.lt lu lv com.lv edu.lv gov.lv org.lv mil.lv id.lv net.lv asn.lv conf.lv ly com.ly net.ly gov.ly plc.ly edu.ly sch.ly med.ly org.ly id.ly ma co.ma net.ma gov.ma org.ma ac.ma press.ma mc tm.mc asso.mc md me co.me net.me org.me edu.me ac.me gov.me its.me priv.me mg org.mg nom.mg gov.mg prd.mg tm.mg edu.mg mil.mg com.mg co.mg mh mil mk com.mk org.mk net.mk edu.mk gov.mk inf.mk name.mk ml com.ml edu.ml gouv.ml gov.ml net.ml org.ml presse.ml *.mm mn gov.mn edu.mn org.mn mo com.mo net.mo org.mo edu.mo gov.mo mobi mp mq mr gov.mr ms com.ms edu.ms gov.ms net.ms org.ms mt com.mt edu.mt net.mt org.mt mu com.mu net.mu org.mu gov.mu ac.mu co.mu or.mu museum academy.museum agriculture.museum air.museum airguard.museum alabama.museum alaska.museum amber.museum ambulance.museum american.museum americana.museum americanantiques.museum americanart.museum amsterdam.museum and.museum annefrank.museum anthro.museum anthropology.museum antiques.museum aquarium.museum arboretum.museum archaeological.museum archaeology.museum architecture.museum art.museum artanddesign.museum artcenter.museum artdeco.museum arteducation.museum artgallery.museum arts.museum artsandcrafts.museum asmatart.museum assassination.museum assisi.museum association.museum astronomy.museum atlanta.museum austin.museum australia.museum automotive.museum aviation.museum axis.museum badajoz.museum baghdad.museum bahn.museum bale.museum baltimore.museum barcelona.museum baseball.museum basel.museum baths.museum bauern.museum beauxarts.museum beeldengeluid.museum bellevue.museum bergbau.museum berkeley.museum berlin.museum bern.museum bible.museum bilbao.museum bill.museum birdart.museum birthplace.museum bonn.museum boston.museum botanical.museum botanicalgarden.museum botanicgarden.museum botany.museum brandywinevalley.museum brasil.museum bristol.museum british.museum britishcolumbia.museum broadcast.museum brunel.museum brussel.museum brussels.museum bruxelles.museum building.museum burghof.museum bus.museum bushey.museum cadaques.museum california.museum cambridge.museum can.museum canada.museum capebreton.museum carrier.museum cartoonart.museum casadelamoneda.museum castle.museum castres.museum celtic.museum center.museum chattanooga.museum cheltenham.museum chesapeakebay.museum chicago.museum children.museum childrens.museum childrensgarden.museum chiropractic.museum chocolate.museum christiansburg.museum cincinnati.museum cinema.museum circus.museum civilisation.museum civilization.museum civilwar.museum clinton.museum clock.museum coal.museum coastaldefence.museum cody.museum coldwar.museum collection.museum colonialwilliamsburg.museum coloradoplateau.museum columbia.museum columbus.museum communication.museum communications.museum community.museum computer.museum computerhistory.museum comunicações.museum contemporary.museum contemporaryart.museum convent.museum copenhagen.museum corporation.museum correios-e-telecomunicações.museum corvette.museum costume.museum countryestate.museum county.museum crafts.museum cranbrook.museum creation.museum cultural.museum culturalcenter.museum culture.museum cyber.museum cymru.museum dali.museum dallas.museum database.museum ddr.museum decorativearts.museum delaware.museum delmenhorst.museum denmark.museum depot.museum design.museum detroit.museum dinosaur.museum discovery.museum dolls.museum donostia.museum durham.museum eastafrica.museum eastcoast.museum education.museum educational.museum egyptian.museum eisenbahn.museum elburg.museum elvendrell.museum embroidery.museum encyclopedic.museum england.museum entomology.museum environment.museum environmentalconservation.museum epilepsy.museum essex.museum estate.museum ethnology.museum exeter.museum exhibition.museum family.museum farm.museum farmequipment.museum farmers.museum farmstead.museum field.museum figueres.museum filatelia.museum film.museum fineart.museum finearts.museum finland.museum flanders.museum florida.museum force.museum fortmissoula.museum fortworth.museum foundation.museum francaise.museum frankfurt.museum franziskaner.museum freemasonry.museum freiburg.museum fribourg.museum frog.museum fundacio.museum furniture.museum gallery.museum garden.museum gateway.museum geelvinck.museum gemological.museum geology.museum georgia.museum giessen.museum glas.museum glass.museum gorge.museum grandrapids.museum graz.museum guernsey.museum halloffame.museum hamburg.museum handson.museum harvestcelebration.museum hawaii.museum health.museum heimatunduhren.museum hellas.museum helsinki.museum hembygdsforbund.museum heritage.museum histoire.museum historical.museum historicalsociety.museum historichouses.museum historisch.museum historisches.museum history.museum historyofscience.museum horology.museum house.museum humanities.museum illustration.museum imageandsound.museum indian.museum indiana.museum indianapolis.museum indianmarket.museum intelligence.museum interactive.museum iraq.museum iron.museum isleofman.museum jamison.museum jefferson.museum jerusalem.museum jewelry.museum jewish.museum jewishart.museum jfk.museum journalism.museum judaica.museum judygarland.museum juedisches.museum juif.museum karate.museum karikatur.museum kids.museum koebenhavn.museum koeln.museum kunst.museum kunstsammlung.museum kunstunddesign.museum labor.museum labour.museum lajolla.museum lancashire.museum landes.museum lans.museum läns.museum larsson.museum lewismiller.museum lincoln.museum linz.museum living.museum livinghistory.museum localhistory.museum london.museum losangeles.museum louvre.museum loyalist.museum lucerne.museum luxembourg.museum luzern.museum mad.museum madrid.museum mallorca.museum manchester.museum mansion.museum mansions.museum manx.museum marburg.museum maritime.museum maritimo.museum maryland.museum marylhurst.museum media.museum medical.museum medizinhistorisches.museum meeres.museum memorial.museum mesaverde.museum michigan.museum midatlantic.museum military.museum mill.museum miners.museum mining.museum minnesota.museum missile.museum missoula.museum modern.museum moma.museum money.museum monmouth.museum monticello.museum montreal.museum moscow.museum motorcycle.museum muenchen.museum muenster.museum mulhouse.museum muncie.museum museet.museum museumcenter.museum museumvereniging.museum music.museum national.museum nationalfirearms.museum nationalheritage.museum nativeamerican.museum naturalhistory.museum naturalhistorymuseum.museum naturalsciences.museum nature.museum naturhistorisches.museum natuurwetenschappen.museum naumburg.museum naval.museum nebraska.museum neues.museum newhampshire.museum newjersey.museum newmexico.museum newport.museum newspaper.museum newyork.museum niepce.museum norfolk.museum north.museum nrw.museum nuernberg.museum nuremberg.museum nyc.museum nyny.museum oceanographic.museum oceanographique.museum omaha.museum online.museum ontario.museum openair.museum oregon.museum oregontrail.museum otago.museum oxford.museum pacific.museum paderborn.museum palace.museum paleo.museum palmsprings.museum panama.museum paris.museum pasadena.museum pharmacy.museum philadelphia.museum philadelphiaarea.museum philately.museum phoenix.museum photography.museum pilots.museum pittsburgh.museum planetarium.museum plantation.museum plants.museum plaza.museum portal.museum portland.museum portlligat.museum posts-and-telecommunications.museum preservation.museum presidio.museum press.museum project.museum public.museum pubol.museum quebec.museum railroad.museum railway.museum research.museum resistance.museum riodejaneiro.museum rochester.museum rockart.museum roma.museum russia.museum saintlouis.museum salem.museum salvadordali.museum salzburg.museum sandiego.museum sanfrancisco.museum santabarbara.museum santacruz.museum santafe.museum saskatchewan.museum satx.museum savannahga.museum schlesisches.museum schoenbrunn.museum schokoladen.museum school.museum schweiz.museum science.museum scienceandhistory.museum scienceandindustry.museum sciencecenter.museum sciencecenters.museum science-fiction.museum sciencehistory.museum sciences.museum sciencesnaturelles.museum scotland.museum seaport.museum settlement.museum settlers.museum shell.museum sherbrooke.museum sibenik.museum silk.museum ski.museum skole.museum society.museum sologne.museum soundandvision.museum southcarolina.museum southwest.museum space.museum spy.museum square.museum stadt.museum stalbans.museum starnberg.museum state.museum stateofdelaware.museum station.museum steam.museum steiermark.museum stjohn.museum stockholm.museum stpetersburg.museum stuttgart.museum suisse.museum surgeonshall.museum surrey.museum svizzera.museum sweden.museum sydney.museum tank.museum tcm.museum technology.museum telekommunikation.museum television.museum texas.museum textile.museum theater.museum time.museum timekeeping.museum topology.museum torino.museum touch.museum town.museum transport.museum tree.museum trolley.museum trust.museum trustee.museum uhren.museum ulm.museum undersea.museum university.museum usa.museum usantiques.museum usarts.museum uscountryestate.museum usculture.museum usdecorativearts.museum usgarden.museum ushistory.museum ushuaia.museum uslivinghistory.museum utah.museum uvic.museum valley.museum vantaa.museum versailles.museum viking.museum village.museum virginia.museum virtual.museum virtuel.museum vlaanderen.museum volkenkunde.museum wales.museum wallonie.museum war.museum washingtondc.museum watchandclock.museum watch-and-clock.museum western.museum westfalen.museum whaling.museum wildlife.museum williamsburg.museum windmill.museum workshop.museum york.museum yorkshire.museum yosemite.museum youth.museum zoological.museum zoology.museum ירושלים.museum иком.museum mv aero.mv biz.mv com.mv coop.mv edu.mv gov.mv info.mv int.mv mil.mv museum.mv name.mv net.mv org.mv pro.mv mw ac.mw biz.mw co.mw com.mw coop.mw edu.mw gov.mw int.mw museum.mw net.mw org.mw mx com.mx org.mx gob.mx edu.mx net.mx my com.my net.my org.my gov.my edu.my mil.my name.my mz ac.mz adv.mz co.mz edu.mz gov.mz mil.mz net.mz org.mz na info.na pro.na name.na school.na or.na dr.na us.na mx.na ca.na in.na cc.na tv.na ws.na mobi.na co.na com.na org.na name nc asso.nc nom.nc ne net nf com.nf net.nf per.nf rec.nf web.nf arts.nf firm.nf info.nf other.nf store.nf ng com.ng edu.ng gov.ng i.ng mil.ng mobi.ng name.ng net.ng org.ng sch.ng ni ac.ni biz.ni co.ni com.ni edu.ni gob.ni in.ni info.ni int.ni mil.ni net.ni nom.ni org.ni web.ni nl bv.nl no fhs.no vgs.no fylkesbibl.no folkebibl.no museum.no idrett.no priv.no mil.no stat.no dep.no kommune.no herad.no aa.no ah.no bu.no fm.no hl.no hm.no jan-mayen.no mr.no nl.no nt.no of.no ol.no oslo.no rl.no sf.no st.no svalbard.no tm.no tr.no va.no vf.no gs.aa.no gs.ah.no gs.bu.no gs.fm.no gs.hl.no gs.hm.no gs.jan-mayen.no gs.mr.no gs.nl.no gs.nt.no gs.of.no gs.ol.no gs.oslo.no gs.rl.no gs.sf.no gs.st.no gs.svalbard.no gs.tm.no gs.tr.no gs.va.no gs.vf.no akrehamn.no åkrehamn.no algard.no ålgård.no arna.no brumunddal.no bryne.no bronnoysund.no brønnøysund.no drobak.no drøbak.no egersund.no fetsund.no floro.no florø.no fredrikstad.no hokksund.no honefoss.no hønefoss.no jessheim.no jorpeland.no jørpeland.no kirkenes.no kopervik.no krokstadelva.no langevag.no langevåg.no leirvik.no mjondalen.no mjøndalen.no mo-i-rana.no mosjoen.no mosjøen.no nesoddtangen.no orkanger.no osoyro.no osøyro.no raholt.no råholt.no sandnessjoen.no sandnessjøen.no skedsmokorset.no slattum.no spjelkavik.no stathelle.no stavern.no stjordalshalsen.no stjørdalshalsen.no tananger.no tranby.no vossevangen.no afjord.no åfjord.no agdenes.no al.no ål.no alesund.no ålesund.no alstahaug.no alta.no áltá.no alaheadju.no álaheadju.no alvdal.no amli.no åmli.no amot.no åmot.no andebu.no andoy.no andøy.no andasuolo.no ardal.no årdal.no aremark.no arendal.no ås.no aseral.no åseral.no asker.no askim.no askvoll.no askoy.no askøy.no asnes.no åsnes.no audnedaln.no aukra.no aure.no aurland.no aurskog-holand.no aurskog-høland.no austevoll.no austrheim.no averoy.no averøy.no balestrand.no ballangen.no balat.no bálát.no balsfjord.no bahccavuotna.no báhccavuotna.no bamble.no bardu.no beardu.no beiarn.no bajddar.no bájddar.no baidar.no báidár.no berg.no bergen.no berlevag.no berlevåg.no bearalvahki.no bearalváhki.no bindal.no birkenes.no bjarkoy.no bjarkøy.no bjerkreim.no bjugn.no bodo.no bodø.no badaddja.no bådåddjå.no budejju.no bokn.no bremanger.no bronnoy.no brønnøy.no bygland.no bykle.no barum.no bærum.no bo.telemark.no bø.telemark.no bo.nordland.no bø.nordland.no bievat.no bievát.no bomlo.no bømlo.no batsfjord.no båtsfjord.no bahcavuotna.no báhcavuotna.no dovre.no drammen.no drangedal.no dyroy.no dyrøy.no donna.no dønna.no eid.no eidfjord.no eidsberg.no eidskog.no eidsvoll.no eigersund.no elverum.no enebakk.no engerdal.no etne.no etnedal.no evenes.no evenassi.no evenášši.no evje-og-hornnes.no farsund.no fauske.no fuossko.no fuoisku.no fedje.no fet.no finnoy.no finnøy.no fitjar.no fjaler.no fjell.no flakstad.no flatanger.no flekkefjord.no flesberg.no flora.no fla.no flå.no folldal.no forsand.no fosnes.no frei.no frogn.no froland.no frosta.no frana.no fræna.no froya.no frøya.no fusa.no fyresdal.no forde.no førde.no gamvik.no gangaviika.no gáŋgaviika.no gaular.no gausdal.no gildeskal.no gildeskål.no giske.no gjemnes.no gjerdrum.no gjerstad.no gjesdal.no gjovik.no gjøvik.no gloppen.no gol.no gran.no grane.no granvin.no gratangen.no grimstad.no grong.no kraanghke.no kråanghke.no grue.no gulen.no hadsel.no halden.no halsa.no hamar.no hamaroy.no habmer.no hábmer.no hapmir.no hápmir.no hammerfest.no hammarfeasta.no hámmárfeasta.no haram.no hareid.no harstad.no hasvik.no aknoluokta.no ákŋoluokta.no hattfjelldal.no aarborte.no haugesund.no hemne.no hemnes.no hemsedal.no heroy.more-og-romsdal.no herøy.møre-og-romsdal.no heroy.nordland.no herøy.nordland.no hitra.no hjartdal.no hjelmeland.no hobol.no hobøl.no hof.no hol.no hole.no holmestrand.no holtalen.no holtålen.no hornindal.no horten.no hurdal.no hurum.no hvaler.no hyllestad.no hagebostad.no hægebostad.no hoyanger.no høyanger.no hoylandet.no høylandet.no ha.no hå.no ibestad.no inderoy.no inderøy.no iveland.no jevnaker.no jondal.no jolster.no jølster.no karasjok.no karasjohka.no kárášjohka.no karlsoy.no galsa.no gálsá.no karmoy.no karmøy.no kautokeino.no guovdageaidnu.no klepp.no klabu.no klæbu.no kongsberg.no kongsvinger.no kragero.no kragerø.no kristiansand.no kristiansund.no krodsherad.no krødsherad.no kvalsund.no rahkkeravju.no ráhkkerávju.no kvam.no kvinesdal.no kvinnherad.no kviteseid.no kvitsoy.no kvitsøy.no kvafjord.no kvæfjord.no giehtavuoatna.no kvanangen.no kvænangen.no navuotna.no návuotna.no kafjord.no kåfjord.no gaivuotna.no gáivuotna.no larvik.no lavangen.no lavagis.no loabat.no loabát.no lebesby.no davvesiida.no leikanger.no leirfjord.no leka.no leksvik.no lenvik.no leangaviika.no leaŋgaviika.no lesja.no levanger.no lier.no lierne.no lillehammer.no lillesand.no lindesnes.no lindas.no lindås.no lom.no loppa.no lahppi.no láhppi.no lund.no lunner.no luroy.no lurøy.no luster.no lyngdal.no lyngen.no ivgu.no lardal.no lerdal.no lærdal.no lodingen.no lødingen.no lorenskog.no lørenskog.no loten.no løten.no malvik.no masoy.no måsøy.no muosat.no muosát.no mandal.no marker.no marnardal.no masfjorden.no meland.no meldal.no melhus.no meloy.no meløy.no meraker.no meråker.no moareke.no moåreke.no midsund.no midtre-gauldal.no modalen.no modum.no molde.no moskenes.no moss.no mosvik.no malselv.no målselv.no malatvuopmi.no málatvuopmi.no namdalseid.no aejrie.no namsos.no namsskogan.no naamesjevuemie.no nååmesjevuemie.no laakesvuemie.no nannestad.no narvik.no narviika.no naustdal.no nedre-eiker.no nes.akershus.no nes.buskerud.no nesna.no nesodden.no nesseby.no unjarga.no unjárga.no nesset.no nissedal.no nittedal.no nord-aurdal.no nord-fron.no nord-odal.no norddal.no nordkapp.no davvenjarga.no davvenjárga.no nordre-land.no nordreisa.no raisa.no ráisa.no nore-og-uvdal.no notodden.no naroy.no nærøy.no notteroy.no nøtterøy.no odda.no oksnes.no øksnes.no oppdal.no oppegard.no oppegård.no orkdal.no orland.no ørland.no orskog.no ørskog.no orsta.no ørsta.no os.hedmark.no os.hordaland.no osen.no osteroy.no osterøy.no ostre-toten.no østre-toten.no overhalla.no ovre-eiker.no øvre-eiker.no oyer.no øyer.no oygarden.no øygarden.no oystre-slidre.no øystre-slidre.no porsanger.no porsangu.no porsáŋgu.no porsgrunn.no radoy.no radøy.no rakkestad.no rana.no ruovat.no randaberg.no rauma.no rendalen.no rennebu.no rennesoy.no rennesøy.no rindal.no ringebu.no ringerike.no ringsaker.no rissa.no risor.no risør.no roan.no rollag.no rygge.no ralingen.no rælingen.no rodoy.no rødøy.no romskog.no rømskog.no roros.no røros.no rost.no røst.no royken.no røyken.no royrvik.no røyrvik.no rade.no råde.no salangen.no siellak.no saltdal.no salat.no sálát.no sálat.no samnanger.no sande.more-og-romsdal.no sande.møre-og-romsdal.no sande.vestfold.no sandefjord.no sandnes.no sandoy.no sandøy.no sarpsborg.no sauda.no sauherad.no sel.no selbu.no selje.no seljord.no sigdal.no siljan.no sirdal.no skaun.no skedsmo.no ski.no skien.no skiptvet.no skjervoy.no skjervøy.no skierva.no skiervá.no skjak.no skjåk.no skodje.no skanland.no skånland.no skanit.no skánit.no smola.no smøla.no snillfjord.no snasa.no snåsa.no snoasa.no snaase.no snåase.no sogndal.no sokndal.no sola.no solund.no songdalen.no sortland.no spydeberg.no stange.no stavanger.no steigen.no steinkjer.no stjordal.no stjørdal.no stokke.no stor-elvdal.no stord.no stordal.no storfjord.no omasvuotna.no strand.no stranda.no stryn.no sula.no suldal.no sund.no sunndal.no surnadal.no sveio.no svelvik.no sykkylven.no sogne.no søgne.no somna.no sømna.no sondre-land.no søndre-land.no sor-aurdal.no sør-aurdal.no sor-fron.no sør-fron.no sor-odal.no sør-odal.no sor-varanger.no sør-varanger.no matta-varjjat.no mátta-várjjat.no sorfold.no sørfold.no sorreisa.no sørreisa.no sorum.no sørum.no tana.no deatnu.no time.no tingvoll.no tinn.no tjeldsund.no dielddanuorri.no tjome.no tjøme.no tokke.no tolga.no torsken.no tranoy.no tranøy.no tromso.no tromsø.no tromsa.no romsa.no trondheim.no troandin.no trysil.no trana.no træna.no trogstad.no trøgstad.no tvedestrand.no tydal.no tynset.no tysfjord.no divtasvuodna.no divttasvuotna.no tysnes.no tysvar.no tysvær.no tonsberg.no tønsberg.no ullensaker.no ullensvang.no ulvik.no utsira.no vadso.no vadsø.no cahcesuolo.no čáhcesuolo.no vaksdal.no valle.no vang.no vanylven.no vardo.no vardø.no varggat.no várggát.no vefsn.no vaapste.no vega.no vegarshei.no vegårshei.no vennesla.no verdal.no verran.no vestby.no vestnes.no vestre-slidre.no vestre-toten.no vestvagoy.no vestvågøy.no vevelstad.no vik.no vikna.no vindafjord.no volda.no voss.no varoy.no værøy.no vagan.no vågan.no voagat.no vagsoy.no vågsøy.no vaga.no vågå.no valer.ostfold.no våler.østfold.no valer.hedmark.no våler.hedmark.no *.np nr biz.nr info.nr gov.nr edu.nr org.nr net.nr com.nr nu nz ac.nz co.nz cri.nz geek.nz gen.nz govt.nz health.nz iwi.nz kiwi.nz maori.nz mil.nz māori.nz net.nz org.nz parliament.nz school.nz om co.om com.om edu.om gov.om med.om museum.om net.om org.om pro.om onion org pa ac.pa gob.pa com.pa org.pa sld.pa edu.pa net.pa ing.pa abo.pa med.pa nom.pa pe edu.pe gob.pe nom.pe mil.pe org.pe com.pe net.pe pf com.pf org.pf edu.pf *.pg ph com.ph net.ph org.ph gov.ph edu.ph ngo.ph mil.ph i.ph pk com.pk net.pk edu.pk org.pk fam.pk biz.pk web.pk gov.pk gob.pk gok.pk gon.pk gop.pk gos.pk info.pk pl com.pl net.pl org.pl aid.pl agro.pl atm.pl auto.pl biz.pl edu.pl gmina.pl gsm.pl info.pl mail.pl miasta.pl media.pl mil.pl nieruchomosci.pl nom.pl pc.pl powiat.pl priv.pl realestate.pl rel.pl sex.pl shop.pl sklep.pl sos.pl szkola.pl targi.pl tm.pl tourism.pl travel.pl turystyka.pl gov.pl ap.gov.pl ic.gov.pl is.gov.pl us.gov.pl kmpsp.gov.pl kppsp.gov.pl kwpsp.gov.pl psp.gov.pl wskr.gov.pl kwp.gov.pl mw.gov.pl ug.gov.pl um.gov.pl umig.gov.pl ugim.gov.pl upow.gov.pl uw.gov.pl starostwo.gov.pl pa.gov.pl po.gov.pl psse.gov.pl pup.gov.pl rzgw.gov.pl sa.gov.pl so.gov.pl sr.gov.pl wsa.gov.pl sko.gov.pl uzs.gov.pl wiih.gov.pl winb.gov.pl pinb.gov.pl wios.gov.pl witd.gov.pl wzmiuw.gov.pl piw.gov.pl wiw.gov.pl griw.gov.pl wif.gov.pl oum.gov.pl sdn.gov.pl zp.gov.pl uppo.gov.pl mup.gov.pl wuoz.gov.pl konsulat.gov.pl oirm.gov.pl augustow.pl babia-gora.pl bedzin.pl beskidy.pl bialowieza.pl bialystok.pl bielawa.pl bieszczady.pl boleslawiec.pl bydgoszcz.pl bytom.pl cieszyn.pl czeladz.pl czest.pl dlugoleka.pl elblag.pl elk.pl glogow.pl gniezno.pl gorlice.pl grajewo.pl ilawa.pl jaworzno.pl jelenia-gora.pl jgora.pl kalisz.pl kazimierz-dolny.pl karpacz.pl kartuzy.pl kaszuby.pl katowice.pl kepno.pl ketrzyn.pl klodzko.pl kobierzyce.pl kolobrzeg.pl konin.pl konskowola.pl kutno.pl lapy.pl lebork.pl legnica.pl lezajsk.pl limanowa.pl lomza.pl lowicz.pl lubin.pl lukow.pl malbork.pl malopolska.pl mazowsze.pl mazury.pl mielec.pl mielno.pl mragowo.pl naklo.pl nowaruda.pl nysa.pl olawa.pl olecko.pl olkusz.pl olsztyn.pl opoczno.pl opole.pl ostroda.pl ostroleka.pl ostrowiec.pl ostrowwlkp.pl pila.pl pisz.pl podhale.pl podlasie.pl polkowice.pl pomorze.pl pomorskie.pl prochowice.pl pruszkow.pl przeworsk.pl pulawy.pl radom.pl rawa-maz.pl rybnik.pl rzeszow.pl sanok.pl sejny.pl slask.pl slupsk.pl sosnowiec.pl stalowa-wola.pl skoczow.pl starachowice.pl stargard.pl suwalki.pl swidnica.pl swiebodzin.pl swinoujscie.pl szczecin.pl szczytno.pl tarnobrzeg.pl tgory.pl turek.pl tychy.pl ustka.pl walbrzych.pl warmia.pl warszawa.pl waw.pl wegrow.pl wielun.pl wlocl.pl wloclawek.pl wodzislaw.pl wolomin.pl wroclaw.pl zachpomor.pl zagan.pl zarow.pl zgora.pl zgorzelec.pl pm pn gov.pn co.pn org.pn edu.pn net.pn post pr com.pr net.pr org.pr gov.pr edu.pr isla.pr pro.pr biz.pr info.pr name.pr est.pr prof.pr ac.pr pro aaa.pro aca.pro acct.pro avocat.pro bar.pro cpa.pro eng.pro jur.pro law.pro med.pro recht.pro ps edu.ps gov.ps sec.ps plo.ps com.ps org.ps net.ps pt net.pt gov.pt org.pt edu.pt int.pt publ.pt com.pt nome.pt pw co.pw ne.pw or.pw ed.pw go.pw belau.pw py com.py coop.py edu.py gov.py mil.py net.py org.py qa com.qa edu.qa gov.qa mil.qa name.qa net.qa org.qa sch.qa re asso.re com.re nom.re ro arts.ro com.ro firm.ro info.ro nom.ro nt.ro org.ro rec.ro store.ro tm.ro www.ro rs ac.rs co.rs edu.rs gov.rs in.rs org.rs ru ac.ru edu.ru gov.ru int.ru mil.ru test.ru rw gov.rw net.rw edu.rw ac.rw com.rw co.rw int.rw mil.rw gouv.rw sa com.sa net.sa org.sa gov.sa med.sa pub.sa edu.sa sch.sa sb com.sb edu.sb gov.sb net.sb org.sb sc com.sc gov.sc net.sc org.sc edu.sc sd com.sd net.sd org.sd edu.sd med.sd tv.sd gov.sd info.sd se a.se ac.se b.se bd.se brand.se c.se d.se e.se f.se fh.se fhsk.se fhv.se g.se h.se i.se k.se komforb.se kommunalforbund.se komvux.se l.se lanbib.se m.se n.se naturbruksgymn.se o.se org.se p.se parti.se pp.se press.se r.se s.se t.se tm.se u.se w.se x.se y.se z.se sg com.sg net.sg org.sg gov.sg edu.sg per.sg sh com.sh net.sh gov.sh org.sh mil.sh si sj sk sl com.sl net.sl edu.sl gov.sl org.sl sm sn art.sn com.sn edu.sn gouv.sn org.sn perso.sn univ.sn so com.so net.so org.so sr st co.st com.st consulado.st edu.st embaixada.st gov.st mil.st net.st org.st principe.st saotome.st store.st su sv com.sv edu.sv gob.sv org.sv red.sv sx gov.sx sy edu.sy gov.sy net.sy mil.sy com.sy org.sy sz co.sz ac.sz org.sz tc td tel tf tg th ac.th co.th go.th in.th mi.th net.th or.th tj ac.tj biz.tj co.tj com.tj edu.tj go.tj gov.tj int.tj mil.tj name.tj net.tj nic.tj org.tj test.tj web.tj tk tl gov.tl tm com.tm co.tm org.tm net.tm nom.tm gov.tm mil.tm edu.tm tn com.tn ens.tn fin.tn gov.tn ind.tn intl.tn nat.tn net.tn org.tn info.tn perso.tn tourism.tn edunet.tn rnrt.tn rns.tn rnu.tn mincom.tn agrinet.tn defense.tn turen.tn to com.to gov.to net.to org.to edu.to mil.to tr com.tr info.tr biz.tr net.tr org.tr web.tr gen.tr tv.tr av.tr dr.tr bbs.tr name.tr tel.tr gov.tr bel.tr pol.tr mil.tr k12.tr edu.tr kep.tr nc.tr gov.nc.tr travel tt co.tt com.tt org.tt net.tt biz.tt info.tt pro.tt int.tt coop.tt jobs.tt mobi.tt travel.tt museum.tt aero.tt name.tt gov.tt edu.tt tv tw edu.tw gov.tw mil.tw com.tw net.tw org.tw idv.tw game.tw ebiz.tw club.tw 網路.tw 組織.tw 商業.tw tz ac.tz co.tz go.tz hotel.tz info.tz me.tz mil.tz mobi.tz ne.tz or.tz sc.tz tv.tz ua com.ua edu.ua gov.ua in.ua net.ua org.ua cherkassy.ua cherkasy.ua chernigov.ua chernihiv.ua chernivtsi.ua chernovtsy.ua ck.ua cn.ua cr.ua crimea.ua cv.ua dn.ua dnepropetrovsk.ua dnipropetrovsk.ua dominic.ua donetsk.ua dp.ua if.ua ivano-frankivsk.ua kh.ua kharkiv.ua kharkov.ua kherson.ua khmelnitskiy.ua khmelnytskyi.ua kiev.ua kirovograd.ua km.ua kr.ua krym.ua ks.ua kv.ua kyiv.ua lg.ua lt.ua lugansk.ua lutsk.ua lv.ua lviv.ua mk.ua mykolaiv.ua nikolaev.ua od.ua odesa.ua odessa.ua pl.ua poltava.ua rivne.ua rovno.ua rv.ua sb.ua sebastopol.ua sevastopol.ua sm.ua sumy.ua te.ua ternopil.ua uz.ua uzhgorod.ua vinnica.ua vinnytsia.ua vn.ua volyn.ua yalta.ua zaporizhzhe.ua zaporizhzhia.ua zhitomir.ua zhytomyr.ua zp.ua zt.ua ug co.ug or.ug ac.ug sc.ug go.ug ne.ug com.ug org.ug uk ac.uk co.uk gov.uk ltd.uk me.uk net.uk nhs.uk org.uk plc.uk police.uk *.sch.uk us dni.us fed.us isa.us kids.us nsn.us ak.us al.us ar.us as.us az.us ca.us co.us ct.us dc.us de.us fl.us ga.us gu.us hi.us ia.us id.us il.us in.us ks.us ky.us la.us ma.us md.us me.us mi.us mn.us mo.us ms.us mt.us nc.us nd.us ne.us nh.us nj.us nm.us nv.us ny.us oh.us ok.us or.us pa.us pr.us ri.us sc.us sd.us tn.us tx.us ut.us vi.us vt.us va.us wa.us wi.us wv.us wy.us k12.ak.us k12.al.us k12.ar.us k12.as.us k12.az.us k12.ca.us k12.co.us k12.ct.us k12.dc.us k12.de.us k12.fl.us k12.ga.us k12.gu.us k12.ia.us k12.id.us k12.il.us k12.in.us k12.ks.us k12.ky.us k12.la.us k12.ma.us k12.md.us k12.me.us k12.mi.us k12.mn.us k12.mo.us k12.ms.us k12.mt.us k12.nc.us k12.ne.us k12.nh.us k12.nj.us k12.nm.us k12.nv.us k12.ny.us k12.oh.us k12.ok.us k12.or.us k12.pa.us k12.pr.us k12.ri.us k12.sc.us k12.tn.us k12.tx.us k12.ut.us k12.vi.us k12.vt.us k12.va.us k12.wa.us k12.wi.us k12.wy.us cc.ak.us cc.al.us cc.ar.us cc.as.us cc.az.us cc.ca.us cc.co.us cc.ct.us cc.dc.us cc.de.us cc.fl.us cc.ga.us cc.gu.us cc.hi.us cc.ia.us cc.id.us cc.il.us cc.in.us cc.ks.us cc.ky.us cc.la.us cc.ma.us cc.md.us cc.me.us cc.mi.us cc.mn.us cc.mo.us cc.ms.us cc.mt.us cc.nc.us cc.nd.us cc.ne.us cc.nh.us cc.nj.us cc.nm.us cc.nv.us cc.ny.us cc.oh.us cc.ok.us cc.or.us cc.pa.us cc.pr.us cc.ri.us cc.sc.us cc.sd.us cc.tn.us cc.tx.us cc.ut.us cc.vi.us cc.vt.us cc.va.us cc.wa.us cc.wi.us cc.wv.us cc.wy.us lib.ak.us lib.al.us lib.ar.us lib.as.us lib.az.us lib.ca.us lib.co.us lib.ct.us lib.dc.us lib.fl.us lib.ga.us lib.gu.us lib.hi.us lib.ia.us lib.id.us lib.il.us lib.in.us lib.ks.us lib.ky.us lib.la.us lib.ma.us lib.md.us lib.me.us lib.mi.us lib.mn.us lib.mo.us lib.ms.us lib.mt.us lib.nc.us lib.nd.us lib.ne.us lib.nh.us lib.nj.us lib.nm.us lib.nv.us lib.ny.us lib.oh.us lib.ok.us lib.or.us lib.pa.us lib.pr.us lib.ri.us lib.sc.us lib.sd.us lib.tn.us lib.tx.us lib.ut.us lib.vi.us lib.vt.us lib.va.us lib.wa.us lib.wi.us lib.wy.us pvt.k12.ma.us chtr.k12.ma.us paroch.k12.ma.us ann-arbor.mi.us cog.mi.us dst.mi.us eaton.mi.us gen.mi.us mus.mi.us tec.mi.us washtenaw.mi.us uy com.uy edu.uy gub.uy mil.uy net.uy org.uy uz co.uz com.uz net.uz org.uz va vc com.vc net.vc org.vc gov.vc mil.vc edu.vc ve arts.ve co.ve com.ve e12.ve edu.ve firm.ve gob.ve gov.ve info.ve int.ve mil.ve net.ve org.ve rec.ve store.ve tec.ve web.ve vg vi co.vi com.vi k12.vi net.vi org.vi vn com.vn net.vn org.vn edu.vn gov.vn int.vn ac.vn biz.vn info.vn name.vn pro.vn health.vn vu com.vu edu.vu net.vu org.vu wf ws com.ws net.ws org.ws gov.ws edu.ws yt امارات հայ বাংলা бг бел 中国 中國 الجزائر مصر ею გე ελ 香港 ಭಾರತ ଭାରତ ভাৰত भारतम् भारोत ڀارت ഭാരതം भारत بھارت భారత్ ભારત ਭਾਰਤ ভারত இந்தியா ایران ايران عراق الاردن 한국 қаз ලංකා இலங்கை المغرب мкд мон 澳門 澳门 مليسيا عمان پاکستان پاكستان فلسطين срб пр.срб орг.срб обр.срб од.срб упр.срб ак.срб рф قطر السعودية السعودیة السعودیۃ السعوديه سودان 新加坡 சிங்கப்பூர் سورية سوريا ไทย ศึกษา.ไทย ธุรกิจ.ไทย รัฐบาล.ไทย ทหาร.ไทย เน็ต.ไทย องค์กร.ไทย تونس 台灣 台湾 臺灣 укр اليمن xxx *.ye ac.za agric.za alt.za co.za edu.za gov.za grondar.za law.za mil.za net.za ngo.za nis.za nom.za org.za school.za tm.za web.za zm ac.zm biz.zm co.zm com.zm edu.zm gov.zm info.zm mil.zm net.zm org.zm sch.zm zw ac.zw co.zw gov.zw mil.zw org.zw aaa aarp abarth abb abbott abbvie abc able abogado abudhabi academy accenture accountant accountants aco active actor adac ads adult aeg aetna afamilycompany afl africa agakhan agency aig aigo airbus airforce airtel akdn alfaromeo alibaba alipay allfinanz allstate ally alsace alstom americanexpress americanfamily amex amfam amica amsterdam analytics android anquan anz aol apartments app apple aquarelle arab aramco archi army art arte asda associates athleta attorney auction audi audible audio auspost author auto autos avianca aws axa azure baby baidu banamex bananarepublic band bank bar barcelona barclaycard barclays barefoot bargains baseball basketball bauhaus bayern bbc bbt bbva bcg bcn beats beauty beer bentley berlin best bestbuy bet bharti bible bid bike bing bingo bio black blackfriday blanco blockbuster blog bloomberg blue bms bmw bnl bnpparibas boats boehringer bofa bom bond boo book booking boots bosch bostik boston bot boutique box bradesco bridgestone broadway broker brother brussels budapest bugatti build builders business buy buzz bzh cab cafe cal call calvinklein cam camera camp cancerresearch canon capetown capital capitalone car caravan cards care career careers cars cartier casa case caseih cash casino catering catholic cba cbn cbre cbs ceb center ceo cern cfa cfd chanel channel chase chat cheap chintai chloe christmas chrome chrysler church cipriani circle cisco citadel citi citic city cityeats claims cleaning click clinic clinique clothing cloud club clubmed coach codes coffee college cologne comcast commbank community company compare computer comsec condos construction consulting contact contractors cooking cookingchannel cool corsica country coupon coupons courses credit creditcard creditunion cricket crown crs cruise cruises csc cuisinella cymru cyou dabur dad dance data date dating datsun day dclk dds deal dealer deals degree delivery dell deloitte delta democrat dental dentist desi design dev dhl diamonds diet digital direct directory discount discover dish diy dnp docs doctor dodge dog doha domains dot download drive dtv dubai duck dunlop duns dupont durban dvag dvr earth eat eco edeka education email emerck energy engineer engineering enterprises epost epson equipment ericsson erni esq estate esurance etisalat eurovision eus events everbank exchange expert exposed express extraspace fage fail fairwinds faith family fan fans farm farmers fashion fast fedex feedback ferrari ferrero fiat fidelity fido film final finance financial fire firestone firmdale fish fishing fit fitness flickr flights flir florist flowers fly foo food foodnetwork football ford forex forsale forum foundation fox free fresenius frl frogans frontdoor frontier ftr fujitsu fujixerox fun fund furniture futbol fyi gal gallery gallo gallup game games gap garden gbiz gdn gea gent genting george ggee gift gifts gives giving glade glass gle global globo gmail gmbh gmo gmx godaddy gold goldpoint golf goo goodhands goodyear goog google gop got grainger graphics gratis green gripe grocery group guardian gucci guge guide guitars guru hair hamburg hangout haus hbo hdfc hdfcbank health healthcare help helsinki here hermes hgtv hiphop hisamitsu hitachi hiv hkt hockey holdings holiday homedepot homegoods homes homesense honda honeywell horse hospital host hosting hot hoteles hotels hotmail house how hsbc htc hughes hyatt hyundai ibm icbc ice icu ieee ifm ikano imamat imdb immo immobilien industries infiniti ing ink institute insurance insure intel international intuit investments ipiranga irish iselect ismaili ist istanbul itau itv iveco iwc jaguar java jcb jcp jeep jetzt jewelry jio jlc jll jmp jnj joburg jot joy jpmorgan jprs juegos juniper kaufen kddi kerryhotels kerrylogistics kerryproperties kfh kia kim kinder kindle kitchen kiwi koeln komatsu kosher kpmg kpn krd kred kuokgroup kyoto lacaixa ladbrokes lamborghini lamer lancaster lancia lancome land landrover lanxess lasalle lat latino latrobe law lawyer lds lease leclerc lefrak legal lego lexus lgbt liaison lidl life lifeinsurance lifestyle lighting like lilly limited limo lincoln linde link lipsy live living lixil loan loans locker locus loft lol london lotte lotto love lpl lplfinancial ltd ltda lundbeck lupin luxe luxury macys madrid maif maison makeup man management mango map market marketing markets marriott marshalls maserati mattel mba mcd mcdonalds mckinsey med media meet melbourne meme memorial men menu meo merckmsd metlife miami microsoft mini mint mit mitsubishi mlb mls mma mobile mobily moda moe moi mom monash money monster montblanc mopar mormon mortgage moscow moto motorcycles mov movie movistar msd mtn mtpc mtr mutual nab nadex nagoya nationwide natura navy nba nec netbank netflix network neustar new newholland news next nextdirect nexus nfl ngo nhk nico nike nikon ninja nissan nissay nokia northwesternmutual norton now nowruz nowtv nra nrw ntt nyc obi observer off office okinawa olayan olayangroup oldnavy ollo omega one ong onl online onyourside ooo open oracle orange organic origins osaka otsuka ott ovh page pamperedchef panasonic panerai paris pars partners parts party passagens pay pccw pet pfizer pharmacy phd philips phone photo photography photos physio piaget pics pictet pictures pid pin ping pink pioneer pizza place play playstation plumbing plus pnc pohl poker politie porn pramerica praxi press prime prod productions prof progressive promo properties property protection pru prudential pub pwc qpon quebec quest qvc racing radio raid read realestate realtor realty recipes red redstone redumbrella rehab reise reisen reit reliance ren rent rentals repair report republican rest restaurant review reviews rexroth rich richardli ricoh rightathome ril rio rip rmit rocher rocks rodeo rogers room rsvp rugby ruhr run rwe ryukyu saarland safe safety sakura sale salon samsclub samsung sandvik sandvikcoromant sanofi sap sapo sarl sas save saxo sbi sbs sca scb schaeffler schmidt scholarships school schule schwarz science scjohnson scor scot search seat secure security seek select sener services ses seven sew sex sexy sfr shangrila sharp shaw shell shia shiksha shoes shop shopping shouji show showtime shriram silk sina singles site ski skin sky skype sling smart smile sncf soccer social softbank software sohu solar solutions song sony soy space spiegel spot spreadbetting srl srt stada staples star starhub statebank statefarm statoil stc stcgroup stockholm storage store stream studio study style sucks supplies supply support surf surgery suzuki swatch swiftcover swiss sydney symantec systems tab taipei talk taobao target tatamotors tatar tattoo tax taxi tci tdk team tech technology telecity telefonica temasek tennis teva thd theater theatre tiaa tickets tienda tiffany tips tires tirol tjmaxx tjx tkmaxx tmall today tokyo tools top toray toshiba total tours town toyota toys trade trading training travelchannel travelers travelersinsurance trust trv tube tui tunes tushu tvs ubank ubs uconnect unicom university uno uol ups vacations vana vanguard vegas ventures verisign versicherung vet viajes video vig viking villas vin vip virgin visa vision vista vistaprint viva vivo vlaanderen vodka volkswagen volvo vote voting voto voyage vuelos wales walmart walter wang wanggou warman watch watches weather weatherchannel webcam weber website wed wedding weibo weir whoswho wien wiki williamhill win windows wine winners wme wolterskluwer woodside work works world wow wtc wtf xbox xerox xfinity xihuan xin कॉम セール 佛山 慈善 集团 在线 大众汽车 点看 คอม 八卦 موقع 公益 公司 香格里拉 网站 移动 我爱你 москва католик онлайн сайт 联通 קום 时尚 微博 淡马锡 ファッション орг नेट ストア 삼성 商标 商店 商城 дети ポイント 新闻 工行 家電 كوم 中文网 中信 娱乐 谷歌 電訊盈科 购物 クラウド 通販 网店 संगठन 餐厅 网络 ком 诺基亚 食品 飞利浦 手表 手机 ارامكو العليان اتصالات بازار موبايلي ابوظبي كاثوليك همراه 닷컴 政府 شبكة بيتك عرب 机构 组织机构 健康 рус 珠宝 大拿 みんな グーグル 世界 書籍 网址 닷넷 コム 天主教 游戏 vermögensberater vermögensberatung 企业 信息 嘉里大酒店 嘉里 广东 政务 xperia xyz yachts yahoo yamaxun yandex yodobashi yoga yokohama you youtube yun zappos zara zero zip zippo zone zuerich cc.ua inf.ua ltd.ua ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/records_mass_create.py0000664000175000017500000000352000000000000021601 0ustar00zuulzuul00000000000000#!/usr/bin/env python # Copyright 2015 Hewlett-Packard Development Company, L.P. # # Author: Endre Karlson # # 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. import os import sys from designateclient import v1 from oslo_config import cfg from oslo_log import log as logging from designate.utils import generate_uuid cfg.CONF.register_cli_opts([ cfg.StrOpt("domain_id", help="ID of domain to use."), cfg.IntOpt("records", default=100, help="Records to create (name will be ..") ]) LOG = logging.getLogger(__name__) if __name__ == '__main__': logging.register_options(cfg.CONF) cfg.CONF(sys.argv[1:], project="designate") logging.setup(cfg.CONF, "designate") project_name = os.environ.get( 'OS_PROJECT_NAME', os.environ.get('OS_TENANT_NAME')) client = v1.Client( auth_url=os.environ.get('OS_AUTH_URL'), username=os.environ.get('OS_USERNAME'), password=os.environ.get('OS_PASSWORD'), project_name=project_name ) domain = client.domains.get(cfg.CONF.domain_id) msg = "Creating %s records", cfg.CONF.records LOG.info(msg) for i in range(0, cfg.CONF.records): name = '%s.%s' % (generate_uuid(), domain.name) record = {"name": name, "type": "A", "data": "10.0.0.1"} client.records.create(domain, record) ././@PaxHeader0000000000000000000000000000003300000000000011451 xustar000000000000000027 mtime=1638524437.716476 designate-10.0.2/contrib/vagrant/0000775000175000017500000000000000000000000016662 5ustar00zuulzuul00000000000000././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/vagrant/README.rst0000664000175000017500000000006500000000000020352 0ustar00zuulzuul00000000000000See devstack/README.rst or use setup_ubuntu_devstack ././@PaxHeader0000000000000000000000000000002600000000000011453 xustar000000000000000022 mtime=1638524406.0 designate-10.0.2/contrib/vagrant/Vagrantfile0000664000175000017500000001234100000000000021050 0ustar00zuulzuul00000000000000VAGRANTFILE_API_VERSION = "2" GITCONFIG = `cat $HOME/.gitconfig` Vagrant.require_version ">= 1.5" VM_RAM_SIZE = "8192" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.ssh.forward_agent = true config.vm.provider "virtualbox" do |vb, override| vb.customize ["modifyvm", :id, "--memory", VM_RAM_SIZE] if not RUBY_PLATFORM.downcase.include?("mswin") vb.customize ["modifyvm", :id, "--cpus", `awk "/^processor/ {++n} END {print n}" /proc/cpuinfo 2> /dev/null || sh -c 'sysctl hw.logicalcpu 2> /dev/null || echo ": 2"' | awk \'{print \$2}\' `.chomp ] end vb.customize ["modifyvm", :id, "--nicpromisc3", "allow-all"] override.vm.synced_folder "../..", "/opt/stack/designate" if File.directory?("../../../python-designateclient") override.vm.synced_folder "../../../python-designateclient", "/opt/stack/python-designateclient" end if File.directory?("../../../designate-dashboard") override.vm.synced_folder "../../../designate-dashboard", "/opt/stack/designate-dashboard" end if File.directory?("../../../designate-tempest-plugin") override.vm.synced_folder "../../../designate-tempest-plugin", "/opt/stack/designate-tempest-plugin" end if File.directory?("../../../devstack") override.vm.synced_folder "../../../devstack", "/home/vagrant/devstack" end if File.directory?("../../../grenade") override.vm.synced_folder "../../../grenade", "/opt/stack/grenade" end if File.directory?("../../../tempest") override.vm.synced_folder "../../../tempest", "/opt/stack/tempest" end if File.directory?("../../../rally") override.vm.synced_folder "../../../rally", "/opt/stack/rally" end end config.vm.provider :libvirt do |lv, override| lv.graphics_ip = '0.0.0.0' lv.nested = true lv.memory = Integer(VM_RAM_SIZE) if not RUBY_PLATFORM.downcase.include?("mswin") lv.cpus = `awk "/^processor/ {++n} END {print n}" /proc/cpuinfo 2> /dev/null || sh -c 'sysctl hw.logicalcpu 2> /dev/null || echo ": 2"' | awk \'{print \$2}\' `.chomp end override.vm.synced_folder ".", "/vagrant", type: "nfs" override.vm.synced_folder "../..", "/opt/stack/designate", type: "nfs" if File.directory?("../../../python-designateclient") override.vm.synced_folder "../../../python-designateclient", "/opt/stack/python-designateclient", type: "nfs" end if File.directory?("../../../designate-dashboard") override.vm.synced_folder "../../../designate-dashboard", "/opt/stack/designate-dashboard", type: "nfs" end if File.directory?("../../../designate-tempest-plugin") override.vm.synced_folder "../../../designate-tempest-plugin", "/opt/stack/designate-tempest-plugin", type: "nfs" end if File.directory?("../../../grenade") override.vm.synced_folder "../../../grenade", "/opt/stack/grenade", type: "nfs" end if File.directory?("../../../devstack") override.vm.synced_folder "../../../devstack", "/home/vagrant/devstack", type: "nfs" end if File.directory?("../../../tempest") override.vm.synced_folder "../../../tempest", "/opt/stack/tempest", type: "nfs" end if File.directory?("../../../rally") override.vm.synced_folder "../../../rally", "/opt/stack/rally", type: "nfs" end end $script = <