Commit Graph

138 Commits

Author SHA1 Message Date
Takashi Kajinami cb47b4e00e Make edgegrid-python optional
The edgegrid-python library is not necessary unless akamai backend is
used, so this library should be an optional dependency to avoid pulling
unnecessary packages.

Note that akamai backend hasn't been updated since it was added 4 years
back. Probably we can deprecate and remove it assuming it's not really
used(or at least it's not maintained).

Change-Id: If13e722e5ec3cdcd11461201ea20b2dc022cce10
2024-01-22 21:47:31 +09:00
Ghanshyam Mann cc5d53fcde Update python classifier in setup.cfg
As per the current release tested runtime, we test
till python 3.11 so updating the same in python
classifier in setup.cfg

Change-Id: Id074752fede10b9422e1e47739ff3ec28f65738b
2024-01-08 11:27:30 -08:00
Erik Olof Gunnar Andersson 2868db4f66 Remove deprecated designate-agent
This patch completely removes the designate-agent service
and all agent related plugins.

Change-Id: Ibe4011fb85797282fa44742d4b9c9b7c00e78622
2023-10-04 14:39:57 +00:00
likui 1da71884e4 Add python3.9 support in testing runtime
In 2023.2 cycle testing runtime, project test in py38 py39 and py10

[1] https://governance.openstack.org/tc/reference/runtimes/2023.2.html

Change-Id: Ib54dcc4433d2be789f96fc881ca9ee81fe751df9
2023-08-01 11:52:27 +08:00
Erik Olof Gunnar Andersson 0c30fc491b Restructured SQL code
We have a lot of abstraction that isn't really needed. This patch
removes some of that abstraction and reorganizes the code accordingly.

- Merged storage and sqlalchemy folders.
- Deprecated [central].storage_driver.
- Minor cleanup to SQL code.
- Cleaned up comments and unit tests.

Change-Id: I8f0508aedcc028b1a6e74c790c5d757a0d6c98d7
2023-05-11 21:28:36 -07:00
Erik Olof Gunnar Andersson fb9c2da977 Move to a batch model for incrementing serial
This patch moves the responsibility of incrementing the
serial on a zone from central to the producer. This also
means that NOTIFY is triggered by the producer after the
serial has been incremented. The advantage of this approach
is that we can now batch requests which means less work
for the DNS servers, and it removes the risk of
race-conditions when updating the serial. Finally, the
producer is sharded and is easy to scale which means that
this approach should scale well with many zones.

The disadvantage is that it may take up to 5 seconds longer
for the DNS record to be updated on the DNS server. This
can be lowered by increasing the frequency of the task
that is responsible for incrementing the serial.

Depends-On: https://review.opendev.org/#/c/871266/
Change-Id: I5e9733abaaa40c874e1d80d7b57e563df0f12cee
2023-04-04 03:48:34 +00:00
Pavlo Shchelokovskyy 6389eb4c68 Add oslo.policy.enforcer entry point
this will allow usage of many oslo.policy scripts, e.g.
to generate current effective policy, or to list redundant polices
defined in policy files.

Change-Id: I1de9b6cc16be2896136c7e99cf150c4b8e4603e9
Closes-Bug: #2004421
2023-01-31 19:05:25 +00:00
dekehn dcb61f7ffe Update metadata in setup.cfg
we are using some "aliases" that the setuptools docs say
"are supported for compatibility reasons" but their use is not
advised[1].

[1] https://setuptools.pypa.io/en/latest/userguide/declarative_config.html#metadata

Change-Id: Ib0fac569a255572aa2657fe2a7e4991e30f249de
2022-11-14 22:43:46 +00:00
likui 5641e6722f Drop python3.6/3.7 support in testing runtime
In Zed cycle testing runtime, we are targetting to drop the
python 3.6/3.7 support, project started adding python 3.8 as minimum

[1] https://governance.openstack.org/tc/reference/runtimes/zed.html

Change-Id: I96c0e18e78da38733d6fd1100481e825b8ed188f
2022-06-07 21:27:10 +00:00
wu.shiming 1504fbee26 Updating python testing classifier as per Yoga testing runtime
Yoga testing runtime[1] has been updated to add py39
testing as voting. Unit tests update are handled by the
job template change in openstack-zuul-job

- https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/820286

this commit updates the classifier in setup.cfg file.

[1] https://governance.openstack.org/tc/reference/runtimes/yoga.html

Change-Id: I4f024ebeac001986cc56384b1f77083926d146d5
2021-12-21 10:07:36 +08:00
Gunju Kim 771197c2f3 Remove Akamai (eDNS SOAP API) backend
The Akamai eDNS SOAP API this backend uses no longer exists at Akamai.

Related-Bug: 1946340
Change-Id: I6545781f263c6a3d124364785aedcf2518116485
2021-10-12 16:32:49 +00:00
Yandong Xuan 290b8c068e setup.cfg: Replace dashes with underscores
Resolves warnings like the following:

  UserWarning: Usage of dash-separated 'description-file' will not be
  supported in future versions. Please use the underscore name
  'description_file' instead

Change-Id: I6c161fc4bbc1fafa576916bb9dc3a039c06f9ffa
2021-05-01 15:15:45 +08:00
Michael Hood 5aac48f08b Add NS1 backend
Introduce an NS1 backend.

Signed-off-by: Michael Hood <mhood@ns1.com>
Change-Id: I80fe08238005a94161e2dbcc89e77c90cde0a715
2021-03-08 10:55:06 -08:00
gugug fa421e9178 Remove translation sections from setup.cfg
These translation sections are not needed anymore, Babel can
generate translation files without them.

Change-Id: Id54c22f820b1aa6315d721e354ce150c657bd4fd
2020-06-20 22:04:03 +08:00
zhangboye 7428bcef5b Add py38 package metadata
Change-Id: I89d4d36748bc053291493298f70a5c6819d43aa6
2020-05-26 10:34:50 +00:00
Andreas Jaeger 19ec7d9cd1 Cleanup py27 support
Make a few cleanups:
- Remove python 2.7 stanza from setup.py
- Add requires on python >= 3.6 to setup.cfg so that pypi and pip
  know about the requirement
- Remove obsolete sections from setup.cfg:
  * Wheel is not needed for python 3 only repo
  * Some other sections are obsolete
- Update classifiers
- Update requirements, no need for python_version anymore

Change-Id: Ia739f33b3db2c15a8c2eb6143134587f31591cfd
2020-04-05 08:11:51 +02:00
Erik Olof Gunnar Andersson 3fccc25bf6 Re-factored Heartbeat implementation
The use of this code path is very limited at the moment,
and this patch further simplifies the code to make it easier
to either deprecate or extend it in the future.

* Renamed service_status.py -> heartbeat_emitter.py.
* Merged HeartbeatEmitter and Heartbeat.

Change-Id: I68a4a49dd3e6bbc123c3ed5d3d3661aa08ad0bbb
2020-03-09 03:15:21 +00:00
Sergey Kraynev 318b8d0319 Implement create/delete zone for Akamai v2 API
- Ignore duplicate Zone error
- Handle error when contractId or gid is missed
- Ignore port for masters servers, because Akamai uses only 53 port and
does not allow to specify any port in list of masters servers.
- Added timeout and retries for soft Zone Delete
- Added handling errors on the delete zone action
- Added Log info message with RequestId on soft zone delete
- Added processing for TsigKey during creation zone
- Added devsatck_plugin for akamai_v2 backend

Depends-On: https://review.opendev.org/#/c/692819/4

Change-Id: Ib221f4cf0371e70fc6900582d826ffc1bdfc12b9
2020-01-16 18:54:30 +00:00
Zuul 7fc3a50382 Merge "Remove broken target sync extension" 2019-12-16 19:31:37 +00:00
Ghanshyam Mann cdac0fc2f9 [ussuri][goal] Drop python 2.7 support and testing
OpenStack is dropping the py2.7 support in ussuri cycle.

Designate is ready with python 3 and ok to drop the
python 2.7 support.

Complete discussion & schedule can be found in
- http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010142.html
- https://etherpad.openstack.org/p/drop-python2-support

Ussuri Communtiy-wide goal:
https://governance.openstack.org/tc/goals/selected/ussuri/drop-py27.html

Depends-On: https://review.opendev.org/#/c/693631/
Change-Id: I5a5bdc859f87f82097b95b2ebb31edb6e9b72b3a
2019-12-13 18:49:14 +00:00
Erik Olof Gunnar Andersson 2108a22037 Remove broken target sync extension
When we removed the pool-manager this was missed and the
extension is no longer functional.

Change-Id: Id3e5f87d18c7b6d79b44a6fa6df2f8efd2bf73ef
2019-11-27 18:39:25 +00:00
Erik Olof Gunnar Andersson c030d8dc46 Experimental wsgi support
Added experimental wsgi support. This is largley untested,
but should be functional.

Change-Id: I079702a4fd7547b1fb577f4e231863df3ed90adf
2019-09-25 10:36:45 -07:00
Erik Olof Gunnar Andersson 660eacbce4 Removed deprecated powerdns 3 driver
This driver was replaced by the pdns 4 driver
many cycles ago and is being permanently removed.

Change-Id: Ic34cee5fde21f838b6dd6b54fcdd767ec8b0bc18
2019-09-24 04:26:19 -07:00
Erik Olof Gunnar Andersson 52ad1c4c13 Removed deprecated pool-manager implementation
The pool-manager has been deprecated since Newton and
is now being removed with the Train release.

Change-Id: Ib258043d492bb25e1c061d765b40885317c73804
2019-09-24 11:10:54 +00:00
Erik Olof Gunnar Andersson bcd59f2b05 Removing manage command for akamai backend
This command has been broken for a very long time, and is
unlikely to be useful. In addition this command only supports
the old, unsupported ini based pool configuration.

Change-Id: Ic1896affe355fbc6d6c9a2cb2b6853df773cef57
2019-06-23 17:17:03 -07:00
Erik Olof Gunnar Andersson 47899bb762 Added sink unit tests
We had no coverage of the base sink. This add some basic
tests, as well as a fake notification handler that can be
used for testing.

Change-Id: Ie8657aacd22737f9ebaac4af4b34030e12ab18d0
2019-06-09 18:44:40 -07:00
Erik Olof Gunnar Andersson a53c3daf16 Moved most configuration into designate.conf
Based upon the established conf paradigm used in Nova,
this patch moves most of the configuration to a
central location. Making config a lot easier to
manage, as well a lot easier to locate.

There is still some configuration listed in classes,
that I would like to eventually move to
designate.conf as well, but to lower complexity not
all config was moved.

General changes
* Centrelized most configuration under designate.conf.
* Cleaned up configuration.
* Simplified config generation.
* Renamed generated config to designate.conf.sample.

Previously broken
* xfr_timeout now in the appropriate section.
* memcached_servers now in the appropriate section.

Previously missing from sample config
* allowed_remote_exmods listed in sample config.
* backend:akamai section listed in sample config.
* backend:dynect section listed in sample config.
* backend:infoblox section listed in sample config.

blueprint centralize-config-designate

Change-Id: I3be68bf294157631a9bac128df0841220020de96
2019-05-28 23:54:00 +00:00
ZhongShengping 27d2c22e8a Update Python 3 test runtimes for Train
This goal is to implement the process set out in the 2018-10-24 Python
Update Process TC resolution[1], for the Train cycle to ensure unit
testing is in place for all of the Tested Runtimes for Train[2].
In practice, this generally means adding unit tests for Python 3.7 and dropping
unit tests for Python 3.5. Using the Zuul template for Train will ensure that
all projects that support Python3 will be tested against the agreed runtime
versions, and make it easier to update them in future.

[1]https://governance.openstack.org/tc/resolutions/20181024-python-update-process.html
[2]https://governance.openstack.org/tc/reference/runtimes/train.html

Change-Id: I27ad92ae4f17e56e5879b7338db3543e5a67d8a5
Depends-On: https://review.opendev.org/#/c/641878/
2019-05-09 17:34:58 +08:00
Ghanshyam Mann 2a63b4d097 Dropping the py35 testing
All the integration testing has been moved to
Bionic now[1] and py3.5 is not tested runtime for
Train or stable/stein[2].

As per below ML thread, we are good to drop the py35
testing now:
http://lists.openstack.org/pipermail/openstack-discuss/2019-April/005097.html

[1] http://lists.openstack.org/pipermail/openstack-discuss/2019-April/004647.html
[2]
https://governance.openstack.org/tc/reference/runtimes/stein.html
https://governance.openstack.org/tc/reference/runtimes/train.html

Change-Id: I4a3416c240a0cd605491019739378f0e6acd0b0a
2019-04-14 19:34:30 +00:00
Zuul f97df023b2 Merge "Add designate-status command for upgrade checks" 2019-01-04 20:04:38 +00:00
Ben Nemec 1842802de4 Add designate-status command for upgrade checks
This checks for duplicate entries in the service_statuses table
which will be an error after change
I307a8f7dd8b8a83effa447a846db3288efa32dba.

Related-Bug: 1768824

Story: 2003657
Task: 26127

Change-Id: Ie0350b034f0eb03749138aadd0951d30073214c0
Co-authored-by: Doug Hellmann <doug@doughellmann.com>
2018-12-07 21:53:17 +00:00
ZhongShengping 3e71fa4f38 Change openstack-dev to openstack-discuss
Mailinglists have been updated. Openstack-discuss replaces openstack-dev.

Change-Id: I429898c6f3a65a3287aa33a401911f3d1dcfc65a
2018-12-04 10:08:47 +08:00
melissaml 794dea3817 Follow the new PTI for document build
For compliance with the Project Testing Interface as described in:
https://governance.openstack.org/tc/reference/project-testing-interface.html

For more detials information, please refer to:
http://lists.openstack.org/pipermail/openstack-dev/2017-December/125710.html

Change-Id: Ic7dad29922af2efed2188f3215f364719f0e19ae
2018-03-27 10:30:57 +08:00
Graham Hayes c318106c01 Remove v1 API
This completes the long awaited removal of the V1 API.

Change-Id: I30c8a5e8569b1b86286c5e3cb07856c06ebe5803
2018-01-11 14:13:43 +00:00
Jimmy McCrory 0348414e9b Remove sample config from setup.cfg
The sample config file was removed in
I49afb68a170abffaf7852dd7a2dc837e4cf4a756, also remove it setup.cfg's
list of data_files to avoid errors when building from source.

Change-Id: I8f02ced2cb081bf343b63ea7ad788683d3343b14
2017-12-14 13:54:37 -08:00
Dai Dang Van d8ff46a8fd Implement policy in code (4)
This commit will move all default policies to code for:
- zone
- zone_export
- zone_import
- zone_transfer_accept
- zone_transfer_request

Change-Id: I9945fe66d127696907695c73ecef77a6f07acd38
Co-authored-By: Nam Nguyen Hoai <namnh@vn.fujitsu.com>
Implements: blueprint policy-in-code
2017-10-24 09:24:10 +00:00
Dai Dang Van 271eba7758 Implement policy in code (1)
This commit will prepare for implementing policies in code.

- https://governance.openstack.org/tc/goals/queens/policy-in-code.html

Change-Id: Iea587cb6f4281b950eaca6bdaac3a8ea5de76c67
Co-authored-By: Nam Nguyen Hoai <namnh@vn.fujitsu.com>
Implements: blueprint policy-in-code
2017-10-24 09:23:25 +00:00
Jesse Pretorius e486a50f77 Include all rootwrap filters when building wheels
The current method of specifying each rootwrap filter
in the file list is prone to errors when adding or
removing filters. Instead of relying on a manually
maintained list this patch just includes all the files
of the correct naming convention from the applicable
folder. This is simpler and easier to maintain.

Change-Id: I116efd3ff1799965bb46da785b2ad96c7f5b97c5
Closes-Bug: #1718356
2017-09-29 01:13:46 +00:00
chenxing bc24df1ee2 Update the documentation link
Change-Id: I28e9097f01e4e6d60093c34534f58299488ebf73
2017-07-14 05:24:26 +00:00
Nguyen Van Trung 416ae6cd08 Auto-generate designate.conf.sample via genconfig testenv
- Keep currently config in the Designate
- Fix some warning about missing help string
- Auto-generate sample config via genconfig testenv.
- Add an instruction in README about genconfig
- Create config sample along with whole service, backend
- Create opts.py to focus list_opts.

Change-Id: Iead7772cd13316c9f4adafe1b1e70d36bbc6a11a
2017-07-01 21:32:16 +07:00
Nguyen Van Trung f7e8a71b02 Improving check warning build_sphinx
- With this PS, we could be received a warning error at same time
when build sphinx decumentation of Designate via:

    $ python setup.py build_sphinx

- Fix some issues with docs sphinx.

Change-Id: I1e5a8c4b45dc3d10028531eabb50d3d6189ea070
2017-06-12 13:55:18 +07:00
Jenkins 25758b58e4 Merge "Remove a py34 environment from tox" 2017-03-01 17:03:27 +00:00
Cao Xuan Hoang 837e69eb7e Remove a py34 environment from tox
The gating on python 3.4 is restricted to <= Mitaka. This is due to
the change from Ubuntu Trusty to Xenial, where only python3.5 is
available. There is no need to continue to keep these settings.

Change-Id: Ib594e12fb7a238e5cb3610ace8a66fbaefe0e660
2017-02-16 08:13:26 +07:00
Maurice Schreiber 4f3dfff564 Added in doubt default pool filter to scheduler
If the previous filter(s) didn’t make a clear selection of one pool
and if the default pool is in the set of multiple pools,
this filter will select the default pool.

Change-Id: I26a7a2628bcb593c189d8b470fd546c060ceeab9
2017-02-14 16:15:53 +01:00
Tim Simmons 93c0161242 Make notifications pluggable
- Defines a plugin interface for what's actually emitted as part
  of designate "notifications".
- The default plugin emits the same thing as notifications did prior
  to this patch.
- The "audit" notification plugin emits recordset data changes and
  zone/recordset names, if they exist, the notifications with this
  plugin look like http://paste.openstack.org/show/545210/
- Adds support for multiple notifications for a single change
- Also adds client IP to the context object, as it's a field that
  may be of interest to some types of notifications
- Many tests

Change-Id: I01118fae8ce6e38ccc61b0ce763fd759affd9a86
2017-01-19 16:10:15 +00:00
melissaml 899812d8dc Changed the home-page link
Set the correct link for home-page.

Change-Id: I4d924acee3e1e16e4ff44dd21b0cf07a78db4720
2016-10-18 12:34:53 +08:00
Graham Hayes aa23d86835 Add PowerDNS 4 driver
Fixes-Bug: #1590429

Change-Id: I1f6017ce83a49dc0c3827c540ac18186bb14f72b
2016-09-16 17:33:13 +01:00
Jenkins dff1c3778b Merge "Worker Model" 2016-08-25 21:07:54 +00:00
Tim Simmons 81ce132e90 Worker Model
- More information about the actual worker code can be found
  in `designate/worker/README.md` and in the inline docstrings

- Stand up a `designate-worker` process with an rpcapi, all
  the usual jazz

- Implement a base `Task` class that defines the behavior of
  a task and exposes resources to the task.

- Implement CUD Zone tasks, which includes Tasks that poll for zones,
  send Notifies, and update status. These are all done in parallel
  with threads using a shared threadpool, rather than iteratively.

- Implement a `recover_shard` task that serves the function
  of a periodic recovery, but only for a shard. Call that
  task with various shards from the zone manager.

- Put some shims in central and mdns so that the worker can
  be switched on/off with a few config values.

- Changes Zone Manager -> Producer
    - Removes zm rpcapi
    - Adds startable designate-producer service
    - Makes zone-manager an alias for producer service with a warning log
    - Lots of renaming

- Moves zone export to worker
    - API now uses central_api.export_zone to get zonefiles
    - Central uses worker_api.start_zone_export to init exports
    - Now including unit tests
    - Temporary workarounds for upgrade/migration move the logic
      into central if worker isn't available.

- Deprecates Pool manager polling options and adds warning msg on
  starting designate-pool-manager

- Get some devstack going

- Changes powerdns backend to get new sqlalchemy sessions for each
  action

- Sets the default number of threads in a worker process to 200,
  this is pretty much a shot in the dark, but 1000 seemed like
  too many, and 20 wasn't enough.

- Grenade upgrade testing

- Deprecation warnings for zone/pool mgr

The way to run this is simple, just stop `designate-pool-manager`
and `designate-zone-manager`, toggle the config settings in the
`service:worker` section: enabled = true, notify = true
and start `designate-worker` and `designate-producer` and you
should be good to go.

Change-Id: I259e9825d3a4eea58e082303ba3bdbdb7bf8c363
2016-08-24 14:54:31 +00:00
Alin Balutoiu 95f451dc8a Add support for Microsoft DNS Server backend
Currently, there is no support for Microsoft DNS
in designate. This patch addresses this issue
by adding support for Microsoft DNS Server using
an agent backend in designate.

Change-Id: I8db1906e17e5fb20fa6f3e5d1f13b2d701f0c032
Implements: blueprint msdns-backend-support
Depends-On: I029747555a58e0a8e362b65e6c0c470cf2774e42
2016-08-22 12:19:54 +03:00