Thanks for filing the bug report...

My driver implementation effectively allows you to filter on
notification events and multicast matches to a given list of topics.

I've been calling it an messaging multicast notification driver and thus
the plugin stevedore entry point I've called 'messaging-multicast'.

The impl basically wraps the oslo messaging driver and does it's
matching and multicasting after the parent... e.g.

def notify(self, ctxt, msg, priority, retry):
    _notify = super(AMQPMulticastDriver, self).notify(
        ctxt, msg, priority, retry)

    # check filters on msg and priority and notify on configured topics
    # for any matches below
    ... code ...

    return _notify

The driver is a drop-in replacement anywhere oslo.messaging is used for
notifications and accepts some conf props to set it up.

example config for usage (glance in this example):

        rpc_backend = rabbit
        notification_driver = messaging-multicast
        multicast_events = image.upload,image.delete
        multicast_topic_prefix = glance.multicast.
        publisher_id = GLANCE:MASTER
        image.delete = host1,host2
        image.upload = host1,host2

The above will send a copy of image.delete and image.upload events to
the glance.multicast.host1 and glance.multicast.host2 topics. It will
use 'GLANCE:MASTER' as the publisher ID in the multicasted events.

Your feedback is appreciated.

>> On Thu, Feb 26, 2015, at 07:24 AM, Boden Russell wrote:
>> What's the suggested approach for implementing a custom oslo messaging
>> driver given the existing impl [1] is "private"?
>> [1]
> On 2/26/15 10:33 AM, Doug Hellmann wrote:
> Yes, I don't recommend relying on anything in private modules. It looks
> like even the base class for the notification drivers is private, right
> now. We should probably change that, so I filed
> Maybe if you can give more details about what your driver wants to do, I
> can provide better feedback about a short-term approach for you.

OpenStack Development Mailing List (not for usage questions)

Reply via email to