X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=applications%2Fforwardingrules-manager%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fapplications%2Ffrm%2Fimpl%2FFrmReconciliationServiceImpl.java;h=9e43568b9a6a202950ffa175b5b1f80566d18c2e;hb=777c94332871b8c34f56f7f2010de1536cb759ba;hp=2849df12e79ec3b5a7236de6d467c459fdd9086a;hpb=939f8d0c28df06c23a05164db70c86d6ad4919f0;p=openflowplugin.git diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/FrmReconciliationServiceImpl.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/FrmReconciliationServiceImpl.java index 2849df12e7..9e43568b9a 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/FrmReconciliationServiceImpl.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/FrmReconciliationServiceImpl.java @@ -5,14 +5,15 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.openflowplugin.applications.frm.impl; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.MoreExecutors; import com.google.common.util.concurrent.SettableFuture; -import javax.annotation.Nullable; +import javax.inject.Inject; +import javax.inject.Singleton; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; @@ -24,23 +25,25 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.frm.reconciliation.service.rev180227.ReconcileNodeOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.frm.reconciliation.service.rev180227.ReconcileNodeOutputBuilder; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.common.RpcError; +import org.opendaylight.yangtools.yang.common.ErrorType; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Singleton public class FrmReconciliationServiceImpl implements FrmReconciliationService { private static final Logger LOG = LoggerFactory.getLogger(FrmReconciliationServiceImpl.class); private final ForwardingRulesManagerImpl forwardingRulesManagerImpl; + @Inject public FrmReconciliationServiceImpl(ForwardingRulesManagerImpl forwardingRulesManagerImpl) { this.forwardingRulesManagerImpl = forwardingRulesManagerImpl; } - private Node buildNode(long nodeIid) { + private static Node buildNode(long nodeIid) { NodeId nodeId = new NodeId("openflow:" + nodeIid); Node nodeDpn = new NodeBuilder().setId(nodeId).withKey(new NodeKey(nodeId)).build(); return nodeDpn; @@ -48,15 +51,16 @@ public class FrmReconciliationServiceImpl implements FrmReconciliationService { @Override public ListenableFuture> reconcileNode(ReconcileNodeInput input) { - LOG.debug("Triggering reconciliation for node: {}", input.getNodeId().toString()); + LOG.debug("Triggering reconciliation for node: {}", input.getNodeId()); Node nodeDpn = buildNode(input.getNodeId().longValue()); InstanceIdentifier connectedNode = InstanceIdentifier.builder(Nodes.class) .child(Node.class, nodeDpn.key()).augmentation(FlowCapableNode.class).build(); SettableFuture> rpcResult = SettableFuture.create(); ListenableFuture futureResult = forwardingRulesManagerImpl .getNodeListener().reconcileConfiguration(connectedNode); - Futures.addCallback(futureResult, new ResultCallBack(futureResult, rpcResult)); - LOG.debug("Completing reconciliation for node: {}", input.getNodeId().toString()); + Futures.addCallback(futureResult, new ResultCallBack(futureResult, rpcResult), + MoreExecutors.directExecutor()); + LOG.debug("Completing reconciliation for node: {}", input.getNodeId()); return rpcResult; } @@ -69,13 +73,13 @@ public class FrmReconciliationServiceImpl implements FrmReconciliationService { } @Override - public void onSuccess(@Nullable Boolean result) { + public void onSuccess(Boolean result) { if (result) { ReconcileNodeOutput output = new ReconcileNodeOutputBuilder().setResult(result).build(); futureResult.set(RpcResultBuilder.success(output).build()); } else { futureResult.set(RpcResultBuilder.failed() - .withError(RpcError.ErrorType.APPLICATION, "Error while triggering reconciliation").build()); + .withError(ErrorType.APPLICATION, "Error while triggering reconciliation").build()); } } @@ -84,7 +88,7 @@ public class FrmReconciliationServiceImpl implements FrmReconciliationService { public void onFailure(Throwable error) { LOG.error("initReconciliation failed", error); futureResult.set(RpcResultBuilder.failed() - .withError(RpcError.ErrorType.RPC,"Error while calling RPC").build()); + .withError(ErrorType.RPC, "Error while calling RPC").build()); } } }