Add PCEPTopoloy{Instance,Singleton,Tracker} 02/98602/21
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 17 Nov 2021 17:58:40 +0000 (18:58 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 20 Nov 2021 01:07:10 +0000 (02:07 +0100)
commit7663393803b5fa2ff0208f054c65c394cae713f1
treec82546eba49de516fce0c2ff98e6cdb42c03887b
parent094efd15ff17d6ab122dcd92c563154441b5d83e
Add PCEPTopoloy{Instance,Singleton,Tracker}

Rework topology instantiation to split the individual concerns.
PCEPTopologyTracker is responsible for finding out when a particular
topology becomes interesting to the underlying code (and when becomes
uninteresting).

For each such topology, a PCEPTopologySingleton is instantiated. It then
handles allocation of the underlying InstructionScheduler as well as
bootstrapping a cluster-wide singleton PCEPTopologyInstance to handle
that topology's configuration.

PCEPTopologyInstance tracks configuration datastore changes for a single
topology. For each update it constructs an immutable
PCEPTopologyConfiguration and forwards it to its PCEPTopologyProvider.

PCEPTopologyProvider handles updates of the configuration in the most
graceful manner possible, sequencing possible Netty Channel restart, but
otherwise just updaing the low-level componennts

JIRA: BGPCEP-893
Change-Id: I56c47b89ab87cf33a6be1016fa132b6c1aa98cbb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
18 files changed:
pcep/topology/topology-provider/pom.xml
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPDispatcherDependenciesImpl.java
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPStatefulPeerProposal.java
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPTopologyConfiguration.java [moved from pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/config/PCEPTopologyConfiguration.java with 72% similarity]
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPTopologyInstance.java [new file with mode: 0644]
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPTopologyProvider.java
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPTopologyProviderDependencies.java [moved from pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/config/PCEPTopologyProviderDependencies.java with 89% similarity]
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPTopologySingleton.java [new file with mode: 0644]
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPTopologyTracker.java [new file with mode: 0644]
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/ServerSessionManager.java
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/SpeakerIdMapping.java
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/TopologyUtils.java [new file with mode: 0644]
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/config/PCEPTopologyDeployerImpl.java [deleted file]
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/config/PCEPTopologyProviderBean.java [deleted file]
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/config/PCEPTopologyProviderSingleton.java [deleted file]
pcep/topology/topology-provider/src/main/resources/OSGI-INF/blueprint/pcep-topology.xml
pcep/topology/topology-provider/src/test/java/org/opendaylight/bgpcep/pcep/topology/provider/AbstractPCEPSessionTest.java
pcep/topology/topology-provider/src/test/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPTopologySessionListenerTest.java