cfg.ListOpt('topics', default=['notifications', ], deprecated_opts=[ cfg.DeprecatedOpt('topics', group='rpc_notifier2'), cfg.DeprecatedOpt('notification_topics', group='DEFAULT')
], help='AMQP topic used for OpenStack notifications.'),
]
charm-ceilometer, OTOH, doesn't redefine anything like that, which is why not only dns.pool.update but other designate-related messages as well are not received by it - even those that are in event_definitions.yaml.
As I pasted above, there are also no event_definitions on the ceilometer side for dns.pool.* including dns.pool.update.
So, to break the comms down, designate components do both sending and receiving via AMQP.
1. nova to designate
https:/ /git.io/ vFMbn instance. create. end, compute. instance. delete. start} -> designate-sink -> nova-handler
nova -> {compute.
cfg.CONF. register_ opts([ ListOpt( 'notification- topics' , default= ['notifications ']), StrOpt( 'control- exchange' , default='nova'),
cfg.
cfg.
2. neutron to designate
https:/ /git.io/ vFMb8 update. end, floatingip. delete. start} -> designate-sink -> neutron-handler
neutron -> {floatingip.
cfg.CONF. register_ opts([ ListOpt( 'notification- topics' , default= ['notifications ']), StrOpt( 'control- exchange' , default='neutron'),
cfg.
cfg.
https:/ /docs.openstack .org/designate/ pike/contributo r/architecture. html#designate- sink instance. create. end, handlers are available for Nova and Neutron. Notification events can then be used to trigger record creation & deletion.
designate-sink is an optional service which listens for event Notifications, such as compute.
3. central -> other consumers (e.g. ceilometer- agent-notificat ion)
https:/ /github. com/openstack/ designate/ blob/stable/ ocata/designate /central/ service. py#L163- L164 /github. com/openstack/ designate/ blob/stable/ ocata/designate /central/ service. py#L2213
https:/
The designate charm hard-codes the notification_topics to "notifications_ designate" (outgoing traffic)
https:/ /git.io/ vFMAP designate
notification_topics = notifications_
While per oslo.messaging the default is "notifications" which is overridden by that
https:/ /github. com/openstack/ oslo.messaging/ blob/stable/ ocata/oslo_ messaging/ notify/ notifier. py#L49- L57
cfg. ListOpt( 'topics' ,
default= ['notifications ', ],
deprecated_ opts=[
cfg. DeprecatedOpt( 'topics' ,
group= 'rpc_notifier2' ),
cfg. DeprecatedOpt( 'notification_ topics' ,
group= 'DEFAULT' )
help= 'AMQP topic used for OpenStack notifications.'),
],
]
charm-ceilometer, OTOH, doesn't redefine anything like that, which is why not only dns.pool.update but other designate-related messages as well are not received by it - even those that are in event_definitio ns.yaml.
As I pasted above, there are also no event_definitions on the ceilometer side for dns.pool.* including dns.pool.update.
https:/ /github. com/openstack/ ceilometer/ blob/stable/ ocata/etc/ ceilometer/ event_definitio ns.yaml# L405-L435
The use-case may be event/audit logging but at least in this case we will solve the lack of other consumers.
AFAIKs, designate uses standard DNS protocol messages so any AMQP messages are rather for custom logic that could be implemented via ceilometer + aodh or pipelines in addition to event logging to panko https:/ /docs.openstack .org/designate/ pike/contributo r/architecture. html#designate- minidns
For that reason I would add all possible emitted messages to event_definitio ns.yaml:
https:/ /docs.openstack .org/designate/ pike/admin/ notifications. html#emitters
4. mdns -> DNS backend <- nothing to do here