X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-cli%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fcli%2Fcommands%2Fremote%2FRemoteCommand.java;h=be2dc8577ce306789787cbc1116d0459344a39b8;hb=412db94945c5db5d2da918f5e23bd3abcecc4d10;hp=05b9e85e7965d863ccc78dd98a87b34eb74f0458;hpb=0d78fea60c4818145e7bd8479427dfc04f0f8145;p=controller.git diff --git a/opendaylight/netconf/netconf-cli/src/main/java/org/opendaylight/controller/netconf/cli/commands/remote/RemoteCommand.java b/opendaylight/netconf/netconf-cli/src/main/java/org/opendaylight/controller/netconf/cli/commands/remote/RemoteCommand.java index 05b9e85e79..be2dc8577c 100644 --- a/opendaylight/netconf/netconf-cli/src/main/java/org/opendaylight/controller/netconf/cli/commands/remote/RemoteCommand.java +++ b/opendaylight/netconf/netconf-cli/src/main/java/org/opendaylight/controller/netconf/cli/commands/remote/RemoteCommand.java @@ -7,10 +7,14 @@ */ package org.opendaylight.controller.netconf.cli.commands.remote; -import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.CheckedFuture; +import java.util.Collections; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import org.opendaylight.controller.md.sal.dom.api.DOMRpcException; +import org.opendaylight.controller.md.sal.dom.api.DOMRpcResult; +import org.opendaylight.controller.md.sal.dom.api.DOMRpcService; import org.opendaylight.controller.netconf.cli.commands.AbstractCommand; import org.opendaylight.controller.netconf.cli.commands.Command; import org.opendaylight.controller.netconf.cli.commands.CommandInvocationException; @@ -18,11 +22,9 @@ import org.opendaylight.controller.netconf.cli.commands.input.Input; import org.opendaylight.controller.netconf.cli.commands.input.InputDefinition; import org.opendaylight.controller.netconf.cli.commands.output.Output; import org.opendaylight.controller.netconf.cli.commands.output.OutputDefinition; -import org.opendaylight.controller.sal.core.api.RpcImplementation; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.common.RpcResult; -import org.opendaylight.yangtools.yang.data.api.CompositeNode; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; +import org.opendaylight.yangtools.yang.model.api.SchemaPath; /** * Generic remote command implementation that sends the rpc xml to the remote device and waits for response @@ -33,16 +35,18 @@ public class RemoteCommand extends AbstractCommand { // TODO make this configurable private static final long DEFAULT_TIMEOUT = 10000; private static final TimeUnit DEFAULT_TIMEOUT_UNIT = TimeUnit.MILLISECONDS; - private final RpcImplementation rpc; + private final DOMRpcService rpcService; - public RemoteCommand(final QName qName, final InputDefinition args, final OutputDefinition output, final String description, final RpcImplementation rpc) { + public RemoteCommand(final QName qName, final InputDefinition args, final OutputDefinition output, final String description, final DOMRpcService rpcService) { super(qName, args, output, description); - this.rpc = rpc; + this.rpcService = rpcService; } @Override public Output invoke(final Input inputArgs) throws CommandInvocationException { - final ListenableFuture> invokeRpc = rpc.invokeRpc(getCommandId(), inputArgs.wrap(getCommandId())); + final CheckedFuture invokeRpc = + rpcService.invokeRpc(SchemaPath.create(Collections.singletonList(getCommandId()), true), inputArgs.wrap(getCommandId())); + try { return new Output(invokeRpc.get(DEFAULT_TIMEOUT, DEFAULT_TIMEOUT_UNIT).getResult()); } catch (final ExecutionException e) { @@ -56,10 +60,10 @@ public class RemoteCommand extends AbstractCommand { } } - public static Command fromRpc(final RpcDefinition rpcDefinition, final RpcImplementation rpcInvoker) { + public static Command fromRpc(final RpcDefinition rpcDefinition, final DOMRpcService rpcService) { final InputDefinition args = getInputDefinition(rpcDefinition); final OutputDefinition retVal = getOutputDefinition(rpcDefinition); - return new RemoteCommand(rpcDefinition.getQName(), args, retVal, rpcDefinition.getDescription(), rpcInvoker); + return new RemoteCommand(rpcDefinition.getQName(), args, retVal, rpcDefinition.getDescription(), rpcService); } }