The MatchMaker classes should except a Topic or Fanout exchange key and return keys for direct exchanges, per (approximate) AMQP parlance.
Bases: nova.openstack.common.rpc.matchmaker.Binding
Specifies a host in the key via a ‘.’ character Although dots are used in the key, the behavior here is that it maps directly to a host, thus direct.
Bases: nova.openstack.common.rpc.matchmaker.Exchange
Exchange where all topic keys are split, sending to second half. i.e. “compute.host” sends a message to “compute.host” running on “host”
Bases: object
Implements lookups. Subclass this to support hashtables, dns, etc.
Bases: nova.openstack.common.rpc.matchmaker.Binding
Match on fanout keys, where key starts with ‘fanout.’ string.
Bases: nova.openstack.common.rpc.matchmaker.RingExchange
Fanout Exchange based on a hashmap.
Bases: nova.openstack.common.rpc.matchmaker.MatchMakerBase
Base for a heart-beat capable MatchMaker. Provides common methods for registering, unregistering, and maintaining heartbeats.
Acknowledge that a host.topic is alive. Used internally for updating heartbeats, but may also be used publically to acknowledge a system is alive (i.e. rpc message successfully sent to host)
Implements registration logic. Called by register(self,key,host)
Implements de-registration logic. Called by unregister(self,key,host)
Register a host on a backend. Heartbeats, if applicable, may keepalive registration.
Send all heartbeats. Use start_heartbeat to spawn a heartbeat greenthread, which loops this method.
Implementation of MatchMakerBase.start_heartbeat Launches greenthread looping send_heartbeats(), yielding for CONF.matchmaker_heartbeat_freq seconds between iterations.
Destroys the heartbeat greenthread.
Unregister a topic.
Bases: nova.openstack.common.rpc.matchmaker.Exchange
Exchange where all direct topics are local.
Bases: object
Match Maker Base Class. Build off HeartbeatMatchMakerBase if building a heartbeat-capable MatchMaker.
Acknowledge that a key.host is alive. Used internally for updating heartbeats, but may also be used publically to acknowledge a system is alive (i.e. rpc message successfully sent to host)
Explicitly expire a host’s registration.
Checks if a host is alive.
Register a host on a backend. Heartbeats, if applicable, may keepalive registration.
Send all heartbeats. Use start_heartbeat to spawn a heartbeat greenthread, which loops this method.
Spawn heartbeat greenthread.
Destroys the heartbeat greenthread.
Unregister a topic.
Bases: exceptions.Exception
Signified a match could not be found.
Bases: nova.openstack.common.rpc.matchmaker.MatchMakerBase
Match Maker where all bare topics resolve to localhost. Useful for testing.
Bases: nova.openstack.common.rpc.matchmaker.MatchMakerBase
Match Maker where hosts are loaded from a static hashmap.
Bases: nova.openstack.common.rpc.matchmaker.MatchMakerBase
Match Maker where topics are untouched. Useful for testing, or for AMQP/brokered queues. Will not work where knowledge of hosts is known (i.e. zeromq)
Bases: nova.openstack.common.rpc.matchmaker.Exchange
Match Maker where hosts are loaded from a static file containing a hashmap (JSON formatted).
__init__ takes optional ring dictionary argument, otherwise loads the ringfile from CONF.mathcmaker_ringfile.
Bases: nova.openstack.common.rpc.matchmaker.RingExchange
A Topic Exchange based on a hashmap.
Bases: nova.openstack.common.rpc.matchmaker.Exchange
Exchange that does nothing.
Bases: nova.openstack.common.rpc.matchmaker.Binding
Where a ‘bare’ key without dots. AMQP generally considers topic exchanges to be those with dots, but we deviate here in terminology as the behavior here matches that of a topic exchange (whereas where there are dots, behavior matches that of a direct exchange.