kuryr-kubernetes/kuryr_kubernetes
Ilya Chukhnakov f0e1c206a9 Controller event handling pipeline
This patch introduces ControllerPipeline which is an entry point
handler for the Kuryr-Kubernetes controller. ControllerPipeline
allows registering ResourceEventHandlers and ensures the proper
handler is called for each event that is passed to the
ControllerPipeline. Also it ensures the following behavior:

- multiple ResourceEventHandlers can be registered for the same
  resource type (OBJECT_KIND)

- failing handlers (i.e. ones that raise Exceptions) are retried
  until either the handler succeeds or a finite amount of time
  passes, in which case the most recent exception is logged

- in case there are multiple handlers registered for the same
  resource type, all such handlers are considered independent (i.e.
  if one handler fails, other handlers will still be called
  regardless; and the order in which such handlers are called is not
  determined)

- events for different Kubernetes objects can be handled concurrently

- events for the same Kubernetes object are handled sequentially in
  the order of arrival

Change-Id: Ib17e0c7a2790cdbc31be4f59d50972b43c272480
Partially-Implements: blueprint kuryr-k8s-integration
2016-11-03 13:08:29 +00:00
..
cmd Controller service base 2016-10-04 21:56:50 +03:00
controller Controller event handling pipeline 2016-11-03 13:08:29 +00:00
handlers Asynchronous handler 2016-10-31 14:31:50 +03:00
tests Controller event handling pipeline 2016-11-03 13:08:29 +00:00
__init__.py K8s and Neutron clients support 2016-10-03 16:07:03 +00:00
clients.py K8s and Neutron clients support 2016-10-03 16:07:03 +00:00
config.py K8s and Neutron clients support 2016-10-03 16:07:03 +00:00
constants.py Basic event handling pipeline components 2016-10-31 10:52:46 +00:00
exceptions.py Retry handler 2016-10-31 10:53:07 +00:00
k8s_client.py K8s and Neutron clients support 2016-10-03 16:07:03 +00:00
opts.py move config and opt generation to new kuryr-lib 2016-09-26 13:11:47 +00:00
utils.py Add asyncio eventloop. 2016-09-01 14:47:47 +02:00
watcher.py Watcher implementation 2016-10-26 06:15:31 +03:00