Provide alias to oslo_messaging.notify._impl_messaging

Ifb96c2ae9868426cac2700bf4917c27c02c90b15 moved the _impl_messaging
module to oslo_messaging.notify.messaging which breaks neutron.

Neutron is fixed on master for mitaka but neutron on stable/liberty
is broken, and changing neutron on stable/liberty to use the new
path would require a global-requirements minimum version bump for
oslo.messaging to 2.6.0, which we want to avoid for people that have
already shipped liberty.

So provide an alias to the moved module so neutron in stable/liberty
continues to work. We deprecate the module so consumers know they
need to upgrade and move off this. We may need to cap oslo.messaging
in global-requirements on stable/liberty at some point when we remove
the deprecated alias module.

Change-Id: I29453e0fbf30b0a571c2b1afc7cc81d1a11535f0
Closes-Bug: #1513630
This commit is contained in:
Matt Riedemann 2015-11-19 10:42:34 -08:00
parent 9dbbc1f243
commit 15cd99050c
3 changed files with 56 additions and 0 deletions

View File

@ -0,0 +1,24 @@
# Copyright 2015 IBM Corp.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from debtcollector import removals
from oslo_messaging.notify.messaging import * # noqa
# NOTE(mriedem): removal depends on how we can cap requirements in
# stable/liberty such that neutron does not try to load this
removals.removed_module(__name__,
oslo_messaging.notify.messaging.__name__,
removal_version='?')

View File

@ -0,0 +1,30 @@
# Copyright 2015 IBM Corp.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import mock
from oslo_messaging.tests import utils as test_utils
class TestDeprecationWarning(test_utils.BaseTestCase):
@mock.patch('warnings.warn')
def test_impl_messaging_deprecation_warning(self, mock_warn):
# Tests that we get a deprecation warning when loading a messaging
# driver out of oslo_messaging.notify._impl_messaging.
from oslo_messaging.notify import _impl_messaging as messaging
driver = messaging.MessagingV2Driver(
conf={}, topics=['notifications'], transport='rpc')
# Make sure we got a deprecation warning by loading from the alias
self.assertEqual(1, mock_warn.call_count)

View File

@ -18,6 +18,8 @@ stevedore>=1.5.0 # Apache-2.0
six>=1.9.0 six>=1.9.0
cachetools>=1.0.0 # MIT License cachetools>=1.0.0 # MIT License
debtcollector>=0.3.0 # Apache-2.0
# FIXME(markmc): remove this when the drivers no longer # FIXME(markmc): remove this when the drivers no longer
# import eventlet # import eventlet