Merge "Catch only MessageDeliveryFailure exceptions"

This commit is contained in:
Zuul 2019-02-27 23:48:19 +00:00 committed by Gerrit Code Review
commit 4614a4277e
2 changed files with 4 additions and 6 deletions

View File

@ -25,6 +25,7 @@ from neutron_lib.utils import runtime
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log as logging from oslo_log import log as logging
import oslo_messaging import oslo_messaging
from oslo_messaging import exceptions as oslomsg_exc
from oslo_messaging.rpc import dispatcher from oslo_messaging.rpc import dispatcher
from oslo_messaging import serializer as om_serializer from oslo_messaging import serializer as om_serializer
from oslo_service import service from oslo_service import service
@ -104,11 +105,7 @@ class _ContextWrapper(object):
def cast(self, ctxt, method, **kwargs): def cast(self, ctxt, method, **kwargs):
try: try:
self._original_context.cast(ctxt, method, **kwargs) self._original_context.cast(ctxt, method, **kwargs)
except Exception as e: except oslomsg_exc.MessageDeliveryFailure as e:
# TODO(kevinbenton): make catch specific to missing exchange once
# bug/1705351 is resolved on the oslo.messaging side; if
# oslo.messaging auto-creates the exchange, then just remove the
# code completely
LOG.debug("Ignored exception during cast: %s", str(e)) LOG.debug("Ignored exception during cast: %s", str(e))

View File

@ -15,6 +15,7 @@ import mock
from oslo_config import cfg from oslo_config import cfg
import oslo_messaging as messaging import oslo_messaging as messaging
from oslo_messaging import conffixture as messaging_conffixture from oslo_messaging import conffixture as messaging_conffixture
from oslo_messaging import exceptions as oslomsg_exc
from oslo_messaging.rpc import dispatcher from oslo_messaging.rpc import dispatcher
import testtools import testtools
@ -445,7 +446,7 @@ class CastExceptionTestCase(base.BaseTestCase):
self.addCleanup(rpc.cleanup) self.addCleanup(rpc.cleanup)
rpc.init(CONF) rpc.init(CONF)
rpc.TRANSPORT = mock.MagicMock() rpc.TRANSPORT = mock.MagicMock()
rpc.TRANSPORT._send.side_effect = Exception rpc.TRANSPORT._send.side_effect = oslomsg_exc.MessageDeliveryFailure
target = messaging.Target(version='1.0', topic='testing') target = messaging.Target(version='1.0', topic='testing')
self.client = rpc.get_client(target) self.client = rpc.get_client(target)
self.cast_context = mock.Mock() self.cast_context = mock.Mock()