/** * Update the specified flow entry. * * @param input An input of this RPC. * @return A {@link Future} instance associated with the RPC task. */ @Override public Future<RpcResult<UpdateFlowOutput>> updateFlow( UpdateFlowInput input) { // Do nothing. UpdateFlowOutput output = new UpdateFlowOutputBuilder(). setTransactionId(createTransactionId()).build(); return createRpcResult(output); }
@Override public ListenableFuture<RpcResult<UpdateFlowOutput>> updateFlow(UpdateFlowInput input) { @SuppressWarnings("unchecked") org.opendaylight.controller.sal.core.Node node = InventoryMapping.toAdNode((InstanceIdentifier<Node>) input .getNode().getValue()); Flow originalFlow = ToSalConversionsUtils.toFlow(input.getOriginalFlow(), null); Flow updatedFlow = ToSalConversionsUtils.toFlow(input.getUpdatedFlow(), null); Status status = delegate.modifyFlowAsync(node, originalFlow, updatedFlow); UpdateFlowOutputBuilder builder = new UpdateFlowOutputBuilder(); builder.setTransactionId(new TransactionId(BigInteger.valueOf(status.getRequestId()))); UpdateFlowOutput rpcResultType = builder.build(); throw new UnsupportedOperationException("Need to translate AD-SAL status to MD-SAL UpdateFlowOuptut - eaw@cisco.com"); // return Futures.immediateFuture(Rpcs.getRpcResult(status.isSuccess(), rpcResultType, null)); } }
@Override public RpcResult<UpdateFlowOutput> apply(final RpcResult<Void> inputArg) { UpdateFlowOutputBuilder flowModOutput = new UpdateFlowOutputBuilder(); BigInteger bigIntXid = BigInteger.valueOf(input.getXid()); flowModOutput.setTransactionId(new TransactionId(bigIntXid)); UpdateFlowOutput result = flowModOutput.build(); RpcResult<UpdateFlowOutput> rpcResult = RpcResultBuilder .<UpdateFlowOutput>status(inputArg.isSuccessful()) .withResult(result).withRpcErrors(inputArg.getErrors()) .build(); return rpcResult; } });