Bug 5685: Integate BGP topology provider with cluster singleton service. 74/44974/3
authorMilos Fabian <milfabia@cisco.com>
Wed, 27 Jul 2016 10:27:14 +0000 (12:27 +0200)
committerMilos Fabian <milfabia@cisco.com>
Thu, 1 Sep 2016 22:38:06 +0000 (22:38 +0000)
commitaf31791995d51151b7b5f745b1e954ae9bea884b
tree09c2bef1ce8b20505388f725e1b6983060737610
parent3b8afcbc405c1898b6607de3f62517b1abddfec9
Bug 5685: Integate BGP topology provider with cluster singleton service.

The BgpTopologyDeployer service is responsible for a topology builder instances creation.
In clustered environment, this service is running on all three nodes, consuming the same
configuration, create the same topology builder instance and register it to the cluster singleton service
provider on all nodes, but only one instance become active.
This integration allows fail-over scenarios and avoids confilicting datastore modifications for
topology builders with the same topology-id.
Provide backwards compatility for CSS modules, where instance is created and configuration
is written to DS when instance become active.

Change-Id: Id1af5368f5d9fad04243e2ab909c5948632626d7
Signed-off-by: Milos Fabian <milfabia@cisco.com>
(cherry picked from commit e1a2ab99146c6e345f4e9911e51595eea5cdea11)
20 files changed:
bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/config/AbstractBgpTopologyProvider.java [moved from bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/AbstractBgpTopologyProvider.java with 66% similarity]
bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/config/BackwardsCssTopologyProvider.java [moved from bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/BackwardsCssTopologyProvider.java with 75% similarity]
bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/config/BgpTopologyDeployerImpl.java [moved from bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/BgpTopologyDeployerImpl.java with 72% similarity]
bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/config/Ipv4TopologyProvider.java [moved from bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/Ipv4TopologyProvider.java with 55% similarity]
bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/config/Ipv6TopologyProvider.java [moved from bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/Ipv6TopologyProvider.java with 55% similarity]
bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/config/LinkstateTopologyProvider.java [moved from bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/LinkstateTopologyProvider.java with 55% similarity]
bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/config/TopologyReferenceSingletonServiceImpl.java [new file with mode: 0644]
bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/spi/BgpTopologyDeployer.java
bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/spi/BgpTopologyProvider.java
bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/spi/TopologyReferenceSingletonService.java [moved from bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/TopologyReferenceAutoCloseable.java with 50% similarity]
bgp/topology-provider/src/main/java/org/opendaylight/controller/config/yang/bgp/reachability/ipv4/Ipv4ReachabilityTopologyBuilderModule.java
bgp/topology-provider/src/main/java/org/opendaylight/controller/config/yang/bgp/reachability/ipv4/Ipv4ReachabilityTopologyBuilderModuleFactory.java
bgp/topology-provider/src/main/java/org/opendaylight/controller/config/yang/bgp/reachability/ipv6/Ipv6ReachabilityTopologyBuilderModule.java
bgp/topology-provider/src/main/java/org/opendaylight/controller/config/yang/bgp/reachability/ipv6/Ipv6ReachabilityTopologyBuilderModuleFactory.java
bgp/topology-provider/src/main/java/org/opendaylight/controller/config/yang/bgp/topology/provider/LinkstateTopologyBuilderModule.java
bgp/topology-provider/src/main/java/org/opendaylight/controller/config/yang/bgp/topology/provider/LinkstateTopologyBuilderModuleFactory.java
bgp/topology-provider/src/main/resources/org/opendaylight/blueprint/bgp-topology-provider.xml
bgp/topology-provider/src/test/java/org/opendaylight/controller/config/yang/bgp/topology/provider/Ipv4ReachabilityTopologyBuilderModuleTest.java
bgp/topology-provider/src/test/java/org/opendaylight/controller/config/yang/bgp/topology/provider/Ipv6ReachabilityTopologyBuilderModuleTest.java
bgp/topology-provider/src/test/java/org/opendaylight/controller/config/yang/bgp/topology/provider/LinkstateTopologyBuilderModuleTest.java