Class ReconciliationManager

java.lang.Object
org.opendaylight.ovsdb.southbound.reconciliation.ReconciliationManager
All Implemented Interfaces:
AutoCloseable

public class ReconciliationManager extends Object implements AutoCloseable
This class provides the implementation of ovsdb southbound plugins configuration reconciliation engine. This engine provide interfaces to enqueue (one time retry)/ enqueueForRetry(periodic retry)/ dequeue (remove from retry queue) reconciliation task. Reconciliation task can be a connection reconciliation or configuration reconciliation of any ovsdb managed resource like bridge, termination point etc. This engine execute all the reconciliation task through a fixed size thread pool. If submitted task need to be retry after a periodic interval they are submitted to a single thread executor to periodically wake up and check if task is ready for execution. Ideally, addition of any type of reconciliation task should not require any change in this reconciliation manager execution engine.

3-Node Cluster: Reconciliation manager is agnostic of whether it's running in single node cluster or 3-node cluster. It's a responsibility of the task submitter to make sure that it submit the task for reconciliation only if it's an owner of that device EXCEPT controller initiated Connection. Reconciliation of controller initiated connection should be done by all the 3-nodes in the cluster, because connection to individual controller can be interrupted for various reason.

  • Constructor Details

    • ReconciliationManager

      public ReconciliationManager(org.opendaylight.mdsal.binding.api.DataBroker db, InstanceIdentifierCodec instanceIdentifierCodec, List<String> reconcileBridgeInclusionList, List<String> reconcileBridgeExclusionList)
  • Method Details

    • getBridgesReconciliationInclusionList

      public List<String> getBridgesReconciliationInclusionList()
    • getBridgesReconciliationExclusionList

      public List<String> getBridgesReconciliationExclusionList()
    • isEnqueued

      public boolean isEnqueued(ReconciliationTask task)
    • enqueue

      public void enqueue(ReconciliationTask task)
    • enqueueForRetry

      public void enqueueForRetry(ReconciliationTask task)
    • dequeue

      public void dequeue(ReconciliationTask task)
    • getDb

      public org.opendaylight.mdsal.binding.api.DataBroker getDb()
    • close

      public void close() throws Exception
      Specified by:
      close in interface AutoCloseable
      Throws:
      Exception
    • reconcileTerminationPoints

      public void reconcileTerminationPoints(OvsdbConnectionManager connectionManager, OvsdbConnectionInstance connectionInstance, List<org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node> bridgeNodes)
      This method reconciles Termination Point configurations for the given list of bridge nodes.
      Parameters:
      connectionManager - OvsdbConnectionManager object
      connectionInstance - OvsdbConnectionInstance object
      bridgeNodes - list of bridge nodes be reconciled for termination points
    • cancelTerminationPointReconciliation

      public void cancelTerminationPointReconciliation()