d5d0706705
In the abstract DNSService's _dns_handle_tcp method, error handling is broken in a way that stops the main loop for handling TCP connections. Because socket.timeout is a subclass of socket.error, the error handling block for socket.timeout is never reached. Because of this, error handling of a TCP timeout is sent to the socket.error block. Due to the way eventlet hijacks these errors, the errorcode is not available and a KeyError is raised. This KeyError interferes with the main loop because it is not caught. Further improvement may include ensuring that these main loops can never die due to unexpected exceptions. Many thanks to Erik Andersson for pointing out the issue, which was seemingly innocuous but ended up being the cause of our problems. Closes-bug: 1549980 Change-Id: I47e1260a0818cc42cbd56e4d296e083f8fcbbae5 |
||
---|---|---|
contrib | ||
designate | ||
devstack | ||
doc | ||
etc/designate | ||
functionaltests | ||
rally-jobs | ||
releasenotes | ||
tools | ||
.coveragerc | ||
.gitignore | ||
.gitreview | ||
.testr.conf | ||
LICENSE | ||
README.md | ||
babel.cfg | ||
bandit.yaml | ||
designate.sublime-project | ||
ipa-requirements.txt | ||
openstack-common.conf | ||
requirements.txt | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tests-py3.txt | ||
tox.ini |
README.md
Introduction
Designate is an OpenStack inspired DNSaaS.
Docs: http://docs.openstack.org/developer/designate and some below for now. Bugs / Blueprints: http://launchpad.net/designate
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 the documentation
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_zones)
tox -e py27 -- designate.tests.test_central.test_service.CentralServiceTest.test_count_zones