81ce132e90
- 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 |
||
---|---|---|
api-ref/source | ||
contrib | ||
designate | ||
devstack | ||
doc | ||
etc/designate | ||
functionaltests | ||
rally-jobs | ||
releasenotes | ||
tools | ||
.coveragerc | ||
.gitignore | ||
.gitreview | ||
.testr.conf | ||
LICENSE | ||
README.rst | ||
babel.cfg | ||
designate.sublime-project | ||
ipa-requirements.txt | ||
openstack-common.conf | ||
requirements.txt | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tests-py3.txt | ||
tox.ini |
README.rst
OpenStack Designate
Designate is an OpenStack project, providing DNSaaS.
IRC: #openstack-dns
Installation: http://docs.openstack.org/developer/designate/getting-started.html
Development
Designate follows the OpenStack Gerrit Workflow
Setup
Setup a working environment:
git clone https://github.com/openstack/designate.git
cd designate
virtualenv .venv
. .venv/bin/activate
pip install -r requirements.txt -r test-requirements.txt
python setup.py develop
Building Docs
To build the documentation from the restructured text source, do the following:
cd doc
pip install -r requirements.txt
sphinx-build source/ build/html/
now point your browser at html/index.html (the official documentation is published to docs.openstack.org by the maintainers.
Contributing
Install the git-review package to make life easier
pip install git-review
Branch, work, & submit:
# 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
Testing
Execute a single test using py27 (test is CentralServiceTest.test_count_domains)
tox -e py27 -- designate.tests.test_central.test_service.CentralServiceTest.test_count_zones_policy_check
- Free software: Apache license
- Documentation: http://docs.openstack.org/developer/designate
- Source: http://git.openstack.org/cgit/openstack/designate
- Bugs: http://bugs.launchpad.net/designate