From: Jozef Gloncak Date: Mon, 28 Oct 2013 12:50:15 +0000 (+0100) Subject: Class FlowServiceAdapter was created as mirror class to X-Git-Tag: jenkins-controller-bulk-release-prepare-only-2-1~535 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=0e4aa6c7f5a4c66c3778d4eaa488eaa91f964fac;hp=6c6c85af56a95fe57389f5ac420876d7ce5cd0e5 Class FlowServiceAdapter was created as mirror class to FlowProgrammerAdapter Change-Id: I195ae47379c939ed78f9e80a75e96f2f855441f4 Signed-off-by: Jozef Gloncak --- diff --git a/opendaylight/md-sal/sal-compability/src/main/java/org/opendaylight/controller/sal/compability/adsal/FlowServiceAdapter.java b/opendaylight/md-sal/sal-compability/src/main/java/org/opendaylight/controller/sal/compability/adsal/FlowServiceAdapter.java new file mode 100644 index 0000000000..4b80844c11 --- /dev/null +++ b/opendaylight/md-sal/sal-compability/src/main/java/org/opendaylight/controller/sal/compability/adsal/FlowServiceAdapter.java @@ -0,0 +1,84 @@ +package org.opendaylight.controller.sal.compability.adsal; + +import java.util.concurrent.Future; + +import org.opendaylight.controller.sal.binding.api.NotificationProviderService; +import org.opendaylight.controller.sal.common.util.Futures; +import org.opendaylight.controller.sal.common.util.Rpcs; +import org.opendaylight.controller.sal.compability.NodeMapping; +import org.opendaylight.controller.sal.compability.ToSalConversionsUtils; +import org.opendaylight.controller.sal.core.ConstructionException; +import org.opendaylight.controller.sal.core.Node; +import org.opendaylight.controller.sal.flowprogrammer.Flow; +import org.opendaylight.controller.sal.flowprogrammer.IFlowProgrammerListener; +import org.opendaylight.controller.sal.flowprogrammer.IFlowProgrammerService; +import org.opendaylight.controller.sal.utils.Status; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.*; +import org.opendaylight.yangtools.yang.common.RpcResult; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class FlowServiceAdapter implements SalFlowService, IFlowProgrammerListener { + + private static final Logger LOG = LoggerFactory.getLogger(FlowServiceAdapter.class); + + private IFlowProgrammerService delegate; + + private NotificationProviderService publish; + + @Override + public void flowRemoved(Node node, Flow flow) { + FlowRemovedBuilder flowRemovedBuilder = new FlowRemovedBuilder(); + flowRemovedBuilder.setNode(NodeMapping.toNodeRef(node)); + publish.publish(flowRemovedBuilder.build()); + } + + @Override + public void flowErrorReported(Node node, long rid, Object err) { + // TODO Auto-generated method stub + + } + + @Override + public Future> addFlow(AddFlowInput input) { + try { + Flow flow = ToSalConversionsUtils.toFlow(input); + Node node = NodeMapping.toADNode(input.getNode()); + Status status = delegate.addFlowAsync(node, flow); + Void rpcResultType = null; + return Futures.immediateFuture(Rpcs.getRpcResult(status.isSuccess(), rpcResultType, null)); + } catch (ConstructionException e) { + LOG.error(e.getMessage()); + } + return null; + } + + @Override + public Future> removeFlow(RemoveFlowInput input) { + try { + Flow flow = ToSalConversionsUtils.toFlow(input); + Node node = NodeMapping.toADNode(input.getNode()); + Status status = delegate.removeFlowAsync(node, flow); + Void rpcResultType = null; + return Futures.immediateFuture(Rpcs.getRpcResult(status.isSuccess(), rpcResultType, null)); + } catch (ConstructionException e) { + LOG.error(e.getMessage()); + } + return null; + } + + @Override + public Future> updateFlow(UpdateFlowInput input) { + try { + Node node = NodeMapping.toADNode(input.getNode()); + Flow originalFlow = ToSalConversionsUtils.toFlow(input.getOriginalFlow()); + Flow updatedFlow = ToSalConversionsUtils.toFlow(input.getUpdatedFlow()); + Status status = delegate.modifyFlowAsync(node, originalFlow, updatedFlow); + Void rpcResultType = null; + return Futures.immediateFuture(Rpcs.getRpcResult(status.isSuccess(), rpcResultType, null)); + } catch (ConstructionException e) { + LOG.error(e.getMessage()); + } + return null; + } +}