Introduce a ifmap dependency manager

This patch is a part of the SNAT
and will be leveraged by the service
instance class that is going to be introduced
in a next patch.

Change-Id: I22c61f9b1de5778285327664572a88f597470060
Authored-by: Pedro Marques <roque@juniper.net>
Co-Authored-By: Sylvain Afchain <sylvain.afchain@enovance.com>
Add a service instance and namespace manager for SNAT

Change-Id: I5dc1cab80e9988c42e5f2526ceed924bee86cafb
Fix some SNAT issues

This patch fixes some issues and
add a unit test related to the fix.

Change-Id: I4ccb65960e2d7892d2a34724df34e3f75d1385a8
bfd: schema: added IETF BFD as defined in RFC5880

Change-Id: Iffba8ee97309a5342c965c542fdf25238801db39
Signed-off-by: Mateusz Zalega <mateusz.zalega@codilime.com>
bfd: schema: added a schema for project's BFD data.

bfd-session element is linked with bgp-router via bfd-session-enabled link,
making BGP session monitoring possible.

Change-Id: I4e97403dd3a43327695b7f823902689c0cb0fcf6
Signed-off-by: Mateusz Zalega <mateusz.zalega@codilime.com>
Fix race condition in BgpPeer close procedure.

The BgpPeer destructor sometimes asserts because all paths added
by the peer have not been deleted i.e. the refcount_ in BgpPeer
is non-zero.

Root cause is that the BgpPeer could get closed before it's been
registered to all VPN tables. Since the peer is not registered to
the VPN tables, routes from the peer that were added to the VPN
tables do not get deleted during the close procedure.  Note that
BGP processes updates and adds routes into appropriate tables w/o
wating for table registration to be complete.

Fix is to keep track of whether VPN tables have been registered.
If VPN tables have not been registered when the peer needs to be
closed, kick off the registration and defer the close procedure.
The close will eventually resume when registration for all tables
is complete.

The changes to BgpPeerTest and bgp_peer_close_test are needed as
the bgp_peer_close_test registers to membership manager directly
without actually establishing the BgpPeer.

Change-Id: I58300e36d048902709343860066eb2ffdc4dca73
Defer delete of peer till its reference is removed from RTGroupManager

Change-Id: I0bcfb3be20a3b01ae895badd46285fee4ee6affa
On hitting max pending updates to rabbit (via configurable knob rabbit_max_pending_updates) refuse to do stateful changes (put/post/del)
Add unit test for this.

Change-Id: Ia7965626d840adda23dc16903a8afe1556bd1f83
use right var in reporting exception in ref_update

Change-Id: I3b00a9c14c1f3993b0f1bf673cff28ae14030279
Merge "Fix race condition in BgpPeer close procedure."
Correctly raise the NoIdError exception

Change-Id: I11861d9f877778dd6144e91d183f47582a52e03a
IP allocation starts from reverse

After api server is restarted, the IP allocated
to a port starts from the reverse direction.

Change-Id: Ic16894e89aafb0d4fced2e03201e3875d7f1510a
Closes-bug: #1336722
Bug fixes for 2930 ,2855

Change-Id: I68abf200d0701b619539a692981ada4b367f2dab
Add missing requirements.txt in MANIFEST.in

This change Ic04262b46c43314ac1470175b109761382abc9bd
introduced a dependency to the requirements.txt which
is not present in the MANIFEST.in file

Change-Id: I900031c690748a7baec60aae8e1d8b08c46fe358
When api-server starts up, on connecting to rabbitmq, delete old-q which might have accumulated already handled updates (in resync step).
On temporary disconnnect + re-establish queue will remain and any updates that happened in the window will be processed.

Change-Id: Ic398486f5fba8a3b397223184d2fc14ba79c57ef
sanity fix

Change-Id: I1264290cb3b228d5febb59a8da7363814bec3f2c
return router:external as part of network dictionary

Change-Id: I0368d3da26a2c14772b33f29598550401e0bed6c
Merge "Introduce a ifmap dependency manager"
Adding UT for Stats prefix-suffix query
Adding StatWalker code for generic parsing of StatOracle structures
Address review comments

minor fix for stats prefix-suffix test
Change-Id: Ib1a821502d4858da1d5508823abd8f1a4e19c03d
Merge "When api-server starts up, on connecting to rabbitmq, delete old-q which might have accumulated already handled updates (in resync step). On temporary disconnnect + re-establish queue will remain and any updates that happened in the window will be processed."