Do not expose YangInstanceIdentifier on output 74/100274/1
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 25 Mar 2022 22:31:16 +0000 (23:31 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 25 Mar 2022 23:05:32 +0000 (00:05 +0100)
Output codecs do not care about this information, do not fill it in.

JIRA: NETCONF-818
Change-Id: I6aeaa68d244958960ac455d34247816852220d5a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfImpl.java
restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfStreamsSubscriptionServiceImpl.java

index c27c40edde0083401c7567a0dbdc2185cf7a83e0..31065714263805b70a3634bc39d0d5cdcd0b0f68 100644 (file)
@@ -17,7 +17,6 @@ import org.opendaylight.restconf.nb.rfc8040.legacy.NormalizedNodePayload;
 import org.opendaylight.restconf.nb.rfc8040.rests.services.api.RestconfService;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.restconf.rev170126.Restconf;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
@@ -51,8 +50,7 @@ public class RestconfImpl implements RestconfService {
             (LeafSchemaNode) ((ContainerSchemaNode) grouping.getDataChildByName(Restconf.QNAME))
             .getDataChildByName(YANG_LIBRARY_VERSION);
 
-        return NormalizedNodePayload.of(new InstanceIdentifierContext(
-            YangInstanceIdentifier.of(YANG_LIBRARY_VERSION), schemaNode, null, context),
+        return NormalizedNodePayload.of(InstanceIdentifierContext.ofDataSchemaNode(context, schemaNode),
             ImmutableNodes.leafNode(YANG_LIBRARY_VERSION, IetfYangLibrary.REVISION.toString()));
     }
 }
index 0645e82794c1d4bc0a5c05587630a233e0af0929..60b48b982231016949fc51bdf11d89005ce83162 100644 (file)
@@ -25,7 +25,6 @@ import org.opendaylight.restconf.nb.rfc8040.rests.services.api.RestconfStreamsSu
 import org.opendaylight.restconf.nb.rfc8040.rests.utils.RestconfStreamsConstants;
 import org.opendaylight.restconf.nb.rfc8040.streams.Configuration;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
@@ -44,8 +43,6 @@ public class RestconfStreamsSubscriptionServiceImpl implements RestconfStreamsSu
         QName.create("subscribe:to:notification", "2016-10-28", "location").intern();
     private static final NodeIdentifier LOCATION_NODEID = NodeIdentifier.create(LOCATION_QNAME);
     private static final QName NOTIFI_QNAME = QName.create(LOCATION_QNAME, "notifi").intern();
-    private static final YangInstanceIdentifier LOCATION_PATH =
-        YangInstanceIdentifier.create(NodeIdentifier.create(NOTIFI_QNAME), LOCATION_NODEID);
 
     private final SubscribeToStreamUtil streamUtils;
     private final HandlersHolder handlersHolder;
@@ -95,14 +92,14 @@ public class RestconfStreamsSubscriptionServiceImpl implements RestconfStreamsSu
      * @return InstanceIdentifier of Location leaf.
      */
     private static InstanceIdentifierContext prepareIIDSubsStreamOutput(final SchemaContextHandler schemaHandler) {
-        final Optional<Module> module = schemaHandler.get().findModule(NOTIFI_QNAME.getModule());
+        final var context = schemaHandler.get();
+        final Optional<Module> module = context.findModule(NOTIFI_QNAME.getModule());
         checkState(module.isPresent());
         final DataSchemaNode notify = module.get().dataChildByName(NOTIFI_QNAME);
         checkState(notify instanceof ContainerSchemaNode, "Unexpected non-container %s", notify);
-        final DataSchemaNode location = ((ContainerSchemaNode) notify).dataChildByName(LOCATION_QNAME);
-        checkState(location != null, "Missing location");
+        final DataSchemaNode location = ((ContainerSchemaNode) notify).getDataChildByName(LOCATION_QNAME);
 
-        return new InstanceIdentifierContext(LOCATION_PATH, location, null, schemaHandler.get());
+        return InstanceIdentifierContext.ofDataSchemaNode(context, location);
     }
 
     /**