From effca64cb7086d4518602474f4b2047eff693646 Mon Sep 17 00:00:00 2001 From: Maros Marsalek Date: Wed, 11 Mar 2015 16:30:47 +0100 Subject: [PATCH] BUG-2314 Allow rpcs with no input in netconf connector Change-Id: I81b05c98032c8bda7b34608c33ddcb5a0888ba67 Signed-off-by: Maros Marsalek --- .../controller/sal/connect/api/MessageTransformer.java | 3 ++- .../sal/connect/netconf/sal/NetconfDeviceRpc.java | 6 +----- .../netconf/schema/mapping/NetconfMessageTransformer.java | 8 ++++++-- .../controller/sal/connect/netconf/NetconfDeviceTest.java | 3 ++- .../schema/mapping/NetconfMessageTransformerTest.java | 4 +--- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/api/MessageTransformer.java b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/api/MessageTransformer.java index 6f81ce06cd..dc27cd6572 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/api/MessageTransformer.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/api/MessageTransformer.java @@ -9,13 +9,14 @@ package org.opendaylight.controller.sal.connect.api; import org.opendaylight.controller.md.sal.dom.api.DOMRpcResult; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.model.api.SchemaPath; public interface MessageTransformer { ContainerNode toNotification(M message); - M toRpcRequest(SchemaPath rpc, ContainerNode node); + M toRpcRequest(SchemaPath rpc, NormalizedNode node); DOMRpcResult toRpcResult(M message, SchemaPath rpc); diff --git a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/sal/NetconfDeviceRpc.java b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/sal/NetconfDeviceRpc.java index 108b33ad14..178b0502ed 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/sal/NetconfDeviceRpc.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/sal/NetconfDeviceRpc.java @@ -8,7 +8,6 @@ package org.opendaylight.controller.sal.connect.netconf.sal; import com.google.common.base.Function; -import com.google.common.base.Preconditions; import com.google.common.collect.Collections2; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; @@ -28,7 +27,6 @@ import org.opendaylight.controller.sal.connect.api.MessageTransformer; import org.opendaylight.controller.sal.connect.api.RemoteDeviceCommunicator; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.common.RpcResult; -import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -61,9 +59,7 @@ public final class NetconfDeviceRpc implements DOMRpcService { @Nonnull @Override public CheckedFuture invokeRpc(@Nonnull final SchemaPath type, @Nullable final NormalizedNode input) { - Preconditions.checkArgument(input instanceof ContainerNode, "Epc payload has to be a %s, was %s", ContainerNode.class, input); - - final NetconfMessage message = transformer.toRpcRequest(type, (ContainerNode) input); + final NetconfMessage message = transformer.toRpcRequest(type, input); final ListenableFuture> delegateFutureWithPureResult = listener.sendRequest(message, type.getLastComponent()); final ListenableFuture transformed = Futures.transform(delegateFutureWithPureResult, new Function, DOMRpcResult>() { diff --git a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java index 9e32dd0663..e768b5eb5b 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java @@ -152,7 +152,7 @@ public class NetconfMessageTransformer implements MessageTransformer payload) { // In case no input for rpc is defined, we can simply construct the payload here final QName rpcQName = rpc.getLastComponent(); Map currentMappedRpcs = mappedRpcs; @@ -172,6 +172,10 @@ public class NetconfMessageTransformer implements MessageTransformer getMessageTransformer() throws Exception { final MessageTransformer messageTransformer = mockClass(MessageTransformer.class); - doReturn(notification).when(messageTransformer).toRpcRequest(any(SchemaPath.class), any(ContainerNode.class)); + doReturn(notification).when(messageTransformer).toRpcRequest(any(SchemaPath.class), any(NormalizedNode.class)); doReturn(rpcResultC).when(messageTransformer).toRpcResult(any(NetconfMessage.class), any(SchemaPath.class)); doReturn(compositeNode).when(messageTransformer).toNotification(any(NetconfMessage.class)); return messageTransformer; diff --git a/opendaylight/md-sal/sal-netconf-connector/src/test/java/org/opendaylight/controller/sal/connect/netconf/schema/mapping/NetconfMessageTransformerTest.java b/opendaylight/md-sal/sal-netconf-connector/src/test/java/org/opendaylight/controller/sal/connect/netconf/schema/mapping/NetconfMessageTransformerTest.java index 643c67af28..669479d3d5 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/test/java/org/opendaylight/controller/sal/connect/netconf/schema/mapping/NetconfMessageTransformerTest.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/test/java/org/opendaylight/controller/sal/connect/netconf/schema/mapping/NetconfMessageTransformerTest.java @@ -107,8 +107,7 @@ public class NetconfMessageTransformerTest { @Test public void testDiscardChangesRequest() throws Exception { - final NetconfMessage netconfMessage = netconfMessageTransformer.toRpcRequest(toPath(NETCONF_DISCARD_CHANGES_QNAME), - NetconfMessageTransformUtil.DISCARD_CHANGES_RPC_CONTENT); + final NetconfMessage netconfMessage = netconfMessageTransformer.toRpcRequest(toPath(NETCONF_DISCARD_CHANGES_QNAME), null); assertThat(XmlUtil.toString(netconfMessage.getDocument()), CoreMatchers.containsString(""); } - @Test public void tesGetSchemaResponse() throws Exception { final NetconfMessageTransformer netconfMessageTransformer = getTransformer(getSchema(true)); -- 2.36.6