From 0ea51ee1384ddf0ad1ec453fa705fff6bf834f46 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 25 Mar 2022 23:31:16 +0100 Subject: [PATCH] Do not expose YangInstanceIdentifier on output Output codecs do not care about this information, do not fill it in. JIRA: NETCONF-818 Change-Id: I6aeaa68d244958960ac455d34247816852220d5a Signed-off-by: Robert Varga --- .../nb/rfc8040/rests/services/impl/RestconfImpl.java | 4 +--- .../impl/RestconfStreamsSubscriptionServiceImpl.java | 11 ++++------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfImpl.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfImpl.java index c27c40edde..3106571426 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfImpl.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfImpl.java @@ -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())); } } diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfStreamsSubscriptionServiceImpl.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfStreamsSubscriptionServiceImpl.java index 0645e82794..60b48b9822 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfStreamsSubscriptionServiceImpl.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfStreamsSubscriptionServiceImpl.java @@ -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 = schemaHandler.get().findModule(NOTIFI_QNAME.getModule()); + final var context = schemaHandler.get(); + final Optional 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); } /** -- 2.36.6