pbr>=0.6,!=0.7,<1.0
SQLAlchemy>=0.8.4,!=0.9.5,<=0.9.99
alembic>=0.6.2
anyjson>=0.3.3
argparse
eventlet>=0.13.0
kombu>=2.4.8
lockfile>=0.8
lxml>=2.3
WebOb>=1.2.3
greenlet>=0.3.2
futures>=2.1.3
sqlalchemy-migrate>=0.9.1
netaddr>=0.7.6
paramiko>=1.13.0
iso8601>=0.1.9
python-neutronclient>=2.3.5,<3
python-glanceclient>=0.13.1
python-keystoneclient>=0.9.0
stevedore>=0.14
pysendfile==2.0.0
websockify>=0.5.1,<0.6
oslo.config>=1.2.1
oslo.rootwrap
pecan>=0.4.5
six>=1.7.0
jsonpatch>=1.1
WSME>=0.6
Jinja2
oslo.messaging>=1.3.0

pbr>=0.6,!=0.7,<1.0
SQLAlchemy>=0.8.4,!=0.9.5,<=0.9.99
alembic>=0.6.2
anyjson>=0.3.3
argparse
eventlet>=0.13.0
kombu>=2.4.8
lockfile>=0.8
lxml>=2.3
WebOb>=1.2.3
greenlet>=0.3.2
futures>=2.1.3
sqlalchemy-migrate>=0.9.1
netaddr>=0.7.6
paramiko>=1.13.0
iso8601>=0.1.9
python-neutronclient>=2.3.5,<3
python-glanceclient>=0.13.1
python-keystoneclient>=0.9.0
stevedore>=0.14
pysendfile==2.0.0
websockify>=0.5.1,<0.6
oslo.config>=1.2.1
oslo.rootwrap
pecan>=0.4.5
six>=1.7.0
jsonpatch>=1.1
WSME>=0.6
Jinja2
oslo.messaging>=1.3.0
retrying>=1.2.2

Implement retry on NodeLocked exceptions
Implement retry on NodeLocked exceptions

This adds the capability to retry node locking when a node is already
locked. Two conductor configuration variables are added to control this
behavior, which can be totally disabled by setting the value for the
node_locked_retry_attempts variable to zero.

A new unit test is added to check that the retry will work after first
getting a NodeLocked exception, then succeeding getting the lock on the
next lock attempt.

Change-Id: I60b099beea1bc3a954a5ab4699e623aaa71ba6c5
Blueprint: add-nodelocked-retry
