Class ReconcileUtil
java.lang.Object
org.opendaylight.openflowplugin.applications.frsync.util.ReconcileUtil
Util methods for group reconcil task (future chaining, transforms).
- 
Method Summary
Modifier and TypeMethodDescriptionstatic com.google.common.util.concurrent.AsyncFunction<org.opendaylight.yangtools.yang.common.RpcResult<Void>, org.opendaylight.yangtools.yang.common.RpcResult<Void>> chainBarrierFlush(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Node> nodeIdent, SendBarrier sendBarrier) Flushes a chain barrier.static booleancheckGroupPrecondition(Set<org.opendaylight.yangtools.yang.common.Uint32> installedGroupIds, Group pendingGroup) static <E> intcountTotalPushed(Iterable<ItemSyncBox<E>> groupsAddPlan) static <E> intcountTotalUpdated(Iterable<ItemSyncBox<E>> groupsAddPlan) static <D> com.google.common.base.Function<List<org.opendaylight.yangtools.yang.common.RpcResult<D>>, org.opendaylight.yangtools.yang.common.RpcResult<Void>> createRpcResultCondenser(String previousItemAction) Creates a single rpc result of type Void honoring all partial rpc results.static <D> com.google.common.base.Function<org.opendaylight.yangtools.yang.common.RpcResult<D>, org.opendaylight.yangtools.yang.common.RpcResult<Void>> createRpcResultToVoidFunction(String actionDescription) Creates a single rpc result of type Void honoring all partial rpc results.static List<ItemSyncBox<Group>> resolveAndDivideGroupDiffs(NodeId nodeId, Map<org.opendaylight.yangtools.yang.common.Uint32, Group> installedGroupsArg, Collection<Group> pendingGroups) Returns a list of safe synchronization steps with updates.static List<ItemSyncBox<Group>> resolveAndDivideGroupDiffs(NodeId nodeId, Map<org.opendaylight.yangtools.yang.common.Uint32, Group> installedGroupsArg, Collection<Group> pendingGroups, boolean gatherUpdates) Returns a list of safe synchronization steps.static Map<TableKey, ItemSyncBox<Flow>> resolveFlowDiffsInAllTables(NodeId nodeId, Map<org.opendaylight.yangtools.yang.common.Uint8, Table> tableOperationalMap, Collection<Table> tablesConfigured, boolean gatherUpdates) Resolves flow differences in all tables.static ItemSyncBox<Meter> resolveMeterDiffs(NodeId nodeId, Map<MeterId, Meter> meterOperationalMap, Collection<Meter> metersConfigured, boolean gatherUpdates) Resolves meter differences.static Collection<Group> safeGroups(FlowCapableNode node) static Collection<Meter> safeMeters(FlowCapableNode node) static Collection<Table> safeTables(FlowCapableNode node)  
- 
Method Details
- 
createRpcResultCondenser
public static <D> com.google.common.base.Function<List<org.opendaylight.yangtools.yang.common.RpcResult<D>>,org.opendaylight.yangtools.yang.common.RpcResult<Void>> createRpcResultCondenser(String previousItemAction) Creates a single rpc result of type Void honoring all partial rpc results.- Type Parameters:
 D- type of rpc output (gathered in list)- Parameters:
 previousItemAction- description for case when the triggering future contains failure- Returns:
 - single rpc result of type Void honoring all partial rpc results
 
 - 
createRpcResultToVoidFunction
public static <D> com.google.common.base.Function<org.opendaylight.yangtools.yang.common.RpcResult<D>,org.opendaylight.yangtools.yang.common.RpcResult<Void>> createRpcResultToVoidFunction(String actionDescription) Creates a single rpc result of type Void honoring all partial rpc results.- Type Parameters:
 D- type of rpc output (gathered in list)- Parameters:
 actionDescription- description for case when the triggering future contains failure- Returns:
 - single rpc result of type Void honoring all partial rpc results
 
 - 
chainBarrierFlush
public static com.google.common.util.concurrent.AsyncFunction<org.opendaylight.yangtools.yang.common.RpcResult<Void>,org.opendaylight.yangtools.yang.common.RpcResult<Void>> chainBarrierFlush(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Node> nodeIdent, SendBarrier sendBarrier) Flushes a chain barrier.- Parameters:
 nodeIdent- flow capable node path - target device for routed rpcsendBarrier- barrier rpc service- Returns:
 - async barrier result
 
 - 
resolveAndDivideGroupDiffs
public static List<ItemSyncBox<Group>> resolveAndDivideGroupDiffs(NodeId nodeId, Map<org.opendaylight.yangtools.yang.common.Uint32, Group> installedGroupsArg, Collection<Group> pendingGroups) Returns a list of safe synchronization steps with updates.- Parameters:
 nodeId- target nodeinstalledGroupsArg- groups resent on devicependingGroups- groups configured for device- Returns:
 - list of safe synchronization steps with updates
 
 - 
resolveAndDivideGroupDiffs
public static List<ItemSyncBox<Group>> resolveAndDivideGroupDiffs(NodeId nodeId, Map<org.opendaylight.yangtools.yang.common.Uint32, Group> installedGroupsArg, Collection<Group> pendingGroups, boolean gatherUpdates) Returns a list of safe synchronization steps.- Parameters:
 nodeId- target nodeinstalledGroupsArg- groups resent on devicependingGroups- groups configured for devicegatherUpdates- check content of pending item if present on device (and create update task eventually)- Returns:
 - list of safe synchronization steps
 
 - 
checkGroupPrecondition
 - 
countTotalPushed
 - 
countTotalUpdated
 - 
resolveMeterDiffs
public static ItemSyncBox<Meter> resolveMeterDiffs(NodeId nodeId, Map<MeterId, Meter> meterOperationalMap, Collection<Meter> metersConfigured, boolean gatherUpdates) Resolves meter differences.- Parameters:
 nodeId- target nodemeterOperationalMap- meters present on devicemetersConfigured- meters configured for devicegatherUpdates- check content of pending item if present on device (and create update task eventually)- Returns:
 - synchronization box
 
 - 
resolveFlowDiffsInAllTables
public static Map<TableKey,ItemSyncBox<Flow>> resolveFlowDiffsInAllTables(NodeId nodeId, Map<org.opendaylight.yangtools.yang.common.Uint8, Table> tableOperationalMap, Collection<Table> tablesConfigured, boolean gatherUpdates) Resolves flow differences in all tables.- Parameters:
 nodeId- target nodetableOperationalMap- flow-tables resent on devicetablesConfigured- flow-tables configured for devicegatherUpdates- check content of pending item if present on device (and create update task eventually)- Returns:
 - map : key=
TableKey, value=ItemSyncBoxof safe synchronization steps 
 - 
safeGroups
 - 
safeTables
 - 
safeMeters
 
 -