Class ReconciliationTask
java.lang.Object
org.opendaylight.ovsdb.southbound.reconciliation.ReconciliationTask
- All Implemented Interfaces:
Runnable
- Direct Known Subclasses:
BridgeConfigReconciliationTask
,ConnectionReconciliationTask
,TerminationPointConfigReconciliationTask
Abstract implementation of a reconciliation task. Each new type of
resource configuration reconciliation task should extend this class
and implement the abstract methods.
-
Field Summary
Modifier and TypeFieldDescriptionprotected final org.opendaylight.yangtools.binding.DataObject
protected final OvsdbConnectionManager
protected final org.opendaylight.yangtools.yang.binding.InstanceIdentifier
<?> protected final ReconciliationManager
-
Constructor Summary
ModifierConstructorDescriptionprotected
ReconciliationTask
(ReconciliationManager reconciliationManager, OvsdbConnectionManager connectionManager, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<?> nodeIid, org.opendaylight.yangtools.binding.DataObject configData) -
Method Summary
Modifier and TypeMethodDescriptionabstract void
Extended task should implement the logic that check the readiness of the task for execution.abstract void
doRetry
(boolean wasPreviousAttemptSuccessful) Extended task should implement the logic that decides whether retry for the task is required or not.boolean
int
hashCode()
abstract boolean
reconcileConfiguration
(OvsdbConnectionManager connectionManagerOfDevice) Method contains task reconciliation logic.abstract long
Method returns the time interval for retrying the failed task.void
run()
toString()
-
Field Details
-
reconciliationManager
-
connectionManager
-
nodeIid
protected final org.opendaylight.yangtools.yang.binding.InstanceIdentifier<?> nodeIid -
configData
protected final org.opendaylight.yangtools.binding.DataObject configData
-
-
Constructor Details
-
ReconciliationTask
protected ReconciliationTask(ReconciliationManager reconciliationManager, OvsdbConnectionManager connectionManager, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<?> nodeIid, org.opendaylight.yangtools.binding.DataObject configData)
-
-
Method Details
-
reconcileConfiguration
Method contains task reconciliation logic. Please refer toConnectionReconciliationTask.reconcileConfiguration(OvsdbConnectionManager)
for example.- Parameters:
connectionManagerOfDevice
- Connection manager to get connection instance of the device- Returns:
- True if reconciliation was successful, else false
-
doRetry
public abstract void doRetry(boolean wasPreviousAttemptSuccessful) Extended task should implement the logic that decides whether retry for the task is required or not. If retry is required but it does not requires any delay, submit the task immediately usingReconciliationManager.enqueue(ReconciliationTask)
. If retry requires delay, useReconciliationManager.enqueueForRetry(ReconciliationTask)
and specify the delay usingretryDelayInMills()
. If data store operation is required to decide if the task need retry, please implement it as an async operation and submit the task on the callback of the future.Note:Please do not write blocking data store operations
ConnectionReconciliationTask.doRetry(boolean)
- Parameters:
wasPreviousAttemptSuccessful
- Status of the previous attempt
-
checkReadinessAndProcess
public abstract void checkReadinessAndProcess()Extended task should implement the logic that check the readiness of the task for execution. If task is ready for the execution, submit it for immediate execution usingReconciliationManager.enqueue(ReconciliationTask)
. If task is not ready for execution yet, enqueue it again for delayed execution usingReconciliationManager.enqueueForRetry(ReconciliationTask)
. To check the readiness of the task, if the data store operation is required, please implement it as an async operation and submit the task on the callback of the future.Note:Please do not write blocking data store operations
ConnectionReconciliationTask.doRetry(boolean)
-
retryDelayInMills
public abstract long retryDelayInMills()Method returns the time interval for retrying the failed task.doRetry(boolean)
- Returns:
- time
-
run
public void run() -
equals
-
hashCode
public int hashCode() -
toString
-