OpenStack DNS As A Service (Designate)
Go to file
Rahman Syed d5d0706705 Improve error handling for TCP connections
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
2016-02-29 13:54:51 -06:00
contrib Replace deprecated LOG.warn with LOG.warning 2016-01-05 09:20:58 +00:00
designate Improve error handling for TCP connections 2016-02-29 13:54:51 -06:00
devstack Cleanup after enable files refactor 2016-02-22 16:36:30 -05:00
doc Merge "Randomize SOA refresh interval" 2016-02-23 14:08:16 +00:00
etc/designate Add delayed NOTIFY 2016-02-17 15:24:00 +00:00
functionaltests Merge "Actually poll for zone deletes" 2016-02-22 18:11:37 +00:00
rally-jobs Grammar mistakes have been corrected 2015-08-22 21:32:18 +05:30
releasenotes Randomize SOA refresh interval 2016-02-22 14:54:43 +00:00
tools Add delayed NOTIFY 2016-02-17 15:24:00 +00:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 14:26:01 +00:00
.gitignore Add Reno for release notes tracking 2015-11-23 18:00:36 +00:00
.gitreview Update .gitreview for repository move 2014-06-28 16:52:03 +01:00
.testr.conf Add functional tox env 2015-07-14 15:36:08 +01:00
LICENSE Add LICENSE file. 2013-06-18 16:13:03 -04:00
README.md Update unit test execution syntax 2016-01-14 01:01:54 -08:00
babel.cfg Setup for translation 2014-07-04 16:40:02 +02:00
bandit.yaml Added bandit to designate 2016-01-13 09:09:30 +05:30
designate.sublime-project Add __pycache__ to ST2 Ignore 2015-07-09 20:19:53 +01:00
ipa-requirements.txt add support for FreeIPA backend - phase 5 - requirements 2014-05-07 17:16:12 -06:00
openstack-common.conf Switch to oslo.reports 2015-11-05 10:55:29 +01:00
requirements.txt Updated from global requirements 2016-02-20 21:54:35 +00:00
setup.cfg Add delayed NOTIFY 2016-02-17 15:24:00 +00:00
setup.py Updated from global requirements 2015-09-17 12:11:31 +00:00
test-requirements.txt Updated from global requirements 2016-02-08 02:38:19 +00:00
tests-py3.txt Fix the python34 check job 2016-01-21 17:37:19 +01:00
tox.ini Fix the python34 check job 2016-01-21 17:37:19 +01:00

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