From: Jakub Morvay Date: Fri, 8 Feb 2019 18:38:15 +0000 (+0000) Subject: Merge "Allow no payload for RPCs with no input" X-Git-Tag: release/sodium~97 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=fabd70b6060cb56557018fe880f5fd7502a0f9ae;hp=-c;p=netconf.git Merge "Allow no payload for RPCs with no input" --- fabd70b6060cb56557018fe880f5fd7502a0f9ae diff --combined restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/restconf/impl/RestconfImpl.java index 0f947884f4,299247214e..60fcfff518 --- a/restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/restconf/impl/RestconfImpl.java +++ b/restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/restconf/impl/RestconfImpl.java @@@ -433,6 -433,11 +433,11 @@@ public final class RestconfImpl impleme @Override public NormalizedNodeContext invokeRpc(final String identifier, final NormalizedNodeContext payload, final UriInfo uriInfo) { + if (payload == null) { + // no payload specified, reroute this to no payload invokeRpc implementation + return invokeRpc(identifier, "", uriInfo); + } + final SchemaPath type = payload.getInstanceIdentifierContext().getSchemaNode().getPath(); final URI namespace = payload.getInstanceIdentifierContext().getSchemaNode().getQName().getNamespace(); final ListenableFuture response; @@@ -524,9 -529,9 +529,9 @@@ } if (!rpc.getInput().getChildNodes().isEmpty()) { - LOG.debug("RPC {} does not need input value.", rpc); - throw new RestconfDocumentedException("RPC " + rpc + " does not take any input value.", - ErrorType.RPC, ErrorTag.INVALID_VALUE); + LOG.debug("No input specified for RPC {} with an input section", rpc); + throw new RestconfDocumentedException("No input specified for RPC " + rpc + + " with an input section defined", ErrorType.RPC, ErrorTag.MISSING_ELEMENT); } final ListenableFuture response;