From 25b89d2a9c4da30f5ff4f80b4ccb36987e851963 Mon Sep 17 00:00:00 2001 From: Inbar Stolberg Date: Thu, 26 Nov 2015 07:27:57 +0000 Subject: [PATCH] synchronizer alternative flow + typo fixes Change-Id: Id96b9962f88734eebf046bd654768e9d47341141 --- specs/mitaka/vitrage-synchronizer.rst | 50 ++++++++++++++++++++------- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/specs/mitaka/vitrage-synchronizer.rst b/specs/mitaka/vitrage-synchronizer.rst index 3b9b5fd..809cc01 100644 --- a/specs/mitaka/vitrage-synchronizer.rst +++ b/specs/mitaka/vitrage-synchronizer.rst @@ -57,15 +57,41 @@ of these synchronizers for scaling purposes. | | +--------+--+ | +------+ | | +-----------------------+ - - - + + + Alternative diagram + + :: + + + +-------------+ + +----------+ +--------------+ get all response | | + | entity | | +------------------------------------------------> | + +------+ type x <---------------+ <-----------------------------------------------+ Vitrage | + | | | polling via | | get all request +----------+ | graph | + +-----------------------------+ | +----------+ api or via | | | queue | | | + | Openstack services: | | message | Synchronizer | | | +-------------+ + | Keystone, Nova, <----+ +----------+ queue | <------------------------------+ ^ | + | Neutron, Glance, | | entity | | | register for change +----------+ + | Cinder, Heat <-----------+ type y <---------------+ | notifications over | + | | | | | | entities of a specific | + | other polling mechanisms: | +----------+ | | type | + | Nagios <----+ | | | + | Ceilometer | | +----------+ | | entity changes | + | | | | entity | | +------------------------------------+ + | | +------+ type z <---------------+ | + | | | | +--------------+ + +-----------------------------+ +----------+ + + + + Problem description =================== -Enable vitrage and to maintain the most up-to-date view of OS services it samples. +Enable Vitrage and to maintain the most up-to-date view of OS services it samples. Proposed change =============== @@ -97,8 +123,8 @@ change notifications - openstack message bus (if installed on openstack) - or to a queue (which would be installed as part of the synchronizer deployment) -southband interface -^^^^^^^^^^^^^^^^^^^ +southbound interface +^^^^^^^^^^^^^^^^^^^^ :: @@ -155,10 +181,10 @@ southband interface - method of collection: - retrieve OS service elements list. For the purposes of: - 'get all' - as a response for a 'get all' northbound interface call - - run on its own subprocess, separated from the collecting subprocesses (cont.) + - run on its own subprocess, separated from the collecting sub processes (cont.) - change notifications - as part of the periodic collection of the latest snapshot - we'd use this method of collection against OS services which doesn't propagates change notification. - - run on its own collection subprocesses (**one/more? - TBD**) + - run on its own collection sub processes (**one/more? - TBD**) - how to discover a change - once a snapshot is collected, we'd like to know which entity was changed from the latest time a snapshot was taken - in order to enable this, we'd keep a baseline - a data structure which contains for each OS service entity (such as a vm instance), its ID + it latest collection timestamp or a hash which represents its latests state. @@ -167,9 +193,9 @@ southband interface - for the purposes of change notifications - this is the easy case, where change notifications are simply passed on to whoever registered for them - type of collection: - - against each OS service we'd like to sample, a plugin library would enable BOTH the collection subprocesses and the 'get all' method to retrieve BOTH a complete snapshot of the OS service (all the VM instances / all of the ports / etc.) AND to sample for change notifications, as described above. + - against each OS service we'd like to sample, a plugin library would enable BOTH the collection sub processes and the 'get all' method to retrieve BOTH a complete snapshot of the OS service (all the VM instances / all of the ports / etc.) AND to sample for change notifications, as described above. - deployment - as a library - + consumer flow ^^^^^^^^^^^^^ - 'get all' - for a complete snapshot of OS services, the consumer would call the 'get all' interface @@ -244,8 +270,8 @@ Dependencies Testing ======= - -**TBD** +Unit Tests - Tox +Integration Tests - Tempest Documentation Impact