Skip to content

Commit

Permalink
servicegroup: remove the zookeeper driver
Browse files Browse the repository at this point in the history
We have had a "untested and risky to use in production" log warning
message for this driver since Kilo, it is currently broken (see below),
there are no obviously active users or contributors, and we are planning
on enabling Zookeeper usage by adopting the tooz library.

bug #1443910 shows that the driver fails to load because eventlet 0.17
broke evzookeeper by moving _SocketDuckForFd from eventlet.greenio to
eventlet.greenio.py2 in commit 449c90a. The 0.17 release was in Feb,
2015. The evzookeeper library hasn't been updated since Sep 2012 and the
sole maintainer is the original author of the zookeeper servicegroup
driver.

The tooz driver spec - Ibf70c2dbe308fc8e4dd277d8c75c4445b3dfce90 -
proposes a formal deprecation period for the zk driver, during which
existing zk driver users are encouraged to move to tooz. However, given
the state of the zk driver, we must conclude that there are no existing
users who need a graceful migration path. Removing the driver will
avoid potential confusion for new users and simplify the path to
adopting tooz.

Closes-Bug: #1443910
Closes-Bug: #1414517
Closes-Bug: #1414536

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Change-Id: I2dba71e71b1ed7cf8476e8bfe9481e84be5df128
  • Loading branch information
markmc authored and sdague committed Feb 20, 2016
1 parent d51c567 commit 337a1b0
Show file tree
Hide file tree
Showing 7 changed files with 15 additions and 310 deletions.
1 change: 0 additions & 1 deletion nova/api/opts.py
Expand Up @@ -108,7 +108,6 @@
import nova.scheduler.weights.ram
import nova.service
import nova.servicegroup.api
import nova.servicegroup.drivers.zk
import nova.spice
import nova.utils
import nova.vnc
Expand Down
5 changes: 0 additions & 5 deletions nova/exception.py
Expand Up @@ -1607,11 +1607,6 @@ class InstanceRecreateNotSupported(Invalid):
msg_fmt = _('Instance recreate is not supported.')


class ServiceGroupUnavailable(NovaException):
msg_fmt = _("The service from servicegroup driver %(driver)s is "
"temporarily unavailable.")


class DBNotAllowed(NovaException):
msg_fmt = _('%(binary)s attempted direct database access which is '
'not allowed by policy')
Expand Down
2 changes: 0 additions & 2 deletions nova/opts.py
Expand Up @@ -47,7 +47,6 @@
import nova.rdp
import nova.service
import nova.servicegroup.api
import nova.servicegroup.drivers.zk
import nova.spice
import nova.utils
import nova.volume
Expand Down Expand Up @@ -110,5 +109,4 @@ def list_opts():
[nova.consoleauth.rpcapi.rpcapi_cap_opt],
)),
('workarounds', nova.utils.workarounds_opts),
('zookeeper', nova.servicegroup.drivers.zk.zk_driver_opts)
]
1 change: 0 additions & 1 deletion nova/servicegroup/api.py
Expand Up @@ -26,7 +26,6 @@

_driver_name_class_mapping = {
'db': 'nova.servicegroup.drivers.db.DbDriver',
'zk': 'nova.servicegroup.drivers.zk.ZooKeeperDriver',
'mc': 'nova.servicegroup.drivers.mc.MemcachedDriver'
}
_default_driver = 'db'
Expand Down
200 changes: 0 additions & 200 deletions nova/servicegroup/drivers/zk.py

This file was deleted.

101 changes: 0 additions & 101 deletions nova/tests/unit/servicegroup/test_zk_driver.py

This file was deleted.

@@ -0,0 +1,15 @@
---
upgrade:
- |
The Zookeeper Service Group driver has been removed.
The driver has no known users and is not actively mantained. A warning log
message about the driver's state was added for the Kilo release. Also,
evzookeeper library that the driver depends on is unmaintained and
`incompatible with recent eventlet releases`_.
A future release of Nova will `use the Tooz library to track
service liveliness`_, and Tooz supports Zookeeper.
.. _`incompatible with recent eventlet releases`: https://bugs.launchpad.net/nova/+bug/1443910
.. _`use the Tooz library to track service liveliness`: http://specs.openstack.org/openstack/nova-specs/specs/liberty/approved/service-group-using-tooz.html

0 comments on commit 337a1b0

Please sign in to comment.