+ readTx.close();
+ return Futures.immediateFuture(null);
+ });
+ }
+
+ public static Optional<FlowCapableNode> deleteAllKnownFlows(final DeviceInfo deviceInfo,
+ final TxFacade txFacade) {
+ final InstanceIdentifier<FlowCapableNode> flowCapableNodePath
+ = assembleFlowCapableNodeInstanceIdentifier(deviceInfo);
+ final ReadOnlyTransaction readTx = txFacade.getReadTransaction();
+ final CheckedFuture<Optional<FlowCapableNode>, ReadFailedException> flowCapableNodeFuture = readTx.read(
+ LogicalDatastoreType.OPERATIONAL, flowCapableNodePath);
+
+ try {
+ Optional<FlowCapableNode> fcNodeOpt = flowCapableNodeFuture.get();
+ if ( fcNodeOpt != null && fcNodeOpt.isPresent()){
+ for (final Table tableData : flowCapableNodeFuture.get().get().getTable()) {
+ final Table table = new TableBuilder(tableData).setFlow(Collections.<Flow>emptyList()).build();
+ final InstanceIdentifier<Table> iiToTable = flowCapableNodePath.child(Table.class, tableData.getKey());
+ txFacade.writeToTransaction(LogicalDatastoreType.OPERATIONAL, iiToTable, table);