This is a useless indirection through dependencies, let's remove it.
Change-Id: I5b2c320030f8457011700552acbbc296328a487d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
private final Map<SrpIdNumber, PCEPRequest> requests = new HashMap<>();
@GuardedBy("this")
private final Map<String, ReportedLsp> lspData = new ConcurrentHashMap<>();
+ private final TopologySessionStatsRegistry statsProvider;
private final ServerSessionManager serverSessionManager;
+
private InstanceIdentifier<PathComputationClient> pccIdentifier;
@GuardedBy("this")
private TopologyNodeState nodeState;
@GuardedBy("this")
private boolean triggeredResyncInProcess;
- AbstractTopologySessionListener(final ServerSessionManager serverSessionManager) {
+ AbstractTopologySessionListener(final TopologySessionStatsRegistry statsProvider,
+ final ServerSessionManager serverSessionManager) {
+ this.statsProvider = requireNonNull(statsProvider);
this.serverSessionManager = requireNonNull(serverSessionManager);
}
state.storeNode(topologyAugment,
new Node1Builder().setPathComputationClient(pccBuilder.build()).build(), psession);
- listenerState = new SessionStateImpl(this, psession);
- serverSessionManager.bind(state.getNodeId(), listenerState);
+ // TODO: collapse assignment? needs to be verified through bytecode
+ final var sessionState = new SessionStateImpl(this, psession);
+ listenerState = sessionState;
+ statsProvider.bind(state.getNodeId(), sessionState);
LOG.info("Session with {} attached to topology node {}", peerAddress, state.getNodeId());
}
}
@Holding({"this.serverSessionManager", "this"})
private void clearNodeState() {
if (nodeState != null) {
- serverSessionManager.unbind(nodeState.getNodeId());
+ statsProvider.unbind(nodeState.getNodeId());
LOG.debug("Clear Node state: {}", nodeState.getNodeId());
nodeState = null;
}
/**
* Creates a new stateful topology session listener for given server session manager.
*/
- PCEPTopologySessionListener(final ServerSessionManager serverSessionManager) {
- super(serverSessionManager);
- pceServerProvider = serverSessionManager.getPCEPTopologyProviderDependencies().getPceServerProvider();
+ PCEPTopologySessionListener(final TopologySessionStatsRegistry statsProvider,
+ final ServerSessionManager serverSessionManager, final PceServerProvider pceServerProvider) {
+ super(statsProvider, serverSessionManager);
+ // FIXME: requireNonNull(), except tests need to be updated
+ this.pceServerProvider = pceServerProvider;
}
private static LspDbVersion geLspDbVersionTlv(final Lsp lsp) {
import org.opendaylight.protocol.pcep.PCEPSessionListenerFactory;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.GraphKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.SrpIdNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.stats.rev171113.PcepSessionState;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev220730.AddLspArgs;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev220730.EnsureLspOperationalInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev220730.OperationResult;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyBuilder;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.TopologyTypesBuilder;
import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
import org.opendaylight.yangtools.yang.common.ErrorType;
// Non-final for testing
@Override
public PCEPTopologySessionListener getSessionListener() {
- return new PCEPTopologySessionListener(this);
+ return new PCEPTopologySessionListener(dependencies.getStateRegistry(), this,
+ dependencies.getPceServerProvider());
}
private synchronized TopologySessionListener checkSessionPresence(final NodeId nodeId) {
}
}
- final void bind(final KeyedInstanceIdentifier<Node, NodeKey> nodeId, final PcepSessionState sessionState) {
- dependencies.getStateRegistry().bind(nodeId, sessionState);
- }
-
- final void unbind(final KeyedInstanceIdentifier<Node, NodeKey> nodeId) {
- dependencies.getStateRegistry().unbind(nodeId);
- }
-
final PCEPTopologyProviderDependencies getPCEPTopologyProviderDependencies() {
return dependencies;
}
@Override
ServerSessionManager customizeSessionManager(final ServerSessionManager original) {
final var customized = spy(original);
- listener = spy(new PCEPTopologySessionListener(original));
+ final var deps = original.getPCEPTopologyProviderDependencies();
+ listener = spy(new PCEPTopologySessionListener(deps.getStateRegistry(), original,
+ deps.getPceServerProvider()));
doReturn(listener).when(customized).getSessionListener();
return customized;
}