Fix rfc8040 rpcs not working 80/100080/3
authorTomas Cere <tomas.cere@pantheon.tech>
Fri, 11 Mar 2022 13:57:24 +0000 (14:57 +0100)
committerTomas Cere <tomas.cere@pantheon.tech>
Fri, 11 Mar 2022 14:55:11 +0000 (14:55 +0000)
Rfc8040 json writer needs an YIID and SchemaNodeIdentifier to
serialize a response after the removal of getPath().
Fix this by providing both when processing a response to an
rpc.

Change-Id: If1a369d7c5c10a7075deaee33076a7d46de0d42f
Signed-off-by: Tomas Cere <tomas.cere@pantheon.tech>
restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfInvokeOperationsServiceImpl.java

index 3d0e8aa9b8f2b394740ac3be97292817588259c5..b14062ee5717d4594c77215bad03cf58ee57569f 100644 (file)
@@ -42,12 +42,14 @@ import org.opendaylight.yangtools.yang.common.RpcError;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.common.YangConstants;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -115,8 +117,10 @@ public class RestconfInvokeOperationsServiceImpl implements RestconfInvokeOperat
                 if (resultData == null || ((ContainerNode) resultData).isEmpty()) {
                     ar.resume(new WebApplicationException(Status.NO_CONTENT));
                 } else {
-                    ar.resume(NormalizedNodePayload.of(new InstanceIdentifierContext<>(null, (RpcDefinition) schema,
-                        mountPoint, schemaContextRef), resultData));
+                    ar.resume(NormalizedNodePayload.of(new InstanceIdentifierContext<>(
+                            YangInstanceIdentifier.of(schema.getQName()), Absolute.of(schema.getQName()),
+                                    (RpcDefinition) schema, mountPoint, schemaContextRef),
+                            resultData));
                 }
             }