From 69c92b2bee54681ebb5c0bfaf89d269877e0b747 Mon Sep 17 00:00:00 2001 From: Marek Gradzki Date: Wed, 13 Jun 2018 21:12:16 +0200 Subject: [PATCH] Make RuntimeRpc revision aware Do not use SchemaContext.findModule(URI), which looks for a module instance with specified namespace and no revision. Such lookup fails for modules with revision defined. Instead (as already done in AbstractEdit) use SchemaContext.findModules and use the newest module if more than one module with the same namespace is found. Change-Id: I7b6bdcb9156669645e19a6395e1b74995328154d Signed-off-by: Marek Gradzki --- .../opendaylight/netconf/mdsal/connector/ops/RuntimeRpc.java | 2 +- .../netconf/mdsal/connector/ops/RuntimeRpcTest.java | 3 ++- .../src/test/resources/yang/mdsal-netconf-rpc-test.yang | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpc.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpc.java index 6d4ba4305a..669eb1fe12 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpc.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpc.java @@ -106,7 +106,7 @@ public class RuntimeRpc extends AbstractSingletonNetconfOperation { //this returns module with the newest revision if more then 1 module with same namespace is found private Optional getModule(final URI namespaceURI) { - return Optional.fromJavaUtil(schemaContext.getCurrentContext().findModule(namespaceURI)); + return Optional.fromJavaUtil(schemaContext.getCurrentContext().findModules(namespaceURI).stream().findFirst()); } private static Optional getRpcDefinitionFromModule(final Module module, final URI namespaceURI, diff --git a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpcTest.java b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpcTest.java index 60ac65ab68..1c90e99d3d 100644 --- a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpcTest.java +++ b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpcTest.java @@ -126,7 +126,8 @@ public class RuntimeRpcTest { @Nonnull final SchemaPath type, @Nullable final NormalizedNode input) { final Collection> children = (Collection>) input.getValue(); - final Module module = schemaContext.findModule(type.getLastComponent().getNamespace()).orElse(null); + final Module module = schemaContext.findModules(type.getLastComponent().getNamespace()).stream() + .findFirst().orElse(null); final RpcDefinition rpcDefinition = getRpcDefinitionFromModule( module, module.getNamespace(), type.getLastComponent().getLocalName()); final ContainerSchemaNode outputSchemaNode = rpcDefinition.getOutput(); diff --git a/netconf/mdsal-netconf-connector/src/test/resources/yang/mdsal-netconf-rpc-test.yang b/netconf/mdsal-netconf-connector/src/test/resources/yang/mdsal-netconf-rpc-test.yang index 6a59cdcf6e..b09b7d62c6 100644 --- a/netconf/mdsal-netconf-connector/src/test/resources/yang/mdsal-netconf-rpc-test.yang +++ b/netconf/mdsal-netconf-connector/src/test/resources/yang/mdsal-netconf-rpc-test.yang @@ -3,6 +3,8 @@ module rpc-test { namespace "urn:opendaylight:mdsal:mapping:rpc:test"; prefix "rpc"; + revision "2015-04-08"; + rpc void-input-output-rpc { } -- 2.36.6