From 74daad30ff189afc076de333ca8c33f88e071d21 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Fri, 2 Feb 2024 16:55:01 +0100 Subject: [PATCH 01/70] Bump ODL versions to calcium - odlparent-13.0.11 - yangtools-13.0.2 - mdsal-13.0.1 - controller-9.0.2 - aaa-0.19.3 - netconf-7.0.4 - bgpcep-0.21.4 Signed-off-by: tobias.pobocik Signed-off-by: Ivan Hrasko --- lighty-core/dependency-versions/pom.xml | 30 +++++++++++++++++------ lighty-core/lighty-binding-parent/pom.xml | 4 +-- lighty-core/lighty-codecs-util/pom.xml | 14 +++++++++++ lighty-core/lighty-parent/pom.xml | 4 +-- 4 files changed, 40 insertions(+), 12 deletions(-) diff --git a/lighty-core/dependency-versions/pom.xml b/lighty-core/dependency-versions/pom.xml index 2c54e398ae..488b123902 100644 --- a/lighty-core/dependency-versions/pom.xml +++ b/lighty-core/dependency-versions/pom.xml @@ -25,7 +25,7 @@ org.opendaylight.odlparent odlparent - 13.0.10 + 13.0.11 pom import @@ -34,49 +34,49 @@ org.opendaylight.aaa aaa-artifacts - 0.18.4 + 0.19.3 pom import org.opendaylight.controller controller-artifacts - 8.0.4 + 9.0.2 pom import org.opendaylight.infrautils infrautils-artifacts - 6.0.5 + 6.0.6 pom import org.opendaylight.mdsal mdsal-artifacts - 12.0.4 + 13.0.1 pom import org.opendaylight.netconf netconf-artifacts - 6.0.6 + 7.0.4 pom import org.opendaylight.yangtools yangtools-artifacts - 11.0.5 + 13.0.2 pom import org.opendaylight.bgpcep bgpcep-artifacts - 0.20.6 + 0.21.4 pom import @@ -294,4 +294,18 @@ https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + opendaylight-snapshot + opendaylight-snapshot + https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ + + false + + + true + + + diff --git a/lighty-core/lighty-binding-parent/pom.xml b/lighty-core/lighty-binding-parent/pom.xml index e298c9fe7b..56481dac47 100644 --- a/lighty-core/lighty-binding-parent/pom.xml +++ b/lighty-core/lighty-binding-parent/pom.xml @@ -49,12 +49,12 @@ org.opendaylight.yangtools yang-maven-plugin - 11.0.5 + 13.0.2 org.opendaylight.mdsal mdsal-binding-java-api-generator - 12.0.4 + 13.0.1 diff --git a/lighty-core/lighty-codecs-util/pom.xml b/lighty-core/lighty-codecs-util/pom.xml index afca6b377c..e795328cd9 100644 --- a/lighty-core/lighty-codecs-util/pom.xml +++ b/lighty-core/lighty-codecs-util/pom.xml @@ -69,4 +69,18 @@ test + + + + opendaylight-snapshot + opendaylight-snapshot + https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ + + false + + + true + + + diff --git a/lighty-core/lighty-parent/pom.xml b/lighty-core/lighty-parent/pom.xml index ceaace74a6..edd20d0803 100644 --- a/lighty-core/lighty-parent/pom.xml +++ b/lighty-core/lighty-parent/pom.xml @@ -203,7 +203,7 @@ org.opendaylight.odlparent checkstyle - 13.0.10 + 13.0.11 @@ -220,7 +220,7 @@ org.opendaylight.odlparent spotbugs - 13.0.10 + 13.0.11 From 82766c7faccf1276f87a42e1f417b14eb882b259 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Fri, 2 Feb 2024 16:56:59 +0100 Subject: [PATCH 02/70] Rename singleton service components https://github.com/opendaylight/mdsal/commit/3ea5c72d92876e02e47f01827f3f8ac8d4fd09fb Signed-off-by: tobias.pobocik --- lighty-core/lighty-controller/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lighty-core/lighty-controller/pom.xml b/lighty-core/lighty-controller/pom.xml index 9f19ae5f16..a237709005 100644 --- a/lighty-core/lighty-controller/pom.xml +++ b/lighty-core/lighty-controller/pom.xml @@ -144,7 +144,7 @@ org.opendaylight.mdsal - mdsal-singleton-dom-impl + mdsal-singleton-impl From bf7523f9a521c2f2d1ba63c27904ba728f93f23e Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 9 Apr 2024 17:48:13 +0200 Subject: [PATCH 03/70] Do not use ClusterAdminService https://github.com/opendaylight/controller/commit/02b74456a89b728e2c32ade1523b509b0ff74f4d Signed-off-by: tobias.pobocik --- .../java/io/lighty/core/cluster/ClusteringHandler.java | 4 ++-- .../kubernetes/KubernetesClusteringHandlerImpl.java | 6 +++--- .../core/cluster/kubernetes/MemberRemovedListener.java | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/ClusteringHandler.java b/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/ClusteringHandler.java index 3a233d16c0..16aa57b8c1 100644 --- a/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/ClusteringHandler.java +++ b/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/ClusteringHandler.java @@ -10,13 +10,13 @@ import com.typesafe.config.Config; import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.ClusterAdminService; +import org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcService; public interface ClusteringHandler { void initClustering(); - void start(@NonNull ClusterAdminService clusterAdminRPCService); + void start(@NonNull ClusterAdminRpcService clusterAdminRPCService); Optional getModuleShardsConfig(); } diff --git a/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/KubernetesClusteringHandlerImpl.java b/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/KubernetesClusteringHandlerImpl.java index 69fe254a9b..b8cfa01c02 100644 --- a/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/KubernetesClusteringHandlerImpl.java +++ b/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/KubernetesClusteringHandlerImpl.java @@ -24,8 +24,8 @@ import java.util.concurrent.TimeUnit; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.ActorSystemProvider; +import org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcService; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.AddReplicasForAllShardsInputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.ClusterAdminService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -81,7 +81,7 @@ public void initClustering() { } @Override - public void start(@NonNull final ClusterAdminService clusterAdminRPCService) { + public void start(@NonNull final ClusterAdminRpcService clusterAdminRPCService) { this.actorSystemProvider.getActorSystem().actorOf( MemberRemovedListener.props(clusterAdminRPCService), "memberRemovedListener"); this.askForShards(clusterAdminRPCService); @@ -96,7 +96,7 @@ public Optional getModuleShardsConfig() { * The first member of the cluster (leader) will create his shards. Other joining members will query * the leader for snapshots of the shards. */ - private void askForShards(final ClusterAdminService clusterAdminRPCService) { + private void askForShards(final ClusterAdminRpcService clusterAdminRPCService) { if (!Cluster.get(actorSystemProvider.getActorSystem()).selfAddress() .equals(Cluster.get(actorSystemProvider.getActorSystem()).state().getLeader())) { LOG.info("RPC call - Asking for Shard Snapshots"); diff --git a/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/MemberRemovedListener.java b/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/MemberRemovedListener.java index f81550eb23..885ace52dc 100644 --- a/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/MemberRemovedListener.java +++ b/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/MemberRemovedListener.java @@ -16,7 +16,7 @@ import java.util.List; import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.ClusterAdminService; +import org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcService; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.RemoveAllShardReplicasInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.RemoveAllShardReplicasOutput; import org.opendaylight.yangtools.yang.common.RpcResult; @@ -28,15 +28,15 @@ public class MemberRemovedListener extends AbstractActor { private static final Logger LOG = LoggerFactory.getLogger(MemberRemovedListener.class); private final Cluster cluster; - private final ClusterAdminService clusterAdminRPCService; + private final ClusterAdminRpcService clusterAdminRPCService; - public MemberRemovedListener(final ClusterAdminService clusterAdminRPCService) { + public MemberRemovedListener(final ClusterAdminRpcService clusterAdminRPCService) { LOG.info("{} created", this.getClass()); this.cluster = Cluster.get(super.getContext().getSystem()); this.clusterAdminRPCService = clusterAdminRPCService; } - public static Props props(ClusterAdminService clusterAdminRPCService) { + public static Props props(ClusterAdminRpcService clusterAdminRPCService) { return Props.create(MemberRemovedListener.class, () -> new MemberRemovedListener(clusterAdminRPCService)); } From 50ef9600f1e7138ff5f0116057c335ab7f4bb8f8 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Mon, 12 Feb 2024 11:22:34 +0100 Subject: [PATCH 04/70] Remove usage of methods which are no longer visible https://github.com/opendaylight/controller/commit/02b74456a89b728e2c32ade1523b509b0ff74f4d Signed-off-by: tobias.pobocik --- .../KubernetesClusteringHandlerImpl.java | 12 -------- .../kubernetes/MemberRemovedListener.java | 29 ------------------- 2 files changed, 41 deletions(-) diff --git a/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/KubernetesClusteringHandlerImpl.java b/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/KubernetesClusteringHandlerImpl.java index b8cfa01c02..b2c90ba2cd 100644 --- a/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/KubernetesClusteringHandlerImpl.java +++ b/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/KubernetesClusteringHandlerImpl.java @@ -19,13 +19,11 @@ import java.util.List; import java.util.Optional; import java.util.concurrent.CountDownLatch; -import java.util.concurrent.ExecutionException; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.ActorSystemProvider; import org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.AddReplicasForAllShardsInputBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -100,16 +98,6 @@ private void askForShards(final ClusterAdminRpcService clusterAdminRPCService) { if (!Cluster.get(actorSystemProvider.getActorSystem()).selfAddress() .equals(Cluster.get(actorSystemProvider.getActorSystem()).state().getLeader())) { LOG.info("RPC call - Asking for Shard Snapshots"); - try { - final var rpcResult = clusterAdminRPCService.addReplicasForAllShards( - new AddReplicasForAllShardsInputBuilder().build()).get(); - LOG.debug("RPC call - Asking for Shard Snapshots result: {}", rpcResult.getResult()); - } catch (ExecutionException e) { - LOG.error("RPC call - Asking for Shard Snapshots failed", e); - } catch (InterruptedException e) { - LOG.error("RPC call - Asking for Shard Snapshots interrupted", e); - Thread.currentThread().interrupt(); - } } } diff --git a/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/MemberRemovedListener.java b/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/MemberRemovedListener.java index 885ace52dc..0bdac4c5a9 100644 --- a/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/MemberRemovedListener.java +++ b/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/MemberRemovedListener.java @@ -56,37 +56,8 @@ public Receive createReceive() { return receiveBuilder() .match(ClusterEvent.MemberRemoved.class, removedMember -> { LOG.info("Member detected as removed, processing: {}", removedMember.member().address()); - processRemovedMember(removedMember.member()); }) .build(); } - private void processRemovedMember(Member member) { - LOG.info("Removing shard replicas for member {}. May result in WARN (DOES_NOT_EXIST) messages if already" - + "removed by another member.", member.address()); - List removedMemberRoles = member.getRoles().stream() - .filter(role -> !role.contains("default")).collect(Collectors.toList()); - - try { - for (String removedMemberRole : removedMemberRoles) { - ListenableFuture> rpcResultListenableFuture = - clusterAdminRPCService.removeAllShardReplicas(new RemoveAllShardReplicasInputBuilder() - .setMemberName(removedMemberRole).build()); - RpcResult removeAllShardReplicasResult = rpcResultListenableFuture.get(); - if (removeAllShardReplicasResult.isSuccessful()) { - LOG.info("RPC RemoveAllShards for member {} executed successfully", removedMemberRole); - } else { - LOG.warn("RPC RemoveAllShards for member {} failed: {}", removedMemberRole, - removeAllShardReplicasResult.getErrors()); - } - } - LOG.info("Shard replicas removed for member {}", member.address()); - } catch (ExecutionException e) { - LOG.error("Unable to remove shard replicas for member {}", member.address(), e); - } catch (InterruptedException e) { - LOG.error("Interrupted while removing shard replicas for member {}", member.address(), e); - Thread.currentThread().interrupt(); - } - } - } From d722b5b423b3bb6be129b8941a25bb2c4ad1b03f Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 9 Apr 2024 18:11:57 +0200 Subject: [PATCH 05/70] Clean up XmlElement methods https://github.com/opendaylight/netconf/commit/7702c45bbff12f5b6c21c710a1106ee6cf2991a9 Signed-off-by: tobias.pobocik --- .../java/io/lighty/codecs/util/ConverterUtils.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lighty-core/lighty-codecs-util/src/main/java/io/lighty/codecs/util/ConverterUtils.java b/lighty-core/lighty-codecs-util/src/main/java/io/lighty/codecs/util/ConverterUtils.java index b31d66faad..a03d200a8b 100644 --- a/lighty-core/lighty-codecs-util/src/main/java/io/lighty/codecs/util/ConverterUtils.java +++ b/lighty-core/lighty-codecs-util/src/main/java/io/lighty/codecs/util/ConverterUtils.java @@ -16,6 +16,7 @@ import java.util.stream.Collectors; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.MissingNameSpaceException; import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.yangtools.yang.common.QName; @@ -90,15 +91,20 @@ public static Optional loadNotification( * @return {@link QName} for input data or empty. */ public static Optional getRpcQName(final XmlElement xmlElement) { - Optional optionalNamespace = xmlElement.findNamespaceAttribute(); + String optionalNamespace = null; + try { + optionalNamespace = xmlElement.getNamespace(); + } catch (MissingNameSpaceException e) { + throw new RuntimeException(e); + } String name = xmlElement.getName(); if (Strings.isNullOrEmpty(name)) { return Optional.empty(); } String revision = null; String namespace; - if (optionalNamespace.isPresent() && !Strings.isNullOrEmpty(optionalNamespace.get())) { - String[] split = optionalNamespace.get().split("\\?"); + if (optionalNamespace != null) { + String[] split = optionalNamespace.split("\\?"); if (split.length > 1 && split[1].contains("revision=")) { revision = split[1].replace("revision=", ""); From b60b1e4ae35f6355c9e0cdf88c391bebb56f972d Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 9 Apr 2024 18:17:04 +0200 Subject: [PATCH 06/70] NodeBuilders Signed-off-by: tobias.pobocik --- .../lighty/codecs/util/AbstractCodecTest.java | 40 ++++++++-------- .../codecs/util/XmlNodeConverterTest.java | 4 +- .../LightyControllerNotificationTest.java | 4 +- .../gnmi/commons/util/DataConverter.java | 5 +- .../codecs/testcases/CodecTestCasesBase.java | 48 +++++++++---------- .../transactions/ReadWriteTxTest.java | 4 +- .../transactions/WriteTransactionTest.java | 32 ++++++------- .../test/gnmi/GnmiWithoutRestconfTest.java | 34 +++++++------ .../impl/NetconfNmdaBaseServiceImpl.java | 11 ++--- .../netconf/tests/NetconfBaseServiceTest.java | 4 +- .../community/impl/tests/YangPatchTest.java | 3 +- 11 files changed, 91 insertions(+), 98 deletions(-) diff --git a/lighty-core/lighty-codecs-util/src/test/java/io/lighty/codecs/util/AbstractCodecTest.java b/lighty-core/lighty-codecs-util/src/test/java/io/lighty/codecs/util/AbstractCodecTest.java index 3be02e8e9c..63cff6df04 100644 --- a/lighty-core/lighty-codecs-util/src/test/java/io/lighty/codecs/util/AbstractCodecTest.java +++ b/lighty-core/lighty-codecs-util/src/test/java/io/lighty/codecs/util/AbstractCodecTest.java @@ -40,10 +40,10 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes; +import org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableContainerNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableMapEntryNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableSystemMapNodeBuilder; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.parser.api.YangParserException; import org.opendaylight.yangtools.yang.parser.impl.DefaultYangParserFactory; @@ -124,61 +124,61 @@ private static List loadModuleInfos() { } private static NormalizedNode topLevelContainerNode() { - return ImmutableContainerNodeBuilder.create().withNodeIdentifier(NodeIdentifier.create(Toaster.QNAME)) + return new ImmutableContainerNodeBuilder().withNodeIdentifier(NodeIdentifier.create(Toaster.QNAME)) .withValue(List.of( - ImmutableLeafNodeBuilder.createNode( + ImmutableNodes.leafNode( NodeIdentifier.create(qOfToasterModel("toasterManufacturer")), "manufacturer"), - ImmutableLeafNodeBuilder.createNode( + ImmutableNodes.leafNode( NodeIdentifier.create(qOfToasterModel("toasterStatus")), ToasterStatus.Up.getName()), - ImmutableLeafNodeBuilder.createNode( + ImmutableNodes.leafNode( NodeIdentifier.create(qOfToasterModel("darknessFactor")), 50))) .build(); } private static NormalizedNode rpcLeafInputNode() { - return ImmutableContainerNodeBuilder.create() + return new ImmutableContainerNodeBuilder() .withNodeIdentifier(NodeIdentifier.create(SimpleInputOutputRpcInput.QNAME)) - .withChild(ImmutableLeafNodeBuilder.createNode( + .withChild(ImmutableNodes.leafNode( NodeIdentifier.create(qOfTestModel("input-obj")), "testValue")) .build(); } private static NormalizedNode rpcLeafOutputNode() { - return ImmutableContainerNodeBuilder.create() + return new ImmutableContainerNodeBuilder() .withNodeIdentifier(NodeIdentifier.create(SimpleInputOutputRpcOutput.QNAME)) - .withChild(ImmutableLeafNodeBuilder.createNode( + .withChild(ImmutableNodes.leafNode( NodeIdentifier.create(qOfTestModel("output-obj")), "testValue")) .build(); } private static NormalizedNode notificationContainer() { - return ImmutableContainerNodeBuilder.create() + return new ImmutableContainerNodeBuilder() .withNodeIdentifier(NodeIdentifier.create(ToasterRestocked.QNAME)) - .withChild(ImmutableLeafNodeBuilder.createNode( + .withChild(ImmutableNodes.leafNode( NodeIdentifier.create(qOfToasterModel("amountOfBread")), 1)).build(); } private static NormalizedNode listEntryNode() { final QName key = qOfTestModel("name"); - return ImmutableMapEntryNodeBuilder.create() + return new ImmutableMapEntryNodeBuilder() .withNodeIdentifier(NodeIdentifierWithPredicates.of( SampleList.QNAME, key, "nameValue")) .withValue(List.of( - ImmutableLeafNodeBuilder.createNode(NodeIdentifier.create(key), "nameValue"), - ImmutableLeafNodeBuilder.createNode(NodeIdentifier + ImmutableNodes.leafNode(NodeIdentifier.create(key), "nameValue"), + ImmutableNodes.leafNode(NodeIdentifier .create(qOfTestModel("value")), 1))) .build(); } private static NormalizedNode listNode() { - return ImmutableMapNodeBuilder.create().withNodeIdentifier(new NodeIdentifier(SampleList.QNAME)) + return new ImmutableSystemMapNodeBuilder().withNodeIdentifier(new NodeIdentifier(SampleList.QNAME)) .withChild((MapEntryNode) listEntryNode()).build(); } private static NormalizedNode innerContainerNode() { - return ImmutableContainerNodeBuilder.create().withNodeIdentifier(NodeIdentifier.create(SampleContainer.QNAME)) + return new ImmutableContainerNodeBuilder().withNodeIdentifier(NodeIdentifier.create(SampleContainer.QNAME)) .withValue(List.of( - ImmutableLeafNodeBuilder.createNode( + org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes.leafNode( NodeIdentifier.create(qOfTestModel("name")), "name"))) .build(); } diff --git a/lighty-core/lighty-codecs-util/src/test/java/io/lighty/codecs/util/XmlNodeConverterTest.java b/lighty-core/lighty-codecs-util/src/test/java/io/lighty/codecs/util/XmlNodeConverterTest.java index 72008834bd..f6879ef619 100644 --- a/lighty-core/lighty-codecs-util/src/test/java/io/lighty/codecs/util/XmlNodeConverterTest.java +++ b/lighty-core/lighty-codecs-util/src/test/java/io/lighty/codecs/util/XmlNodeConverterTest.java @@ -16,13 +16,13 @@ import org.junit.Ignore; import org.junit.Test; import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120.Toaster; -import org.opendaylight.yang.gen.v1.http.pantheon.tech.ns.test.models.rev180119.$YangModuleInfoImpl; import org.opendaylight.yang.gen.v1.http.pantheon.tech.ns.test.models.rev180119.ContainerIoRpcInput; import org.opendaylight.yang.gen.v1.http.pantheon.tech.ns.test.models.rev180119.SampleList; import org.opendaylight.yang.gen.v1.http.pantheon.tech.ns.test.models.rev180119.SimpleInputOutputRpcInput; import org.opendaylight.yang.gen.v1.http.pantheon.tech.ns.test.models.rev180119.SimpleInputOutputRpcOutput; import org.opendaylight.yang.gen.v1.http.pantheon.tech.ns.test.models.rev180119.TopLevelContainer; import org.opendaylight.yang.gen.v1.http.pantheon.tech.ns.test.models.rev180119.container.group.SampleContainer; +import org.opendaylight.yang.svc.v1.http.pantheon.tech.ns.test.models.rev180119.YangModuleInfoImpl; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; import org.opendaylight.yangtools.yang.parser.api.YangParserException; @@ -127,7 +127,7 @@ public void testDeserializeInnerContainer() throws DeserializationException { @Test public void testDeserializeInnerLeaf() throws DeserializationException { final NormalizedNode result = bindingSerializer.deserialize(Absolute.of(TopLevelContainer.QNAME, - SampleContainer.QNAME, $YangModuleInfoImpl.qnameOf("name")), + SampleContainer.QNAME, YangModuleInfoImpl.qnameOf("name")), new StringReader(loadResourceAsString("inner-leaf.xml"))); assertNotNull(result); } diff --git a/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/impl/tests/LightyControllerNotificationTest.java b/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/impl/tests/LightyControllerNotificationTest.java index 8e4a2c4144..0c073533d8 100644 --- a/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/impl/tests/LightyControllerNotificationTest.java +++ b/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/impl/tests/LightyControllerNotificationTest.java @@ -15,7 +15,7 @@ import org.opendaylight.mdsal.dom.api.DOMNotificationService; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableContainerNodeBuilder; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; import org.testng.Assert; import org.testng.annotations.Test; @@ -36,7 +36,7 @@ public Absolute getType() { @Override public ContainerNode getBody() { - return ImmutableContainerNodeBuilder.create().build(); + return new ImmutableContainerNodeBuilder().build(); } }; final int[] listenerMethodsCalled = { 0 }; diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/main/java/io/lighty/modules/gnmi/commons/util/DataConverter.java b/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/main/java/io/lighty/modules/gnmi/commons/util/DataConverter.java index 2f16de61c0..d5e1184fcf 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/main/java/io/lighty/modules/gnmi/commons/util/DataConverter.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/main/java/io/lighty/modules/gnmi/commons/util/DataConverter.java @@ -33,8 +33,8 @@ import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactorySupplier; import org.opendaylight.yangtools.yang.data.codec.gson.JSONNormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream; +import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.Module; @@ -121,8 +121,7 @@ private static NormalizedNode fromJson(final String inputJson, final Inference i Write result into container builder with identifier (netconf:base)data. Makes possible to write multiple top level elements. */ - final DataContainerNodeBuilder resultBuilder = ImmutableContainerNodeBuilder - .create() + final DataContainerNodeBuilder resultBuilder = Builders.containerBuilder() .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier.create(SchemaContext.NAME)); final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(resultBuilder); diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/test/java/io/lighty/gnmi/southbound/mountpoint/codecs/testcases/CodecTestCasesBase.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/test/java/io/lighty/gnmi/southbound/mountpoint/codecs/testcases/CodecTestCasesBase.java index d627bcca6b..dfd4bfbfc8 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/test/java/io/lighty/gnmi/southbound/mountpoint/codecs/testcases/CodecTestCasesBase.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/test/java/io/lighty/gnmi/southbound/mountpoint/codecs/testcases/CodecTestCasesBase.java @@ -27,10 +27,10 @@ import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes; +import org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableContainerNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableMapEntryNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableSystemMapNodeBuilder; import org.opendaylight.yangtools.yang.model.api.SchemaContext; /** @@ -91,7 +91,7 @@ protected ImmutablePair listEntryCase(fi .node(getMapEntryIdentifierOfNodeInModule(OC_INTERFACES_ID, "interface", "name", "eth3")); return ImmutablePair.of(identifier, wrapInMapNode - ? ImmutableMapNodeBuilder.create() + ? new ImmutableSystemMapNodeBuilder() .withNodeIdentifier(getNodeIdentifierOfNodeInModule(OC_INTERFACES_ID, "interface")) .withValue(List.of(interfaceEth3Node())).build() : interfaceEth3Node()); @@ -237,7 +237,7 @@ public QNameModule getQNameOfModule(final String moduleName) { } private NormalizedNode makeRoot() { - final NormalizedNode normalizedNode = ImmutableContainerNodeBuilder.create() + final NormalizedNode normalizedNode = new ImmutableContainerNodeBuilder() .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier.create(SchemaContext.NAME)) .withChild((DataContainerChild) makeInterfaces()) .withChild((DataContainerChild) makeComponents()).build(); @@ -245,15 +245,15 @@ private NormalizedNode makeRoot() { } private NormalizedNode makeComponents() { - return ImmutableContainerNodeBuilder.create() + return new ImmutableContainerNodeBuilder() .withNodeIdentifier(getNodeIdentifierOfNodeInModule(OC_PLATFORM_ID, "components")) - .withChild(ImmutableMapNodeBuilder.create() + .withChild(new ImmutableSystemMapNodeBuilder() .withNodeIdentifier(getNodeIdentifierOfNodeInModule(OC_PLATFORM_ID, "component")) - .withChild(ImmutableMapEntryNodeBuilder.create() + .withChild(new ImmutableMapEntryNodeBuilder() .withNodeIdentifier(getMapEntryIdentifierOfNodeInModule(OC_PLATFORM_ID, "component", "name", "admin")) .withChild(makeLeafNode(OC_PLATFORM_ID,"name","admin")) - .withChild(ImmutableContainerNodeBuilder.create() + .withChild(new ImmutableContainerNodeBuilder() .withNodeIdentifier(getNodeIdentifierOfNodeInModule(OC_PLATFORM_ID, "config")) .withChild(makeLeafNode(OC_PLATFORM_ID,"name","admin")) .build()) @@ -263,27 +263,27 @@ private NormalizedNode makeComponents() { } public NormalizedNode makeInterfaces() { - return ImmutableContainerNodeBuilder.create() + return new ImmutableContainerNodeBuilder() .withNodeIdentifier(getNodeIdentifierOfNodeInModule(OC_INTERFACES_ID, "interfaces")) - .withChild(ImmutableMapNodeBuilder.create() + .withChild(new ImmutableSystemMapNodeBuilder() .withNodeIdentifier(getNodeIdentifierOfNodeInModule(OC_INTERFACES_ID, "interface")) .withChild(interfaceEth3Node()) - .withChild(ImmutableMapEntryNodeBuilder.create() + .withChild(new ImmutableMapEntryNodeBuilder() .withNodeIdentifier(getMapEntryIdentifierOfNodeInModule(OC_INTERFACES_ID, "interface", "name", "br0")) .withChild(makeLeafNode(OC_INTERFACES_ID, "name", "br0")) .withChild(interfaceConfigNode()) - .withChild(ImmutableContainerNodeBuilder.create() + .withChild(new ImmutableContainerNodeBuilder() .withNodeIdentifier( getNodeIdentifierOfNodeInModule(OC_IF_ETHERNET_ID, "ethernet")) .withChild(ethConfigNode()) .withChild(switchedVlanNode()) .build()) - .withChild(ImmutableContainerNodeBuilder.create() + .withChild(new ImmutableContainerNodeBuilder() .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier.create( QName.create(getQNameOfModule(OC_IF_AGGREGATE_ID), "aggregation"))) - .withChild(ImmutableContainerNodeBuilder.create() + .withChild(new ImmutableContainerNodeBuilder() .withNodeIdentifier(getNodeIdentifierOfNodeInModule( OC_IF_AGGREGATE_ID, "config")) .withValue(List.of( @@ -299,7 +299,7 @@ public NormalizedNode makeInterfaces() { } private ContainerNode ethConfigNode() { - return ImmutableContainerNodeBuilder.create() + return new ImmutableContainerNodeBuilder() .withNodeIdentifier( getNodeIdentifierOfNodeInModule(OC_IF_ETHERNET_ID, "config")) .withValue(List.of( @@ -313,7 +313,7 @@ private ContainerNode ethConfigNode() { } public MapEntryNode interfaceEth3Node() { - return ImmutableMapEntryNodeBuilder.create() + return new ImmutableMapEntryNodeBuilder() .withNodeIdentifier( getMapEntryIdentifierOfNodeInModule(OC_INTERFACES_ID, "interface", "name", "eth3")) .withChild(interfaceConfigNode()) @@ -322,7 +322,7 @@ public MapEntryNode interfaceEth3Node() { } public ContainerNode interfaceConfigNode() { - return ImmutableContainerNodeBuilder.create() + return new ImmutableContainerNodeBuilder() .withNodeIdentifier(getNodeIdentifierOfNodeInModule(OC_INTERFACES_ID, "config")) .withValue(List.of( makeLeafNode(OC_INTERFACES_ID, "name", "admin"), @@ -334,9 +334,9 @@ public ContainerNode interfaceConfigNode() { } public ContainerNode switchedVlanNode() { - return ImmutableContainerNodeBuilder.create() + return new ImmutableContainerNodeBuilder() .withNodeIdentifier(getNodeIdentifierOfNodeInModule(OC_VLAN_ID, "switched-vlan")) - .withChild(ImmutableContainerNodeBuilder.create() + .withChild(new ImmutableContainerNodeBuilder() .withNodeIdentifier(getNodeIdentifierOfNodeInModule(OC_VLAN_ID, "config")) .withValue(List.of( makeLeafNode(OC_VLAN_ID, "native-vlan", Uint16.valueOf(37)), @@ -347,16 +347,14 @@ public ContainerNode switchedVlanNode() { } public LeafNode makeLeafNode(final String moduleName, final String nodeName, final Object value) { - return ImmutableLeafNodeBuilder - .createNode(getNodeIdentifierOfNodeInModule(moduleName, nodeName), value); + return ImmutableNodes.leafNode(getNodeIdentifierOfNodeInModule(moduleName, nodeName), value); } public LeafNode makeLeafNode(final String moduleName, final String nodeName, final String valueModule, final String value) { - return ImmutableLeafNodeBuilder - .createNode(getNodeIdentifierOfNodeInModule(moduleName, nodeName), + return ImmutableNodes.leafNode(getNodeIdentifierOfNodeInModule(moduleName, nodeName), QName.create(getQNameOfModule(valueModule), value)); } diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/test/java/io/lighty/gnmi/southbound/mountpoint/transactions/ReadWriteTxTest.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/test/java/io/lighty/gnmi/southbound/mountpoint/transactions/ReadWriteTxTest.java index d04de0cca7..28365891e6 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/test/java/io/lighty/gnmi/southbound/mountpoint/transactions/ReadWriteTxTest.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/test/java/io/lighty/gnmi/southbound/mountpoint/transactions/ReadWriteTxTest.java @@ -20,7 +20,7 @@ import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes; public class ReadWriteTxTest { private ReadWriteTx readWriteTx; @@ -38,7 +38,7 @@ public void setUp() { yiid = YangInstanceIdentifier.builder() .node(QName.create("test-namespace", "2021-05-03", "test-node")) .build(); - node = ImmutableLeafNodeBuilder.createNode( + node = ImmutableNodes.leafNode( YangInstanceIdentifier.NodeIdentifier.create(QName.create("test-namespace", "2021-05-03", "test-node")), 123); diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/test/java/io/lighty/gnmi/southbound/mountpoint/transactions/WriteTransactionTest.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/test/java/io/lighty/gnmi/southbound/mountpoint/transactions/WriteTransactionTest.java index edd00c5c2b..1643607bb6 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/test/java/io/lighty/gnmi/southbound/mountpoint/transactions/WriteTransactionTest.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/test/java/io/lighty/gnmi/southbound/mountpoint/transactions/WriteTransactionTest.java @@ -63,10 +63,10 @@ import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.MapNode; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes; +import org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableContainerNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableMapEntryNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableSystemMapNodeBuilder; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.skyscreamer.jsonassert.JSONAssert; @@ -208,11 +208,11 @@ public void removeEmptyPrepareReqFromUpdateListTest() throws ExecutionException, private static ContainerNode getTestDataContainerNode() { - final LeafNode configName = ImmutableLeafNodeBuilder - .createNode(YangInstanceIdentifier.NodeIdentifier.create(CONFIG_NAME_QN), NAME_KEY_VALUE); - final LeafNode loopbackNode = ImmutableLeafNodeBuilder - .createNode(YangInstanceIdentifier.NodeIdentifier.create(CONFIG_LOOPBACK_QN), true); - return ImmutableContainerNodeBuilder.create() + final LeafNode configName = ImmutableNodes.leafNode( + YangInstanceIdentifier.NodeIdentifier.create(CONFIG_NAME_QN), NAME_KEY_VALUE); + final LeafNode loopbackNode = ImmutableNodes.leafNode( + YangInstanceIdentifier.NodeIdentifier.create(CONFIG_LOOPBACK_QN), true); + return new ImmutableContainerNodeBuilder() .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier.create(CONFIG_CONTAINER_QN)) .withChild(configName) .withChild(loopbackNode) @@ -220,28 +220,28 @@ private static ContainerNode getTestDataContainerNode() { } private static ContainerNode getPrepareListNode() { - final LeafNode node = ImmutableLeafNodeBuilder - .createNode(YangInstanceIdentifier.NodeIdentifier.create(NAME_QN), NAME_KEY_VALUE); - final MapEntryNode name = ImmutableMapEntryNodeBuilder.create() + final LeafNode node = ImmutableNodes.leafNode( + YangInstanceIdentifier.NodeIdentifier.create(NAME_QN), NAME_KEY_VALUE); + final MapEntryNode name = new ImmutableMapEntryNodeBuilder() .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifierWithPredicates .of(INTERFACE_LIST_QN, NAME_QN, NAME_KEY_VALUE)) .withChild(node) .build(); - final MapNode mapNode = ImmutableMapNodeBuilder.create() + final MapNode mapNode = new ImmutableSystemMapNodeBuilder() .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier.create(INTERFACE_LIST_QN)) .withChild(name) .build(); - return ImmutableContainerNodeBuilder.create() + return new ImmutableContainerNodeBuilder() .withChild(mapNode) .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier.create(INTERFACES_CONTAINER_QN)) .build(); } private static ContainerNode getEmptyPrepareListNode() { - final MapNode build = ImmutableMapNodeBuilder.create() + final MapNode build = new ImmutableSystemMapNodeBuilder() .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier.create(INTERFACE_LIST_QN)) .build(); - return ImmutableContainerNodeBuilder.create() + return new ImmutableContainerNodeBuilder() .withChild(build) .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier.create(INTERFACES_CONTAINER_QN)) .build(); diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/gnmi/GnmiWithoutRestconfTest.java b/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/gnmi/GnmiWithoutRestconfTest.java index 3a81b3ed0a..d957629927 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/gnmi/GnmiWithoutRestconfTest.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/gnmi/GnmiWithoutRestconfTest.java @@ -102,10 +102,10 @@ import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetEntryNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableContainerNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableLeafNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableLeafSetEntryNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableSystemLeafSetNodeBuilder; public class GnmiWithoutRestconfTest { private static final String INITIAL_JSON_DATA_PATH = "src/test/resources/json/initData"; @@ -338,7 +338,7 @@ public void testUpdatingYangModels() throws ExecutionException, InterruptedExcep private ContainerNode getYangModelInput(final String yangName, final String yangBody, final String yangVersion) { - return ImmutableContainerNodeBuilder.create() + return new ImmutableContainerNodeBuilder() .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(UPLOAD_YANG_INPUT_QN)) .withChild(new ImmutableLeafNodeBuilder() .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(YANG_NAME_QN)) @@ -357,7 +357,7 @@ private ContainerNode getYangModelInput(final String yangName, final String yang private ContainerNode getCertificateInput(final String certId, final String ca, final String clientCert, final String certKey, final String passphrase) { - return ImmutableContainerNodeBuilder.create() + return new ImmutableContainerNodeBuilder() .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(ADD_KEYSTORE_INPUT_QN)) .withChild(new ImmutableLeafNodeBuilder() .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(KEYSTORE_ID_QN)) @@ -460,39 +460,37 @@ private static Node createNode(final String nameOfNode, final String address, fi } private static ContainerNode getTestDataContainerNode() { - final LeafSetEntryNode firstEntryValue = ImmutableLeafSetEntryNodeBuilder.create() + final var firstEntryValue = new ImmutableLeafSetEntryNodeBuilder() .withValue(FIRST_VALUE) .withNodeIdentifier(new YangInstanceIdentifier.NodeWithValue(TEST_LEAF_LIST_QN, FIRST_VALUE)) .build(); - final LeafSetEntryNode secondEntryValues = ImmutableLeafSetEntryNodeBuilder.create() + final var secondEntryValues = new ImmutableLeafSetEntryNodeBuilder() .withValue(SECOND_VALUE) .withNodeIdentifier(new YangInstanceIdentifier.NodeWithValue(TEST_LEAF_LIST_QN, SECOND_VALUE)) .build(); - final LeafSetNode leafSetNode = ImmutableLeafSetNodeBuilder - .create() + final var leafSetNode = new ImmutableSystemLeafSetNodeBuilder() .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier.create(TEST_LEAF_LIST_QN)) - .withChild(firstEntryValue) - .withChild(secondEntryValues) + .withChild((LeafSetEntryNode) firstEntryValue) + .withChild((LeafSetEntryNode) secondEntryValues) .build(); - return ImmutableContainerNodeBuilder.create() + return new ImmutableContainerNodeBuilder() .withChild(leafSetNode) .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier.create(TEST_DATA_CONTAINER_QN)) .build(); } private static ContainerNode getUpdateTestDataContainerNode() { - final LeafSetEntryNode thirdEntryValue = ImmutableLeafSetEntryNodeBuilder.create() + final var thirdEntryValue = new ImmutableLeafSetEntryNodeBuilder() .withValue(THIRD_VALUE) .withNodeIdentifier(new YangInstanceIdentifier.NodeWithValue(TEST_LEAF_LIST_QN, THIRD_VALUE)) .build(); - final LeafSetNode leafSetNode = ImmutableLeafSetNodeBuilder - .create() + final LeafSetNode leafSetNode = new ImmutableSystemLeafSetNodeBuilder() .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier.create(TEST_LEAF_LIST_QN)) - .withChild(thirdEntryValue) + .withChild((LeafSetEntryNode) thirdEntryValue) .build(); - return ImmutableContainerNodeBuilder.create() + return new ImmutableContainerNodeBuilder() .withChild(leafSetNode) .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier.create(TEST_DATA_CONTAINER_QN)) .build(); diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfNmdaBaseServiceImpl.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfNmdaBaseServiceImpl.java index 4b84cdf73b..a8336bdb53 100755 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfNmdaBaseServiceImpl.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfNmdaBaseServiceImpl.java @@ -50,7 +50,7 @@ import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedMetadata; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.impl.schema.NormalizationResultHolder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableAnydataNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableAnydataNodeBuilder; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack; @@ -145,8 +145,7 @@ public ListenableFuture editData(QName targetDatastore, .orElse(null); final SchemaInferenceStack stack = SchemaInferenceStack.of(getEffectiveModelContext()); stack.enterSchemaTree(editNNContent.getIdentifier().getNodeType()); - final AnydataNode editContent = ImmutableAnydataNodeBuilder - .create(NormalizedAnydata.class) + final AnydataNode editContent = new ImmutableAnydataNodeBuilder<>(NormalizedAnydata.class) .withNodeIdentifier(NETCONF_EDIT_DATA_CONFIG_NODEID) .withValue(NormalizedAnydata.of(stack.toInference(), editNNContent, metadata)) .build(); @@ -187,7 +186,7 @@ private DataContainerChild getMaxDepthNode(Integer maxDepth) { private DataContainerChild getOriginFilterNode(Set originFilter) { List> leafSetEntryNodes = new ArrayList<>(); originFilter.forEach(originFilterEntry -> { - leafSetEntryNodes.add(Builders.leafSetEntryBuilder() + leafSetEntryNodes.add((LeafSetEntryNode) Builders.leafSetEntryBuilder() .withNodeIdentifier(new NodeWithValue(NETCONF_ORIGIN_FILTER_NODEID.getNodeType(), originFilterEntry)) .withValue(originFilterEntry) @@ -200,7 +199,7 @@ private DataContainerChild getOriginFilterNode(Set originFilter) { private DataContainerChild getNegatedOriginFilterNode(Set negatedOriginFilter) { List> leafSetEntryNodes = new ArrayList<>(); negatedOriginFilter.forEach(negatedOriginFilterEntry -> { - leafSetEntryNodes.add(Builders.leafSetEntryBuilder() + leafSetEntryNodes.add((LeafSetEntryNode) Builders.leafSetEntryBuilder() .withNodeIdentifier(new NodeWithValue(NETCONF_NEGATED_ORIGIN_FILTER_NODEID.getNodeType(), negatedOriginFilterEntry)) .withValue(negatedOriginFilterEntry) @@ -267,7 +266,7 @@ private ChoiceNode getFilterSpecChoiceNode(final YangInstanceIdentifier filterYI final SchemaInferenceStack stack = SchemaInferenceStack.of(getEffectiveModelContext()); stack.enterSchemaTree(filterNN.getIdentifier().getNodeType()); final AnydataNode subtreeFilter = - ImmutableAnydataNodeBuilder.create(NormalizedAnydata.class) + (AnydataNode) new ImmutableAnydataNodeBuilder(NormalizedAnydata.class) .withNodeIdentifier(NETCONF_FILTER_NODEID) .withValue(NormalizedAnydata.of(stack.toInference(), filterNN)) .build(); diff --git a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceTest.java b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceTest.java index 3aea62c76a..07261c2e11 100755 --- a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceTest.java +++ b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceTest.java @@ -37,7 +37,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableLeafNodeBuilder; import org.testng.annotations.Test; import org.w3c.dom.Element; @@ -145,7 +145,7 @@ public void testBaseServiceEditConfigMock() { MapEntryNode schema = Builders.mapEntryBuilder() .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifierWithPredicates .of(Schema.QNAME, QName.create(Schema.QNAME, "identifier"), "listkeyvalue1")) - .withChild(ImmutableLeafNodeBuilder.create() + .withChild((DataContainerChild) new ImmutableLeafNodeBuilder() .withNodeIdentifier(NodeIdentifier.create(QName.create(Schema.QNAME, "version"))) .withValue(editVersionValue) .build()) diff --git a/lighty-modules/lighty-restconf-nb-community/src/test/java/io/lighty/modules/northbound/restconf/community/impl/tests/YangPatchTest.java b/lighty-modules/lighty-restconf-nb-community/src/test/java/io/lighty/modules/northbound/restconf/community/impl/tests/YangPatchTest.java index 224a18b739..5366b47f31 100644 --- a/lighty-modules/lighty-restconf-nb-community/src/test/java/io/lighty/modules/northbound/restconf/community/impl/tests/YangPatchTest.java +++ b/lighty-modules/lighty-restconf-nb-community/src/test/java/io/lighty/modules/northbound/restconf/community/impl/tests/YangPatchTest.java @@ -34,7 +34,6 @@ import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.SystemMapNode; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapNodeBuilder; import org.testng.annotations.Test; public class YangPatchTest extends CommunityRestConfTestBase { @@ -99,7 +98,7 @@ private static ContainerNode getContainerWithData() { .withNodeIdentifier(NodeIdentifierWithPredicates.of(EXAMPLE_LIST)) .withValue(List.of(nameLeafA, buildLeaf1, buildLeaf2)) .build(); - final SystemMapNode myList = ImmutableMapNodeBuilder.create() + final SystemMapNode myList = Builders.mapBuilder() .withNodeIdentifier(NodeIdentifier.create(EXAMPLE_LIST)) .withValue(Collections.singletonList(mapEntryNode)) .build(); From b4c79c598ce091f186ce2aab8ba316baf97f8313 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Thu, 15 Feb 2024 13:12:21 +0100 Subject: [PATCH 07/70] Changed $Yang* generation package and name https://github.com/opendaylight/mdsal/commit/dac0a45aaf33baaa6c2194e376ffee1fe385ef62 Signed-off-by: tobias.pobocik --- .../lighty/codecs/util/AbstractCodecTest.java | 4 +- .../models/tests/YangModelUtilsTests.java | 12 +- .../impl/util/ControllerConfigUtils.java | 48 +++--- .../util/FileToDatastoreUtilsTest.java | 6 +- .../examples/controllers/actions/Main.java | 2 +- .../config/LightyConfiguration.java | 4 +- lighty-models/README.md | 2 +- .../io/lighty/aaa/util/AAAConfigUtils.java | 12 +- .../modules/bgp/config/BgpConfigUtils.java | 148 +++++++++--------- .../lightymodule/util/GnmiConfigUtils.java | 16 +- .../netconf/impl/util/NetconfConfigUtils.java | 32 ++-- .../tests/NetconfBaseServiceBaseTest.java | 32 ++-- .../netconf/tests/NetconfBaseServiceTest.java | 4 +- .../impl/util/RestConfConfigUtils.java | 32 ++-- 14 files changed, 177 insertions(+), 177 deletions(-) diff --git a/lighty-core/lighty-codecs-util/src/test/java/io/lighty/codecs/util/AbstractCodecTest.java b/lighty-core/lighty-codecs-util/src/test/java/io/lighty/codecs/util/AbstractCodecTest.java index 63cff6df04..5f43305132 100644 --- a/lighty-core/lighty-codecs-util/src/test/java/io/lighty/codecs/util/AbstractCodecTest.java +++ b/lighty-core/lighty-codecs-util/src/test/java/io/lighty/codecs/util/AbstractCodecTest.java @@ -184,12 +184,12 @@ private static NormalizedNode innerContainerNode() { } protected static QName qOfTestModel(final String localName) { - return org.opendaylight.yang.gen.v1.http.pantheon.tech.ns.test.models.rev180119.$YangModuleInfoImpl + return org.opendaylight.yang.svc.v1.http.pantheon.tech.ns.test.models.rev180119.YangModuleInfoImpl .qnameOf(localName); } protected static QName qOfToasterModel(final String localName) { - return org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120.$YangModuleInfoImpl + return org.opendaylight.yang.svc.v1.http.netconfcentral.org.ns.toaster.rev091120.YangModuleInfoImpl .qnameOf(localName); } diff --git a/lighty-core/lighty-common/src/test/java/io/lighty/core/common/models/tests/YangModelUtilsTests.java b/lighty-core/lighty-common/src/test/java/io/lighty/core/common/models/tests/YangModelUtilsTests.java index 4d5a0fba16..6a33b4a4e7 100644 --- a/lighty-core/lighty-common/src/test/java/io/lighty/core/common/models/tests/YangModelUtilsTests.java +++ b/lighty-core/lighty-common/src/test/java/io/lighty/core/common/models/tests/YangModelUtilsTests.java @@ -27,12 +27,12 @@ public class YangModelUtilsTests { private static final String TEST_NAME = "ietf-inet-types"; private static final String TEST_REVISION = "2013-07-15"; private static final Set YANG_MODELS = Set.of( - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev230126 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev180220 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715 - .$YangModuleInfoImpl.getInstance() + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev230126 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev180220 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715 + .YangModuleInfoImpl.getInstance() ); @DataProvider(name = "equalsTestData") diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/util/ControllerConfigUtils.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/util/ControllerConfigUtils.java index 57b8074ced..54682f289c 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/util/ControllerConfigUtils.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/util/ControllerConfigUtils.java @@ -39,31 +39,31 @@ public final class ControllerConfigUtils { * YANG files. This is also recommended default model set for majority of Lighty controller applications. */ public static final Set YANG_MODELS = Set.of( - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev230126 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev180220 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.yang.extension.yang.ext.rev130709 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.distributed.datastore + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev230126 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev180220 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.l2.types.rev130827 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.yang.extension.yang.ext.rev130709 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.controller.config.distributed.datastore .provider.rev140612 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.entity.owners.norev - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.core.general.entity.rev150930 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.rpc.rev151215 - .$YangModuleInfoImpl.getInstance() + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.controller.entity.owners.norev + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.mdsal.core.general.entity.rev150930 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.yang.aaa.cert.rpc.rev151215 + .YangModuleInfoImpl.getInstance() ); public static final String CONTROLLER_CONFIG_ROOT_ELEMENT_NAME = "controller"; diff --git a/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/util/FileToDatastoreUtilsTest.java b/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/util/FileToDatastoreUtilsTest.java index 1c2a6a37e8..b7befaacb8 100644 --- a/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/util/FileToDatastoreUtilsTest.java +++ b/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/util/FileToDatastoreUtilsTest.java @@ -21,7 +21,6 @@ import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.ReadTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.yang.gen.v1.http.pantheon.tech.ns.test.models.rev180119.$YangModuleInfoImpl; import org.opendaylight.yang.gen.v1.http.pantheon.tech.ns.test.models.rev180119.ChoiceContainer; import org.opendaylight.yang.gen.v1.http.pantheon.tech.ns.test.models.rev180119.SampleList; import org.opendaylight.yang.gen.v1.http.pantheon.tech.ns.test.models.rev180119.SampleListKey; @@ -29,6 +28,7 @@ import org.opendaylight.yang.gen.v1.http.pantheon.tech.ns.test.models.rev180119.choice.container.Snack; import org.opendaylight.yang.gen.v1.http.pantheon.tech.ns.test.models.rev180119.choice.container.snack.SportsArena; import org.opendaylight.yang.gen.v1.http.pantheon.tech.ns.test.models.rev180119.container.group.SampleContainer; +import org.opendaylight.yang.svc.v1.http.pantheon.tech.ns.test.models.rev180119.YangModuleInfoImpl; import org.opendaylight.yangtools.yang.binding.ChildOf; import org.opendaylight.yangtools.yang.binding.DataRoot; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @@ -67,7 +67,7 @@ public class FileToDatastoreUtilsTest { private static final YangInstanceIdentifier INNER_VALUE_YII = YangInstanceIdentifier.create( NodeIdentifier.create(TopLevelContainer.QNAME), NodeIdentifier.create(SampleContainer.QNAME), - NodeIdentifier.create($YangModuleInfoImpl.qnameOf("value"))); + NodeIdentifier.create(YangModuleInfoImpl.qnameOf("value"))); private static final long TIMEOUT_MILLIS = 20_000; @@ -78,7 +78,7 @@ public class FileToDatastoreUtilsTest { public void startUp() throws Exception { lightyController = new LightyControllerBuilder() .from(ControllerConfigUtils.getDefaultSingleNodeConfiguration( - Set.of($YangModuleInfoImpl.getInstance()))) + Set.of(YangModuleInfoImpl.getInstance()))) .build(); assertTrue(lightyController.start().get(TIMEOUT_MILLIS, TimeUnit.MILLISECONDS)); dataBroker = lightyController.getServices().getBindingDataBroker(); diff --git a/lighty-examples/lighty-community-restconf-actions-app/src/main/java/io/lighty/examples/controllers/actions/Main.java b/lighty-examples/lighty-community-restconf-actions-app/src/main/java/io/lighty/examples/controllers/actions/Main.java index 7997d9e39c..b23566f37c 100644 --- a/lighty-examples/lighty-community-restconf-actions-app/src/main/java/io/lighty/examples/controllers/actions/Main.java +++ b/lighty-examples/lighty-community-restconf-actions-app/src/main/java/io/lighty/examples/controllers/actions/Main.java @@ -103,7 +103,7 @@ public void start(String[] args, boolean registerShutdownHook) { modelPaths.addAll(RestConfConfigUtils.YANG_MODELS); modelPaths.addAll(NetconfConfigUtils.NETCONF_TOPOLOGY_MODELS); modelPaths.add(org.opendaylight.yang.gen.v1.urn.example.data.center.rev180807 - .$YangModuleInfoImpl.getInstance()); + .YangModuleInfoImpl.getInstance()); final ArrayNode arrayNode = YangModuleUtils.generateJSONModelSetConfiguration(modelPaths); //0. print the list of schema context models LOG.info("JSON model config snippet: {}", arrayNode.toString()); diff --git a/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/config/LightyConfiguration.java b/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/config/LightyConfiguration.java index bd07ef4783..3009c84b24 100644 --- a/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/config/LightyConfiguration.java +++ b/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/config/LightyConfiguration.java @@ -29,7 +29,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120.$YangModuleInfoImpl; +import org.opendaylight.yang.svc.v1.http.netconfcentral.org.ns.toaster.rev091120.YangModuleInfoImpl; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -51,7 +51,7 @@ protected LightyController initLightyController() throws LightyLaunchException, final LightyControllerBuilder lightyControllerBuilder = new LightyControllerBuilder(); final Set mavenModelPaths = new HashSet<>(); mavenModelPaths.addAll(NetconfConfigUtils.NETCONF_TOPOLOGY_MODELS); - mavenModelPaths.add($YangModuleInfoImpl.getInstance()); + mavenModelPaths.add(YangModuleInfoImpl.getInstance()); final LightyController lightyController = lightyControllerBuilder .from(ControllerConfigUtils.getDefaultSingleNodeConfiguration(mavenModelPaths)) .build(); diff --git a/lighty-models/README.md b/lighty-models/README.md index 1934ca9bca..e3599ca273 100644 --- a/lighty-models/README.md +++ b/lighty-models/README.md @@ -90,7 +90,7 @@ import org.opendaylight.yangtools.yang.binding.YangModuleInfo; public class Main { private static final Set MY_MODELS = Set.of( - org.opendaylight.yang.gen.v1.urn.example.my.model.rev180914.$YangModuleInfoImpl.getInstance() + org.opendaylight.yang.svc.v1.urn.example.my.model.rev180914.YangModuleInfoImpl.getInstance() ); public static void main(String[] args) { diff --git a/lighty-modules/lighty-aaa-aggregator/lighty-aaa/src/main/java/io/lighty/aaa/util/AAAConfigUtils.java b/lighty-modules/lighty-aaa-aggregator/lighty-aaa/src/main/java/io/lighty/aaa/util/AAAConfigUtils.java index a0566442a0..b5c6fb62bd 100644 --- a/lighty-modules/lighty-aaa-aggregator/lighty-aaa/src/main/java/io/lighty/aaa/util/AAAConfigUtils.java +++ b/lighty-modules/lighty-aaa-aggregator/lighty-aaa/src/main/java/io/lighty/aaa/util/AAAConfigUtils.java @@ -24,12 +24,12 @@ public final class AAAConfigUtils { private static final String AAA_ROOT_ELEMENT_NAME = "aaa"; public static final Set YANG_MODELS = Set.of( - org.opendaylight.yang.gen.v1.config.aaa.authn.encrypt.service.config.rev160915 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.mdsal.rev160321 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.aaa.rev161214 - .$YangModuleInfoImpl.getInstance()); + org.opendaylight.yang.svc.v1.config.aaa.authn.encrypt.service.config.rev160915 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.yang.aaa.cert.mdsal.rev160321 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.aaa.rev161214 + .YangModuleInfoImpl.getInstance()); private AAAConfigUtils() { // Hide on purpose diff --git a/lighty-modules/lighty-bgp/src/main/java/io/lighty/modules/bgp/config/BgpConfigUtils.java b/lighty-modules/lighty-bgp/src/main/java/io/lighty/modules/bgp/config/BgpConfigUtils.java index 3611fd0ee7..f869fb9278 100644 --- a/lighty-modules/lighty-bgp/src/main/java/io/lighty/modules/bgp/config/BgpConfigUtils.java +++ b/lighty-modules/lighty-bgp/src/main/java/io/lighty/modules/bgp/config/BgpConfigUtils.java @@ -21,86 +21,86 @@ private BgpConfigUtils() { } private static final Set BASE_MODELS = Set.of( - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.peer.rpc.rev180329 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.operational.rev151009 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.policy.rev151009 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.openconfig.net.yang.interfaces.rev160412 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.openconfig.net.yang.local.routing.rev151009 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.openconfig.net.yang.network.instance.rev151018 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.openconfig.net.yang.network.instance.types.rev151018 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.openconfig.net.yang.openconfig.ext.rev151009 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.openconfig.net.yang.openconfig.types.rev151009 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.openconfig.net.yang.policy.types.rev151009 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.openconfig.net.yang.routing.policy.rev151009 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.inet.rev180329 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.route.target.constrain.rev180618 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.ll.graceful.restart.rev181112 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp._default.policy.rev200120 - .$YangModuleInfoImpl.getInstance() + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.bgp.peer.rpc.rev180329 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.http.openconfig.net.yang.bgp.rev151009 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.http.openconfig.net.yang.bgp.operational.rev151009 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.http.openconfig.net.yang.bgp.policy.rev151009 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.http.openconfig.net.yang.bgp.types.rev151009 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.http.openconfig.net.yang.interfaces.rev160412 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.http.openconfig.net.yang.local.routing.rev151009 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.http.openconfig.net.yang.network.instance.rev151018 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.http.openconfig.net.yang.network.instance.types.rev151018 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.http.openconfig.net.yang.openconfig.ext.rev151009 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.http.openconfig.net.yang.openconfig.types.rev151009 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.http.openconfig.net.yang.policy.types.rev151009 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.http.openconfig.net.yang.routing.policy.rev151009 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.bgp.inet.rev180329 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.bgp.route.target.constrain.rev180618 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.bgp.ll.graceful.restart.rev181112 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp._default.policy.rev200120 + .YangModuleInfoImpl.getInstance() ); private static final Set TOPOLOGY_MODELS = Set.of( - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.topology.config.rev180329 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.topology.types.rev160524 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.isis.topology.rev131021 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.ted.rev131021 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.ospf.topology.rev131021 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.sr.rev130819 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.tunnel.sr.rev130819 - .$YangModuleInfoImpl.getInstance() + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.topology.config.rev180329 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.topology.types.rev160524 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.tbd.params.xml.ns.yang.network.isis.topology.rev131021 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.tbd.params.xml.ns.yang.network.ted.rev131021 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.tbd.params.xml.ns.yang.ospf.topology.rev131021 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.topology.sr.rev130819 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.topology.tunnel.sr.rev130819 + .YangModuleInfoImpl.getInstance() ); private static final Set EXTENSIONS_MODELS = Set.of( - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.flowspec.rev200120 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev200120 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.ipv4.rev180417 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.ipv6.rev180417 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pmsi.tunnel.rev200120 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.route.target.constrain.rev180618 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.labeled.unicast.rev180329 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720 - .$YangModuleInfoImpl.getInstance() + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.bgp.flowspec.rev200120 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev200120 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.ipv4.rev180417 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.ipv6.rev180417 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.pmsi.tunnel.rev200120 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.bgp.route.target.constrain.rev180618 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.bgp.labeled.unicast.rev180329 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720 + .YangModuleInfoImpl.getInstance() ); public static final Set ALL_BGP_MODELS = Set.copyOf( diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/lightymodule/util/GnmiConfigUtils.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/lightymodule/util/GnmiConfigUtils.java index b0d9c5940c..4a5373f977 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/lightymodule/util/GnmiConfigUtils.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/lightymodule/util/GnmiConfigUtils.java @@ -30,14 +30,14 @@ public final class GnmiConfigUtils { public static final String GNMI_CONFIG_JSON_ROOT_ELEMENT = "gnmi"; public static final Set YANG_MODELS = Set.of( - org.opendaylight.yang.gen.v1.urn.lighty.gnmi.topology.rev210316 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.lighty.gnmi.yang.storage.rev210331 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.lighty.gnmi.force.capabilities.rev210702 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.lighty.gnmi.certificate.storage.rev210504 - .$YangModuleInfoImpl.getInstance() + org.opendaylight.yang.svc.v1.urn.lighty.gnmi.topology.rev210316 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.lighty.gnmi.yang.storage.rev210331 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.lighty.gnmi.force.capabilities.rev210702 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.lighty.gnmi.certificate.storage.rev210504 + .YangModuleInfoImpl.getInstance() ); private GnmiConfigUtils() { diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfConfigUtils.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfConfigUtils.java index bfa2dd2b1c..0da0c6bb43 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfConfigUtils.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfConfigUtils.java @@ -45,24 +45,24 @@ public final class NetconfConfigUtils { public static final String NETCONF_CONFIG_ROOT_ELEMENT_NAME = "netconf"; public static final Set NETCONF_TOPOLOGY_MODELS = Set.of( - org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.optional.rev221225 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.yang.extension.yang.ext.rev130709 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104 - .$YangModuleInfoImpl.getInstance() + org.opendaylight.yang.svc.v1.urn.opendaylight.netconf.keystore.rev171017 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.netconf.node.topology.rev221225 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.netconf.node.optional.rev221225 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.yang.extension.yang.ext.rev130709 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104 + .YangModuleInfoImpl.getInstance() ); public static final Set NETCONF_CALLHOME_MODELS = Set.of( - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev230428 - .$YangModuleInfoImpl.getInstance() + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev230428 + .YangModuleInfoImpl.getInstance() ); private static final Logger LOG = LoggerFactory.getLogger(NetconfConfigUtils.class); private static final SecureRandom RANDOM = new SecureRandom(); diff --git a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceBaseTest.java b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceBaseTest.java index 55fa50c681..0f4f689689 100644 --- a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceBaseTest.java +++ b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceBaseTest.java @@ -37,22 +37,22 @@ public abstract class NetconfBaseServiceBaseTest { @BeforeClass public void beforeTest() throws YangParserException { final Set yangModuleInfos = Set.of( - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.datastores.rev180214 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.metadata.rev160805 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.origin.rev180214 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.with.defaults.rev110601 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.nmda.rev190107 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev180220 - .$YangModuleInfoImpl.getInstance() + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.datastores.rev180214 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.yang.metadata.rev160805 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.origin.rev180214 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.with.defaults.rev110601 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.nmda.rev190107 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev180220 + .YangModuleInfoImpl.getInstance() ); effectiveModelContext = getEffectiveModelContext(new ArrayList<>(yangModuleInfos)); mountContext = MountPointContext.of(effectiveModelContext); diff --git a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceTest.java b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceTest.java index 07261c2e11..9f675fb152 100755 --- a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceTest.java +++ b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceTest.java @@ -44,8 +44,8 @@ public class NetconfBaseServiceTest extends NetconfBaseServiceBaseTest { private static final QName QNAME_BASE = - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601 - .$YangModuleInfoImpl.getInstance().getName(); + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601 + .YangModuleInfoImpl.getInstance().getName(); private static final QName RUNNING_DATASTORE = org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601 .get.config.input.source.config.source.Running.QNAME; diff --git a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/util/RestConfConfigUtils.java b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/util/RestConfConfigUtils.java index b6021d0607..36dbd42114 100644 --- a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/util/RestConfConfigUtils.java +++ b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/util/RestConfConfigUtils.java @@ -27,22 +27,22 @@ public final class RestConfConfigUtils { public static final String RESTCONF_CONFIG_ROOT_ELEMENT_NAME = "restconf"; public static final Set YANG_MODELS = Set.of( - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.restconf.rev170126 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.restconf.monitoring.rev170126 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.subscribe.to.notification.rev161028 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.instance.identifier.patch.module.rev151121 - .$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.urn.opendaylight.device.notification.rev221106 - .$YangModuleInfoImpl.getInstance()); + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.restconf.rev170126 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.restconf.monitoring.rev170126 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.sal.restconf.event.subscription.rev140708 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.subscribe.to.notification.rev161028 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.instance.identifier.patch.module.rev151121 + .YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.svc.v1.urn.opendaylight.device.notification.rev221106 + .YangModuleInfoImpl.getInstance()); public static final int MAXIMUM_FRAGMENT_LENGTH = 0; public static final int IDLE_TIMEOUT = 30000; public static final int HEARTBEAT_INTERVAL = 10000; From a970d6a78b8d2ed44ba38945c0d887f5f8043051 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 9 Apr 2024 09:58:44 +0200 Subject: [PATCH 08/70] Refactor DOMNotificationSubscriptionListener(Registry) https://github.com/opendaylight/mdsal/commit/761ac571ff8ebc85885e78cd4e07f48cc3f3888e Signed-off-by: tobias.pobocik --- .../guice/LightyControllerModule.java | 5 +++-- .../controller/guice/tests/TestService.java | 4 ++-- .../spring/LightyCoreSpringConfiguration.java | 5 +++-- .../LightyCoreSpringConfigurationTest.java | 4 ++-- .../core/controller/api/LightyServices.java | 4 ++-- .../controller/impl/LightyControllerImpl.java | 18 +++++++----------- .../impl/tests/LightyControllerTest.java | 2 +- 7 files changed, 20 insertions(+), 22 deletions(-) diff --git a/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java b/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java index f124256c1c..406a0b9473 100644 --- a/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java +++ b/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java @@ -34,6 +34,7 @@ import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.api.DOMSchemaService; import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider; +import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter; import org.opendaylight.mdsal.dom.spi.DOMNotificationSubscriptionListenerRegistry; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; @@ -70,8 +71,8 @@ protected void configure() { .toInstance(lightyServices.getDOMSchemaService()); bind(DOMYangTextSourceProvider.class) .toInstance(lightyServices.getDOMYangTextSourceProvider()); - bind(DOMNotificationSubscriptionListenerRegistry.class) - .toInstance(lightyServices.getDOMNotificationSubscriptionListenerRegistry()); + bind(DOMNotificationRouter.class) + .toInstance(lightyServices.getDOMNotificationRouter()); bind(DistributedDataStoreInterface.class) .annotatedWith(Names.named("ControllerConfigDatastore")) .toInstance(lightyServices.getConfigDatastore()); diff --git a/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java b/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java index c92546d739..4b49133a44 100644 --- a/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java +++ b/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java @@ -59,7 +59,7 @@ public class TestService { private DOMYangTextSourceProvider domYangTextSourceProvider; @Inject - private DOMNotificationSubscriptionListenerRegistry domNotificationSubscriptionListenerRegistry; + private DOMNotificationRouter domNotificationSubscriptionListenerRegistry; @Inject @Named("ControllerConfigDatastore") @@ -168,7 +168,7 @@ public DOMYangTextSourceProvider getDomYangTextSourceProvider() { return domYangTextSourceProvider; } - public DOMNotificationSubscriptionListenerRegistry getDomNotificationSubscriptionListenerRegistry() { + public DOMNotificationRouter getDomNotificationSubscriptionListenerRegistry() { return domNotificationSubscriptionListenerRegistry; } diff --git a/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java b/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java index 6b350ef10d..ef6acf869e 100644 --- a/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java +++ b/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java @@ -34,6 +34,7 @@ import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.api.DOMSchemaService; import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider; +import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter; import org.opendaylight.mdsal.dom.spi.DOMNotificationSubscriptionListenerRegistry; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; @@ -172,8 +173,8 @@ public DOMNotificationService domNotificationService() { } @Bean(destroyMethod = "") - public DOMNotificationSubscriptionListenerRegistry domNotificationSubscriptionListenerRegistry() { - return this.lightyController.getServices().getDOMNotificationSubscriptionListenerRegistry(); + public DOMNotificationRouter domNotificationRouter() { + return this.lightyController.getServices().getDOMNotificationRouter(); } @Bean(name = "ConfigDatastore", destroyMethod = "") diff --git a/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java b/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java index 9bb9c3c753..13da1d31e9 100644 --- a/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java +++ b/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java @@ -42,7 +42,7 @@ import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.api.DOMSchemaService; import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider; -import org.opendaylight.mdsal.dom.spi.DOMNotificationSubscriptionListenerRegistry; +import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; @@ -99,7 +99,7 @@ public class LightyCoreSpringConfigurationTest extends AbstractJUnit4SpringConte DOMNotificationService domNotificationServiceTestProperty; @Autowired - DOMNotificationSubscriptionListenerRegistry domNotificationSubscriptionListenerRegistryTestProperty; + DOMNotificationRouter domNotificationSubscriptionListenerRegistryTestProperty; @Autowired @Qualifier("ConfigDatastore") diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java index 0087984b8a..95ab4449ad 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java @@ -38,7 +38,7 @@ import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.api.DOMSchemaService; import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider; -import org.opendaylight.mdsal.dom.spi.DOMNotificationSubscriptionListenerRegistry; +import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; @@ -68,7 +68,7 @@ public interface LightyServices extends LightyModuleRegistryService { DOMYangTextSourceProvider getDOMYangTextSourceProvider(); - DOMNotificationSubscriptionListenerRegistry getDOMNotificationSubscriptionListenerRegistry(); + DOMNotificationRouter getDOMNotificationRouter(); DistributedDataStoreInterface getConfigDatastore(); diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java index 5db7e2eee9..b88e612ce6 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java @@ -111,11 +111,10 @@ import org.opendaylight.mdsal.dom.broker.DOMMountPointServiceImpl; import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter; import org.opendaylight.mdsal.dom.broker.DOMRpcRouter; -import org.opendaylight.mdsal.dom.spi.DOMNotificationSubscriptionListenerRegistry; import org.opendaylight.mdsal.dom.spi.FixedDOMSchemaService; import org.opendaylight.mdsal.dom.spi.store.DOMStore; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; -import org.opendaylight.mdsal.eos.binding.dom.adapter.BindingDOMEntityOwnershipServiceAdapter; +import org.opendaylight.mdsal.eos.binding.dom.adapter.DefaultEntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; import org.opendaylight.mdsal.singleton.dom.impl.DOMClusterSingletonServiceProviderImpl; @@ -168,7 +167,7 @@ public class LightyControllerImpl extends AbstractLightyModule implements Lighty private DOMActionService domActionService; private DOMActionProviderService domActionProviderService; private AkkaEntityOwnershipService akkaEntityOwnershipService; - private BindingDOMEntityOwnershipServiceAdapter bindingDOMEntityOwnershipServiceAdapter; + private DefaultEntityOwnershipService defaultEntityOwnershipService; private ClusterAdminRpcService clusterAdminRpcService; private DOMClusterSingletonServiceProviderImpl clusterSingletonServiceProvider; private NotificationService notificationService; @@ -323,7 +322,7 @@ protected boolean initProcedure() { return false; } - this.bindingDOMEntityOwnershipServiceAdapter = new BindingDOMEntityOwnershipServiceAdapter( + this.defaultEntityOwnershipService = new DefaultEntityOwnershipService( akkaEntityOwnershipService, this.codec); this.clusterAdminRpcService = new ClusterAdminRpcService(this.configDatastore, this.operDatastore, this.codec.currentSerializer(), @@ -403,9 +402,6 @@ protected boolean stopProcedure() throws InterruptedException { if (this.clusterSingletonServiceProvider != null) { this.clusterSingletonServiceProvider.close(); } - if (this.bindingDOMEntityOwnershipServiceAdapter != null) { - this.bindingDOMEntityOwnershipServiceAdapter.close(); - } if (this.akkaEntityOwnershipService != null) { try { this.akkaEntityOwnershipService.close(); @@ -523,7 +519,7 @@ public DOMYangTextSourceProvider getDOMYangTextSourceProvider() { } @Override - public DOMNotificationSubscriptionListenerRegistry getDOMNotificationSubscriptionListenerRegistry() { + public DOMNotificationRouter getDOMNotificationRouter() { return this.domNotificationRouter; } @@ -559,7 +555,7 @@ public DOMEntityOwnershipService getDOMEntityOwnershipService() { @Override public EntityOwnershipService getEntityOwnershipService() { - return this.bindingDOMEntityOwnershipServiceAdapter; + return this.defaultEntityOwnershipService; } @Override @@ -609,12 +605,12 @@ public DOMMountPointService getDOMMountPointService() { @Override public DOMNotificationPublishService getDOMNotificationPublishService() { - return this.domNotificationRouter; + return domNotificationRouter.notificationPublishService(); } @Override public DOMNotificationService getDOMNotificationService() { - return this.domNotificationRouter; + return domNotificationRouter.notificationService(); } @Override diff --git a/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/impl/tests/LightyControllerTest.java b/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/impl/tests/LightyControllerTest.java index fa0a332e6b..f24403043f 100644 --- a/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/impl/tests/LightyControllerTest.java +++ b/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/impl/tests/LightyControllerTest.java @@ -27,7 +27,7 @@ public void controllerSimpleTest() { Assert.assertNotNull(lightyController.getServices().getEffectiveModelContextProvider()); Assert.assertNotNull(lightyController.getServices().getDOMSchemaService()); Assert.assertNotNull(lightyController.getServices().getDOMYangTextSourceProvider()); - Assert.assertNotNull(lightyController.getServices().getDOMNotificationSubscriptionListenerRegistry()); + Assert.assertNotNull(lightyController.getServices().getDOMNotificationRouter()); Assert.assertNotNull(lightyController.getServices().getConfigDatastore()); Assert.assertNotNull(lightyController.getServices().getOperationalDatastore()); Assert.assertNotNull(lightyController.getServices().getYangParserFactory()); From 53b87398b571c5bd32fbfc2a52a1aa8aaeae3756 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Thu, 15 Feb 2024 14:23:25 +0100 Subject: [PATCH 09/70] Remove EffectiveModelContext{Listener,Provider} https://github.com/opendaylight/yangtools/commit/fd91e72579e4c6083592f957a92689923b5a685f Signed-off-by: tobias.pobocik --- .../java/io/lighty/codecs/util/JsonNodeConverter.java | 2 +- .../java/io/lighty/codecs/util/AbstractCodecTest.java | 4 ++-- .../core/controller/guice/LightyControllerModule.java | 4 ++-- .../lighty/core/controller/guice/tests/GuiceDITest.java | 2 +- .../lighty/core/controller/guice/tests/TestService.java | 8 ++++---- .../controller/spring/LightyCoreSpringConfiguration.java | 6 +++--- .../spring/LightyCoreSpringConfigurationTest.java | 6 +++--- .../io/lighty/core/controller/api/LightyServices.java | 4 ++-- .../core/controller/impl/LightyControllerImpl.java | 9 ++++----- .../core/controller/impl/tests/LightyControllerTest.java | 2 +- .../core/controller/util/FileToDatastoreUtilsTest.java | 2 +- .../java/io/lighty/modules/bgp/deployer/BgpModule.java | 2 +- .../lighty/modules/gnmi/commons/util/DataConverter.java | 2 +- .../southbound/netconf/tests/SampleConfigTest.java | 6 ++---- 14 files changed, 28 insertions(+), 31 deletions(-) diff --git a/lighty-core/lighty-codecs-util/src/main/java/io/lighty/codecs/util/JsonNodeConverter.java b/lighty-core/lighty-codecs-util/src/main/java/io/lighty/codecs/util/JsonNodeConverter.java index 01dff3ba0c..cf61459cff 100644 --- a/lighty-core/lighty-codecs-util/src/main/java/io/lighty/codecs/util/JsonNodeConverter.java +++ b/lighty-core/lighty-codecs-util/src/main/java/io/lighty/codecs/util/JsonNodeConverter.java @@ -184,7 +184,7 @@ private void parseToResult(final NormalizedNodeStreamWriter writer, final Reader @Override public EffectiveModelContext getModelContext() { - return jsonCodecFactory.getEffectiveModelContext(); + return jsonCodecFactory.modelContext(); } } diff --git a/lighty-core/lighty-codecs-util/src/test/java/io/lighty/codecs/util/AbstractCodecTest.java b/lighty-core/lighty-codecs-util/src/test/java/io/lighty/codecs/util/AbstractCodecTest.java index 5f43305132..f135bb1c9d 100644 --- a/lighty-core/lighty-codecs-util/src/test/java/io/lighty/codecs/util/AbstractCodecTest.java +++ b/lighty-core/lighty-codecs-util/src/test/java/io/lighty/codecs/util/AbstractCodecTest.java @@ -73,7 +73,7 @@ public abstract class AbstractCodecTest { public AbstractCodecTest() throws YangParserException { this.bindingCodecContext = createCodecContext(loadModuleInfos()); - this.effectiveModelContext = bindingCodecContext.getRuntimeContext().getEffectiveModelContext(); + this.effectiveModelContext = bindingCodecContext.getRuntimeContext().modelContext(); this.toasterTopLevelContainerNode = topLevelContainerNode(); this.rpcLeafInputNode = rpcLeafInputNode(); @@ -93,7 +93,7 @@ private static BindingCodecContext createCodecContext(final List defaultYangParserFactory); moduleInfoSnapshotBuilder.add(moduleInfos); final BindingRuntimeTypes bindingRuntimeTypes = bindingRuntimeGenerator - .generateTypeMapping(moduleInfoSnapshotBuilder.build().getEffectiveModelContext()); + .generateTypeMapping(moduleInfoSnapshotBuilder.build().modelContext()); final DefaultBindingRuntimeContext defaultBindingRuntimeContext = new DefaultBindingRuntimeContext( bindingRuntimeTypes, moduleInfoSnapshotBuilder.build()); diff --git a/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java b/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java index 406a0b9473..276307b740 100644 --- a/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java +++ b/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java @@ -40,7 +40,7 @@ import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.ClusterAdminService; -import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -66,7 +66,7 @@ protected void configure() { .toInstance(lightyServices.getDiagStatusService()); bind(ActorSystemProvider.class) .toInstance(lightyServices.getActorSystemProvider()); - bind(EffectiveModelContextProvider.class).toInstance(lightyServices.getEffectiveModelContextProvider()); + bind(EffectiveModelContext.class).toInstance(lightyServices.getEffectiveModelContext()); bind(DOMSchemaService.class) .toInstance(lightyServices.getDOMSchemaService()); bind(DOMYangTextSourceProvider.class) diff --git a/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/GuiceDITest.java b/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/GuiceDITest.java index 2b28091fc2..6b7f9f76ae 100644 --- a/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/GuiceDITest.java +++ b/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/GuiceDITest.java @@ -69,7 +69,7 @@ public void testDIActorSystemProvider() { @Test public void testDISchemaContextProvider() { - assertNotNull(testService.getSchemaContextProvider()); + assertNotNull(testService.getSchemaContext()); } @Test diff --git a/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java b/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java index 4b49133a44..7f276a2e5a 100644 --- a/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java +++ b/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java @@ -39,7 +39,7 @@ import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.ClusterAdminService; -import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; public class TestService { @@ -50,7 +50,7 @@ public class TestService { private ActorSystemProvider actorSystemProvider; @Inject - private EffectiveModelContextProvider effectiveModelContextProvider; + private EffectiveModelContext effectiveModelContext; @Inject private DOMSchemaService domSchemaService; @@ -156,8 +156,8 @@ public ActorSystemProvider getActorSystemProvider() { return actorSystemProvider; } - public EffectiveModelContextProvider getSchemaContextProvider() { - return effectiveModelContextProvider; + public EffectiveModelContext getSchemaContext() { + return effectiveModelContext; } public DOMSchemaService getDomSchemaService() { diff --git a/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java b/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java index ef6acf869e..1e92cba455 100644 --- a/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java +++ b/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java @@ -40,7 +40,7 @@ import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.ClusterAdminService; -import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Bean; @@ -141,8 +141,8 @@ public ActorSystemProvider actorSystemProvider() { } @Bean(destroyMethod = "") - public EffectiveModelContextProvider effectiveModelContextProvider() { - return this.lightyController.getServices().getEffectiveModelContextProvider(); + public EffectiveModelContext effectiveModelContext() { + return this.lightyController.getServices().getEffectiveModelContext(); } @Bean(destroyMethod = "") diff --git a/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java b/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java index 13da1d31e9..081f946637 100644 --- a/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java +++ b/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java @@ -47,7 +47,7 @@ import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.ClusterAdminService; -import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -81,7 +81,7 @@ public class LightyCoreSpringConfigurationTest extends AbstractJUnit4SpringConte ActorSystemProvider actorSystemProviderTestProperty; @Autowired - EffectiveModelContextProvider effectiveModelContextProvider; + EffectiveModelContext effectiveModelContext; @Autowired DOMSchemaService domSchemaServiceTestProperty; @@ -177,7 +177,7 @@ public void testLightyBeansExists() { assertNotNull(lightyModuleRegistryServiceTestProperty); assertNotNull(diagStatusServiceTestProperty); assertNotNull(actorSystemProviderTestProperty); - assertNotNull(effectiveModelContextProvider); + assertNotNull(effectiveModelContext); assertNotNull(domSchemaServiceTestProperty); assertNotNull(domYangTextSourceProviderTestProperty); assertNotNull(domMountPointServiceTestProperty); diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java index 95ab4449ad..320529cf66 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java @@ -43,7 +43,7 @@ import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.ClusterAdminService; -import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; /** @@ -62,7 +62,7 @@ public interface LightyServices extends LightyModuleRegistryService { ActorSystemProvider getActorSystemProvider(); - EffectiveModelContextProvider getEffectiveModelContextProvider(); + EffectiveModelContext getEffectiveModelContext(); DOMSchemaService getDOMSchemaService(); diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java index b88e612ce6..f3a35c59c1 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java @@ -125,7 +125,7 @@ import org.opendaylight.yangtools.util.DurationStatisticsTracker; import org.opendaylight.yangtools.util.concurrent.SpecialExecutors; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; -import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; import org.opendaylight.yangtools.yang.parser.impl.DefaultYangParserFactory; import org.opendaylight.yangtools.yang.xpath.api.YangXPathParserFactory; @@ -357,8 +357,7 @@ protected boolean initProcedure() { final InitialConfigData initialData = this.initialConfigData.get(); try (InputStream inputStream = initialData.getAsInputStream()) { FileToDatastoreUtils.importConfigDataFile(inputStream, initialData.getFormat(), - getEffectiveModelContextProvider().getEffectiveModelContext(), - this.getClusteredDOMDataBroker(), true); + getEffectiveModelContext(), this.getClusteredDOMDataBroker(), true); } catch (TimeoutException | ExecutionException | IOException | DeserializationException e) { LOG.error("Exception occurred while importing config data from file", e); return false; @@ -504,8 +503,8 @@ public ActorSystemProvider getActorSystemProvider() { } @Override - public EffectiveModelContextProvider getEffectiveModelContextProvider() { - return this.moduleInfoSnapshot; + public EffectiveModelContext getEffectiveModelContext() { + return this.moduleInfoSnapshot.modelContext(); } @Override diff --git a/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/impl/tests/LightyControllerTest.java b/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/impl/tests/LightyControllerTest.java index f24403043f..5b9fb36af6 100644 --- a/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/impl/tests/LightyControllerTest.java +++ b/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/impl/tests/LightyControllerTest.java @@ -24,7 +24,7 @@ public void controllerSimpleTest() { lightyController.getServices().getDiagStatusService().getAllServiceDescriptors()); Assert.assertNotNull(lightyController.getServices().getActorSystemProvider()); Assert.assertNotNull(lightyController.getServices().getActorSystemProvider().getActorSystem()); - Assert.assertNotNull(lightyController.getServices().getEffectiveModelContextProvider()); + Assert.assertNotNull(lightyController.getServices().getEffectiveModelContext()); Assert.assertNotNull(lightyController.getServices().getDOMSchemaService()); Assert.assertNotNull(lightyController.getServices().getDOMYangTextSourceProvider()); Assert.assertNotNull(lightyController.getServices().getDOMNotificationRouter()); diff --git a/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/util/FileToDatastoreUtilsTest.java b/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/util/FileToDatastoreUtilsTest.java index b7befaacb8..1bfeef0c43 100644 --- a/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/util/FileToDatastoreUtilsTest.java +++ b/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/util/FileToDatastoreUtilsTest.java @@ -157,7 +157,7 @@ private void importFile(final String path, final YangInstanceIdentifier yii, fin FileToDatastoreUtils.importConfigDataFile(FileToDatastoreUtils.class.getResourceAsStream(path), yii, format, - lightyController.getServices().getEffectiveModelContextProvider().getEffectiveModelContext(), + lightyController.getServices().getEffectiveModelContext(), lightyController.getServices().getClusteredDOMDataBroker(), true); } diff --git a/lighty-modules/lighty-bgp/src/main/java/io/lighty/modules/bgp/deployer/BgpModule.java b/lighty-modules/lighty-bgp/src/main/java/io/lighty/modules/bgp/deployer/BgpModule.java index 923e3a293f..de275a0757 100644 --- a/lighty-modules/lighty-bgp/src/main/java/io/lighty/modules/bgp/deployer/BgpModule.java +++ b/lighty-modules/lighty-bgp/src/main/java/io/lighty/modules/bgp/deployer/BgpModule.java @@ -105,7 +105,7 @@ public BgpModule(final EffectiveModelContext modelContext, final DataBroker data } public BgpModule(final LightyServices lightyServices) { - this(lightyServices.getEffectiveModelContextProvider().getEffectiveModelContext(), + this(lightyServices.getEffectiveModelContext(), lightyServices.getBindingDataBroker(), lightyServices.getClusteredDOMDataBroker(), lightyServices.getBindingCodecTreeFactory(), lightyServices.getAdapterContext().currentSerializer().getRuntimeContext(), diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/main/java/io/lighty/modules/gnmi/commons/util/DataConverter.java b/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/main/java/io/lighty/modules/gnmi/commons/util/DataConverter.java index d5e1184fcf..d622b6a3b9 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/main/java/io/lighty/modules/gnmi/commons/util/DataConverter.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/main/java/io/lighty/modules/gnmi/commons/util/DataConverter.java @@ -126,7 +126,7 @@ Write result into container builder with identifier (netconf:base)data. Makes po final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(resultBuilder); final JSONCodecFactory jsonCodecFactory = - JSONCodecFactorySupplier.RFC7951.createLazy(inference.getEffectiveModelContext()); + JSONCodecFactorySupplier.RFC7951.createLazy(inference.modelContext()); try (JsonParserStream jsonParser = JsonParserStream.create(streamWriter, jsonCodecFactory, inference)) { diff --git a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/SampleConfigTest.java b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/SampleConfigTest.java index f32c60ac82..c10bb11f87 100644 --- a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/SampleConfigTest.java +++ b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/SampleConfigTest.java @@ -29,8 +29,7 @@ public void loadTopLevelSingleNodeModelsFromJsonConfig() throws Exception { final LightyController lightyController = getLightyController("sampleConfigSingleNode.json"); assertTrue(lightyController.start().get(TIME_OUT, TimeUnit.SECONDS)); - final int loadedModulesSize = lightyController.getServices().getEffectiveModelContextProvider() - .getEffectiveModelContext().getModules().size(); + final int loadedModulesSize = lightyController.getServices().getEffectiveModelContext().getModules().size(); assertTrue(lightyController.shutdown(TIME_OUT, TimeUnit.SECONDS)); assertEquals(loadedModulesSize, 17); @@ -41,8 +40,7 @@ public void loadTopLevelClusterModelsFromJsonConfig() throws Exception { final LightyController lightyController = getLightyController("sampleConfigCluster.json"); assertTrue(lightyController.start().get(TIME_OUT, TimeUnit.SECONDS)); - final int loadedModulesSize = lightyController.getServices().getEffectiveModelContextProvider() - .getEffectiveModelContext().getModules().size(); + final int loadedModulesSize = lightyController.getServices().getEffectiveModelContext().getModules().size(); assertTrue(lightyController.shutdown(TIME_OUT, TimeUnit.SECONDS)); assertEquals(loadedModulesSize, 17); From 1f694a7aa48b28beb0789e5077fa5c6f311cc135 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Thu, 15 Feb 2024 15:08:47 +0100 Subject: [PATCH 10/70] Refactor DOMYangTextSourceProvider https://github.com/opendaylight/mdsal/commit/8a0509e7b8909c4fa5b1b4b54b62a6474e55a8eb Signed-off-by: tobias.pobocik --- .../core/controller/guice/LightyControllerModule.java | 6 ++---- .../io/lighty/core/controller/guice/tests/TestService.java | 7 +++---- .../controller/spring/LightyCoreSpringConfiguration.java | 6 ++---- .../spring/LightyCoreSpringConfigurationTest.java | 3 +-- .../java/io/lighty/core/controller/api/LightyServices.java | 3 +-- .../lighty/core/controller/impl/LightyControllerImpl.java | 5 ++--- .../core/controller/impl/tests/LightyControllerTest.java | 2 +- 7 files changed, 12 insertions(+), 20 deletions(-) diff --git a/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java b/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java index 276307b740..052e458265 100644 --- a/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java +++ b/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java @@ -33,9 +33,7 @@ import org.opendaylight.mdsal.dom.api.DOMRpcProviderService; import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.api.DOMSchemaService; -import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider; import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter; -import org.opendaylight.mdsal.dom.spi.DOMNotificationSubscriptionListenerRegistry; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; @@ -69,8 +67,8 @@ protected void configure() { bind(EffectiveModelContext.class).toInstance(lightyServices.getEffectiveModelContext()); bind(DOMSchemaService.class) .toInstance(lightyServices.getDOMSchemaService()); - bind(DOMYangTextSourceProvider.class) - .toInstance(lightyServices.getDOMYangTextSourceProvider()); + bind(DOMSchemaService.YangTextSourceExtension.class) + .toInstance(lightyServices.getYangTextSourceExtension()); bind(DOMNotificationRouter.class) .toInstance(lightyServices.getDOMNotificationRouter()); bind(DistributedDataStoreInterface.class) diff --git a/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java b/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java index 7f276a2e5a..34f8b17afb 100644 --- a/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java +++ b/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java @@ -33,8 +33,7 @@ import org.opendaylight.mdsal.dom.api.DOMRpcProviderService; import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.api.DOMSchemaService; -import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider; -import org.opendaylight.mdsal.dom.spi.DOMNotificationSubscriptionListenerRegistry; +import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; @@ -56,7 +55,7 @@ public class TestService { private DOMSchemaService domSchemaService; @Inject - private DOMYangTextSourceProvider domYangTextSourceProvider; + private DOMSchemaService.YangTextSourceExtension domYangTextSourceProvider; @Inject private DOMNotificationRouter domNotificationSubscriptionListenerRegistry; @@ -164,7 +163,7 @@ public DOMSchemaService getDomSchemaService() { return domSchemaService; } - public DOMYangTextSourceProvider getDomYangTextSourceProvider() { + public DOMSchemaService.YangTextSourceExtension getDomYangTextSourceProvider() { return domYangTextSourceProvider; } diff --git a/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java b/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java index 1e92cba455..d936bcd629 100644 --- a/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java +++ b/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java @@ -33,9 +33,7 @@ import org.opendaylight.mdsal.dom.api.DOMRpcProviderService; import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.api.DOMSchemaService; -import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider; import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter; -import org.opendaylight.mdsal.dom.spi.DOMNotificationSubscriptionListenerRegistry; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; @@ -152,8 +150,8 @@ public DOMSchemaService domSchemaService() { } @Bean(destroyMethod = "") - public DOMYangTextSourceProvider domYangTextSourceProvider() { - return this.lightyController.getServices().getDOMYangTextSourceProvider(); + public DOMSchemaService.YangTextSourceExtension domYangTextSourceProvider() { + return this.lightyController.getServices().getYangTextSourceExtension(); } @Bean(destroyMethod = "") diff --git a/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java b/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java index 081f946637..07174e471d 100644 --- a/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java +++ b/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java @@ -41,7 +41,6 @@ import org.opendaylight.mdsal.dom.api.DOMRpcProviderService; import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.api.DOMSchemaService; -import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider; import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; @@ -87,7 +86,7 @@ public class LightyCoreSpringConfigurationTest extends AbstractJUnit4SpringConte DOMSchemaService domSchemaServiceTestProperty; @Autowired - DOMYangTextSourceProvider domYangTextSourceProviderTestProperty; + DOMSchemaService.YangTextSourceExtension domYangTextSourceProviderTestProperty; @Autowired DOMMountPointService domMountPointServiceTestProperty; diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java index 320529cf66..b5dc2d1715 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java @@ -37,7 +37,6 @@ import org.opendaylight.mdsal.dom.api.DOMRpcProviderService; import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.api.DOMSchemaService; -import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider; import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; @@ -66,7 +65,7 @@ public interface LightyServices extends LightyModuleRegistryService { DOMSchemaService getDOMSchemaService(); - DOMYangTextSourceProvider getDOMYangTextSourceProvider(); + DOMSchemaService.YangTextSourceExtension getYangTextSourceExtension(); DOMNotificationRouter getDOMNotificationRouter(); diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java index f3a35c59c1..bc229d930f 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java @@ -107,7 +107,6 @@ import org.opendaylight.mdsal.dom.api.DOMRpcProviderService; import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.api.DOMSchemaService; -import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider; import org.opendaylight.mdsal.dom.broker.DOMMountPointServiceImpl; import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter; import org.opendaylight.mdsal.dom.broker.DOMRpcRouter; @@ -513,8 +512,8 @@ public DOMSchemaService getDOMSchemaService() { } @Override - public DOMYangTextSourceProvider getDOMYangTextSourceProvider() { - return getDOMSchemaService().getExtensions().getInstance(DOMYangTextSourceProvider.class); + public DOMSchemaService.YangTextSourceExtension getYangTextSourceExtension() { + return getDOMSchemaService().findExtension(DOMSchemaService.YangTextSourceExtension.class).orElse(null); } @Override diff --git a/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/impl/tests/LightyControllerTest.java b/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/impl/tests/LightyControllerTest.java index 5b9fb36af6..7dac3ab79d 100644 --- a/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/impl/tests/LightyControllerTest.java +++ b/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/impl/tests/LightyControllerTest.java @@ -26,7 +26,7 @@ public void controllerSimpleTest() { Assert.assertNotNull(lightyController.getServices().getActorSystemProvider().getActorSystem()); Assert.assertNotNull(lightyController.getServices().getEffectiveModelContext()); Assert.assertNotNull(lightyController.getServices().getDOMSchemaService()); - Assert.assertNotNull(lightyController.getServices().getDOMYangTextSourceProvider()); + Assert.assertNotNull(lightyController.getServices().getYangTextSourceExtension()); Assert.assertNotNull(lightyController.getServices().getDOMNotificationRouter()); Assert.assertNotNull(lightyController.getServices().getConfigDatastore()); Assert.assertNotNull(lightyController.getServices().getOperationalDatastore()); From f4a5fa23568c28c96f641f17774eb7713fa3a6dc Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Thu, 15 Feb 2024 15:23:22 +0100 Subject: [PATCH 11/70] Do not use ClusterAdminService https://github.com/opendaylight/controller/commit/02b74456a89b728e2c32ade1523b509b0ff74f4d Signed-off-by: tobias.pobocik --- .../core/controller/guice/LightyControllerModule.java | 4 ++-- .../io/lighty/core/controller/guice/tests/TestService.java | 6 +++--- .../controller/spring/LightyCoreSpringConfiguration.java | 4 ++-- .../spring/LightyCoreSpringConfigurationTest.java | 4 ++-- .../java/io/lighty/core/controller/api/LightyServices.java | 4 ++-- .../lighty/core/controller/impl/LightyControllerImpl.java | 6 ++---- 6 files changed, 13 insertions(+), 15 deletions(-) diff --git a/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java b/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java index 052e458265..82476923d6 100644 --- a/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java +++ b/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java @@ -16,6 +16,7 @@ import io.netty.util.concurrent.EventExecutor; import org.opendaylight.controller.cluster.ActorSystemProvider; import org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface; +import org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcService; import org.opendaylight.controller.config.threadpool.ScheduledThreadPool; import org.opendaylight.controller.config.threadpool.ThreadPool; import org.opendaylight.infrautils.diagstatus.DiagStatusService; @@ -37,7 +38,6 @@ import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.ClusterAdminService; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -85,7 +85,7 @@ protected void configure() { .toInstance(lightyServices.getDOMEntityOwnershipService()); bind(EntityOwnershipService.class) .toInstance(lightyServices.getEntityOwnershipService()); - bind(ClusterAdminService.class) + bind(ClusterAdminRpcService.class) .toInstance(lightyServices.getClusterAdminRPCService()); bind(ClusterSingletonServiceProvider.class) .toInstance(lightyServices.getClusterSingletonServiceProvider()); diff --git a/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java b/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java index 34f8b17afb..a686e6b137 100644 --- a/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java +++ b/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java @@ -16,6 +16,7 @@ import jakarta.inject.Named; import org.opendaylight.controller.cluster.ActorSystemProvider; import org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface; +import org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcService; import org.opendaylight.controller.config.threadpool.ScheduledThreadPool; import org.opendaylight.controller.config.threadpool.ThreadPool; import org.opendaylight.infrautils.diagstatus.DiagStatusService; @@ -37,7 +38,6 @@ import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.ClusterAdminService; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; public class TestService { @@ -81,7 +81,7 @@ public class TestService { private EntityOwnershipService entityOwnershipService; @Inject - private ClusterAdminService clusterAdminService; + private ClusterAdminRpcService clusterAdminService; @Inject private ClusterSingletonServiceProvider clusterSingletonServiceProvider; @@ -195,7 +195,7 @@ public EntityOwnershipService getEntityOwnershipService() { return entityOwnershipService; } - public ClusterAdminService getClusterAdminService() { + public ClusterAdminRpcService getClusterAdminService() { return clusterAdminService; } diff --git a/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java b/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java index d936bcd629..fa7a952528 100644 --- a/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java +++ b/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java @@ -16,6 +16,7 @@ import jakarta.annotation.PreDestroy; import org.opendaylight.controller.cluster.ActorSystemProvider; import org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface; +import org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcService; import org.opendaylight.controller.config.threadpool.ScheduledThreadPool; import org.opendaylight.controller.config.threadpool.ThreadPool; import org.opendaylight.infrautils.diagstatus.DiagStatusService; @@ -37,7 +38,6 @@ import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.ClusterAdminService; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -222,7 +222,7 @@ public EntityOwnershipService entityOwnershipService() { } @Bean(destroyMethod = "") - public ClusterAdminService clusterAdminRPCService() { + public ClusterAdminRpcService clusterAdminRPCService() { return this.lightyController.getServices().getClusterAdminRPCService(); } diff --git a/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java b/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java index 07174e471d..db8b5e7b70 100644 --- a/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java +++ b/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java @@ -24,6 +24,7 @@ import org.junit.jupiter.api.Test; import org.opendaylight.controller.cluster.ActorSystemProvider; import org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface; +import org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcService; import org.opendaylight.controller.config.threadpool.ScheduledThreadPool; import org.opendaylight.controller.config.threadpool.ThreadPool; import org.opendaylight.infrautils.diagstatus.DiagStatusService; @@ -45,7 +46,6 @@ import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.ClusterAdminService; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -130,7 +130,7 @@ public class LightyCoreSpringConfigurationTest extends AbstractJUnit4SpringConte EntityOwnershipService entityOwnershipServiceTestProperty; @Autowired - ClusterAdminService clusterAdminRPCServiceTestProperty; + ClusterAdminRpcService clusterAdminRPCServiceTestProperty; @Autowired ClusterSingletonServiceProvider clusterSingletonServiceProviderTestProperty; diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java index b5dc2d1715..b31204e95f 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java @@ -13,6 +13,7 @@ import io.netty.util.concurrent.EventExecutor; import org.opendaylight.controller.cluster.ActorSystemProvider; import org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface; +import org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcService; import org.opendaylight.controller.config.threadpool.ScheduledThreadPool; import org.opendaylight.controller.config.threadpool.ThreadPool; import org.opendaylight.infrautils.diagstatus.DiagStatusService; @@ -41,7 +42,6 @@ import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.ClusterAdminService; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; @@ -83,7 +83,7 @@ public interface LightyServices extends LightyModuleRegistryService { EntityOwnershipService getEntityOwnershipService(); - ClusterAdminService getClusterAdminRPCService(); + ClusterAdminRpcService getClusterAdminRPCService(); ClusterSingletonServiceProvider getClusterSingletonServiceProvider(); diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java index bc229d930f..9946ee6ea5 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java @@ -118,7 +118,6 @@ import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; import org.opendaylight.mdsal.singleton.dom.impl.DOMClusterSingletonServiceProviderImpl; import org.opendaylight.mdsal.singleton.dom.impl.di.DefaultClusterSingletonServiceProvider; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.ClusterAdminService; import org.opendaylight.yangtools.concepts.ObjectRegistration; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.util.DurationStatisticsTracker; @@ -324,8 +323,7 @@ protected boolean initProcedure() { this.defaultEntityOwnershipService = new DefaultEntityOwnershipService( akkaEntityOwnershipService, this.codec); this.clusterAdminRpcService = - new ClusterAdminRpcService(this.configDatastore, this.operDatastore, this.codec.currentSerializer(), - this.akkaEntityOwnershipService); + new ClusterAdminRpcService(this.configDatastore, this.operDatastore, this.akkaEntityOwnershipService); this.clusterSingletonServiceProvider = new DefaultClusterSingletonServiceProvider(this.akkaEntityOwnershipService); @@ -557,7 +555,7 @@ public EntityOwnershipService getEntityOwnershipService() { } @Override - public ClusterAdminService getClusterAdminRPCService() { + public ClusterAdminRpcService getClusterAdminRPCService() { return this.clusterAdminRpcService; } From 0536e4b1492e4289656faa87126011057afd824a Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Thu, 15 Feb 2024 15:26:23 +0100 Subject: [PATCH 12/70] Rename singleton service components https://github.com/opendaylight/mdsal/commit/3ea5c72d92876e02e47f01827f3f8ac8d4fd09fb Signed-off-by: tobias.pobocik --- .../io/lighty/core/controller/guice/LightyControllerModule.java | 2 +- .../java/io/lighty/core/controller/guice/tests/TestService.java | 2 +- .../core/controller/spring/LightyCoreSpringConfiguration.java | 2 +- .../controller/spring/LightyCoreSpringConfigurationTest.java | 2 +- .../main/java/io/lighty/core/controller/api/LightyServices.java | 2 +- .../io/lighty/core/controller/impl/LightyControllerImpl.java | 2 +- .../src/main/java/io/lighty/modules/bgp/deployer/BgpModule.java | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java b/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java index 82476923d6..c2bc047692 100644 --- a/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java +++ b/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java @@ -37,7 +37,7 @@ import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java b/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java index a686e6b137..71d84779ab 100644 --- a/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java +++ b/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java @@ -37,7 +37,7 @@ import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; public class TestService { diff --git a/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java b/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java index fa7a952528..2be8f69a46 100644 --- a/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java +++ b/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java @@ -37,7 +37,7 @@ import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java b/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java index db8b5e7b70..2a5f5299e3 100644 --- a/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java +++ b/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java @@ -45,7 +45,7 @@ import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java index b31204e95f..dc83b3bc28 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java @@ -41,7 +41,7 @@ import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java index 9946ee6ea5..e464caf48b 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java @@ -115,7 +115,7 @@ import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.binding.dom.adapter.DefaultEntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.mdsal.singleton.dom.impl.DOMClusterSingletonServiceProviderImpl; import org.opendaylight.mdsal.singleton.dom.impl.di.DefaultClusterSingletonServiceProvider; import org.opendaylight.yangtools.concepts.ObjectRegistration; diff --git a/lighty-modules/lighty-bgp/src/main/java/io/lighty/modules/bgp/deployer/BgpModule.java b/lighty-modules/lighty-bgp/src/main/java/io/lighty/modules/bgp/deployer/BgpModule.java index de275a0757..1001c34f75 100644 --- a/lighty-modules/lighty-bgp/src/main/java/io/lighty/modules/bgp/deployer/BgpModule.java +++ b/lighty-modules/lighty-bgp/src/main/java/io/lighty/modules/bgp/deployer/BgpModule.java @@ -26,7 +26,7 @@ import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; import org.opendaylight.mdsal.binding.runtime.api.BindingRuntimeContext; import org.opendaylight.mdsal.dom.api.DOMDataBroker; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.protocol.bgp.openconfig.routing.policy.impl.DefaultBGPRibRoutingPolicyFactory; import org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.SimpleStatementRegistry; import org.opendaylight.protocol.bgp.openconfig.routing.policy.statement.StatementActivator; From 59e4a4eece48f63606a1fb5216f57516cb14c729 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Thu, 15 Feb 2024 15:08:47 +0100 Subject: [PATCH 13/70] Remove odl-controller-exp-netty-config https://github.com/opendaylight/controller/commit/9917911b1a492b5f9fbeef1591569f7fc4a80f68 Signed-off-by: tobias.pobocik --- .../guice/LightyControllerModule.java | 8 +++--- .../controller/guice/tests/TestService.java | 12 ++++----- .../spring/LightyCoreSpringConfiguration.java | 8 +++--- .../LightyCoreSpringConfigurationTest.java | 9 ++++--- lighty-core/lighty-controller/pom.xml | 8 ------ .../core/controller/api/LightyServices.java | 8 +++--- .../controller/impl/LightyControllerImpl.java | 27 +++++++++---------- .../community/impl/CommunityRestConf.java | 8 +++--- .../impl/CommunityRestConfBuilder.java | 6 ++--- 9 files changed, 43 insertions(+), 51 deletions(-) diff --git a/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java b/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java index c2bc047692..9b33a8804c 100644 --- a/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java +++ b/lighty-core/lighty-controller-guice-di/src/main/java/io/lighty/core/controller/guice/LightyControllerModule.java @@ -14,11 +14,11 @@ import io.netty.channel.EventLoopGroup; import io.netty.util.Timer; import io.netty.util.concurrent.EventExecutor; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.ScheduledExecutorService; import org.opendaylight.controller.cluster.ActorSystemProvider; import org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface; import org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcService; -import org.opendaylight.controller.config.threadpool.ScheduledThreadPool; -import org.opendaylight.controller.config.threadpool.ThreadPool; import org.opendaylight.infrautils.diagstatus.DiagStatusService; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.MountPointService; @@ -97,9 +97,9 @@ protected void configure() { bind(EventLoopGroup.class) .annotatedWith(Names.named("WorkerGroup")) .toInstance(lightyServices.getWorkerGroup()); - bind(ThreadPool.class) + bind(ExecutorService.class) .toInstance(lightyServices.getThreadPool()); - bind(ScheduledThreadPool.class) + bind(ScheduledExecutorService.class) .toInstance(lightyServices.getScheduledThreadPool()); bind(Timer.class) .toInstance(lightyServices.getTimer()); diff --git a/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java b/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java index 71d84779ab..76536ca4eb 100644 --- a/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java +++ b/lighty-core/lighty-controller-guice-di/src/test/java/io/lighty/core/controller/guice/tests/TestService.java @@ -14,11 +14,11 @@ import io.netty.util.concurrent.EventExecutor; import jakarta.inject.Inject; import jakarta.inject.Named; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.ScheduledExecutorService; import org.opendaylight.controller.cluster.ActorSystemProvider; import org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface; import org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcService; -import org.opendaylight.controller.config.threadpool.ScheduledThreadPool; -import org.opendaylight.controller.config.threadpool.ThreadPool; import org.opendaylight.infrautils.diagstatus.DiagStatusService; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.MountPointService; @@ -98,10 +98,10 @@ public class TestService { private EventLoopGroup eventLoopGroupWorker; @Inject - private ThreadPool threadPool; + private ExecutorService threadPool; @Inject - private ScheduledThreadPool scheduledThreadPool; + private ScheduledExecutorService scheduledThreadPool; @Inject private Timer timer; @@ -215,11 +215,11 @@ public EventLoopGroup getEventLoopGroupWorker() { return eventLoopGroupWorker; } - public ThreadPool getThreadPool() { + public ExecutorService getThreadPool() { return threadPool; } - public ScheduledThreadPool getScheduledThreadPool() { + public ScheduledExecutorService getScheduledThreadPool() { return scheduledThreadPool; } diff --git a/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java b/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java index 2be8f69a46..d4aaaa1b0c 100644 --- a/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java +++ b/lighty-core/lighty-controller-spring-di/src/main/java/io/lighty/core/controller/spring/LightyCoreSpringConfiguration.java @@ -14,11 +14,11 @@ import io.netty.util.concurrent.EventExecutor; import jakarta.annotation.PostConstruct; import jakarta.annotation.PreDestroy; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.ScheduledExecutorService; import org.opendaylight.controller.cluster.ActorSystemProvider; import org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface; import org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcService; -import org.opendaylight.controller.config.threadpool.ScheduledThreadPool; -import org.opendaylight.controller.config.threadpool.ThreadPool; import org.opendaylight.infrautils.diagstatus.DiagStatusService; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.MountPointService; @@ -273,12 +273,12 @@ public EventLoopGroup workerGroup() { @Bean(destroyMethod = "") @Primary - public ThreadPool threadPool() { + public ExecutorService threadPool() { return this.lightyController.getServices().getThreadPool(); } @Bean(destroyMethod = "") - public ScheduledThreadPool scheduledThreadPool() { + public ScheduledExecutorService scheduledThreadPool() { return this.lightyController.getServices().getScheduledThreadPool(); } diff --git a/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java b/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java index 2a5f5299e3..57740b1e7b 100644 --- a/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java +++ b/lighty-core/lighty-controller-spring-di/src/test/java/io/lighty/core/controller/spring/LightyCoreSpringConfigurationTest.java @@ -21,12 +21,12 @@ import io.netty.util.concurrent.EventExecutor; import java.util.Collections; import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.ScheduledExecutorService; import org.junit.jupiter.api.Test; import org.opendaylight.controller.cluster.ActorSystemProvider; import org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface; import org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcService; -import org.opendaylight.controller.config.threadpool.ScheduledThreadPool; -import org.opendaylight.controller.config.threadpool.ThreadPool; import org.opendaylight.infrautils.diagstatus.DiagStatusService; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.MountPointService; @@ -162,10 +162,11 @@ public class LightyCoreSpringConfigurationTest extends AbstractJUnit4SpringConte EventLoopGroup workerGroupTestProperty; @Autowired - ThreadPool threadPoolTestProperty; + ExecutorService threadPoolTestProperty; @Autowired - ScheduledThreadPool scheduledThreadPoolTestProperty; + @Qualifier("scheduledThreadPool") + ScheduledExecutorService scheduledThreadPoolTestProperty; @Autowired Timer timerTestProperty; diff --git a/lighty-core/lighty-controller/pom.xml b/lighty-core/lighty-controller/pom.xml index a237709005..d98b2203dc 100644 --- a/lighty-core/lighty-controller/pom.xml +++ b/lighty-core/lighty-controller/pom.xml @@ -164,14 +164,6 @@ io.netty netty-common - - org.opendaylight.controller - threadpool-config-api - - - org.opendaylight.controller - threadpool-config-impl - org.opendaylight.controller diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java index dc83b3bc28..fe94153415 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java @@ -11,11 +11,11 @@ import io.netty.channel.EventLoopGroup; import io.netty.util.Timer; import io.netty.util.concurrent.EventExecutor; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.ScheduledExecutorService; import org.opendaylight.controller.cluster.ActorSystemProvider; import org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface; import org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcService; -import org.opendaylight.controller.config.threadpool.ScheduledThreadPool; -import org.opendaylight.controller.config.threadpool.ThreadPool; import org.opendaylight.infrautils.diagstatus.DiagStatusService; import org.opendaylight.infrautils.ready.SystemReadyMonitor; import org.opendaylight.mdsal.binding.api.ActionProviderService; @@ -93,9 +93,9 @@ public interface LightyServices extends LightyModuleRegistryService { EventLoopGroup getWorkerGroup(); - ThreadPool getThreadPool(); + ExecutorService getThreadPool(); - ScheduledThreadPool getScheduledThreadPool(); + ScheduledExecutorService getScheduledThreadPool(); Timer getTimer(); diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java index e464caf48b..ebf0343413 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java @@ -43,6 +43,9 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import org.eclipse.jdt.annotation.Nullable; @@ -63,10 +66,6 @@ import org.opendaylight.controller.cluster.datastore.config.Configuration; import org.opendaylight.controller.cluster.datastore.config.ConfigurationImpl; import org.opendaylight.controller.cluster.datastore.config.HybridModuleShardConfigProvider; -import org.opendaylight.controller.config.threadpool.ScheduledThreadPool; -import org.opendaylight.controller.config.threadpool.ThreadPool; -import org.opendaylight.controller.config.threadpool.util.FixedThreadPoolWrapper; -import org.opendaylight.controller.config.threadpool.util.ScheduledThreadPoolWrapper; import org.opendaylight.controller.eos.akka.AkkaEntityOwnershipService; import org.opendaylight.controller.remote.rpc.RemoteOpsProvider; import org.opendaylight.controller.remote.rpc.RemoteOpsProviderConfig; @@ -175,8 +174,8 @@ public class LightyControllerImpl extends AbstractLightyModule implements Lighty private EventExecutor eventExecutor; private EventLoopGroup bossGroup; private EventLoopGroup workerGroup; - private ThreadPool threadPool; - private ScheduledThreadPool scheduledThreadPool; + private ExecutorService threadPool; + private ScheduledExecutorService scheduledThreadPool; private Timer timer; private ModuleInfoSnapshot moduleInfoSnapshot; private ModuleInfoSnapshotResolver snapshotResolver; @@ -346,9 +345,9 @@ protected boolean initProcedure() { this.eventExecutor = new DefaultEventExecutor(); this.timer = new HashedWheelTimer(); this.threadPool = - new FixedThreadPoolWrapper(2, new DefaultThreadFactory("default-pool")); + Executors.newFixedThreadPool(2, new DefaultThreadFactory("default-pool")); this.scheduledThreadPool = - new ScheduledThreadPoolWrapper(2, new DefaultThreadFactory("default-scheduled-pool")); + new ScheduledThreadPoolExecutor(2, new DefaultThreadFactory("default-scheduled-pool")); if (this.initialConfigData.isPresent()) { final InitialConfigData initialData = this.initialConfigData.get(); @@ -389,11 +388,11 @@ protected boolean stopProcedure() throws InterruptedException { if (this.timer != null) { this.timer.stop(); } - if (this.threadPool != null && this.threadPool.getExecutor() != null) { - this.threadPool.getExecutor().shutdown(); + if (this.threadPool != null) { + this.threadPool.shutdown(); } - if (this.scheduledThreadPool != null && this.scheduledThreadPool.getExecutor() != null) { - this.scheduledThreadPool.getExecutor().shutdown(); + if (this.scheduledThreadPool != null) { + this.scheduledThreadPool.shutdown(); } if (this.clusterSingletonServiceProvider != null) { this.clusterSingletonServiceProvider.close(); @@ -580,12 +579,12 @@ public EventLoopGroup getWorkerGroup() { } @Override - public ThreadPool getThreadPool() { + public ExecutorService getThreadPool() { return this.threadPool; } @Override - public ScheduledThreadPool getScheduledThreadPool() { + public ScheduledExecutorService getScheduledThreadPool() { return this.scheduledThreadPool; } diff --git a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java index 5caa6c40b7..fde9014b79 100644 --- a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java +++ b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java @@ -18,6 +18,7 @@ import io.lighty.server.LightyServerBuilder; import java.net.InetAddress; import java.net.InetSocketAddress; +import java.util.concurrent.ScheduledExecutorService; import javax.servlet.ServletContext; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.ContextHandlerCollection; @@ -27,7 +28,6 @@ import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory; import org.glassfish.jersey.server.ResourceConfig; import org.glassfish.jersey.servlet.ServletContainer; -import org.opendaylight.controller.config.threadpool.ScheduledThreadPool; import org.opendaylight.mdsal.dom.api.DOMActionService; import org.opendaylight.mdsal.dom.api.DOMDataBroker; import org.opendaylight.mdsal.dom.api.DOMMountPointService; @@ -61,14 +61,14 @@ public class CommunityRestConf extends AbstractLightyModule { private Server jettyServer; private LightyServerBuilder lightyServerBuilder; private SchemaContextHandler schemaCtxHandler; - private final ScheduledThreadPool scheduledThreadPool; + private final ScheduledExecutorService scheduledThreadPool; public CommunityRestConf(final DOMDataBroker domDataBroker, final DOMRpcService domRpcService, final DOMActionService domActionService, final DOMNotificationService domNotificationService, final DOMMountPointService domMountPointService, final DOMSchemaService domSchemaService, final InetAddress inetAddress, final int httpPort, final String restconfServletContextPath, - final LightyServerBuilder serverBuilder, final ScheduledThreadPool threadPool) { + final LightyServerBuilder serverBuilder, final ScheduledExecutorService threadPool) { this.domDataBroker = domDataBroker; this.domRpcService = domRpcService; this.domActionService = domActionService; @@ -86,7 +86,7 @@ public CommunityRestConf(final DOMDataBroker domDataBroker, final DOMRpcService domRpcService, final DOMActionService domActionService, final DOMNotificationService domNotificationService, final DOMMountPointService domMountPointService, final DOMSchemaService domSchemaService, final InetAddress inetAddress, final int httpPort, - final String restconfServletContextPath, final ScheduledThreadPool threadPool) { + final String restconfServletContextPath, final ScheduledExecutorService threadPool) { this(domDataBroker, domRpcService, domActionService, domNotificationService, domMountPointService, domSchemaService, inetAddress, httpPort, restconfServletContextPath, null, threadPool); diff --git a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConfBuilder.java b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConfBuilder.java index 7c9fb2c683..0061728f2d 100644 --- a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConfBuilder.java +++ b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConfBuilder.java @@ -9,7 +9,7 @@ import io.lighty.modules.northbound.restconf.community.impl.config.RestConfConfiguration; import io.lighty.server.LightyServerBuilder; -import org.opendaylight.controller.config.threadpool.ScheduledThreadPool; +import java.util.concurrent.ScheduledExecutorService; /** * Builder for {@link CommunityRestConf}. @@ -18,7 +18,7 @@ public final class CommunityRestConfBuilder { private RestConfConfiguration restconfConfiguration = null; private LightyServerBuilder lightyServerBuilder = null; - private ScheduledThreadPool threadPool = null; + private ScheduledExecutorService threadPool = null; private CommunityRestConfBuilder(final RestConfConfiguration configuration) { @@ -52,7 +52,7 @@ public CommunityRestConfBuilder withLightyServer(final LightyServerBuilder serve * @param pool input scheduledThreadPool. * @return instance of {@link CommunityRestConfBuilder}. */ - public CommunityRestConfBuilder withScheduledThreadPool(final ScheduledThreadPool pool) { + public CommunityRestConfBuilder withScheduledThreadPool(final ScheduledExecutorService pool) { this.threadPool = pool; return this; } From 1add9e982b36c5d7443400eb2226a9d4dbbfc584 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Fri, 16 Feb 2024 12:11:50 +0100 Subject: [PATCH 14/70] Do not use DOMClusterSingletonServiceProviderImpl https://github.com/opendaylight/mdsal/commit/73703bbaabbb0044bac5c859c25e51bb6b723b7f Signed-off-by: tobias.pobocik --- .../lighty/core/controller/impl/LightyControllerImpl.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java index ebf0343413..1925f89a1f 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java @@ -115,8 +115,7 @@ import org.opendaylight.mdsal.eos.binding.dom.adapter.DefaultEntityOwnershipService; import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; -import org.opendaylight.mdsal.singleton.dom.impl.DOMClusterSingletonServiceProviderImpl; -import org.opendaylight.mdsal.singleton.dom.impl.di.DefaultClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.impl.EOSClusterSingletonServiceProvider; import org.opendaylight.yangtools.concepts.ObjectRegistration; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.util.DurationStatisticsTracker; @@ -166,7 +165,7 @@ public class LightyControllerImpl extends AbstractLightyModule implements Lighty private AkkaEntityOwnershipService akkaEntityOwnershipService; private DefaultEntityOwnershipService defaultEntityOwnershipService; private ClusterAdminRpcService clusterAdminRpcService; - private DOMClusterSingletonServiceProviderImpl clusterSingletonServiceProvider; + private EOSClusterSingletonServiceProvider clusterSingletonServiceProvider; private NotificationService notificationService; private NotificationPublishService notificationPublishService; private DataBroker dataBroker; @@ -325,8 +324,7 @@ protected boolean initProcedure() { new ClusterAdminRpcService(this.configDatastore, this.operDatastore, this.akkaEntityOwnershipService); this.clusterSingletonServiceProvider = - new DefaultClusterSingletonServiceProvider(this.akkaEntityOwnershipService); - this.clusterSingletonServiceProvider.initializeProvider(); + new EOSClusterSingletonServiceProvider (this.akkaEntityOwnershipService); //create binding mount point service this.mountPointService = new BindingDOMMountPointServiceAdapter(this.codec, this.domMountPointService); From 066b393100f80148b89ad77780fc53546905c96e Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Fri, 16 Feb 2024 10:30:54 +0100 Subject: [PATCH 15/70] Adopt DOMNotificationRouter initialization changes Remove create() method, as it has been deprecated long time ago. https://github.com/opendaylight/mdsal/commit/3eca227fa1f7819ed5d4a74c810047171f0e981e Signed-off-by: tobias.pobocik --- .../io/lighty/core/controller/impl/LightyControllerImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java index 1925f89a1f..703839167c 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java @@ -212,7 +212,7 @@ public LightyControllerImpl(final ExecutorService executorService, final Config this.actorSystemConfig = actorSystemConfig; this.actorSystemClassLoader = actorSystemClassLoader; this.domMountPointService = new DOMMountPointServiceImpl(); - this.domNotificationRouter = DOMNotificationRouter.create(domNotificationRouterConfig.getQueueDepth()); + this.domNotificationRouter = new DOMNotificationRouter(domNotificationRouterConfig.getQueueDepth()); this.restoreDirectoryPath = restoreDirectoryPath; this.maxDataBrokerFutureCallbackQueueSize = maxDataBrokerFutureCallbackQueueSize; this.maxDataBrokerFutureCallbackPoolSize = maxDataBrokerFutureCallbackPoolSize; From 7d6d08794258614dca0275c40f507108edd6a235 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Fri, 16 Feb 2024 10:35:57 +0100 Subject: [PATCH 16/70] Reduce ObjectRegistration use https://github.com/opendaylight/mdsal/commit/5f8a373c07549a901b70595067dd11c161d0c4e4 Signed-off-by: tobias.pobocik --- .../api/LightyModuleRegistryService.java | 5 +++-- .../core/controller/impl/LightyControllerImpl.java | 5 ++--- .../lighty/examples/controllers/actions/Main.java | 14 ++++++-------- .../binding/ServerResetRegistrationUtil.java | 4 ++-- .../actions/dom/DeviceStartRegistrationUtil.java | 5 ++--- 5 files changed, 15 insertions(+), 18 deletions(-) diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyModuleRegistryService.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyModuleRegistryService.java index c5079ab539..58f5774433 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyModuleRegistryService.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyModuleRegistryService.java @@ -8,7 +8,7 @@ package io.lighty.core.controller.api; import java.util.List; -import org.opendaylight.yangtools.concepts.ObjectRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; /** @@ -19,8 +19,9 @@ public interface LightyModuleRegistryService { /** * Register instances of Yang modules into global schema context. + * * @param yangModuleInfos modules to register * @return list of registrations */ - List> registerModuleInfos(Iterable yangModuleInfos); + List registerModuleInfos(Iterable yangModuleInfos); } diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java index 703839167c..d08b1c0910 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java @@ -116,7 +116,6 @@ import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.mdsal.singleton.impl.EOSClusterSingletonServiceProvider; -import org.opendaylight.yangtools.concepts.ObjectRegistration; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.util.DurationStatisticsTracker; import org.opendaylight.yangtools.util.concurrent.SpecialExecutors; @@ -188,7 +187,7 @@ public class LightyControllerImpl extends AbstractLightyModule implements Lighty private ActionService actionService; private ActionProviderService actionProviderService; private final LightySystemReadyMonitorImpl systemReadyMonitor; - private List> modelsRegistration = new ArrayList<>(); + private List modelsRegistration = new ArrayList<>(); private AkkaManagement akkaManagement; private Optional clusteringHandler; private Optional initialConfigData; @@ -667,7 +666,7 @@ public ActionService getActionService() { } @Override - public List> registerModuleInfos( + public List registerModuleInfos( Iterable yangModuleInfos) { return this.snapshotResolver.registerModuleInfos(yangModuleInfos); } diff --git a/lighty-examples/lighty-community-restconf-actions-app/src/main/java/io/lighty/examples/controllers/actions/Main.java b/lighty-examples/lighty-community-restconf-actions-app/src/main/java/io/lighty/examples/controllers/actions/Main.java index b23566f37c..76fb55352e 100644 --- a/lighty-examples/lighty-community-restconf-actions-app/src/main/java/io/lighty/examples/controllers/actions/Main.java +++ b/lighty-examples/lighty-community-restconf-actions-app/src/main/java/io/lighty/examples/controllers/actions/Main.java @@ -40,9 +40,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import org.opendaylight.mdsal.dom.api.DOMActionImplementation; -import org.opendaylight.yang.gen.v1.urn.example.data.center.rev180807.server.Reset; -import org.opendaylight.yangtools.concepts.ObjectRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -55,8 +53,8 @@ public class Main { private CommunityRestConf restconf; private LightyModule netconfSBPlugin; private ModulesConfig modulesConfig = ModulesConfig.getDefaultModulesConfig(); - private ObjectRegistration domActionRegistration; - private ObjectRegistration bindingActionRegistration; + private Registration domActionRegistration; + private Registration bindingActionRegistration; public static void main(final String[] args) { final Main app = new Main(); @@ -102,7 +100,7 @@ public void start(String[] args, boolean registerShutdownHook) { modelPaths.addAll(ControllerConfigUtils.YANG_MODELS); modelPaths.addAll(RestConfConfigUtils.YANG_MODELS); modelPaths.addAll(NetconfConfigUtils.NETCONF_TOPOLOGY_MODELS); - modelPaths.add(org.opendaylight.yang.gen.v1.urn.example.data.center.rev180807 + modelPaths.add(org.opendaylight.yang.svc.v1.urn.example.data.center.rev180807 .YangModuleInfoImpl.getInstance()); final ArrayNode arrayNode = YangModuleUtils.generateJSONModelSetConfiguration(modelPaths); //0. print the list of schema context models @@ -122,10 +120,10 @@ public void start(String[] args, boolean registerShutdownHook) { LOG.info("Lighty.io and RESTCONF-ACTIONS started in {}", stopwatch.stop()); // Register example DOM action domActionRegistration = DeviceStartRegistrationUtil.registerDOMAction(lightyController); - LOG.info("Example DOM action implementation registered: {}", domActionRegistration.getInstance()); + LOG.info("Example DOM action implementation registered: {}", domActionRegistration); // Register example binding action bindingActionRegistration = ServerResetRegistrationUtil.registerBindingAction(lightyController); - LOG.info("Example binding action implementation registered: {}", bindingActionRegistration.getInstance()); + LOG.info("Example binding action implementation registered: {}", bindingActionRegistration); } catch (IOException e) { LOG.error("Main RESTCONF-ACTIONS application - error reading config file: ", e); shutdown(); diff --git a/lighty-examples/lighty-community-restconf-actions-app/src/main/java/io/lighty/examples/controllers/actions/binding/ServerResetRegistrationUtil.java b/lighty-examples/lighty-community-restconf-actions-app/src/main/java/io/lighty/examples/controllers/actions/binding/ServerResetRegistrationUtil.java index 6ccbb1ed4e..d3d7a4ee01 100644 --- a/lighty-examples/lighty-community-restconf-actions-app/src/main/java/io/lighty/examples/controllers/actions/binding/ServerResetRegistrationUtil.java +++ b/lighty-examples/lighty-community-restconf-actions-app/src/main/java/io/lighty/examples/controllers/actions/binding/ServerResetRegistrationUtil.java @@ -14,7 +14,7 @@ import org.opendaylight.yang.gen.v1.urn.example.data.center.rev180807.Server; import org.opendaylight.yang.gen.v1.urn.example.data.center.rev180807.ServerKey; import org.opendaylight.yang.gen.v1.urn.example.data.center.rev180807.server.Reset; -import org.opendaylight.yangtools.concepts.ObjectRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public final class ServerResetRegistrationUtil { @@ -29,7 +29,7 @@ private ServerResetRegistrationUtil() { * @param lightyController {@code LightyController} instance for easy access to controller services. * @return {@code ObjectRegistration} Registration instance of binding action implementation on the controller. */ - public static ObjectRegistration registerBindingAction(final LightyController lightyController) { + public static Registration registerBindingAction(final LightyController lightyController) { final var actionProviderService = lightyController.getServices().getActionProviderService(); final var validNode = InstanceIdentifier.builder(Server.class, new ServerKey("server-earth")).build(); diff --git a/lighty-examples/lighty-community-restconf-actions-app/src/main/java/io/lighty/examples/controllers/actions/dom/DeviceStartRegistrationUtil.java b/lighty-examples/lighty-community-restconf-actions-app/src/main/java/io/lighty/examples/controllers/actions/dom/DeviceStartRegistrationUtil.java index e4a9cdf795..6058f571d3 100644 --- a/lighty-examples/lighty-community-restconf-actions-app/src/main/java/io/lighty/examples/controllers/actions/dom/DeviceStartRegistrationUtil.java +++ b/lighty-examples/lighty-community-restconf-actions-app/src/main/java/io/lighty/examples/controllers/actions/dom/DeviceStartRegistrationUtil.java @@ -9,12 +9,11 @@ import io.lighty.core.controller.api.LightyController; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.mdsal.dom.api.DOMActionImplementation; import org.opendaylight.mdsal.dom.api.DOMActionInstance; import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; import org.opendaylight.yang.gen.v1.urn.example.data.center.rev180807.Device; import org.opendaylight.yang.gen.v1.urn.example.data.center.rev180807.device.Start; -import org.opendaylight.yangtools.concepts.ObjectRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; @@ -30,7 +29,7 @@ private DeviceStartRegistrationUtil() { * @param lightyController {@code LightyController} instance for easy access to controller services. * @return {@code ObjectRegistration} Registration instance of the DOM action implementation on the controller. */ - public static ObjectRegistration registerDOMAction( + public static Registration registerDOMAction( final LightyController lightyController) { final var domActionProviderService = lightyController.getServices().getDOMActionProviderService(); final var domDataTreeIdentifier = new DOMDataTreeIdentifier(LogicalDatastoreType.OPERATIONAL, From 201cade5e77e0ae6f20a4f95057e415d383ec536 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Fri, 16 Feb 2024 10:45:04 +0100 Subject: [PATCH 17/70] Adopt changes from ModuleInfoSnapshot https://github.com/opendaylight/mdsal/commit/8a0509e7b8909c4fa5b1b4b54b62a6474e55a8eb#diff-8628ace13c6468aa2c0c16616cd429cecf6f62af594e5e26de075977982cce64 Signed-off-by: tobias.pobocik --- .../lighty/core/controller/impl/LightyControllerImpl.java | 8 ++++++-- .../southbound/mountpoint/GnmiMountPointRegistrator.java | 2 +- .../netconf/tests/NetconfBaseServiceBaseTest.java | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java index d08b1c0910..72438660e9 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java @@ -10,6 +10,7 @@ import akka.actor.Terminated; import akka.management.javadsl.AkkaManagement; import com.google.common.base.Stopwatch; +import com.google.common.util.concurrent.ListenableFuture; import com.typesafe.config.Config; import io.lighty.codecs.util.exception.DeserializationException; import io.lighty.core.cluster.ClusteringHandler; @@ -121,6 +122,8 @@ import org.opendaylight.yangtools.util.concurrent.SpecialExecutors; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; +import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier; +import org.opendaylight.yangtools.yang.model.api.source.YangTextSource; import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; import org.opendaylight.yangtools.yang.parser.impl.DefaultYangParserFactory; import org.opendaylight.yangtools.yang.xpath.api.YangXPathParserFactory; @@ -269,13 +272,14 @@ protected boolean initProcedure() { this.snapshotResolver = new ModuleInfoSnapshotResolver("binding-dom-codec", yangParserFactory); this.modelsRegistration = snapshotResolver.registerModuleInfos(modelSet); this.moduleInfoSnapshot = snapshotResolver.takeSnapshot(); - this.schemaService = FixedDOMSchemaService.of(this.moduleInfoSnapshot, this.moduleInfoSnapshot); + this.schemaService = new FixedDOMSchemaService(this::getEffectiveModelContext, + sourceId -> (ListenableFuture) moduleInfoSnapshot.yangTextSource(sourceId)); // INIT CODEC FACTORY final BindingRuntimeGenerator bindingRuntimeGenerator = new DefaultBindingRuntimeGenerator(); final BindingRuntimeTypes bindingRuntimeTypes = bindingRuntimeGenerator - .generateTypeMapping(moduleInfoSnapshot.getEffectiveModelContext()); + .generateTypeMapping(moduleInfoSnapshot.modelContext()); final DefaultBindingRuntimeContext bindingRuntimeContext = new DefaultBindingRuntimeContext(bindingRuntimeTypes, moduleInfoSnapshot); diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/mountpoint/GnmiMountPointRegistrator.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/mountpoint/GnmiMountPointRegistrator.java index 1322f5f459..b0dedb748e 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/mountpoint/GnmiMountPointRegistrator.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/mountpoint/GnmiMountPointRegistrator.java @@ -45,7 +45,7 @@ public void registerMountPoint(final Node node, final EffectiveModelContext sche "Mount point for node %s already exists!", node.getNodeId().getValue()); final DOMMountPointService.DOMMountPointBuilder builder = mountPointService .createMountPoint(IdentifierUtils.nodeidToYii(node.getNodeId())); - builder.addService(DOMSchemaService.class, FixedDOMSchemaService.of(schemaContext)); + builder.addService(DOMSchemaService.class, new FixedDOMSchemaService(schemaContext)); builder.addService(DOMDataBroker.class, dataBroker); final ObjectRegistration registration = builder.register(); registeredMountPoints.put(node.getNodeId(), registration); diff --git a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceBaseTest.java b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceBaseTest.java index 0f4f689689..d05cee2540 100644 --- a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceBaseTest.java +++ b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceBaseTest.java @@ -88,6 +88,6 @@ private static EffectiveModelContext getEffectiveModelContext(final List Date: Fri, 16 Feb 2024 11:04:57 +0100 Subject: [PATCH 18/70] Rename DOMRpcRouterServices methods https://github.com/opendaylight/mdsal/commit/9b087694461050f829843013b4247e7d90338eaf Signed-off-by: tobias.pobocik --- .../core/controller/impl/LightyControllerImpl.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java index 72438660e9..0221ae93ba 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java @@ -298,8 +298,8 @@ protected boolean initProcedure() { createConcurrentDOMDataBroker(); this.domRpcRouter = DOMRpcRouter.newInstance(this.schemaService); - this.domActionProviderService = domRpcRouter.getActionProviderService(); - this.domActionService = domRpcRouter.getActionService(); + this.domActionProviderService = domRpcRouter.actionProviderService(); + this.domActionService = domRpcRouter.actionService(); createRemoteOpsProvider(); this.bindingAdapterFactory = new BindingAdapterFactory(getAdapterContext()); @@ -309,7 +309,7 @@ protected boolean initProcedure() { rpcConsumerRegistry = bindingAdapterFactory.createRpcConsumerRegistry(domRpcRouter.getRpcService()); this.rpcProviderService = new BindingDOMRpcProviderServiceAdapter(this.codec, - this.domRpcRouter.getRpcProviderService()); + this.domRpcRouter.rpcProviderService()); // ENTITY OWNERSHIP try { @@ -456,8 +456,8 @@ protected boolean stopProcedure() throws InterruptedException { private void createRemoteOpsProvider() { final RemoteOpsProviderConfig remoteOpsProviderConfig = RemoteOpsProviderConfig.newInstance( this.actorSystemProvider.getActorSystem().name(), this.metricCaptureEnabled, this.mailboxCapacity); - this.remoteOpsProvider = RemoteOpsProviderFactory.createInstance(this.domRpcRouter.getRpcProviderService(), - this.domRpcRouter.getRpcService(), this.actorSystemProvider.getActorSystem(), remoteOpsProviderConfig, + this.remoteOpsProvider = RemoteOpsProviderFactory.createInstance(this.domRpcRouter.rpcProviderService(), + this.domRpcRouter.rpcService(), this.actorSystemProvider.getActorSystem(), remoteOpsProviderConfig, this.domActionProviderService, this.domActionService); this.remoteOpsProvider.start(); } @@ -616,12 +616,12 @@ public DOMDataBroker getClusteredDOMDataBroker() { @Override public DOMRpcService getDOMRpcService() { - return this.domRpcRouter.getRpcService(); + return this.domRpcRouter.rpcService(); } @Override public DOMRpcProviderService getDOMRpcProviderService() { - return this.domRpcRouter.getRpcProviderService(); + return this.domRpcRouter.rpcProviderService(); } @Override From b84e8e1f0e904730c0ef0758e51ce3a2a6310688 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Fri, 16 Feb 2024 12:22:35 +0100 Subject: [PATCH 19/70] Remove support for composite NotificationListener https://github.com/opendaylight/mdsal/commit/102cb4f97d7ce0c79a9f0f0e03e29d2793735e2f Signed-off-by: tobias.pobocik --- .../lighty/core/controller/impl/LightyControllerImpl.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java index 0221ae93ba..eba6edb4f7 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java @@ -332,9 +332,10 @@ protected boolean initProcedure() { //create binding mount point service this.mountPointService = new BindingDOMMountPointServiceAdapter(this.codec, this.domMountPointService); - this.notificationService = new BindingDOMNotificationServiceAdapter(this.codec, this.domNotificationRouter); - this.notificationPublishService = - new BindingDOMNotificationPublishServiceAdapter(this.codec, this.domNotificationRouter); + this.notificationService = new BindingDOMNotificationServiceAdapter( + this.codec, this.domNotificationRouter.notificationService()); + this.notificationPublishService = new BindingDOMNotificationPublishServiceAdapter( + this.codec, this.domNotificationRouter.notificationPublishService()); //create data broker this.dataBroker = bindingAdapterFactory.createDataBroker(concurrentDOMDataBroker); From 98ed6096c5ff87489f8f269f7d4739ffb45bb9ee Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Fri, 16 Feb 2024 12:27:41 +0100 Subject: [PATCH 20/70] Throw ExecutionException to close ClusterSingletonServiceProvider https://github.com/opendaylight/mdsal/commit/73703bbaabbb0044bac5c859c25e51bb6b723b7f#diff-43a796317a5256922fea2d77b9934276abe1fb0426e9300ad171ee7b92fdbd19 Signed-off-by: tobias.pobocik --- .../io/lighty/core/controller/api/AbstractLightyModule.java | 3 ++- .../io/lighty/core/controller/impl/LightyControllerImpl.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/AbstractLightyModule.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/AbstractLightyModule.java index 68267d2e29..101ad8f942 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/AbstractLightyModule.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/AbstractLightyModule.java @@ -13,6 +13,7 @@ import com.google.common.util.concurrent.ListeningExecutorService; import com.google.common.util.concurrent.MoreExecutors; import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; @@ -98,7 +99,7 @@ public AbstractLightyModule() { * @return success of stop. * @throws InterruptedException if stopping was interrupted. */ - protected abstract boolean stopProcedure() throws InterruptedException; + protected abstract boolean stopProcedure() throws InterruptedException, ExecutionException; @Override public synchronized ListenableFuture start() { diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java index eba6edb4f7..2d249d0eeb 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java @@ -384,7 +384,7 @@ private AbstractDataStore prepareDataStore(final DatastoreContext datastoreConte } @Override - protected boolean stopProcedure() throws InterruptedException { + protected boolean stopProcedure() throws InterruptedException, ExecutionException { LOG.debug("Lighty Controller stopProcedure"); boolean stopSuccessful = true; if (this.timer != null) { From b3dd9e1560edc5fc23367390926a0899b601c0d0 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Fri, 16 Feb 2024 14:57:42 +0100 Subject: [PATCH 21/70] Remove SchemaContextHandler https://github.com/opendaylight/netconf/commit/d9f3b7bd66f2a4937dc47a4b99ccb14ebc248d78#diff-38f0b6a2777b72dee34293956a4d5daf7b48a52150b0ec20f24b8d820a9c4875 Signed-off-by: tobias.pobocik --- .../restconf/community/impl/CommunityRestConf.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java index fde9014b79..0fc36ae5fa 100644 --- a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java +++ b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java @@ -38,7 +38,6 @@ import org.opendaylight.restconf.nb.rfc8040.RestconfApplication; import org.opendaylight.restconf.nb.rfc8040.databind.DatabindProvider; import org.opendaylight.restconf.nb.rfc8040.databind.mdsal.DOMDatabindProvider; -import org.opendaylight.restconf.nb.rfc8040.handlers.SchemaContextHandler; import org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfDataStreamServiceImpl; import org.opendaylight.restconf.nb.rfc8040.streams.StreamsConfiguration; import org.opendaylight.restconf.nb.rfc8040.streams.WebSocketInitializer; @@ -60,7 +59,6 @@ public class CommunityRestConf extends AbstractLightyModule { private final String restconfServletContextPath; private Server jettyServer; private LightyServerBuilder lightyServerBuilder; - private SchemaContextHandler schemaCtxHandler; private final ScheduledExecutorService scheduledThreadPool; public CommunityRestConf(final DOMDataBroker domDataBroker, final DOMRpcService domRpcService, @@ -99,8 +97,6 @@ protected boolean initProcedure() { LOG.info("Starting RestconfApplication with configuration {}", streamsConfiguration); - this.schemaCtxHandler = new SchemaContextHandler(this.domDataBroker, this.domSchemaService); - final DatabindProvider databindProvider = new DOMDatabindProvider(domSchemaService); final RestconfApplication restconfApplication = new RestconfApplication(databindProvider, this.domMountPointService, this.domDataBroker, this.domRpcService, this.domActionService, @@ -165,10 +161,6 @@ protected boolean initProcedure() { @Override protected boolean stopProcedure() { boolean stopFailed = false; - if (this.schemaCtxHandler != null) { - this.schemaCtxHandler.close(); - LOG.info("Schema context handler closed"); - } if (this.jettyServer != null) { try { this.jettyServer.stop(); From 382235b0823c54734c5607871d9b36326257d514 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Fri, 16 Feb 2024 16:35:34 +0100 Subject: [PATCH 22/70] Do not use RestconfStreamsConstants https://github.com/opendaylight/netconf/commit/15560bb503af74e75ee5851e988eaf02137e6a81#diff-de1863c69e2703800852ce3e9f6a53a0366670ae9e77bc3d735302ba91b17911 Signed-off-by: tobias.pobocik --- .../restconf/community/impl/CommunityRestConf.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java index 0fc36ae5fa..eee47fa2b2 100644 --- a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java +++ b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java @@ -7,9 +7,6 @@ */ package io.lighty.modules.northbound.restconf.community.impl; -import static org.opendaylight.restconf.nb.rfc8040.rests.utils.RestconfStreamsConstants.DATA_SUBSCRIPTION; -import static org.opendaylight.restconf.nb.rfc8040.rests.utils.RestconfStreamsConstants.NOTIFICATION_STREAM; - import com.google.common.base.Stopwatch; import com.google.common.base.Throwables; import io.lighty.core.controller.api.AbstractLightyModule; @@ -124,9 +121,9 @@ protected boolean initProcedure() { mainHandler.addServlet(dataStreamHolder, "/notif/*"); final ServletContextHandler dataHandler = new ServletContextHandler( - contexts, "/" + DATA_SUBSCRIPTION, true, false); + contexts, "/" + "data-change-event-subscription", true, false); final ServletContextHandler notifHandler = new ServletContextHandler( - contexts, "/" + NOTIFICATION_STREAM, true, false); + contexts, "/" + "notification-stream", true, false); final WebSocketInitializer webSocketInitializer = new WebSocketInitializer( scheduledThreadPool, streamsConfiguration); final ServletContext context = notifHandler.getServletContext(); From 6df1fe2cdddc345abf480b33fcb7f250f973d70a Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 20 Feb 2024 15:23:37 +0100 Subject: [PATCH 23/70] Inline RestconfApplication https://github.com/opendaylight/netconf/commit/a7da81d5c42014dfef9e2ce4338e8acc501d1a24 Signed-off-by: tobias.pobocik --- .../community/impl/CommunityRestConf.java | 39 +++++++++++++++---- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java index eee47fa2b2..118e03ac21 100644 --- a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java +++ b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java @@ -15,8 +15,10 @@ import io.lighty.server.LightyServerBuilder; import java.net.InetAddress; import java.net.InetSocketAddress; +import java.util.Set; import java.util.concurrent.ScheduledExecutorService; import javax.servlet.ServletContext; +import javax.ws.rs.core.Application; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.ContextHandlerCollection; import org.eclipse.jetty.servlet.ServletContextHandler; @@ -31,12 +33,18 @@ import org.opendaylight.mdsal.dom.api.DOMNotificationService; import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.api.DOMSchemaService; +import org.opendaylight.restconf.nb.jaxrs.JaxRsRestconf; import org.opendaylight.restconf.nb.rfc8040.DataStreamApplication; -import org.opendaylight.restconf.nb.rfc8040.RestconfApplication; -import org.opendaylight.restconf.nb.rfc8040.databind.DatabindProvider; -import org.opendaylight.restconf.nb.rfc8040.databind.mdsal.DOMDatabindProvider; +import org.opendaylight.restconf.nb.rfc8040.jersey.providers.JsonNormalizedNodeBodyWriter; +import org.opendaylight.restconf.nb.rfc8040.jersey.providers.JsonPatchStatusBodyWriter; +import org.opendaylight.restconf.nb.rfc8040.jersey.providers.XmlNormalizedNodeBodyWriter; +import org.opendaylight.restconf.nb.rfc8040.jersey.providers.XmlPatchStatusBodyWriter; +import org.opendaylight.restconf.nb.rfc8040.jersey.providers.errors.RestconfDocumentedExceptionMapper; import org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfDataStreamServiceImpl; import org.opendaylight.restconf.nb.rfc8040.streams.StreamsConfiguration; +import org.opendaylight.restconf.server.api.DatabindContext; +import org.opendaylight.restconf.server.mdsal.MdsalRestconfServer; +import org.opendaylight.restconf.server.spi.DatabindProvider; import org.opendaylight.restconf.nb.rfc8040.streams.WebSocketInitializer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -94,14 +102,29 @@ protected boolean initProcedure() { LOG.info("Starting RestconfApplication with configuration {}", streamsConfiguration); - final DatabindProvider databindProvider = new DOMDatabindProvider(domSchemaService); - final RestconfApplication restconfApplication = new RestconfApplication(databindProvider, - this.domMountPointService, this.domDataBroker, this.domRpcService, this.domActionService, - this.domNotificationService, this.domSchemaService, streamsConfiguration); + final DatabindProvider databindProvider = () -> DatabindContext.ofModel(domSchemaService.getGlobalContext()); + final var server = new MdsalRestconfServer(domSchemaService, domDataBroker, domRpcService, domActionService, + domMountPointService); + final DataStreamApplication dataStreamApplication = new DataStreamApplication(databindProvider, this.domMountPointService, new RestconfDataStreamServiceImpl(scheduledThreadPool, streamsConfiguration)); final ServletContainer servletContainer8040 = new ServletContainer(ResourceConfig - .forApplication(restconfApplication)); + .forApplication(new Application() { + @Override + public Set> getClasses() { + return Set.of( + JsonNormalizedNodeBodyWriter.class, XmlNormalizedNodeBodyWriter.class, + JsonPatchStatusBodyWriter.class, XmlPatchStatusBodyWriter.class); + } + + @Override + public Set getSingletons() { + return Set.of( + new RestconfDocumentedExceptionMapper(databindProvider), + new JaxRsRestconf(server)); + } + })); + final ServletHolder jaxrs = new ServletHolder(servletContainer8040); final ServletContainer dataStreamServletContainer = new ServletContainer( From bfec31f1c393fd6dba4c4c4b1abc9ad86f1589c6 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Wed, 21 Feb 2024 10:03:07 +0100 Subject: [PATCH 24/70] Remove WebSocketInitializer This class is now being used as MdsalRestconfServer https://github.com/opendaylight/netconf/commit/8616c9655db145125c23ca8e66b5f27745126458#diff-376c5563bf06e2094dcf7bbb468c89fdd3664942a63e4bfad364d3350986cc82 Signed-off-by: tobias.pobocik --- .../community/impl/CommunityRestConf.java | 25 ------------------- 1 file changed, 25 deletions(-) diff --git a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java index 118e03ac21..df332ae479 100644 --- a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java +++ b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java @@ -17,14 +17,11 @@ import java.net.InetSocketAddress; import java.util.Set; import java.util.concurrent.ScheduledExecutorService; -import javax.servlet.ServletContext; import javax.ws.rs.core.Application; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.ContextHandlerCollection; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; -import org.eclipse.jetty.websocket.server.WebSocketServerFactory; -import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory; import org.glassfish.jersey.server.ResourceConfig; import org.glassfish.jersey.servlet.ServletContainer; import org.opendaylight.mdsal.dom.api.DOMActionService; @@ -34,18 +31,15 @@ import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.api.DOMSchemaService; import org.opendaylight.restconf.nb.jaxrs.JaxRsRestconf; -import org.opendaylight.restconf.nb.rfc8040.DataStreamApplication; import org.opendaylight.restconf.nb.rfc8040.jersey.providers.JsonNormalizedNodeBodyWriter; import org.opendaylight.restconf.nb.rfc8040.jersey.providers.JsonPatchStatusBodyWriter; import org.opendaylight.restconf.nb.rfc8040.jersey.providers.XmlNormalizedNodeBodyWriter; import org.opendaylight.restconf.nb.rfc8040.jersey.providers.XmlPatchStatusBodyWriter; import org.opendaylight.restconf.nb.rfc8040.jersey.providers.errors.RestconfDocumentedExceptionMapper; -import org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfDataStreamServiceImpl; import org.opendaylight.restconf.nb.rfc8040.streams.StreamsConfiguration; import org.opendaylight.restconf.server.api.DatabindContext; import org.opendaylight.restconf.server.mdsal.MdsalRestconfServer; import org.opendaylight.restconf.server.spi.DatabindProvider; -import org.opendaylight.restconf.nb.rfc8040.streams.WebSocketInitializer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -106,8 +100,6 @@ protected boolean initProcedure() { final var server = new MdsalRestconfServer(domSchemaService, domDataBroker, domRpcService, domActionService, domMountPointService); - final DataStreamApplication dataStreamApplication = new DataStreamApplication(databindProvider, - this.domMountPointService, new RestconfDataStreamServiceImpl(scheduledThreadPool, streamsConfiguration)); final ServletContainer servletContainer8040 = new ServletContainer(ResourceConfig .forApplication(new Application() { @Override @@ -127,10 +119,6 @@ public Set getSingletons() { final ServletHolder jaxrs = new ServletHolder(servletContainer8040); - final ServletContainer dataStreamServletContainer = new ServletContainer( - ResourceConfig.forApplication(dataStreamApplication)); - final ServletHolder dataStreamHolder = new ServletHolder(dataStreamServletContainer); - LOG.info("RestConf init complete, starting Jetty"); LOG.info("http address:port {}:{}, url prefix: {}", this.inetAddress.toString(), this.httpPort, this.restconfServletContextPath); @@ -141,19 +129,6 @@ public Set getSingletons() { final ServletContextHandler mainHandler = new ServletContextHandler(contexts, this.restconfServletContextPath, true, false); mainHandler.addServlet(jaxrs, "/*"); - mainHandler.addServlet(dataStreamHolder, "/notif/*"); - - final ServletContextHandler dataHandler = new ServletContextHandler( - contexts, "/" + "data-change-event-subscription", true, false); - final ServletContextHandler notifHandler = new ServletContextHandler( - contexts, "/" + "notification-stream", true, false); - final WebSocketInitializer webSocketInitializer = new WebSocketInitializer( - scheduledThreadPool, streamsConfiguration); - final ServletContext context = notifHandler.getServletContext(); - final WebSocketServletFactory factory = new WebSocketServerFactory(context); - webSocketInitializer.configure(factory); - dataHandler.addServlet(new ServletHolder(webSocketInitializer), "/*"); - notifHandler.addServlet(new ServletHolder(webSocketInitializer), "/*"); final ServletContextHandler rrdHandler = new ServletContextHandler(contexts, "/.well-known", true, false); From e4539c1f675505841751ce3cf4cc027f0d6646c6 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Wed, 21 Feb 2024 10:10:06 +0100 Subject: [PATCH 25/70] Use newer revision of distributed-datastore-provider https://github.com/opendaylight/controller/commit/736333d81f3033ad3a78a7bcadc27b9256396706#diff-5624a113bf7b93c0667c799a270fbd892f1c62a63fb6f3ddea857db88a8ea505R11 Signed-off-by: tobias.pobocik --- .../helm/lighty-rcgnmi-app-helm/templates/configmaps.yaml | 2 +- .../lighty-rcgnmi-app-module/src/test/resources/config.json | 2 +- .../src/main/resources/example-config/example_config.json | 2 +- .../lighty-rnc-app-docker/example-config/configuration.json | 2 +- .../helm/lighty-rnc-app-helm/templates/configmaps.yaml | 2 +- .../lighty-rnc-module/src/test/resources/config.json | 2 +- .../lighty-rnc-module/src/test/resources/http2Config.json | 2 +- .../lighty-rnc-module/src/test/resources/httpsConfig.json | 2 +- .../lighty-rnc-module/src/test/resources/openapi_config.json | 2 +- lighty-core/lighty-controller/README.md | 2 +- .../lighty/core/controller/impl/util/ControllerConfigUtils.java | 2 +- .../src/test/resources/DataInitInvalidInitConfigJson.json | 2 +- .../src/test/resources/DataInitInvalidInitConfigXml.json | 2 +- .../src/test/resources/DataInitInvalidInitPathConfig.json | 2 +- .../src/test/resources/DataInitJsonConfig.json | 2 +- .../lighty-controller/src/test/resources/DataInitXmlConfig.json | 2 +- .../src/main/assembly/resources/sampleConfigSingleNode.json | 2 +- .../src/test/resources/testConfig.json | 2 +- .../src/main/assembly/resources/sampleConfigSingleNode.json | 2 +- .../src/main/assembly/resources/sampleConfigSingleNode.json | 2 +- .../lighty-gnmi-community-restconf-app/example_config.json | 2 +- .../src/test/resources/json/app_init_config.json | 2 +- .../src/main/resources/sampleConfigCluster.json | 2 +- .../src/main/resources/sampleConfigSingleNode.json | 2 +- 24 files changed, 24 insertions(+), 24 deletions(-) diff --git a/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app-helm/helm/lighty-rcgnmi-app-helm/templates/configmaps.yaml b/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app-helm/helm/lighty-rcgnmi-app-helm/templates/configmaps.yaml index d75422d968..b30a79fbef 100644 --- a/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app-helm/helm/lighty-rcgnmi-app-helm/templates/configmaps.yaml +++ b/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app-helm/helm/lighty-rcgnmi-app-helm/templates/configmaps.yaml @@ -39,7 +39,7 @@ data: { "usedBy": "CONTROLLER", "name": "odl-entity-owners" , "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, { "usedBy": "CONTROLLER", "name": "cluster-admin", "revision": "2015-10-13", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin"}, { "usedBy": "CONTROLLER", "name": "opendaylight-l2-types", "revision": "2013-08-27", "nameSpace": "urn:opendaylight:l2:types"}, - { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2014-06-12", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, + { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2023-12-29", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy": "CONTROLLER", "name": "ietf-interfaces", "revision":"2018-02-20", "nameSpace":"urn:ietf:params:xml:ns:yang:ietf-interfaces"}, { "usedBy": "RESTCONF", "name": "ietf-restconf-monitoring", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"}, { "usedBy": "RESTCONF", "name": "subscribe-to-notification", "revision": "2016-10-28", "nameSpace": "subscribe:to:notification"}, diff --git a/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app-module/src/test/resources/config.json b/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app-module/src/test/resources/config.json index 947408ea7e..2078c4ac46 100644 --- a/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app-module/src/test/resources/config.json +++ b/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app-module/src/test/resources/config.json @@ -27,7 +27,7 @@ { "usedBy": "CONTROLLER", "name": "iana-if-type", "revision": "2023-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:iana-if-type"}, { "usedBy": "CONTROLLER", "name": "odl-entity-owners", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, { "usedBy": "CONTROLLER", "name": "opendaylight-l2-types", "revision": "2013-08-27", "nameSpace": "urn:opendaylight:l2:types"}, - { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2014-06-12", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, + { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2023-12-29", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy": "CONTROLLER", "name": "cluster-admin", "revision": "2015-10-13", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin"}, { "usedBy": "CONTROLLER", "name":"ietf-interfaces", "revision":"2018-02-20", "nameSpace":"urn:ietf:params:xml:ns:yang:ietf-interfaces"}, { "usedBy": "RESTCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, diff --git a/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app/src/main/resources/example-config/example_config.json b/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app/src/main/resources/example-config/example_config.json index 3b52d98c6e..06bd44d33f 100644 --- a/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app/src/main/resources/example-config/example_config.json +++ b/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app/src/main/resources/example-config/example_config.json @@ -28,7 +28,7 @@ "topLevelModels":[ { "usedBy": "CONTROLLER", "name": "odl-general-entity", "revision": "2015-09-30", "nameSpace": "urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity"}, { "usedBy": "CONTROLLER", "name": "opendaylight-l2-types", "revision": "2013-08-27", "nameSpace": "urn:opendaylight:l2:types"}, - { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2014-06-12", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, + { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2023-12-29", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy": "CONTROLLER", "name": "ietf-yang-types", "revision": "2013-07-15", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-types"}, { "usedBy": "CONTROLLER", "name": "iana-if-type", "revision": "2023-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:iana-if-type"}, { "usedBy": "CONTROLLER", "name": "odl-entity-owners" , "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-docker/example-config/configuration.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-docker/example-config/configuration.json index 5b7a740450..5de00ce606 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-docker/example-config/configuration.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-docker/example-config/configuration.json @@ -28,7 +28,7 @@ "topLevelModels":[ { "usedBy": "CONTROLLER", "name": "odl-general-entity", "revision": "2015-09-30", "nameSpace": "urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity"}, { "usedBy": "CONTROLLER", "name": "opendaylight-l2-types", "revision": "2013-08-27", "nameSpace": "urn:opendaylight:l2:types"}, - { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2014-06-12", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, + { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2023-12-29", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy": "CONTROLLER", "name": "ietf-yang-types", "revision": "2013-07-15", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-types"}, { "usedBy": "CONTROLLER", "name": "iana-if-type", "revision": "2023-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:iana-if-type"}, { "usedBy": "CONTROLLER", "name": "odl-entity-owners", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-helm/helm/lighty-rnc-app-helm/templates/configmaps.yaml b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-helm/helm/lighty-rnc-app-helm/templates/configmaps.yaml index 5e113506ce..c9e836283b 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-helm/helm/lighty-rnc-app-helm/templates/configmaps.yaml +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-helm/helm/lighty-rnc-app-helm/templates/configmaps.yaml @@ -38,7 +38,7 @@ data: { "usedBy": "CONTROLLER", "name": "iana-if-type", "revision": "2023-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:iana-if-type"}, { "usedBy": "CONTROLLER", "name": "odl-entity-owners", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, { "usedBy": "CONTROLLER", "name": "opendaylight-l2-types", "revision": "2013-08-27", "nameSpace": "urn:opendaylight:l2:types"}, - { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2014-06-12", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, + { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2023-12-29", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy": "CONTROLLER", "name":"ietf-interfaces", "revision":"2018-02-20", "nameSpace":"urn:ietf:params:xml:ns:yang:ietf-interfaces"}, { "usedBy": "CONTROLLER", "name": "cluster-admin", "revision": "2015-10-13", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin"}, { "usedBy": "RESTCONF", "name": "ietf-restconf-monitoring", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/config.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/config.json index e883af0e58..e4a45c5fdf 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/config.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/config.json @@ -27,7 +27,7 @@ { "usedBy": "CONTROLLER", "name": "iana-if-type", "revision": "2023-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:iana-if-type"}, { "usedBy": "CONTROLLER", "name": "odl-entity-owners", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, { "usedBy": "CONTROLLER", "name": "opendaylight-l2-types", "revision": "2013-08-27", "nameSpace": "urn:opendaylight:l2:types"}, - { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2014-06-12", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, + { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2023-12-29", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy": "CONTROLLER", "name": "cluster-admin", "revision": "2015-10-13", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin"}, { "usedBy": "CONTROLLER", "name":"ietf-interfaces", "revision":"2018-02-20", "nameSpace":"urn:ietf:params:xml:ns:yang:ietf-interfaces"}, { "usedBy": "RESTCONF", "name": "subscribe-to-notification", "revision": "2016-10-28", "nameSpace": "subscribe:to:notification"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/http2Config.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/http2Config.json index 8cae0a0439..ed1ae2b43e 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/http2Config.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/http2Config.json @@ -21,7 +21,7 @@ "topLevelModels":[ { "usedBy": "CONTROLLER", "name": "odl-general-entity", "revision": "2015-09-30", "nameSpace": "urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity"}, { "usedBy": "CONTROLLER", "name": "opendaylight-l2-types", "revision": "2013-08-27", "nameSpace": "urn:opendaylight:l2:types"}, - { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2014-06-12", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, + { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2023-12-29", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy": "CONTROLLER", "name": "ietf-yang-types", "revision": "2013-07-15", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-types"}, { "usedBy": "CONTROLLER", "name": "iana-if-type", "revision": "2023-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:iana-if-type"}, { "usedBy": "CONTROLLER", "name": "odl-entity-owners", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/httpsConfig.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/httpsConfig.json index 645a0f1c23..a69d7d9809 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/httpsConfig.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/httpsConfig.json @@ -21,7 +21,7 @@ "topLevelModels":[ { "usedBy": "CONTROLLER", "name": "odl-general-entity", "revision": "2015-09-30", "nameSpace": "urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity"}, { "usedBy": "CONTROLLER", "name": "opendaylight-l2-types", "revision": "2013-08-27", "nameSpace": "urn:opendaylight:l2:types"}, - { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2014-06-12", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, + { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2023-12-29", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy": "CONTROLLER", "name": "ietf-yang-types", "revision": "2013-07-15", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-types"}, { "usedBy": "CONTROLLER", "name": "iana-if-type", "revision": "2023-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:iana-if-type"}, { "usedBy": "CONTROLLER", "name": "odl-entity-owners", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/openapi_config.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/openapi_config.json index 7426c1abd2..1febc796e0 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/openapi_config.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/openapi_config.json @@ -60,7 +60,7 @@ { "nameSpace": "urn:opendaylight:l2:types", "name": "opendaylight-l2-types", "revision": "2013-08-27" }, { "nameSpace": "urn:opendaylight:aaa:app:config", "name": "aaa-app-config", "revision": "2017-06-19" }, { "nameSpace": "urn:TBD:params:xml:ns:yang:network:isis-topology", "name": "isis-topology", "revision": "2013-07-12" }, - { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider", "name": "distributed-datastore-provider", "revision": "2014-06-12" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider", "name": "distributed-datastore-provider", "revision": "2023-12-29" }, { "nameSpace": "urn:TBD:params:xml:ns:yang:ospf-topology", "name": "ospf-topology", "revision": "2013-10-21" }, { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:legacy-entity-ownership-service-provider", "name": "opendaylight-legacy-entity-ownership-service-provider", "revision": "2016-02-26" } ] diff --git a/lighty-core/lighty-controller/README.md b/lighty-core/lighty-controller/README.md index 791a12254e..e125f116b1 100644 --- a/lighty-core/lighty-controller/README.md +++ b/lighty-core/lighty-controller/README.md @@ -109,7 +109,7 @@ or completely override it if required. "schemaServiceConfig":{ "topLevelModels":[ { "usedBy": "CONTROLLER", "name": "cluster-admin", "revision": "2015-10-13", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin"}, - { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2014-06-12", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, + { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2023-12-29", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy": "CONTROLLER", "name": "odl-entity-owners", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, { "usedBy": "CONTROLLER", "name": "ietf-yang-types", "revision": "2013-07-15", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-types"}, { "usedBy": "CONTROLLER", "name": "odl-general-entity", "revision": "2015-09-30", "nameSpace": "urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity"}, diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/util/ControllerConfigUtils.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/util/ControllerConfigUtils.java index 54682f289c..6fdd2d7586 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/util/ControllerConfigUtils.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/util/ControllerConfigUtils.java @@ -54,7 +54,7 @@ public final class ControllerConfigUtils { org.opendaylight.yang.svc.v1.urn.opendaylight.yang.extension.yang.ext.rev130709 .YangModuleInfoImpl.getInstance(), org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.controller.config.distributed.datastore - .provider.rev140612 + .provider.rev231229 .YangModuleInfoImpl.getInstance(), org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.controller.entity.owners.norev .YangModuleInfoImpl.getInstance(), diff --git a/lighty-core/lighty-controller/src/test/resources/DataInitInvalidInitConfigJson.json b/lighty-core/lighty-controller/src/test/resources/DataInitInvalidInitConfigJson.json index 63fd18edf8..901d470926 100644 --- a/lighty-core/lighty-controller/src/test/resources/DataInitInvalidInitConfigJson.json +++ b/lighty-core/lighty-controller/src/test/resources/DataInitInvalidInitConfigJson.json @@ -13,7 +13,7 @@ { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider", "name": "distributed-datastore-provider", - "revision": "2014-06-12" + "revision": "2023-12-29" }, { "nameSpace": "http://netconfcentral.org/ns/toaster", diff --git a/lighty-core/lighty-controller/src/test/resources/DataInitInvalidInitConfigXml.json b/lighty-core/lighty-controller/src/test/resources/DataInitInvalidInitConfigXml.json index 4c2d898a03..15815a1cd7 100644 --- a/lighty-core/lighty-controller/src/test/resources/DataInitInvalidInitConfigXml.json +++ b/lighty-core/lighty-controller/src/test/resources/DataInitInvalidInitConfigXml.json @@ -13,7 +13,7 @@ { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider", "name": "distributed-datastore-provider", - "revision": "2014-06-12" + "revision": "2023-12-29" }, { "nameSpace": "http://netconfcentral.org/ns/toaster", diff --git a/lighty-core/lighty-controller/src/test/resources/DataInitInvalidInitPathConfig.json b/lighty-core/lighty-controller/src/test/resources/DataInitInvalidInitPathConfig.json index b811cde079..0b42808858 100644 --- a/lighty-core/lighty-controller/src/test/resources/DataInitInvalidInitPathConfig.json +++ b/lighty-core/lighty-controller/src/test/resources/DataInitInvalidInitPathConfig.json @@ -13,7 +13,7 @@ { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider", "name": "distributed-datastore-provider", - "revision": "2014-06-12" + "revision": "2023-12-29" }, { "nameSpace": "http://netconfcentral.org/ns/toaster", diff --git a/lighty-core/lighty-controller/src/test/resources/DataInitJsonConfig.json b/lighty-core/lighty-controller/src/test/resources/DataInitJsonConfig.json index a207ffccb9..5e3114b89a 100644 --- a/lighty-core/lighty-controller/src/test/resources/DataInitJsonConfig.json +++ b/lighty-core/lighty-controller/src/test/resources/DataInitJsonConfig.json @@ -13,7 +13,7 @@ { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider", "name": "distributed-datastore-provider", - "revision": "2014-06-12" + "revision": "2023-12-29" }, { "nameSpace": "http://netconfcentral.org/ns/toaster", diff --git a/lighty-core/lighty-controller/src/test/resources/DataInitXmlConfig.json b/lighty-core/lighty-controller/src/test/resources/DataInitXmlConfig.json index 4fe73c6e70..479d70bfe4 100644 --- a/lighty-core/lighty-controller/src/test/resources/DataInitXmlConfig.json +++ b/lighty-core/lighty-controller/src/test/resources/DataInitXmlConfig.json @@ -13,7 +13,7 @@ { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider", "name": "distributed-datastore-provider", - "revision": "2014-06-12" + "revision": "2023-12-29" }, { "nameSpace": "http://netconfcentral.org/ns/toaster", diff --git a/lighty-examples/lighty-community-aaa-restconf-app/src/main/assembly/resources/sampleConfigSingleNode.json b/lighty-examples/lighty-community-aaa-restconf-app/src/main/assembly/resources/sampleConfigSingleNode.json index c90e653672..8618ed2609 100644 --- a/lighty-examples/lighty-community-aaa-restconf-app/src/main/assembly/resources/sampleConfigSingleNode.json +++ b/lighty-examples/lighty-community-aaa-restconf-app/src/main/assembly/resources/sampleConfigSingleNode.json @@ -29,7 +29,7 @@ { "usedBy":"CONTROLLER","name":"iana-if-type","revision":"2023-01-26","nameSpace": "urn:ietf:params:xml:ns:yang:iana-if-type"}, { "usedBy":"CONTROLLER","name":"odl-entity-owners","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, { "usedBy":"CONTROLLER","name":"ietf-yang-types","revision":"2013-07-15","nameSpace":"urn:ietf:params:xml:ns:yang:ietf-yang-types"}, - { "usedBy":"CONTROLLER","name":"distributed-datastore-provider","revision":"2014-06-12","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, + { "usedBy":"CONTROLLER","name":"distributed-datastore-provider","revision":"2023-12-29","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy":"CONTROLLER","name":"cluster-admin","revision":"2015-10-13","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin"}, { "usedBy":"CONTROLLER","name":"network-topology","revision":"2013-10-21","nameSpace":"urn:TBD:params:xml:ns:yang:network-topology"}, { "usedBy":"CONTROLLER","name":"odl-general-entity","revision": "2015-09-30" ,"nameSpace":"urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity"}, diff --git a/lighty-examples/lighty-community-aaa-restconf-app/src/test/resources/testConfig.json b/lighty-examples/lighty-community-aaa-restconf-app/src/test/resources/testConfig.json index b4e71a3112..337fb83549 100644 --- a/lighty-examples/lighty-community-aaa-restconf-app/src/test/resources/testConfig.json +++ b/lighty-examples/lighty-community-aaa-restconf-app/src/test/resources/testConfig.json @@ -26,7 +26,7 @@ { "usedBy":"CONTROLLER","name":"iana-if-type","revision":"2023-01-26","nameSpace": "urn:ietf:params:xml:ns:yang:iana-if-type"}, { "usedBy":"CONTROLLER","name":"odl-entity-owners","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, { "usedBy":"CONTROLLER","name":"ietf-yang-types","revision":"2013-07-15","nameSpace":"urn:ietf:params:xml:ns:yang:ietf-yang-types"}, - { "usedBy":"CONTROLLER","name":"distributed-datastore-provider","revision":"2014-06-12","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, + { "usedBy":"CONTROLLER","name":"distributed-datastore-provider","revision":"2023-12-29","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy":"CONTROLLER","name":"cluster-admin","revision":"2015-10-13","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin"}, { "usedBy":"CONTROLLER","name":"network-topology","revision":"2013-10-21","nameSpace":"urn:TBD:params:xml:ns:yang:network-topology"}, { "usedBy":"CONTROLLER","name":"odl-general-entity","revision": "2015-09-30" ,"nameSpace":"urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity"}, diff --git a/lighty-examples/lighty-community-restconf-actions-app/src/main/assembly/resources/sampleConfigSingleNode.json b/lighty-examples/lighty-community-restconf-actions-app/src/main/assembly/resources/sampleConfigSingleNode.json index fc5c68afbb..0de71af6ea 100644 --- a/lighty-examples/lighty-community-restconf-actions-app/src/main/assembly/resources/sampleConfigSingleNode.json +++ b/lighty-examples/lighty-community-restconf-actions-app/src/main/assembly/resources/sampleConfigSingleNode.json @@ -29,7 +29,7 @@ { "usedBy":"CONTROLLER","name":"network-topology","revision":"2013-10-21","nameSpace":"urn:TBD:params:xml:ns:yang:network-topology"}, { "usedBy":"CONTROLLER","name":"ietf-inet-types","revision":"2013-07-15","nameSpace":"urn:ietf:params:xml:ns:yang:ietf-inet-types"}, { "usedBy":"CONTROLLER/NETCONF","name":"yang-ext","revision":"2013-07-09","nameSpace":"urn:opendaylight:yang:extension:yang-ext"}, - { "usedBy":"CONTROLLER","name":"distributed-datastore-provider","revision":"2014-06-12","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, + { "usedBy":"CONTROLLER","name":"distributed-datastore-provider","revision":"2023-12-29","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy":"CONTROLLER","name": "odl-entity-owners","nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, { "usedBy":"CONTROLLER","name":"cluster-admin","revision":"2015-10-13","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin"}, { "usedBy":"CONTROLLER","name": "odl-general-entity", "revision":"2015-09-30" ,"nameSpace": "urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity"}, diff --git a/lighty-examples/lighty-community-restconf-netconf-app/src/main/assembly/resources/sampleConfigSingleNode.json b/lighty-examples/lighty-community-restconf-netconf-app/src/main/assembly/resources/sampleConfigSingleNode.json index 689bead364..bf092c0804 100644 --- a/lighty-examples/lighty-community-restconf-netconf-app/src/main/assembly/resources/sampleConfigSingleNode.json +++ b/lighty-examples/lighty-community-restconf-netconf-app/src/main/assembly/resources/sampleConfigSingleNode.json @@ -29,7 +29,7 @@ { "usedBy":"CONTROLLER","name":"network-topology","revision":"2013-10-21","nameSpace":"urn:TBD:params:xml:ns:yang:network-topology"}, { "usedBy":"CONTROLLER","name":"ietf-inet-types","revision":"2013-07-15","nameSpace":"urn:ietf:params:xml:ns:yang:ietf-inet-types"}, { "usedBy":"CONTROLLER/NETCONF","name":"yang-ext","revision":"2013-07-09","nameSpace":"urn:opendaylight:yang:extension:yang-ext"}, - { "usedBy":"CONTROLLER","name":"distributed-datastore-provider","revision":"2014-06-12","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, + { "usedBy":"CONTROLLER","name":"distributed-datastore-provider","revision":"2023-12-29","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy":"CONTROLLER","name":"odl-entity-owners","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, { "usedBy":"CONTROLLER","name":"cluster-admin","revision":"2015-10-13","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin"}, { "usedBy":"CONTROLLER","name":"odl-general-entity","revision": "2015-09-30","nameSpace": "urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity"}, diff --git a/lighty-examples/lighty-gnmi-community-restconf-app/example_config.json b/lighty-examples/lighty-gnmi-community-restconf-app/example_config.json index 586df7168d..4f6735d423 100644 --- a/lighty-examples/lighty-gnmi-community-restconf-app/example_config.json +++ b/lighty-examples/lighty-gnmi-community-restconf-app/example_config.json @@ -23,7 +23,7 @@ { "usedBy": "CONTROLLER", "name": "odl-entity-owners", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, { "usedBy": "CONTROLLER", "name": "cluster-admin", "revision": "2015-10-13", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin"}, { "usedBy": "CONTROLLER", "name": "opendaylight-l2-types", "revision": "2013-08-27", "nameSpace": "urn:opendaylight:l2:types"}, - { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2014-06-12", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, + { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2023-12-29", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy": "CONTROLLER", "name": "ietf-interfaces", "revision": "2018-02-20", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-interfaces"}, { "usedBy": "CONTROLLER", "name": "iana-if-type","revision": "2023-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:iana-if-type"}, { "usedBy": "RESTCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/resources/json/app_init_config.json b/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/resources/json/app_init_config.json index 40f9ad00e7..8e84fb0438 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/resources/json/app_init_config.json +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/resources/json/app_init_config.json @@ -25,7 +25,7 @@ { "usedBy": "CONTROLLER", "name": "odl-entity-owners" , "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, { "usedBy": "CONTROLLER", "name": "cluster-admin", "revision": "2015-10-13", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin"}, { "usedBy": "CONTROLLER", "name": "opendaylight-l2-types", "revision": "2013-08-27", "nameSpace": "urn:opendaylight:l2:types"}, - { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2014-06-12", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, + { "usedBy": "CONTROLLER", "name": "distributed-datastore-provider", "revision": "2023-12-29", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy": "CONTROLLER", "name": "ietf-interfaces", "revision": "2018-02-20", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-interfaces"}, { "usedBy": "RESTCONF", "name": "ietf-restconf-monitoring", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"}, { "usedBy": "RESTCONF", "name": "subscribe-to-notification", "revision": "2016-10-28", "nameSpace": "subscribe:to:notification"}, diff --git a/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigCluster.json b/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigCluster.json index 6df6a85833..0f24863c1e 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigCluster.json +++ b/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigCluster.json @@ -26,7 +26,7 @@ { "usedBy":"CONTROLLER/NETCONF","name":"yang-ext","revision":"2013-07-09","nameSpace":"urn:opendaylight:yang:extension:yang-ext"}, { "usedBy":"CONTROLLER","name":"cluster-admin","revision":"2015-10-13","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin"}, { "usedBy":"CONTROLLER","name":"odl-general-entity","revision":"2015-09-30","nameSpace":"urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity"}, - { "usedBy":"CONTROLLER","name":"distributed-datastore-provider","revision":"2014-06-12","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, + { "usedBy":"CONTROLLER","name":"distributed-datastore-provider","revision":"2023-12-29","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy":"CONTROLLER","name":"odl-entity-owners","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, { "usedBy":"NETCONF","name":"netconf-keystore","revision":"2017-10-17","nameSpace":"urn:opendaylight:netconf:keystore"}, { "usedBy":"NETCONF","name":"netconf-node-topology","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-topology"}, diff --git a/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigSingleNode.json b/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigSingleNode.json index 68f8aa16b9..653ebbb7b3 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigSingleNode.json +++ b/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigSingleNode.json @@ -26,7 +26,7 @@ { "usedBy":"CONTROLLER/NETCONF","name":"yang-ext","revision":"2013-07-09","nameSpace":"urn:opendaylight:yang:extension:yang-ext"}, { "usedBy":"CONTROLLER","name":"cluster-admin","revision":"2015-10-13","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin"}, { "usedBy":"CONTROLLER","name":"odl-general-entity","revision":"2015-09-30","nameSpace":"urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity"}, - { "usedBy":"CONTROLLER","name":"distributed-datastore-provider","revision": "2014-06-12","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, + { "usedBy":"CONTROLLER","name":"distributed-datastore-provider","revision": "2023-12-29","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy":"CONTROLLER","name":"odl-entity-owners","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, { "usedBy":"NETCONF","name":"netconf-keystore","revision":"2017-10-17","nameSpace":"urn:opendaylight:netconf:keystore"}, { "usedBy":"NETCONF","name":"netconf-node-topology","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-topology"}, From 44b974697f684571efba0dc7f6436b890b8ad49f Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Wed, 21 Feb 2024 10:34:40 +0100 Subject: [PATCH 26/70] Remove ask-based protocol client https://github.com/opendaylight/controller/commit/736333d81f3033ad3a78a7bcadc27b9256396706#diff-21507ecb551b7276aa300f23a97d851ba39472c0d9ad84dcc11dfa0a09a5508fL370 Signed-off-by: tobias.pobocik --- .../controller/impl/util/DatastoreConfigurationUtils.java | 3 --- .../io/lighty/core/controller/config/ConfigLoadingTest.java | 4 ---- .../test/resources/testLightyControllerConfig-example.json | 2 -- .../src/test/resources/testLightyControllerConfig.json | 1 - 4 files changed, 10 deletions(-) diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/util/DatastoreConfigurationUtils.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/util/DatastoreConfigurationUtils.java index 8ca2bc7b55..3728a8e7b5 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/util/DatastoreConfigurationUtils.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/util/DatastoreConfigurationUtils.java @@ -62,9 +62,6 @@ private static Builder setNotNullElementWithoutDefaultConstant(final JsonNode co if (!configNode.path("transactionDebugContextEnabled").asText().isBlank()) { builder.transactionDebugContextEnabled(configNode.path("transactionDebugContextEnabled").asBoolean()); } - if (!configNode.path("useTellBasedProtocol").asText().isBlank()) { - builder.useTellBasedProtocol(configNode.path("useTellBasedProtocol").asBoolean()); - } if (!configNode.path("fileBackedStreamingThresholdInMegabytes").asText().isBlank()) { builder.fileBackedStreamingThresholdInMegabytes( configNode.path("fileBackedStreamingThresholdInMegabytes").asInt()); diff --git a/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/config/ConfigLoadingTest.java b/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/config/ConfigLoadingTest.java index e3ac9569a1..19344759ec 100644 --- a/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/config/ConfigLoadingTest.java +++ b/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/config/ConfigLoadingTest.java @@ -55,7 +55,6 @@ public void loadControllerConfigurationNoDsContexts() throws IOException, Config Assert.assertEquals(configDatastoreContext.getShardBatchedModificationCount(), 1000); Assert.assertEquals(configDatastoreContext.getShardCommitQueueExpiryTimeoutInMillis(), 120000); Assert.assertEquals(configDatastoreContext.isTransactionDebugContextEnabled(), false); - Assert.assertEquals(configDatastoreContext.isUseTellBasedProtocol(), true); Assert.assertEquals(configDatastoreContext.getMaximumMessageSliceSize(), 491520); Assert.assertEquals(configDatastoreContext.getFileBackedStreamingThreshold(), 134217728); Assert.assertEquals(configDatastoreContext.getShardRaftConfig().getSyncIndexThreshold(), 10); @@ -82,7 +81,6 @@ public void loadControllerConfigurationNoDsContexts() throws IOException, Config Assert.assertEquals(operDatastoreContext.getShardBatchedModificationCount(), 1000); Assert.assertEquals(operDatastoreContext.getShardCommitQueueExpiryTimeoutInMillis(), 120000); Assert.assertEquals(operDatastoreContext.isTransactionDebugContextEnabled(), false); - Assert.assertEquals(operDatastoreContext.isUseTellBasedProtocol(), true); Assert.assertEquals(operDatastoreContext.getMaximumMessageSliceSize(), 491520); Assert.assertEquals(operDatastoreContext.getFileBackedStreamingThreshold(), 134217728); Assert.assertEquals(operDatastoreContext.getShardRaftConfig().getSyncIndexThreshold(), 10); @@ -180,7 +178,6 @@ public void loadConfigDatastoreCtxTest() throws IOException { Assert.assertEquals(dataStoreContext.getShardBatchedModificationCount(), 10000); Assert.assertEquals(dataStoreContext.getShardCommitQueueExpiryTimeoutInMillis(), 1200000); Assert.assertEquals(dataStoreContext.isTransactionDebugContextEnabled(), true); - Assert.assertEquals(dataStoreContext.isUseTellBasedProtocol(), true); Assert.assertEquals(dataStoreContext.getMaximumMessageSliceSize(), 2048001); Assert.assertEquals(dataStoreContext.getFileBackedStreamingThreshold(), 135266304); Assert.assertEquals(dataStoreContext.getShardRaftConfig().getSyncIndexThreshold(), 11); @@ -212,7 +209,6 @@ public void loadOperationalDatastoreCtxTest() throws IOException { Assert.assertEquals(dataStoreContext.getShardBatchedModificationCount(), -10000); Assert.assertEquals(dataStoreContext.getShardCommitQueueExpiryTimeoutInMillis(), -1200000); Assert.assertEquals(dataStoreContext.isTransactionDebugContextEnabled(), false); - Assert.assertEquals(dataStoreContext.isUseTellBasedProtocol(), false); Assert.assertEquals(dataStoreContext.getMaximumMessageSliceSize(), 2048002); Assert.assertEquals(dataStoreContext.getFileBackedStreamingThreshold(), 136314880); Assert.assertEquals(dataStoreContext.getShardRaftConfig().getSyncIndexThreshold(), 12); diff --git a/lighty-core/lighty-controller/src/test/resources/testLightyControllerConfig-example.json b/lighty-core/lighty-controller/src/test/resources/testLightyControllerConfig-example.json index c337bfd92a..14c7b75280 100644 --- a/lighty-core/lighty-controller/src/test/resources/testLightyControllerConfig-example.json +++ b/lighty-core/lighty-controller/src/test/resources/testLightyControllerConfig-example.json @@ -28,7 +28,6 @@ "shardBatchedModificationCount": 1000, "shardCommitQueueExpiryTimeoutInMillis": 120000, "transactionDebugContextEnabled": false, - "useTellBasedProtocol": false, "maximumMessageSliceSize": 2048000, "fileBackedStreamingThresholdInMegabytes": 128, "syncIndexThreshold": 10, @@ -51,7 +50,6 @@ "shardBatchedModificationCount": 1000, "shardCommitQueueExpiryTimeoutInMillis": 120000, "transactionDebugContextEnabled": false, - "useTellBasedProtocol": false, "maximumMessageSliceSize": 2048000, "fileBackedStreamingThresholdInMegabytes": 128, "syncIndexThreshold": 10, diff --git a/lighty-core/lighty-controller/src/test/resources/testLightyControllerConfig.json b/lighty-core/lighty-controller/src/test/resources/testLightyControllerConfig.json index 73be1b2f9e..ce27cb983c 100644 --- a/lighty-core/lighty-controller/src/test/resources/testLightyControllerConfig.json +++ b/lighty-core/lighty-controller/src/test/resources/testLightyControllerConfig.json @@ -54,7 +54,6 @@ "shardBatchedModificationCount": -10000, "shardCommitQueueExpiryTimeoutInMillis": -1200000, "transactionDebugContextEnabled": false, - "useTellBasedProtocol": false, "maximumMessageSliceSize": 2048002, "fileBackedStreamingThresholdInMegabytes": 130, "syncIndexThreshold": 12, From d895b22ddd50f1e27d71518df86e3bd20045df33 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Wed, 21 Feb 2024 10:41:18 +0100 Subject: [PATCH 27/70] Make DataTreeChangeListener implementations use list https://github.com/opendaylight/mdsal/commit/d2c0f28aef06857cbe7fcfb96a7745055b290db4#diff-d695a2d01f5aa955e56611b3491b230edcce0240aafc4399b653ec44f58e7606L45 Signed-off-by: tobias.pobocik --- .../io/lighty/core/controller/datainit/ToasterListener.java | 4 ++-- .../io/lighty/gnmi/southbound/listener/GnmiNodeListener.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/datainit/ToasterListener.java b/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/datainit/ToasterListener.java index 5cdfd03a1b..41b25a85eb 100644 --- a/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/datainit/ToasterListener.java +++ b/lighty-core/lighty-controller/src/test/java/io/lighty/core/controller/datainit/ToasterListener.java @@ -7,7 +7,7 @@ */ package io.lighty.core.controller.datainit; -import java.util.Collection; +import java.util.List; import java.util.concurrent.CountDownLatch; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.api.DataObjectModification; @@ -30,7 +30,7 @@ public ToasterListener(CountDownLatch latch, int factor) { } @Override - public void onDataTreeChanged(@NonNull Collection> changes) { + public void onDataTreeChanged(@NonNull List> changes) { LOG.debug("Got onDataTreeChanged!"); for (DataTreeModification modification : changes) { DataObjectModification.ModificationType type = modification.getRootNode().getModificationType(); diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/listener/GnmiNodeListener.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/listener/GnmiNodeListener.java index 4a3deb0c0c..7b5c47d058 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/listener/GnmiNodeListener.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/listener/GnmiNodeListener.java @@ -17,7 +17,7 @@ import io.lighty.gnmi.southbound.device.connection.DeviceConnectionManager; import io.lighty.gnmi.southbound.identifier.IdentifierUtils; import io.lighty.gnmi.southbound.timeout.TimeoutUtils; -import java.util.Collection; +import java.util.List; import java.util.Objects; import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; @@ -61,7 +61,7 @@ public GnmiNodeListener(final DeviceConnectionManager deviceConnectionManager, f @Override - public void onDataTreeChanged(@NonNull Collection> changes) { + public void onDataTreeChanged(@NonNull List> changes) { LOG.debug("Data tree change on gNMI topology triggered"); for (final DataTreeModification change : changes) { final DataObjectModification rootNode = change.getRootNode(); From bd95b40ac7a578d8a88528b3f36b1a074ac16eb6 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Wed, 21 Feb 2024 10:44:37 +0100 Subject: [PATCH 28/70] Do not encrypt/decrypt strings https://github.com/opendaylight/aaa/commit/b43fe318313a666acefb7bb98b46c85d18b4eef3#diff-cff1cb03835514beed815b98281b63528a283e306a3404869493cb1c6db02aa1L16 Signed-off-by: tobias.pobocik --- .../impl/AAAEncryptionServiceImpl.java | 37 ------------------- .../impl/CertificationStorageServiceImpl.java | 14 +++++-- .../device/KeystoreGnmiSecurityTest.java | 19 ++++++---- .../tests/AAAEncryptionServiceTest.java | 30 ++++++--------- 4 files changed, 33 insertions(+), 67 deletions(-) diff --git a/lighty-modules/lighty-aaa-aggregator/lighty-aaa-encryption-service/src/main/java/io/lighty/aaa/encrypt/service/impl/AAAEncryptionServiceImpl.java b/lighty-modules/lighty-aaa-aggregator/lighty-aaa-encryption-service/src/main/java/io/lighty/aaa/encrypt/service/impl/AAAEncryptionServiceImpl.java index 5237357ba6..c017dc5ca3 100644 --- a/lighty-modules/lighty-aaa-aggregator/lighty-aaa-encryption-service/src/main/java/io/lighty/aaa/encrypt/service/impl/AAAEncryptionServiceImpl.java +++ b/lighty-modules/lighty-aaa-aggregator/lighty-aaa-encryption-service/src/main/java/io/lighty/aaa/encrypt/service/impl/AAAEncryptionServiceImpl.java @@ -7,11 +7,9 @@ */ package io.lighty.aaa.encrypt.service.impl; -import java.nio.charset.StandardCharsets; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; -import javax.xml.bind.DatatypeConverter; import org.opendaylight.aaa.encrypt.AAAEncryptionService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -28,24 +26,6 @@ public AAAEncryptionServiceImpl(Cipher encryptCipher, Cipher decryptCipher) { this.decryptCipher = decryptCipher; } - @Override - public String encrypt(String data) { - if (data != null && data.length() != 0) { - try { - synchronized (encryptCipher) { - byte[] cryptobytes = encryptCipher.doFinal(data.getBytes(StandardCharsets.UTF_8)); - return DatatypeConverter.printBase64Binary(cryptobytes); - } - } catch (IllegalBlockSizeException | BadPaddingException e) { - LOG.error("Failed to encrypt data.", e); - return data; - } - } else { - LOG.warn("data is empty or null."); - return data; - } - } - @Override public byte[] encrypt(byte[] data) { if (data != null && data.length != 0) { @@ -63,23 +43,6 @@ public byte[] encrypt(byte[] data) { } } - @Override - public String decrypt(String encryptedData) { - if (encryptedData != null && encryptedData.length() != 0) { - try { - byte[] cryptobytes = DatatypeConverter.parseBase64Binary(encryptedData); - byte[] clearbytes = decryptCipher.doFinal(cryptobytes); - return new String(clearbytes, StandardCharsets.UTF_8); - } catch (IllegalBlockSizeException | BadPaddingException e) { - LOG.error("Failed to decrypt encoded data", e); - return encryptedData; - } - } else { - LOG.warn("encryptedData is empty or null."); - return encryptedData; - } - } - @Override public byte[] decrypt(byte[] encryptedData) { if (encryptedData != null && encryptedData.length != 0) { diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/impl/CertificationStorageServiceImpl.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/impl/CertificationStorageServiceImpl.java index 9924613005..7a8034cab3 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/impl/CertificationStorageServiceImpl.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/impl/CertificationStorageServiceImpl.java @@ -10,7 +10,10 @@ import com.google.common.util.concurrent.ListenableFuture; import io.lighty.gnmi.southbound.schema.certstore.service.CertificationStorageService; +import java.nio.charset.Charset; +import java.security.GeneralSecurityException; import java.util.Optional; +import javax.xml.bind.DatatypeConverter; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.aaa.encrypt.AAAEncryptionService; import org.opendaylight.mdsal.binding.api.DataBroker; @@ -37,10 +40,14 @@ public CertificationStorageServiceImpl(final AAAEncryptionService encryptionServ @Override public @NonNull ListenableFuture writeCertificates(final AddKeystoreCertificateInput input) { + byte[] encryptedParaphrase = this.encryptionService.encrypt( + input.getPassphrase() != null ? input.getPassphrase().getBytes(Charset.defaultCharset()) : null); final Keystore keystore = new KeystoreBuilder() .setKeystoreId(input.getKeystoreId()) - .setClientKey(this.encryptionService.encrypt(input.getClientKey())) - .setPassphrase(this.encryptionService.encrypt(input.getPassphrase())) + .setClientKey(DatatypeConverter.printBase64Binary( + this.encryptionService.encrypt(input.getClientKey().getBytes(Charset.defaultCharset())))) + .setPassphrase( + encryptedParaphrase != null ? DatatypeConverter.printBase64Binary(encryptedParaphrase) : null) .setClientCert(input.getClientCert()) .setCaCertificate(input.getCaCertificate()) .build(); @@ -67,7 +74,8 @@ public CertificationStorageServiceImpl(final AAAEncryptionService encryptionServ @Override public String decrypt(final String data) { - return this.encryptionService.decrypt(data); + return new String(this.encryptionService.decrypt(DatatypeConverter.parseBase64Binary(data)), + Charset.defaultCharset()); } private InstanceIdentifier getKeystoreII(final String keystoreId) { diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/test/java/io/lighty/gnmi/southbound/device/KeystoreGnmiSecurityTest.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/test/java/io/lighty/gnmi/southbound/device/KeystoreGnmiSecurityTest.java index 2db1a8216a..b5f99d2b74 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/test/java/io/lighty/gnmi/southbound/device/KeystoreGnmiSecurityTest.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/test/java/io/lighty/gnmi/southbound/device/KeystoreGnmiSecurityTest.java @@ -33,6 +33,7 @@ import io.lighty.modules.gnmi.connector.session.api.SessionProviderImpl; import java.io.IOException; import java.net.URISyntaxException; +import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Paths; import java.security.InvalidAlgorithmParameterException; @@ -52,6 +53,7 @@ import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.SecretKeySpec; +import javax.xml.bind.DatatypeConverter; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; @@ -416,19 +418,20 @@ private static Keystore getKeystore1WithPassResponse() { return new KeystoreBuilder() .setCaCertificate(getResource(CA_CRT)) .setClientCert(getResource(CLIENT_ENCRYPTED_CRT)) - .setClientKey(AAA_ENCRYPTION_SERVICE.encrypt(getResource(CLIENT_ENCRYPTED_KEY))) - .setPassphrase(AAA_ENCRYPTION_SERVICE.encrypt(PASSPHRASE)) + .setClientKey(DatatypeConverter.printBase64Binary( + (AAA_ENCRYPTION_SERVICE.encrypt(getResource(CLIENT_ENCRYPTED_KEY).getBytes( + Charset.defaultCharset()))))) + .setPassphrase( + DatatypeConverter.printBase64Binary(AAA_ENCRYPTION_SERVICE.encrypt(PASSPHRASE.getBytes()))) .setKeystoreId(KEYSTORE_PASSPHRASE_ID_1) .build(); } private static Keystore getKeystore2Response() { - return new KeystoreBuilder() - .setCaCertificate(getResource(CA_CRT)) - .setClientCert(getResource(CLIENT_CRT)) - .setClientKey(AAA_ENCRYPTION_SERVICE.encrypt(getResource(CLIENT_KEY))) - .setKeystoreId(KEYSTORE_ID_2) - .build(); + return new KeystoreBuilder().setCaCertificate(getResource(CA_CRT)).setClientCert(getResource(CLIENT_CRT)) + .setClientKey(DatatypeConverter.printBase64Binary( + (AAA_ENCRYPTION_SERVICE.encrypt((getResource(CLIENT_KEY).getBytes()))))) + .setKeystoreId(KEYSTORE_ID_2).build(); } private static FluentFuture> getReadResult(T data) { diff --git a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/AAAEncryptionServiceTest.java b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/AAAEncryptionServiceTest.java index e372addc73..c8feaee251 100644 --- a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/AAAEncryptionServiceTest.java +++ b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/AAAEncryptionServiceTest.java @@ -10,6 +10,7 @@ import io.lighty.core.controller.impl.config.ConfigurationException; import io.lighty.modules.southbound.netconf.impl.util.NetconfConfigUtils; import java.nio.charset.StandardCharsets; +import java.security.GeneralSecurityException; import org.opendaylight.aaa.encrypt.AAAEncryptionService; import org.testng.Assert; import org.testng.annotations.BeforeClass; @@ -26,18 +27,18 @@ public void init() throws ConfigurationException { } @Test - public void testStringEncryptionDecryption() { - final String rawData = "hello world"; - final String encryptedData = this.aaaEncryptionService.encrypt(rawData); + public void testStringEncryptionDecryption() throws GeneralSecurityException { + final byte[] rawData = "hello world".getBytes(); + final byte[] encryptedData = this.aaaEncryptionService.encrypt(rawData); Assert.assertNotNull(encryptedData); Assert.assertNotEquals(encryptedData, rawData); - final String decryptedData = this.aaaEncryptionService.decrypt(encryptedData); + final byte[] decryptedData = this.aaaEncryptionService.decrypt(encryptedData); Assert.assertNotNull(encryptedData); Assert.assertEquals(decryptedData, rawData); } @Test - public void testByteEncryptionDecryption() { + public void testByteEncryptionDecryption() throws GeneralSecurityException { final String rawDataString = "hello world"; final byte[] rawData = rawDataString.getBytes(StandardCharsets.UTF_8); final byte[] encryptedData = this.aaaEncryptionService.encrypt(rawData); @@ -51,33 +52,24 @@ public void testByteEncryptionDecryption() { } @Test - public void testNullInputs() { - Assert.assertNull(this.aaaEncryptionService.decrypt((byte[]) null)); - Assert.assertNull(this.aaaEncryptionService.encrypt((byte[]) null)); - Assert.assertNull(this.aaaEncryptionService.decrypt((String) null)); - Assert.assertNull(this.aaaEncryptionService.encrypt((String) null)); + public void testNullInputs() throws GeneralSecurityException { + Assert.assertNull(this.aaaEncryptionService.decrypt(null)); + Assert.assertNull(this.aaaEncryptionService.encrypt(null)); } @Test - public void testEmptyInputs() { + public void testEmptyInputs() throws GeneralSecurityException { final byte[] byteData = new byte[0]; - final String stringData = ""; final byte[] decryptedBytes = this.aaaEncryptionService.decrypt(byteData); Assert.assertNotNull(decryptedBytes); Assert.assertEquals(decryptedBytes.length, 0); final byte[] encryptedBytes = this.aaaEncryptionService.encrypt(byteData); Assert.assertNotNull(encryptedBytes); Assert.assertEquals(encryptedBytes.length, 0); - final String decryptedString = this.aaaEncryptionService.decrypt(stringData); - Assert.assertNotNull(decryptedString); - Assert.assertEquals(stringData, decryptedString); - final String encryptedString = this.aaaEncryptionService.encrypt(stringData); - Assert.assertNotNull(encryptedString); - Assert.assertEquals(stringData, encryptedString); } @Test - public void testDecryptBadByteData() { + public void testDecryptBadByteData() throws GeneralSecurityException { final byte[] byteData = "test data".getBytes(StandardCharsets.UTF_8); final byte[] decryptedBytes = this.aaaEncryptionService.decrypt(byteData); Assert.assertEquals(decryptedBytes, byteData); From c30f6519e91380145f52ad741f652e94037ff162 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Wed, 21 Feb 2024 12:49:07 +0100 Subject: [PATCH 29/70] Remove obsolete NetconfClientDispatcher Removed obsolete NetconfClientDispatcher interface, implementation, related components and tests https://github.com/opendaylight/netconf/commit/4efa700dbaa6fc74e51cc896d36646d5131bf47b Signed-off-by: tobias.pobocik --- .../netconf/tests/TopologyPluginsTest.java | 15 ++------------ .../impl/NetconfClusteredTopologyPlugin.java | 4 ---- .../netconf/impl/NetconfTopologyPlugin.java | 6 +----- .../impl/NetconfTopologyPluginBuilder.java | 5 ++--- .../impl/config/NetconfConfiguration.java | 12 ----------- .../netconf/impl/util/NetconfConfigUtils.java | 20 ------------------- 6 files changed, 5 insertions(+), 57 deletions(-) diff --git a/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/TopologyPluginsTest.java b/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/TopologyPluginsTest.java index 22d1e62420..af09a91019 100644 --- a/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/TopologyPluginsTest.java +++ b/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/TopologyPluginsTest.java @@ -8,10 +8,6 @@ package io.lighty.modules.southbound.netconf.tests; import static io.lighty.modules.southbound.netconf.tests.LightyTestUtils.MAX_START_TIME_MILLIS; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.timeout; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; import io.lighty.core.controller.api.LightyController; import io.lighty.core.controller.api.LightyModule; @@ -32,7 +28,6 @@ import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.WriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.netconf.client.NetconfClientDispatcher; import org.opendaylight.netconf.client.NetconfClientSession; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; @@ -68,16 +63,12 @@ public class TopologyPluginsTest { private CommunityRestConf restConf; private LightyModule netconfPlugin; @Mock - private NetconfClientDispatcher dispatcher; - @Mock private Future initFuture; - private static LightyModule startSingleNodeNetconf(final LightyServices services, - final NetconfClientDispatcher dispatcher) + private static LightyModule startSingleNodeNetconf(final LightyServices services) throws ConfigurationException { final NetconfConfiguration config = NetconfConfigUtils.createDefaultNetconfConfiguration(); NetconfConfigUtils.injectServicesToConfig(config); - config.setClientDispatcher(dispatcher); return NetconfTopologyPluginBuilder.from(config, services).build(); } @@ -85,13 +76,12 @@ private static LightyModule startSingleNodeNetconf(final LightyServices services public void beforeClass() throws ConfigurationException, ExecutionException, InterruptedException, TimeoutException { MockitoAnnotations.initMocks(this); - when(this.dispatcher.createClient(any())).thenAnswer(invocation -> initFuture); this.lightyController = LightyTestUtils.startController(); RestConfConfiguration restConfConfig = RestConfConfigUtils.getDefaultRestConfConfiguration(); this.restConf = LightyTestUtils.startRestconf(restConfConfig, this.lightyController.getServices()); - this.netconfPlugin = startSingleNodeNetconf(this.lightyController.getServices(), this.dispatcher); + this.netconfPlugin = startSingleNodeNetconf(this.lightyController.getServices()); this.netconfPlugin.start().get(MAX_START_TIME_MILLIS, TimeUnit.MILLISECONDS); } @@ -134,7 +124,6 @@ public void testMountDevice() throws Exception { final WriteTransaction writeTransaction = bindingDataBroker.newWriteOnlyTransaction(); writeTransaction.mergeParentStructurePut(LogicalDatastoreType.CONFIGURATION, path, node); writeTransaction.commit().get(); - verify(this.dispatcher, timeout(20000)).createClient(any()); } } diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfClusteredTopologyPlugin.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfClusteredTopologyPlugin.java index 3983df45f5..e607dd426b 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfClusteredTopologyPlugin.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfClusteredTopologyPlugin.java @@ -10,7 +10,6 @@ import io.lighty.core.controller.api.LightyServices; import java.util.concurrent.ExecutorService; import org.opendaylight.aaa.encrypt.AAAEncryptionService; -import org.opendaylight.netconf.client.NetconfClientDispatcher; import org.opendaylight.netconf.client.mdsal.DeviceActionFactoryImpl; import org.opendaylight.netconf.client.mdsal.api.CredentialProvider; import org.opendaylight.netconf.client.mdsal.api.SchemaResourceManager; @@ -30,17 +29,14 @@ public final class NetconfClusteredTopologyPlugin extends AbstractTopologyPlugin private static final Logger LOG = LoggerFactory.getLogger(NetconfClusteredTopologyPlugin.class); private final LightyServices lightyServices; - private final NetconfClientDispatcher clientDispatcher; private final AAAEncryptionService encryptionService; private NetconfTopologyManager topology; public NetconfClusteredTopologyPlugin(final LightyServices lightyServices, - final NetconfClientDispatcher clientDispatcher, final ExecutorService executorService, final AAAEncryptionService encryptionService) { super(executorService, lightyServices.getDOMMountPointService()); this.lightyServices = lightyServices; - this.clientDispatcher = clientDispatcher; this.encryptionService = encryptionService; } diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfTopologyPlugin.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfTopologyPlugin.java index be67882d7a..1973390abd 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfTopologyPlugin.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfTopologyPlugin.java @@ -10,7 +10,6 @@ import io.lighty.core.controller.api.LightyServices; import java.util.concurrent.ExecutorService; import org.opendaylight.aaa.encrypt.AAAEncryptionService; -import org.opendaylight.netconf.client.NetconfClientDispatcher; import org.opendaylight.netconf.client.mdsal.api.CredentialProvider; import org.opendaylight.netconf.client.mdsal.api.SchemaResourceManager; import org.opendaylight.netconf.client.mdsal.api.SslHandlerFactoryProvider; @@ -29,18 +28,15 @@ public final class NetconfTopologyPlugin extends AbstractTopologyPlugin { private static final Logger LOG = LoggerFactory.getLogger(NetconfTopologyPlugin.class); private final String topologyId; - private final NetconfClientDispatcher clientDispatcher; private NetconfTopologyImpl netconfTopologyImpl; private final AAAEncryptionService encryptionService; private final LightyServices lightyServices; NetconfTopologyPlugin(final LightyServices lightyServices, final String topologyId, - final NetconfClientDispatcher clientDispatcher, final ExecutorService executorService, - final AAAEncryptionService encryptionService) { + final ExecutorService executorService, final AAAEncryptionService encryptionService) { super(executorService, lightyServices.getDOMMountPointService()); this.lightyServices = lightyServices; this.topologyId = topologyId; - this.clientDispatcher = clientDispatcher; this.encryptionService = encryptionService; } diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfTopologyPluginBuilder.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfTopologyPluginBuilder.java index 517a625fe2..5df46f9ee7 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfTopologyPluginBuilder.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfTopologyPluginBuilder.java @@ -55,11 +55,10 @@ public NetconfTopologyPluginBuilder withExecutorService(ExecutorService executor public NetconfSBPlugin build() { if (configuration.isClusterEnabled()) { return new NetconfClusteredTopologyPlugin(lightyServices, - configuration.getClientDispatcher(), executorService, - configuration.getAaaService()); + executorService, configuration.getAaaService()); } else { return new NetconfTopologyPlugin(lightyServices, configuration.getTopologyId(), - configuration.getClientDispatcher(), executorService, configuration.getAaaService()); + executorService, configuration.getAaaService()); } } diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/config/NetconfConfiguration.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/config/NetconfConfiguration.java index 3a1d3caec2..b9bf9b3349 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/config/NetconfConfiguration.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/config/NetconfConfiguration.java @@ -9,7 +9,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import org.opendaylight.aaa.encrypt.AAAEncryptionService; -import org.opendaylight.netconf.client.NetconfClientDispatcher; public class NetconfConfiguration { @@ -17,9 +16,6 @@ public class NetconfConfiguration { private int writeTxTimeout = 0; private boolean clusterEnabled = false; - @JsonIgnore - private NetconfClientDispatcher clientDispatcher; - @JsonIgnore private AAAEncryptionService aaaService; @@ -55,12 +51,4 @@ public void setClusterEnabled(boolean clusterEnabled) { this.clusterEnabled = clusterEnabled; } - public NetconfClientDispatcher getClientDispatcher() { - return clientDispatcher; - } - - public void setClientDispatcher(final NetconfClientDispatcher clientDispatcher) { - this.clientDispatcher = clientDispatcher; - } - } diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfConfigUtils.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfConfigUtils.java index 0da0c6bb43..2ba8fde9e2 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfConfigUtils.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfConfigUtils.java @@ -33,8 +33,6 @@ import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.SecretKeySpec; import org.opendaylight.aaa.encrypt.AAAEncryptionService; -import org.opendaylight.netconf.client.NetconfClientDispatcher; -import org.opendaylight.netconf.client.NetconfClientDispatcherImpl; import org.opendaylight.yang.gen.v1.config.aaa.authn.encrypt.service.config.rev160915.AaaEncryptServiceConfig; import org.opendaylight.yang.gen.v1.config.aaa.authn.encrypt.service.config.rev160915.AaaEncryptServiceConfigBuilder; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; @@ -143,7 +141,6 @@ public static NetconfConfiguration injectServicesToTopologyConfig( final NetconfConfiguration configuration, final LightyServices lightyServices) throws ConfigurationException { injectServicesToConfig(configuration); - injectClient(lightyServices, configuration); return configuration; } @@ -194,21 +191,4 @@ public static AAAEncryptionService createAAAEncryptionService(AaaEncryptServiceC throw new ConfigurationException(e); } } - - /** - * Inject netconf client dispatcher to Netconf southbound configuration, it uses {@link LightyServices}. - * - * @param services LightyServices from running Lighty core. - * @param configuration Netconf southbound configuration where should be services injected. - * @return Netconf southbound configuration with injected services from Lighty core. - */ - private static NetconfConfiguration injectClient(final LightyServices services, - final NetconfConfiguration configuration) { - final NetconfClientDispatcher client = - new NetconfClientDispatcherImpl(services.getBossGroup(), services.getWorkerGroup(), - services.getTimer()); - configuration.setClientDispatcher(client); - return configuration; - } - } From 348a5e479705bc26e3338971953414de053d9412 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Wed, 21 Feb 2024 13:17:44 +0100 Subject: [PATCH 30/70] Rework BaseScheams https://github.com/opendaylight/netconf/commit/ebf61b3d4feb335d30ebe5a84b830e09861ff900 Signed-off-by: tobias.pobocik --- .../netconf/impl/NetconfCallhomePlugin.java | 10 +++------- .../impl/NetconfClusteredTopologyPlugin.java | 12 ++++-------- .../netconf/impl/NetconfTopologyPlugin.java | 12 ++++-------- .../netconf/tests/NetconfBaseServiceBaseTest.java | 13 +++++++++---- 4 files changed, 20 insertions(+), 27 deletions(-) diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfCallhomePlugin.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfCallhomePlugin.java index fd5d4cc000..86984d2639 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfCallhomePlugin.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfCallhomePlugin.java @@ -16,7 +16,7 @@ import org.opendaylight.netconf.client.mdsal.api.CredentialProvider; import org.opendaylight.netconf.client.mdsal.api.SchemaResourceManager; import org.opendaylight.netconf.client.mdsal.api.SslHandlerFactoryProvider; -import org.opendaylight.netconf.client.mdsal.impl.DefaultBaseNetconfSchemas; +import org.opendaylight.netconf.client.mdsal.impl.DefaultBaseNetconfSchemaProvider; import org.opendaylight.netconf.client.mdsal.impl.DefaultCredentialProvider; import org.opendaylight.netconf.client.mdsal.impl.DefaultSchemaResourceManager; import org.opendaylight.netconf.client.mdsal.impl.DefaultSslHandlerFactoryProvider; @@ -34,12 +34,8 @@ public class NetconfCallhomePlugin extends AbstractLightyModule { public NetconfCallhomePlugin(final LightyServices lightyServices, final String topologyId, final ExecutorService executorService, final AAAEncryptionService encryptionService) { super(executorService); - final DefaultBaseNetconfSchemas defaultBaseNetconfSchemas; - try { - defaultBaseNetconfSchemas = new DefaultBaseNetconfSchemas(lightyServices.getYangParserFactory()); - } catch (YangParserException e) { - throw new RuntimeException(e); - } + final DefaultBaseNetconfSchemaProvider defaultBaseNetconfSchemas = new + DefaultBaseNetconfSchemaProvider(lightyServices.getYangParserFactory()); final SchemaResourceManager schemaResourceManager = new DefaultSchemaResourceManager(lightyServices.getYangParserFactory()); final CredentialProvider credentialProvider = diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfClusteredTopologyPlugin.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfClusteredTopologyPlugin.java index e607dd426b..e15b8556d1 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfClusteredTopologyPlugin.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfClusteredTopologyPlugin.java @@ -14,7 +14,7 @@ import org.opendaylight.netconf.client.mdsal.api.CredentialProvider; import org.opendaylight.netconf.client.mdsal.api.SchemaResourceManager; import org.opendaylight.netconf.client.mdsal.api.SslHandlerFactoryProvider; -import org.opendaylight.netconf.client.mdsal.impl.DefaultBaseNetconfSchemas; +import org.opendaylight.netconf.client.mdsal.impl.DefaultBaseNetconfSchemaProvider; import org.opendaylight.netconf.client.mdsal.impl.DefaultCredentialProvider; import org.opendaylight.netconf.client.mdsal.impl.DefaultSchemaResourceManager; import org.opendaylight.netconf.client.mdsal.impl.DefaultSslHandlerFactoryProvider; @@ -42,13 +42,9 @@ public NetconfClusteredTopologyPlugin(final LightyServices lightyServices, @Override protected boolean initProcedure() { - final DefaultBaseNetconfSchemas defaultBaseNetconfSchemas; - try { - defaultBaseNetconfSchemas = new DefaultBaseNetconfSchemas(lightyServices.getYangParserFactory()); - } catch (YangParserException e) { - LOG.error("Failed to create DefaultBaseNetconfSchema, cause: ", e); - return false; - } + final var timer = new DefaultNetconfTimer(); + final var defaultBaseNetconfSchemas = + new DefaultBaseNetconfSchemaProvider(lightyServices.getYangParserFactory()); final SchemaResourceManager schemaResourceManager = new DefaultSchemaResourceManager(lightyServices.getYangParserFactory()); final CredentialProvider credentialProvider diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfTopologyPlugin.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfTopologyPlugin.java index 1973390abd..67c1cb615e 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfTopologyPlugin.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfTopologyPlugin.java @@ -10,10 +10,11 @@ import io.lighty.core.controller.api.LightyServices; import java.util.concurrent.ExecutorService; import org.opendaylight.aaa.encrypt.AAAEncryptionService; +import org.opendaylight.netconf.client.mdsal.api.BaseNetconfSchemaProvider; import org.opendaylight.netconf.client.mdsal.api.CredentialProvider; import org.opendaylight.netconf.client.mdsal.api.SchemaResourceManager; import org.opendaylight.netconf.client.mdsal.api.SslHandlerFactoryProvider; -import org.opendaylight.netconf.client.mdsal.impl.DefaultBaseNetconfSchemas; +import org.opendaylight.netconf.client.mdsal.impl.DefaultBaseNetconfSchemaProvider; import org.opendaylight.netconf.client.mdsal.impl.DefaultCredentialProvider; import org.opendaylight.netconf.client.mdsal.impl.DefaultSchemaResourceManager; import org.opendaylight.netconf.client.mdsal.impl.DefaultSslHandlerFactoryProvider; @@ -42,13 +43,8 @@ public final class NetconfTopologyPlugin extends AbstractTopologyPlugin { @Override protected boolean initProcedure() { - final DefaultBaseNetconfSchemas defaultBaseNetconfSchemas; - try { - defaultBaseNetconfSchemas = new DefaultBaseNetconfSchemas(lightyServices.getYangParserFactory()); - } catch (YangParserException e) { - LOG.error("Failed to create DefaultBaseNetconfSchema, cause: ", e); - return false; - } + final BaseNetconfSchemaProvider defaultBaseNetconfSchemas; + defaultBaseNetconfSchemas = new DefaultBaseNetconfSchemaProvider(lightyServices.getYangParserFactory()); final CredentialProvider credentialProvider = new DefaultCredentialProvider(lightyServices.getBindingDataBroker()); final SslHandlerFactoryProvider factoryProvider diff --git a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceBaseTest.java b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceBaseTest.java index d05cee2540..8636b849fe 100644 --- a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceBaseTest.java +++ b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceBaseTest.java @@ -13,8 +13,9 @@ import java.util.List; import java.util.Set; import org.opendaylight.mdsal.binding.runtime.spi.ModuleInfoSnapshotBuilder; -import org.opendaylight.netconf.client.mdsal.impl.BaseSchema; -import org.opendaylight.netconf.client.mdsal.impl.DefaultBaseNetconfSchemas; +import org.opendaylight.netconf.client.mdsal.api.BaseNetconfSchema; +import org.opendaylight.netconf.client.mdsal.api.NetconfSessionPreferences; +import org.opendaylight.netconf.client.mdsal.impl.DefaultBaseNetconfSchemaProvider; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; @@ -32,7 +33,7 @@ public abstract class NetconfBaseServiceBaseTest { protected EffectiveModelContext effectiveModelContext; protected MountPointContext mountContext; - protected BaseSchema baseSchema; + protected BaseNetconfSchema baseSchema; @BeforeClass public void beforeTest() throws YangParserException { @@ -56,7 +57,11 @@ public void beforeTest() throws YangParserException { ); effectiveModelContext = getEffectiveModelContext(new ArrayList<>(yangModuleInfos)); mountContext = MountPointContext.of(effectiveModelContext); - baseSchema = new DefaultBaseNetconfSchemas(new DefaultYangParserFactory()).getBaseSchema(); + + NetconfSessionPreferences preferences = NetconfSessionPreferences.fromStrings( + List.of(yangModuleInfos.toArray().toString())); + baseSchema = new DefaultBaseNetconfSchemaProvider( + new DefaultYangParserFactory()).baseSchemaForCapabilities(preferences); } boolean hasSpecificChild(final Collection children, From b7c7d108ca2fdbd7648f121fc440a8972b6323bc Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Wed, 21 Feb 2024 13:40:57 +0100 Subject: [PATCH 31/70] Rework NetconfTopology initialization rework based on: https://github.com/opendaylight/netconf/commit/493d1f617e491d0c4deb8f49079eecf0864f8d80#diff-81bb4d75eb5577cb1c4debe8bf18583ee594e273e62dadf85a11c38b174135cc https://github.com/opendaylight/netconf/commit/1d802172c8b176cc51674f5dbf570ee1bd32fcd6 https://github.com/opendaylight/netconf/commit/e3b46411bea58a1bbd844124b300047f4f9c2648#diff-81bb4d75eb5577cb1c4debe8bf18583ee594e273e62dadf85a11c38b174135cc Signed-off-by: tobias.pobocik --- .../netconf/tests/CallhomePluginTest.java | 4 +- .../netconf/impl/NetconfCallhomePlugin.java | 78 +++++++++++++------ .../impl/NetconfCallhomePluginBuilder.java | 12 ++- .../impl/NetconfClusteredTopologyPlugin.java | 36 +++++---- .../netconf/impl/NetconfTopologyPlugin.java | 33 +++++--- 5 files changed, 107 insertions(+), 56 deletions(-) diff --git a/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/CallhomePluginTest.java b/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/CallhomePluginTest.java index 201c0c68ec..ac360460f2 100644 --- a/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/CallhomePluginTest.java +++ b/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/CallhomePluginTest.java @@ -46,7 +46,9 @@ public void beforeClass() throws ConfigurationException { final NetconfConfiguration configuration = NetconfConfigUtils.createDefaultNetconfConfiguration(); NetconfConfigUtils.injectServicesToTopologyConfig(configuration, lightyController.getServices()); - netconfPlugin = NetconfCallhomePluginBuilder.from(configuration, lightyController.getServices()).build(); + netconfPlugin = NetconfCallhomePluginBuilder.from(configuration, lightyController.getServices(), + restConfConfig.getInetAddress().getHostAddress(), restConfConfig.getHttpPort()).build(); + } @AfterClass diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfCallhomePlugin.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfCallhomePlugin.java index 86984d2639..480c6d28a3 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfCallhomePlugin.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfCallhomePlugin.java @@ -9,20 +9,21 @@ import io.lighty.core.controller.api.AbstractLightyModule; import io.lighty.core.controller.api.LightyServices; +import java.lang.annotation.Annotation; import java.util.concurrent.ExecutorService; -import org.opendaylight.aaa.encrypt.AAAEncryptionService; -import org.opendaylight.netconf.callhome.mount.CallHomeMountDispatcher; -import org.opendaylight.netconf.callhome.mount.IetfZeroTouchCallHomeServerProvider; -import org.opendaylight.netconf.client.mdsal.api.CredentialProvider; +import java.util.concurrent.TimeUnit; +import org.opendaylight.netconf.client.mdsal.DeviceActionFactoryImpl; import org.opendaylight.netconf.client.mdsal.api.SchemaResourceManager; -import org.opendaylight.netconf.client.mdsal.api.SslHandlerFactoryProvider; import org.opendaylight.netconf.client.mdsal.impl.DefaultBaseNetconfSchemaProvider; -import org.opendaylight.netconf.client.mdsal.impl.DefaultCredentialProvider; import org.opendaylight.netconf.client.mdsal.impl.DefaultSchemaResourceManager; -import org.opendaylight.netconf.client.mdsal.impl.DefaultSslHandlerFactoryProvider; -import org.opendaylight.netconf.topology.spi.DefaultNetconfClientConfigurationBuilderFactory; -import org.opendaylight.netconf.topology.spi.NetconfClientConfigurationBuilderFactory; -import org.opendaylight.yangtools.yang.parser.api.YangParserException; +import org.opendaylight.netconf.common.NetconfTimer; +import org.opendaylight.netconf.common.impl.DefaultNetconfTimer; +import org.opendaylight.netconf.topology.callhome.CallHomeMountService; +import org.opendaylight.netconf.topology.callhome.CallHomeMountSshAuthProvider; +import org.opendaylight.netconf.topology.callhome.CallHomeMountStatusReporter; +import org.opendaylight.netconf.topology.callhome.CallHomeSshAuthProvider; +import org.opendaylight.netconf.topology.callhome.IetfZeroTouchCallHomeServerProvider; +import org.opendaylight.netconf.topology.spi.NetconfTopologySchemaAssembler; import org.slf4j.LoggerFactory; public class NetconfCallhomePlugin extends AbstractLightyModule { @@ -32,24 +33,26 @@ public class NetconfCallhomePlugin extends AbstractLightyModule { private final IetfZeroTouchCallHomeServerProvider provider; public NetconfCallhomePlugin(final LightyServices lightyServices, final String topologyId, - final ExecutorService executorService, final AAAEncryptionService encryptionService) { + final ExecutorService executorService, final String adress, final int port) { super(executorService); final DefaultBaseNetconfSchemaProvider defaultBaseNetconfSchemas = new DefaultBaseNetconfSchemaProvider(lightyServices.getYangParserFactory()); - final SchemaResourceManager schemaResourceManager = - new DefaultSchemaResourceManager(lightyServices.getYangParserFactory()); - final CredentialProvider credentialProvider = - new DefaultCredentialProvider(lightyServices.getBindingDataBroker()); - final SslHandlerFactoryProvider factoryProvider = - new DefaultSslHandlerFactoryProvider(lightyServices.getBindingDataBroker()); - final NetconfClientConfigurationBuilderFactory factory = new DefaultNetconfClientConfigurationBuilderFactory( - encryptionService, credentialProvider, factoryProvider); - final CallHomeMountDispatcher dispatcher = - new CallHomeMountDispatcher(topologyId, lightyServices.getEventExecutor(), - lightyServices.getScheduledThreadPool(), lightyServices.getThreadPool(), - schemaResourceManager, defaultBaseNetconfSchemas, lightyServices.getBindingDataBroker(), - lightyServices.getDOMMountPointService(), factory); - this.provider = new IetfZeroTouchCallHomeServerProvider(lightyServices.getBindingDataBroker(), dispatcher); + final SchemaResourceManager manager = new DefaultSchemaResourceManager(lightyServices.getYangParserFactory()); + final var mountStatusReporter = new CallHomeMountStatusReporter( + lightyServices.getBindingDataBroker()); + final CallHomeSshAuthProvider authProvider = new CallHomeMountSshAuthProvider( + lightyServices.getBindingDataBroker(), mountStatusReporter); + final var recorder = new CallHomeMountStatusReporter(lightyServices.getBindingDataBroker()); + final NetconfTimer timer = new DefaultNetconfTimer(); + IetfZeroTouchCallHomeServerProvider.Configuration configuration = new Configuration(adress, 4334); + + final CallHomeMountService dispatcher = + new CallHomeMountService(topologyId, timer, + new NetconfTopologySchemaAssembler(1, 1, 10, TimeUnit.SECONDS), + manager, defaultBaseNetconfSchemas, lightyServices.getBindingDataBroker(), + lightyServices.getDOMMountPointService(), new DeviceActionFactoryImpl()); + this.provider = new IetfZeroTouchCallHomeServerProvider(timer, dispatcher, authProvider, recorder, + configuration); } @Override @@ -69,4 +72,29 @@ protected boolean stopProcedure() { return true; } + public static class Configuration implements IetfZeroTouchCallHomeServerProvider.Configuration { + private final String host; + private final int port; + + public Configuration(String host, int port) { + this.host = host; + this.port = port; + } + + @Override + public String host() { + return this.host; + } + + @Override + public int port() { + return this.port; + } + + @Override + public Class annotationType() { + return null; + } + } + } diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfCallhomePluginBuilder.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfCallhomePluginBuilder.java index 0deeeb54bf..09cdcd964d 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfCallhomePluginBuilder.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfCallhomePluginBuilder.java @@ -20,10 +20,14 @@ public class NetconfCallhomePluginBuilder { private LightyServices lightyServices; private NetconfConfiguration configuration; private ExecutorService executorService = null; + private String adress; + private int port; - public NetconfCallhomePluginBuilder(LightyServices services, NetconfConfiguration config) { + public NetconfCallhomePluginBuilder(LightyServices services, NetconfConfiguration config, String adress, int port) { this.lightyServices = services; this.configuration = config; + this.adress = adress; + this.port = port; } /** @@ -34,8 +38,8 @@ public NetconfCallhomePluginBuilder(LightyServices services, NetconfConfiguratio * @return instance of {@link NetconfCallhomePluginBuilder} class. */ public static NetconfCallhomePluginBuilder from(final NetconfConfiguration config, - final LightyServices services) { - return new NetconfCallhomePluginBuilder(services, config); + final LightyServices services, final String adress, final int port) { + return new NetconfCallhomePluginBuilder(services, config, adress, port); } /** @@ -54,6 +58,6 @@ public NetconfCallhomePluginBuilder withExecutorService(ExecutorService executor */ public NetconfCallhomePlugin build() { return new NetconfCallhomePlugin(lightyServices, configuration.getTopologyId(), executorService, - configuration.getAaaService()); + adress, port); } } diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfClusteredTopologyPlugin.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfClusteredTopologyPlugin.java index e15b8556d1..9fcab727d6 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfClusteredTopologyPlugin.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfClusteredTopologyPlugin.java @@ -9,19 +9,24 @@ import io.lighty.core.controller.api.LightyServices; import java.util.concurrent.ExecutorService; +import java.util.concurrent.TimeUnit; import org.opendaylight.aaa.encrypt.AAAEncryptionService; +import org.opendaylight.netconf.client.NetconfClientFactory; +import org.opendaylight.netconf.client.NetconfClientFactoryImpl; import org.opendaylight.netconf.client.mdsal.DeviceActionFactoryImpl; import org.opendaylight.netconf.client.mdsal.api.CredentialProvider; import org.opendaylight.netconf.client.mdsal.api.SchemaResourceManager; -import org.opendaylight.netconf.client.mdsal.api.SslHandlerFactoryProvider; +import org.opendaylight.netconf.client.mdsal.api.SslContextFactoryProvider; import org.opendaylight.netconf.client.mdsal.impl.DefaultBaseNetconfSchemaProvider; import org.opendaylight.netconf.client.mdsal.impl.DefaultCredentialProvider; import org.opendaylight.netconf.client.mdsal.impl.DefaultSchemaResourceManager; -import org.opendaylight.netconf.client.mdsal.impl.DefaultSslHandlerFactoryProvider; +import org.opendaylight.netconf.client.mdsal.impl.DefaultSslContextFactoryProvider; +import org.opendaylight.netconf.common.impl.DefaultNetconfTimer; +import org.opendaylight.netconf.keystore.legacy.impl.DefaultNetconfKeystoreService; import org.opendaylight.netconf.topology.singleton.impl.NetconfTopologyManager; -import org.opendaylight.netconf.topology.spi.DefaultNetconfClientConfigurationBuilderFactory; import org.opendaylight.netconf.topology.spi.NetconfClientConfigurationBuilderFactory; -import org.opendaylight.yangtools.yang.parser.api.YangParserException; +import org.opendaylight.netconf.topology.spi.NetconfClientConfigurationBuilderFactoryImpl; +import org.opendaylight.netconf.topology.spi.NetconfTopologySchemaAssembler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -47,19 +52,22 @@ protected boolean initProcedure() { new DefaultBaseNetconfSchemaProvider(lightyServices.getYangParserFactory()); final SchemaResourceManager schemaResourceManager = new DefaultSchemaResourceManager(lightyServices.getYangParserFactory()); + final var keystoreService = new DefaultNetconfKeystoreService(lightyServices.getBindingDataBroker(), + lightyServices.getRpcProviderService(), lightyServices.getClusterSingletonServiceProvider(), + encryptionService); final CredentialProvider credentialProvider - = new DefaultCredentialProvider(lightyServices.getBindingDataBroker()); - final SslHandlerFactoryProvider factoryProvider - = new DefaultSslHandlerFactoryProvider(lightyServices.getBindingDataBroker()); - final NetconfClientConfigurationBuilderFactory factory = new DefaultNetconfClientConfigurationBuilderFactory( - encryptionService, credentialProvider, factoryProvider); + = new DefaultCredentialProvider(keystoreService); + final NetconfClientFactory netconfClientFactory = new NetconfClientFactoryImpl(timer); + final SslContextFactoryProvider factoryProvider + = new DefaultSslContextFactoryProvider(keystoreService); + final NetconfClientConfigurationBuilderFactory factory = new NetconfClientConfigurationBuilderFactoryImpl( + encryptionService, credentialProvider, factoryProvider); topology = new NetconfTopologyManager(defaultBaseNetconfSchemas, lightyServices.getBindingDataBroker(), - lightyServices.getClusterSingletonServiceProvider(), lightyServices.getScheduledThreadPool(), - lightyServices.getThreadPool(), lightyServices.getActorSystemProvider(), - lightyServices.getEventExecutor(), clientDispatcher, - lightyServices.getDOMMountPointService(), encryptionService, lightyServices.getRpcProviderService(), - new DeviceActionFactoryImpl(), schemaResourceManager, factory); + lightyServices.getClusterSingletonServiceProvider(), new DefaultNetconfTimer(), + new NetconfTopologySchemaAssembler(1, 1, 0, TimeUnit.SECONDS), lightyServices.getActorSystemProvider(), + netconfClientFactory, lightyServices.getDOMMountPointService(), encryptionService, + lightyServices.getRpcProviderService(), new DeviceActionFactoryImpl(), schemaResourceManager, factory); return true; } diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfTopologyPlugin.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfTopologyPlugin.java index 67c1cb615e..4848d10f8c 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfTopologyPlugin.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfTopologyPlugin.java @@ -9,19 +9,25 @@ import io.lighty.core.controller.api.LightyServices; import java.util.concurrent.ExecutorService; +import java.util.concurrent.TimeUnit; import org.opendaylight.aaa.encrypt.AAAEncryptionService; +import org.opendaylight.netconf.client.NetconfClientFactory; +import org.opendaylight.netconf.client.NetconfClientFactoryImpl; import org.opendaylight.netconf.client.mdsal.api.BaseNetconfSchemaProvider; import org.opendaylight.netconf.client.mdsal.api.CredentialProvider; import org.opendaylight.netconf.client.mdsal.api.SchemaResourceManager; -import org.opendaylight.netconf.client.mdsal.api.SslHandlerFactoryProvider; +import org.opendaylight.netconf.client.mdsal.api.SslContextFactoryProvider; import org.opendaylight.netconf.client.mdsal.impl.DefaultBaseNetconfSchemaProvider; import org.opendaylight.netconf.client.mdsal.impl.DefaultCredentialProvider; import org.opendaylight.netconf.client.mdsal.impl.DefaultSchemaResourceManager; -import org.opendaylight.netconf.client.mdsal.impl.DefaultSslHandlerFactoryProvider; +import org.opendaylight.netconf.client.mdsal.impl.DefaultSslContextFactoryProvider; +import org.opendaylight.netconf.common.impl.DefaultNetconfTimer; +import org.opendaylight.netconf.keystore.legacy.NetconfKeystoreService; +import org.opendaylight.netconf.keystore.legacy.impl.DefaultNetconfKeystoreService; import org.opendaylight.netconf.topology.impl.NetconfTopologyImpl; -import org.opendaylight.netconf.topology.spi.DefaultNetconfClientConfigurationBuilderFactory; import org.opendaylight.netconf.topology.spi.NetconfClientConfigurationBuilderFactory; -import org.opendaylight.yangtools.yang.parser.api.YangParserException; +import org.opendaylight.netconf.topology.spi.NetconfClientConfigurationBuilderFactoryImpl; +import org.opendaylight.netconf.topology.spi.NetconfTopologySchemaAssembler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,18 +51,21 @@ public final class NetconfTopologyPlugin extends AbstractTopologyPlugin { protected boolean initProcedure() { final BaseNetconfSchemaProvider defaultBaseNetconfSchemas; defaultBaseNetconfSchemas = new DefaultBaseNetconfSchemaProvider(lightyServices.getYangParserFactory()); + final NetconfKeystoreService service = new DefaultNetconfKeystoreService( + lightyServices.getBindingDataBroker(), lightyServices.getRpcProviderService(), + lightyServices.getClusterSingletonServiceProvider(), encryptionService); + final NetconfClientFactory netconfFactory = new NetconfClientFactoryImpl(new DefaultNetconfTimer()); final CredentialProvider credentialProvider - = new DefaultCredentialProvider(lightyServices.getBindingDataBroker()); - final SslHandlerFactoryProvider factoryProvider - = new DefaultSslHandlerFactoryProvider(lightyServices.getBindingDataBroker()); - final NetconfClientConfigurationBuilderFactory factory = new DefaultNetconfClientConfigurationBuilderFactory( + = new DefaultCredentialProvider(service); + final SslContextFactoryProvider factoryProvider + = new DefaultSslContextFactoryProvider(service); + final NetconfClientConfigurationBuilderFactory factory = new NetconfClientConfigurationBuilderFactoryImpl( encryptionService, credentialProvider, factoryProvider); + final NetconfTopologySchemaAssembler assembler = new NetconfTopologySchemaAssembler(1,1,10, TimeUnit.SECONDS); final SchemaResourceManager schemaResourceManager = new DefaultSchemaResourceManager(lightyServices.getYangParserFactory()); - netconfTopologyImpl = new NetconfTopologyImpl(topologyId, clientDispatcher, - lightyServices.getEventExecutor(), lightyServices.getScheduledThreadPool(), - lightyServices.getThreadPool(), schemaResourceManager, - lightyServices.getBindingDataBroker(), lightyServices.getDOMMountPointService(), + netconfTopologyImpl = new NetconfTopologyImpl(topologyId, netconfFactory, new DefaultNetconfTimer(), assembler, + schemaResourceManager, lightyServices.getBindingDataBroker(), lightyServices.getDOMMountPointService(), encryptionService, factory, lightyServices.getRpcProviderService(), defaultBaseNetconfSchemas, new LightyDeviceActionFactory()); return true; From de6c73f884f474b93603a415b0c0f7346dae924c Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Thu, 22 Feb 2024 14:41:03 +0100 Subject: [PATCH 32/70] Rename DOMActionServiceExtension to DOMActionService.Extension https://github.com/opendaylight/mdsal/commit/64a183ca67a11262c033e2a871d4cbadd1f5013c Signed-off-by: tobias.pobocik --- .../southbound/netconf/impl/LightyDOMActionService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/LightyDOMActionService.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/LightyDOMActionService.java index 5faeb179e6..a7f9ed45f8 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/LightyDOMActionService.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/LightyDOMActionService.java @@ -17,7 +17,7 @@ import com.google.common.util.concurrent.SettableFuture; import java.util.Set; import org.opendaylight.mdsal.dom.api.DOMActionResult; -import org.opendaylight.mdsal.dom.api.DOMActionServiceExtension; +import org.opendaylight.mdsal.dom.api.DOMActionService; import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; import org.opendaylight.mdsal.dom.spi.SimpleDOMActionResult; import org.opendaylight.netconf.api.NetconfMessage; @@ -74,7 +74,7 @@ public void onFailure(final Throwable cause) { } @Override - public ClassToInstanceMap getExtensions() { + public ClassToInstanceMap getExtensions() { return MutableClassToInstanceMap.create(); } From c2f5077b5b084a362fa41f05033ba7a6fb7e58ca Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Thu, 22 Feb 2024 14:42:43 +0100 Subject: [PATCH 33/70] Get NetconfMessage from netconf.api.messages https://github.com/opendaylight/netconf/commit/9a42076866ac48394163722b6ca95821a6cce876 Signed-off-by: tobias.pobocik --- .../modules/southbound/netconf/impl/LightyDOMActionService.java | 2 +- .../southbound/netconf/tests/NetconfBaseServiceTest.java | 2 +- .../southbound/netconf/tests/NetconfNmdaBaseServiceTest.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/LightyDOMActionService.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/LightyDOMActionService.java index a7f9ed45f8..2598d5600e 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/LightyDOMActionService.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/LightyDOMActionService.java @@ -20,7 +20,7 @@ import org.opendaylight.mdsal.dom.api.DOMActionService; import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; import org.opendaylight.mdsal.dom.spi.SimpleDOMActionResult; -import org.opendaylight.netconf.api.NetconfMessage; +import org.opendaylight.netconf.api.messages.NetconfMessage; import org.opendaylight.netconf.client.mdsal.api.ActionTransformer; import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceCommunicator; import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceServices.Actions.Normalized; diff --git a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceTest.java b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceTest.java index 9f675fb152..2c3d923464 100755 --- a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceTest.java +++ b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceTest.java @@ -23,7 +23,7 @@ import org.mockito.Mockito; import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.netconf.api.EffectiveOperation; -import org.opendaylight.netconf.api.NetconfMessage; +import org.opendaylight.netconf.api.messages.NetconfMessage; import org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil; import org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformer; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfState; diff --git a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfNmdaBaseServiceTest.java b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfNmdaBaseServiceTest.java index d4476ca160..0ff717d2d9 100755 --- a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfNmdaBaseServiceTest.java +++ b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfNmdaBaseServiceTest.java @@ -28,7 +28,7 @@ import org.mockito.Mockito; import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.netconf.api.EffectiveOperation; -import org.opendaylight.netconf.api.NetconfMessage; +import org.opendaylight.netconf.api.messages.NetconfMessage; import org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformer; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.datastores.rev180214.Operational; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.datastores.rev180214.Running; From abd426ccfdd4956eb03edb3dfb8f88cc8dd603f4 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Thu, 22 Feb 2024 14:57:54 +0100 Subject: [PATCH 34/70] Remove redundant getExtensions method This method became unused as a result of 285f45ef875dec5c2eed670dc3c311ba9de3784b Signed-off-by: tobias.pobocik --- .../southbound/netconf/impl/LightyDOMActionService.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/LightyDOMActionService.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/LightyDOMActionService.java index 2598d5600e..d90353316d 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/LightyDOMActionService.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/LightyDOMActionService.java @@ -8,8 +8,6 @@ package io.lighty.modules.southbound.netconf.impl; import com.google.common.base.Preconditions; -import com.google.common.collect.ClassToInstanceMap; -import com.google.common.collect.MutableClassToInstanceMap; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; @@ -17,7 +15,6 @@ import com.google.common.util.concurrent.SettableFuture; import java.util.Set; import org.opendaylight.mdsal.dom.api.DOMActionResult; -import org.opendaylight.mdsal.dom.api.DOMActionService; import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; import org.opendaylight.mdsal.dom.spi.SimpleDOMActionResult; import org.opendaylight.netconf.api.messages.NetconfMessage; @@ -73,11 +70,6 @@ public void onFailure(final Throwable cause) { return settableFuture; } - @Override - public ClassToInstanceMap getExtensions() { - return MutableClassToInstanceMap.create(); - } - private static final class ActionRpcError implements RpcError { private final Throwable cause; From 947e381c3a871ef01ce86c97dd0ceaf17393c93b Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Thu, 22 Feb 2024 15:05:09 +0100 Subject: [PATCH 35/70] Use newer revision of netconf-node-topology https://github.com/opendaylight/netconf/commit/3a7861bd177cb31373573002ac85027100a11916#diff-28799befb2681209d93c0cccbad076367bcd2b93f645d48c372e7da29b7b8c17R10 Signed-off-by: tobias.pobocik --- .../controller/springboot/rest/NetconfDeviceRestService.java | 2 +- .../controller/springboot/rest/dto/NetconfDeviceResponse.java | 2 +- .../modules/southbound/netconf/tests/TopologyPluginsTest.java | 4 ++-- .../southbound/netconf/impl/util/NetconfConfigUtils.java | 4 ++-- .../modules/southbound/netconf/impl/util/NetconfUtils.java | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/NetconfDeviceRestService.java b/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/NetconfDeviceRestService.java index 327372dced..23d2433710 100644 --- a/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/NetconfDeviceRestService.java +++ b/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/NetconfDeviceRestService.java @@ -31,7 +31,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.credentials.credentials.LoginPasswordBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev231121.NetconfNodeBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId; diff --git a/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/dto/NetconfDeviceResponse.java b/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/dto/NetconfDeviceResponse.java index 728339d042..2a3cf035d3 100644 --- a/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/dto/NetconfDeviceResponse.java +++ b/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/dto/NetconfDeviceResponse.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.ConnectionOper.ConnectionStatus; -import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev231121.NetconfNode; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; public class NetconfDeviceResponse { diff --git a/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/TopologyPluginsTest.java b/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/TopologyPluginsTest.java index af09a91019..c2f50ed1b1 100644 --- a/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/TopologyPluginsTest.java +++ b/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/TopologyPluginsTest.java @@ -35,8 +35,8 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.credentials.Credentials; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.credentials.credentials.LoginPasswordBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode; -import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev231121.NetconfNode; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev231121.NetconfNodeBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId; diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfConfigUtils.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfConfigUtils.java index 2ba8fde9e2..ea1aae99cb 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfConfigUtils.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfConfigUtils.java @@ -43,9 +43,9 @@ public final class NetconfConfigUtils { public static final String NETCONF_CONFIG_ROOT_ELEMENT_NAME = "netconf"; public static final Set NETCONF_TOPOLOGY_MODELS = Set.of( - org.opendaylight.yang.svc.v1.urn.opendaylight.netconf.keystore.rev171017 + org.opendaylight.yang.svc.v1.urn.opendaylight.netconf.keystore.rev231109 .YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.svc.v1.urn.opendaylight.netconf.node.topology.rev221225 + org.opendaylight.yang.svc.v1.urn.opendaylight.netconf.node.topology.rev231121 .YangModuleInfoImpl.getInstance(), org.opendaylight.yang.svc.v1.urn.opendaylight.netconf.node.optional.rev221225 .YangModuleInfoImpl.getInstance(), diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfUtils.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfUtils.java index 8786075e11..bdcbd410f3 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfUtils.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfUtils.java @@ -31,7 +31,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.copy.config.input.target.ConfigTarget; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.edit.config.input.EditContent; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.get.config.input.source.ConfigSource; -import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.network.topology.topology.topology.types.TopologyNetconf; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev231121.network.topology.topology.topology.types.TopologyNetconf; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId; From c23e0b71ec66ca47879a91024d31bb9e5b4b04c3 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Mon, 26 Feb 2024 13:16:50 +0100 Subject: [PATCH 36/70] Clean up netconf-{common,client}-mdsal constants https://github.com/opendaylight/netconf/commit/7d45e6b0afa89f47912b00e20afaaab7fbe96958 Signed-off-by: tobias.pobocik --- .../netconf/impl/NetconfBaseServiceImpl.java | 40 ++++++++++--------- .../impl/NetconfNmdaBaseServiceImpl.java | 16 ++++---- .../netconf/impl/util/NetconfUtils.java | 12 +++--- .../netconf/tests/NetconfBaseServiceTest.java | 8 ++-- 4 files changed, 40 insertions(+), 36 deletions(-) diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfBaseServiceImpl.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfBaseServiceImpl.java index e7f31eabc8..03b47aa6ef 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfBaseServiceImpl.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfBaseServiceImpl.java @@ -7,12 +7,9 @@ */ package io.lighty.modules.southbound.netconf.impl; -import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_EDIT_CONFIG_QNAME; -import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_GET_CONFIG_QNAME; -import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_GET_QNAME; -import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_LOCK_QNAME; -import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_RUNNING_QNAME; -import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_UNLOCK_QNAME; +import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_LOCK_NODEID; +import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_RUNNING_NODEID; +import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_UNLOCK_NODEID; import com.google.common.base.Preconditions; import com.google.common.util.concurrent.ListenableFuture; @@ -22,6 +19,10 @@ import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.CopyConfig; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.EditConfig; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.Get; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.GetConfig; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -47,10 +48,10 @@ public ListenableFuture get(final Optional getConfig(final QName sourceData if (filterYII.isPresent() && !filterYII.get().isEmpty()) { final DataContainerChild filter = NetconfMessageTransformUtil.toFilterStructure(filterYII.get(), effectiveModelContext); - return domRpcService.invokeRpc(NETCONF_GET_CONFIG_QNAME, - NetconfMessageTransformUtil.wrap(NETCONF_GET_CONFIG_QNAME, + return domRpcService.invokeRpc(GetConfig.QNAME, + NetconfMessageTransformUtil.wrap(GetConfig.QNAME, NetconfUtils.getSourceNode(sourceDatastore), filter)); } else { - return domRpcService.invokeRpc(NETCONF_GET_CONFIG_QNAME, - NetconfMessageTransformUtil.wrap(NETCONF_GET_CONFIG_QNAME, + return domRpcService.invokeRpc(GetConfig.QNAME, + NetconfMessageTransformUtil.wrap(GetConfig.QNAME, NetconfUtils.getSourceNode(sourceDatastore))); } } @@ -84,7 +85,7 @@ public ListenableFuture editConfig(final QName targetDat Preconditions.checkNotNull(editStructure); - return domRpcService.invokeRpc(NETCONF_EDIT_CONFIG_QNAME, + return domRpcService.invokeRpc(EditConfig.QNAME, NetconfUtils.getEditConfigContent(targetDatastore, editStructure, defaultEffectiveOperation, rollback)); } @@ -94,17 +95,17 @@ public ListenableFuture copyConfig(final QName sourceDat Preconditions.checkNotNull(sourceDatastore); Preconditions.checkNotNull(targetDatastore); - return domRpcService.invokeRpc(NetconfMessageTransformUtil.NETCONF_COPY_CONFIG_QNAME, + return domRpcService.invokeRpc(CopyConfig.QNAME, NetconfUtils.getCopyConfigContent(sourceDatastore, targetDatastore)); } @Override public ListenableFuture deleteConfig(final QName targetDatastore) { Preconditions.checkNotNull(targetDatastore); - Preconditions.checkArgument(!NETCONF_RUNNING_QNAME.equals(targetDatastore), + Preconditions.checkArgument(!NETCONF_RUNNING_NODEID.getNodeType().equals(targetDatastore), "Running datastore cannot be deleted."); - return domRpcService.invokeRpc(NetconfUtils.NETCONF_DELETE_CONFIG_QNAME, + return domRpcService.invokeRpc(NetconfUtils.NETCONF_DELETE_CONFIG_QNAME.getNodeType(), NetconfUtils.getDeleteConfigContent(targetDatastore)); } @@ -112,14 +113,15 @@ public ListenableFuture deleteConfig(final QName targetD public ListenableFuture lock(final QName targetDatastore) { Preconditions.checkNotNull(targetDatastore); - return domRpcService.invokeRpc(NETCONF_LOCK_QNAME, NetconfUtils.getLockContent(targetDatastore)); + return domRpcService.invokeRpc(NETCONF_LOCK_NODEID.getNodeType(), NetconfUtils.getLockContent(targetDatastore)); } @Override public ListenableFuture unlock(final QName targetDatastore) { Preconditions.checkNotNull(targetDatastore); - return domRpcService.invokeRpc(NETCONF_UNLOCK_QNAME, NetconfUtils.getUnLockContent(targetDatastore)); + return domRpcService.invokeRpc(NETCONF_UNLOCK_NODEID.getNodeType(), + NetconfUtils.getUnLockContent(targetDatastore)); } @Override diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfNmdaBaseServiceImpl.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfNmdaBaseServiceImpl.java index a8336bdb53..88d2ea887e 100755 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfNmdaBaseServiceImpl.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfNmdaBaseServiceImpl.java @@ -8,8 +8,7 @@ package io.lighty.modules.southbound.netconf.impl; import static java.util.Objects.requireNonNull; -import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_OPERATION_QNAME; -import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_RUNNING_QNAME; +import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_RUNNING_NODEID; import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.toId; import com.google.common.base.Preconditions; @@ -26,6 +25,8 @@ import org.opendaylight.mdsal.dom.api.DOMRpcResult; import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.netconf.api.EffectiveOperation; +import org.opendaylight.netconf.api.NamespaceURN; +import org.opendaylight.netconf.api.xml.XmlNetconfConstants; import org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.datastores.rev180214.Running; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.nmda.rev190107.edit.data.input.EditContent; @@ -81,11 +82,10 @@ public class NetconfNmdaBaseServiceImpl extends NetconfBaseServiceImpl implement private static final NodeIdentifier NETCONF_WITH_ORIGIN_NODEID = NodeIdentifier.create(QName.create(NETCONF_GET_DATA_QNAME, "with-origin").intern()); - private static final QName NETCONF_OPERATION_QNAME_LEGACY = NETCONF_OPERATION_QNAME.withoutRevision().intern(); + private static final QName NETCONF_OPERATION_QNAME_LEGACY = QName.create(NamespaceURN.BASE, + XmlNetconfConstants.OPERATION_ATTR_KEY).intern(); private static final NodeIdentifier NETCONF_EDIT_DATA_CONFIG_NODEID = NodeIdentifier.create(QName.create(NETCONF_EDIT_DATA_QNAME, "config").intern()); - private static final NodeIdentifier NETCONF_DEFAULT_OPERATION_NODEID = - NodeIdentifier.create(QName.create(NETCONF_EDIT_DATA_QNAME, "default-operation").intern()); public NetconfNmdaBaseServiceImpl(NodeId nodeId, DOMRpcService domRpcService, EffectiveModelContext effectiveModelContext) { @@ -163,7 +163,7 @@ public ListenableFuture editData(QName targetDatastore, @Override public ListenableFuture deleteConfig(QName targetDatastore) { if (Running.QNAME.equals(targetDatastore)) { - targetDatastore = NETCONF_RUNNING_QNAME; + targetDatastore = NETCONF_RUNNING_NODEID.getNodeType(); } return super.deleteConfig(targetDatastore); } @@ -217,7 +217,9 @@ private DataContainerChild getWithOriginNode() { private DataContainerChild getDefaultOperationNode(EffectiveOperation defaultEffectiveOperation) { final String opString = defaultEffectiveOperation.name().toLowerCase(Locale.US); - return Builders.leafBuilder().withNodeIdentifier(NETCONF_DEFAULT_OPERATION_NODEID) + return Builders.leafBuilder().withNodeIdentifier(NodeIdentifier.create( + org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.nmda.rev190107 + .YangModuleInfoImpl.qnameOf("default-operation"))) .withValue(opString).build(); } diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfUtils.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfUtils.java index bdcbd410f3..fe8ded85c6 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfUtils.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfUtils.java @@ -17,7 +17,7 @@ import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_TARGET_NODEID; import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_UNLOCK_NODEID; import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_VALIDATE_NODEID; -import static org.opendaylight.netconf.common.mdsal.NormalizedDataUtil.NETCONF_QNAME; +import static org.opendaylight.yang.svc.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.YangModuleInfoImpl.qnameOf; import com.google.common.base.Preconditions; import com.google.common.util.concurrent.Futures; @@ -55,10 +55,10 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; public final class NetconfUtils { - public static final QName NETCONF_DELETE_CONFIG_QNAME = - QName.create(NETCONF_QNAME, "delete-config").intern(); + public static final NodeIdentifier NETCONF_DELETE_CONFIG_QNAME = + NodeIdentifier.create(qnameOf("delete-config")); public static final NodeIdentifier NETCONF_DELETE_CONFIG_NODEID = - NodeIdentifier.create(NETCONF_DELETE_CONFIG_QNAME); + NodeIdentifier.create(NETCONF_DELETE_CONFIG_QNAME.getNodeType()); private static final NodeIdentifier CONFIG_SOURCE_NODEID = NodeIdentifier.create(ConfigSource.QNAME); private static final NodeIdentifier CONFIG_TARGET_NODEID = NodeIdentifier.create(ConfigTarget.QNAME); private static final NodeIdentifier EDIT_CONTENT_NODEID = NodeIdentifier.create(EditContent.QNAME); @@ -94,9 +94,9 @@ public static ListenableFuture> extractDataFromRpcResul final Optional path, final ListenableFuture rpcFuture) { return Futures.transform(rpcFuture, result -> { Preconditions.checkArgument( - result.getErrors().isEmpty(), "Unable to read data: %s, errors: %s", path, result.getErrors()); + result.errors().isEmpty(), "Unable to read data: %s, errors: %s", path, result.errors()); final DataContainerChild dataNode = - result.getResult().getChildByArg(NETCONF_DATA_NODEID); + result.value().getChildByArg(NETCONF_DATA_NODEID); return NormalizedNodes.findNode(dataNode, path.get().getPathArguments()); }, MoreExecutors.directExecutor()); } diff --git a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceTest.java b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceTest.java index 2c3d923464..c7dd553e3e 100755 --- a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceTest.java +++ b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceTest.java @@ -79,7 +79,7 @@ public void testBaseServiceGetMock() { NetconfMessageTransformer transformer = new NetconfMessageTransformer(mountContext, true, baseSchema); NetconfMessage netconfMessage = transformer.toRpcRequest( - NetconfMessageTransformUtil.NETCONF_GET_QNAME, capturedNN.getValue()); + NetconfMessageTransformUtil.NETCONF_GET_NODEID.getNodeType(), capturedNN.getValue()); Element getElement = getSpecificElementSubtree(netconfMessage.getDocument().getDocumentElement(), QNAME_BASE, "get"); assertNotNull(getElement); @@ -117,8 +117,8 @@ public void testBaseServiceGetConfigMock() { assertTrue(hasSpecificChild(children, "filter")); NetconfMessageTransformer transformer = new NetconfMessageTransformer(mountContext, true, baseSchema); - NetconfMessage netconfMessage = transformer.toRpcRequest(NetconfMessageTransformUtil.NETCONF_GET_CONFIG_QNAME, - capturedNN.getValue()); + NetconfMessage netconfMessage = transformer.toRpcRequest(NetconfMessageTransformUtil.NETCONF_GET_CONFIG_NODEID + .getNodeType(), capturedNN.getValue()); Element getElement = getSpecificElementSubtree(netconfMessage.getDocument().getDocumentElement(), QNAME_BASE, "get-config"); assertNotNull(getElement); @@ -174,7 +174,7 @@ public void testBaseServiceEditConfigMock() { NetconfMessageTransformer transformer = new NetconfMessageTransformer(mountContext, true, baseSchema); NetconfMessage netconfMessage = transformer.toRpcRequest( - NetconfMessageTransformUtil.NETCONF_EDIT_CONFIG_QNAME, capturedNN.getValue()); + NetconfMessageTransformUtil.NETCONF_EDIT_CONFIG_NODEID.getNodeType(), capturedNN.getValue()); Element editData = getSpecificElementSubtree(netconfMessage.getDocument().getDocumentElement(), QNAME_BASE, "edit-config"); assertNotNull(editData); From 16f1f7c7e5c759fa2c52bed855622402f236df14 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Mon, 26 Feb 2024 16:43:03 +0100 Subject: [PATCH 37/70] Disconnect NormalizedNode from Identifiable https://github.com/opendaylight/yangtools/commit/354be5622329ddadfc1cd816602686b8ba493432 Signed-off-by: tobias.pobocik --- .../main/java/io/lighty/codecs/util/JsonNodeConverter.java | 6 +++--- .../main/java/io/lighty/codecs/util/XmlNodeConverter.java | 4 ++-- .../io/lighty/modules/gnmi/commons/util/DataConverter.java | 4 ++-- .../modules/gnmi/simulatordevice/gnmi/GnmiCrudService.java | 2 +- .../modules/gnmi/simulatordevice/yang/YangDataService.java | 4 ++-- .../simulatordevice/gnmi/LoadAugmentationFromGnmiPath.java | 2 +- .../southbound/schema/loader/util/YangLoadModelUtil.java | 2 +- .../modules/gnmi/test/gnmi/GnmiWithoutRestconfTest.java | 6 +++--- .../southbound/netconf/impl/NetconfNmdaBaseServiceImpl.java | 4 ++-- .../netconf/tests/NetconfBaseServiceBaseTest.java | 2 +- .../netconf/tests/NetconfNmdaBaseServiceTest.java | 2 +- 11 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lighty-core/lighty-codecs-util/src/main/java/io/lighty/codecs/util/JsonNodeConverter.java b/lighty-core/lighty-codecs-util/src/main/java/io/lighty/codecs/util/JsonNodeConverter.java index cf61459cff..04d2fd2847 100644 --- a/lighty-core/lighty-codecs-util/src/main/java/io/lighty/codecs/util/JsonNodeConverter.java +++ b/lighty-core/lighty-codecs-util/src/main/java/io/lighty/codecs/util/JsonNodeConverter.java @@ -95,7 +95,7 @@ public JsonNodeConverter(final EffectiveModelContext effectiveModelContext, public Writer serializeData(final Inference inference, final NormalizedNode normalizedNode) throws SerializationException { final Writer writer = new StringWriter(); - final XMLNamespace initialNamespace = normalizedNode.getIdentifier().getNodeType().getNamespace(); + final XMLNamespace initialNamespace = normalizedNode.name().getNodeType().getNamespace(); // nnStreamWriter closes underlying JsonWriter, we don't need too final JsonWriter jsonWriter = new JsonWriter(writer); // Exclusive nnWriter closes underlying NormalizedNodeStreamWriter, we don't need too @@ -127,9 +127,9 @@ public Writer serializeRpc(final Inference inference, final NormalizedNode normalizedNode) throws SerializationException { Preconditions.checkState(normalizedNode instanceof ContainerNode, "RPC input/output to serialize is expected to be a ContainerNode"); - final XMLNamespace namespace = normalizedNode.getIdentifier().getNodeType().getNamespace(); + final XMLNamespace namespace = normalizedNode.name().getNodeType().getNamespace(); // Input/output - final String localName = normalizedNode.getIdentifier().getNodeType().getLocalName(); + final String localName = normalizedNode.name().getNodeType().getLocalName(); final Writer writer = new StringWriter(); // nnStreamWriter closes underlying JsonWriter, we don't need too final JsonWriter jsonWriter = new JsonWriter(writer); diff --git a/lighty-core/lighty-codecs-util/src/main/java/io/lighty/codecs/util/XmlNodeConverter.java b/lighty-core/lighty-codecs-util/src/main/java/io/lighty/codecs/util/XmlNodeConverter.java index e428cf2523..29c526cd8d 100644 --- a/lighty-core/lighty-codecs-util/src/main/java/io/lighty/codecs/util/XmlNodeConverter.java +++ b/lighty-core/lighty-codecs-util/src/main/java/io/lighty/codecs/util/XmlNodeConverter.java @@ -106,9 +106,9 @@ public Writer serializeRpc(final Inference inference, final NormalizedNode norma } catch (XMLStreamException | FactoryConfigurationError e) { throw new SerializationException(e); } - final XMLNamespace namespace = normalizedNode.getIdentifier().getNodeType().getNamespace(); + final XMLNamespace namespace = normalizedNode.name().getNodeType().getNamespace(); // Input/output - final String localName = normalizedNode.getIdentifier().getNodeType().getLocalName(); + final String localName = normalizedNode.name().getNodeType().getLocalName(); final NormalizedNodeStreamWriter nnStreamWriter = XMLStreamNormalizedNodeStreamWriter .create(xmlStreamWriter, inference); try (NormalizedNodeWriter nnWriter = NormalizedNodeWriter.forStreamWriter(nnStreamWriter)) { diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/main/java/io/lighty/modules/gnmi/commons/util/DataConverter.java b/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/main/java/io/lighty/modules/gnmi/commons/util/DataConverter.java index d622b6a3b9..2e58847374 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/main/java/io/lighty/modules/gnmi/commons/util/DataConverter.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/main/java/io/lighty/modules/gnmi/commons/util/DataConverter.java @@ -72,7 +72,7 @@ private static String createJsonWithExclusiveWriter(final Inference inference, f final JSONCodecFactory jsonCodecFactory) { final Writer writer = new StringWriter(); final JsonWriter jsonWriter = new JsonWriter(writer); - final XMLNamespace namespace = data.getIdentifier().getNodeType().getNamespace(); + final XMLNamespace namespace = data.name().getNodeType().getNamespace(); final NormalizedNodeStreamWriter nodeWriter = JSONNormalizedNodeStreamWriter .createExclusiveWriter(jsonCodecFactory, inference, namespace, jsonWriter); final NormalizedNodeWriter normalizedNodeWriter = NormalizedNodeWriter.forStreamWriter(nodeWriter); @@ -91,7 +91,7 @@ private static String createJsonWithNestedWriter(final Inference inference, fina final JSONCodecFactory jsonCodecFactory) { final Writer writer = new StringWriter(); final JsonWriter jsonWriter = new JsonWriter(writer); - final XMLNamespace namespace = data.getIdentifier().getNodeType().getNamespace(); + final XMLNamespace namespace = data.name().getNodeType().getNamespace(); final NormalizedNodeStreamWriter nodeWriter = JSONNormalizedNodeStreamWriter .createNestedWriter(jsonCodecFactory, inference, namespace, jsonWriter); final NormalizedNodeWriter normalizedNodeWriter = NormalizedNodeWriter.forStreamWriter(nodeWriter); diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/gnmi/GnmiCrudService.java b/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/gnmi/GnmiCrudService.java index 68b62128ec..092d2adec9 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/gnmi/GnmiCrudService.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/gnmi/GnmiCrudService.java @@ -143,7 +143,7 @@ Gnmi.SetResponse set(final Gnmi.SetRequest request) { Map.Entry getResultInJsonFormat(final Map.Entry entry, final NormalizedNode node) { final Optional module - = DataConverter.findModuleByQName(node.getIdentifier().getNodeType(), context); + = DataConverter.findModuleByQName(node.name().getNodeType(), context); final String moduleName = module.map(Module::getName).orElse(null); final String jsonValue = DataConverter.jsonStringFromNormalizedNodes(entry.getValue(), node, context); diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/yang/YangDataService.java b/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/yang/YangDataService.java index ad43bb6d4a..0a63797797 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/yang/YangDataService.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/yang/YangDataService.java @@ -126,11 +126,11 @@ private void initDataTree(final InputStream stream, final DatastoreType datastor If QName of parsed node is a root node (SchemaContext.NAME), that means we parsed multiple top-level element, in that case we need to write this node on ROOT YII. */ - if (node.getIdentifier().getNodeType().equals(SchemaContext.NAME)) { + if (node.name().getNodeType().equals(SchemaContext.NAME)) { writeDataByPath(datastoreType, YangInstanceIdentifier.empty(), node); // Else we parsed only one top-level element, in that case we write this node on it's identifier. } else { - writeDataByPath(datastoreType, YangInstanceIdentifier.of(node.getIdentifier().getNodeType()), node); + writeDataByPath(datastoreType, YangInstanceIdentifier.of(node.name().getNodeType()), node); } } catch (final IOException e) { diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/test/java/io/lighty/modules/gnmi/simulatordevice/gnmi/LoadAugmentationFromGnmiPath.java b/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/test/java/io/lighty/modules/gnmi/simulatordevice/gnmi/LoadAugmentationFromGnmiPath.java index 01af356ccd..675c81341a 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/test/java/io/lighty/modules/gnmi/simulatordevice/gnmi/LoadAugmentationFromGnmiPath.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/test/java/io/lighty/modules/gnmi/simulatordevice/gnmi/LoadAugmentationFromGnmiPath.java @@ -73,7 +73,7 @@ public void validateParsingProcessFromGnmiPathToYangInstanceIdentifierToJson() { Assert.assertTrue(result.isPresent(), String.format("Failed to load [%s] from data-store", entry.getValue().getLastPathArgument())); NormalizedNode normalizedNode = result.get(); - Assert.assertEquals(normalizedNode.getIdentifier(), entry.getValue().getLastPathArgument()); + Assert.assertEquals(normalizedNode.name(), entry.getValue().getLastPathArgument()); //Test to parse data retrieved from data-store to JSON format. Map.Entry resultInJsonFormat = this.gnmiCrudService.getResultInJsonFormat(entry, normalizedNode); diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java index ac1369cb2d..74622ca642 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java @@ -40,7 +40,7 @@ public YangLoadModelUtil(final YangTextSchemaSource yangTextSchemaSource, final final YangModelDependencyInfo yangModelDependencyInfo = YangModelDependencyInfo.forYangText(yangTextSchemaSource); // If revision is present in fileName, prefer that - this.modelRevision = Optional.ofNullable(yangTextSchemaSource.getIdentifier().revision()) + this.modelRevision = Optional.ofNullable(yangTextSchemaSource.name().revision()) .or(yangModelDependencyInfo::getRevision).orElse(null); this.modelSemVer = semanticVersion.orElse(null); this.modelBody = IOUtils.toString(yangTextStream, StandardCharsets.UTF_8); diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/gnmi/GnmiWithoutRestconfTest.java b/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/gnmi/GnmiWithoutRestconfTest.java index d957629927..7a21efd5ce 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/gnmi/GnmiWithoutRestconfTest.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/gnmi/GnmiWithoutRestconfTest.java @@ -232,7 +232,7 @@ public void testCrudOperation() throws ExecutionException, InterruptedException, final YangInstanceIdentifier interfacesYIID = YangInstanceIdentifier.builder().node(INTERFACES_QNAME).build(); final Optional normalizedNode = readDOMConfigData(domDataBroker, interfacesYIID); assertTrue(normalizedNode.isPresent()); - assertEquals(INTERFACES_QNAME, normalizedNode.get().getIdentifier().getNodeType()); + assertEquals(INTERFACES_QNAME, normalizedNode.get().name().getNodeType()); //SET data final YangInstanceIdentifier testLeafListYIID = YangInstanceIdentifier.builder() @@ -243,7 +243,7 @@ public void testCrudOperation() throws ExecutionException, InterruptedException, //GET created data final Optional createdContainer = readDOMConfigData(domDataBroker, testLeafListYIID); assertTrue(createdContainer.isPresent()); - assertEquals(TEST_DATA_CONTAINER_QN, createdContainer.get().getIdentifier().getNodeType()); + assertEquals(TEST_DATA_CONTAINER_QN, createdContainer.get().name().getNodeType()); //UPDATE data final ContainerNode updateTestDataContainerNode = getUpdateTestDataContainerNode(); @@ -252,7 +252,7 @@ public void testCrudOperation() throws ExecutionException, InterruptedException, //GET updated data final Optional updatedContainer = readDOMConfigData(domDataBroker, testLeafListYIID); assertTrue(updatedContainer.isPresent()); - assertEquals(TEST_DATA_CONTAINER_QN, updatedContainer.get().getIdentifier().getNodeType()); + assertEquals(TEST_DATA_CONTAINER_QN, updatedContainer.get().name().getNodeType()); assertTrue(updatedContainer.get() instanceof ContainerNode); ContainerNode containerNode = (ContainerNode) updatedContainer.get(); assertEquals(1, containerNode.body().toArray().length); diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfNmdaBaseServiceImpl.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfNmdaBaseServiceImpl.java index 88d2ea887e..f9b2086d84 100755 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfNmdaBaseServiceImpl.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/NetconfNmdaBaseServiceImpl.java @@ -144,7 +144,7 @@ public ListenableFuture editData(QName targetDatastore, .map(oper -> leafMetadata(dataPath, oper)) .orElse(null); final SchemaInferenceStack stack = SchemaInferenceStack.of(getEffectiveModelContext()); - stack.enterSchemaTree(editNNContent.getIdentifier().getNodeType()); + stack.enterSchemaTree(editNNContent.name().getNodeType()); final AnydataNode editContent = new ImmutableAnydataNodeBuilder<>(NormalizedAnydata.class) .withNodeIdentifier(NETCONF_EDIT_DATA_CONFIG_NODEID) .withValue(NormalizedAnydata.of(stack.toInference(), editNNContent, metadata)) @@ -266,7 +266,7 @@ private ChoiceNode getOriginFilterSpecChoiceNode(final Set originFilter, private ChoiceNode getFilterSpecChoiceNode(final YangInstanceIdentifier filterYII) { final NormalizedNode filterNN = ImmutableNodes.fromInstanceId(getEffectiveModelContext(), filterYII); final SchemaInferenceStack stack = SchemaInferenceStack.of(getEffectiveModelContext()); - stack.enterSchemaTree(filterNN.getIdentifier().getNodeType()); + stack.enterSchemaTree(filterNN.name().getNodeType()); final AnydataNode subtreeFilter = (AnydataNode) new ImmutableAnydataNodeBuilder(NormalizedAnydata.class) .withNodeIdentifier(NETCONF_FILTER_NODEID) diff --git a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceBaseTest.java b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceBaseTest.java index 8636b849fe..aef28dc050 100644 --- a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceBaseTest.java +++ b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfBaseServiceBaseTest.java @@ -67,7 +67,7 @@ public void beforeTest() throws YangParserException { boolean hasSpecificChild(final Collection children, final String localName) { return children.stream() - .anyMatch(child -> child.getIdentifier().getNodeType().getLocalName().equals(localName)); + .anyMatch(child -> child.name().getNodeType().getLocalName().equals(localName)); } Element getSpecificElementSubtree(final Element doc, final String namespace, final String localName) { diff --git a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfNmdaBaseServiceTest.java b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfNmdaBaseServiceTest.java index 0ff717d2d9..929aba45a7 100755 --- a/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfNmdaBaseServiceTest.java +++ b/lighty-modules/lighty-netconf-sb/src/test/java/io/lighty/modules/southbound/netconf/tests/NetconfNmdaBaseServiceTest.java @@ -81,7 +81,7 @@ public void testBaseServiceGetDataMock() { assertTrue(hasSpecificChild(children, "filter-spec")); Optional filter = children.stream() - .filter(child -> child.getIdentifier().getNodeType().getLocalName().equals("filter-spec")).findAny(); + .filter(child -> child.name().getNodeType().getLocalName().equals("filter-spec")).findAny(); assertTrue(filter.isPresent()); NetconfMessageTransformer transformer = new NetconfMessageTransformer(mountContext, true, baseSchema); From 91ff56d4c1713848c0ec36fee5cc6e532cba9bb4 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Mon, 26 Feb 2024 16:54:04 +0100 Subject: [PATCH 38/70] Use newer revision of odl-netconf-callhome-server https://github.com/opendaylight/netconf/commit/bc787787e74692d8a7499c3ec2c0e2ff5379c0bd Signed-off-by: tobias.pobocik --- .../southbound/netconf/impl/util/NetconfConfigUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfConfigUtils.java b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfConfigUtils.java index ea1aae99cb..1feb106b56 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfConfigUtils.java +++ b/lighty-modules/lighty-netconf-sb/src/main/java/io/lighty/modules/southbound/netconf/impl/util/NetconfConfigUtils.java @@ -59,7 +59,7 @@ public final class NetconfConfigUtils { .YangModuleInfoImpl.getInstance() ); public static final Set NETCONF_CALLHOME_MODELS = Set.of( - org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev230428 + org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev240129 .YangModuleInfoImpl.getInstance() ); private static final Logger LOG = LoggerFactory.getLogger(NetconfConfigUtils.class); From 3862956fa925466c7c7ffd3dbfa944458ef64f5b Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Mon, 26 Feb 2024 17:15:09 +0100 Subject: [PATCH 39/70] Remove RootResourceDiscoveryService This we can replace this implementation just by using JaxRsWebHostMetadata: https://github.com/opendaylight/netconf/commit/5e623d89b759fca0a31c1dbd378e33fd6b80eac4 https://github.com/opendaylight/netconf/commit/545a55370d9d52d08165afdc07fb9bed051cd709 Signed-off-by: tobias.pobocik --- .../discovery/RootFoundApplication.java | 6 +-- .../RootResourceDiscoveryServiceImpl.java | 52 ------------------- 2 files changed, 3 insertions(+), 55 deletions(-) delete mode 100644 lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/root/resource/discovery/RootResourceDiscoveryServiceImpl.java diff --git a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/root/resource/discovery/RootFoundApplication.java b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/root/resource/discovery/RootFoundApplication.java index ddf8a8fc80..85604b0f61 100644 --- a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/root/resource/discovery/RootFoundApplication.java +++ b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/root/resource/discovery/RootFoundApplication.java @@ -10,14 +10,14 @@ import java.util.Set; import javax.ws.rs.core.Application; +import org.opendaylight.restconf.nb.jaxrs.JaxRsWebHostMetadata; import org.opendaylight.restconf.nb.rfc8040.jersey.providers.errors.RestconfDocumentedExceptionMapper; -import org.opendaylight.restconf.nb.rfc8040.rests.services.api.RootResourceDiscoveryService; public class RootFoundApplication extends Application { - private final RootResourceDiscoveryService rrds; + private final JaxRsWebHostMetadata rrds; public RootFoundApplication(final String restconfServletContextPath) { - this.rrds = new RootResourceDiscoveryServiceImpl(restconfServletContextPath); + this.rrds = new JaxRsWebHostMetadata(restconfServletContextPath); } @Override diff --git a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/root/resource/discovery/RootResourceDiscoveryServiceImpl.java b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/root/resource/discovery/RootResourceDiscoveryServiceImpl.java deleted file mode 100644 index 5f9de09512..0000000000 --- a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/root/resource/discovery/RootResourceDiscoveryServiceImpl.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright © 2021 PANTHEON.tech, s.r.o. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at https://www.eclipse.org/legal/epl-v10.html - */ - -package io.lighty.modules.northbound.restconf.community.impl.root.resource.discovery; - -import javax.ws.rs.Path; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; -import org.opendaylight.restconf.nb.rfc8040.rests.services.api.RootResourceDiscoveryService; - -@Path("/") -public final class RootResourceDiscoveryServiceImpl implements RootResourceDiscoveryService { - - private final String restconfServletContextPath; - - public RootResourceDiscoveryServiceImpl(final String restconfServletContextPath) { - if (restconfServletContextPath.charAt(0) == '/') { - this.restconfServletContextPath = restconfServletContextPath.substring(1); - } else { - this.restconfServletContextPath = restconfServletContextPath; - } - } - - @Override - public Response readXrdData() { - return Response.status(Status.OK) - .entity("\n" - + "\n" - + " \n" - + "") - .build(); - } - - @Override - public Response readJsonData() { - return Response.status(Status.OK) - .entity("{\n" - + " \"links\" :\n" - + " {\n" - + " \"rel\" : \"restconf\",\n" - + " \"href\" : \"/" + restconfServletContextPath + "/\"\n" - + " }\n" - + "}") - .build(); - } -} - From dcc5c45fae195b99affa185a868a57cc111d47f4 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Mon, 26 Feb 2024 17:21:21 +0100 Subject: [PATCH 40/70] Use newer revision of sal-remote-augment https://github.com/opendaylight/netconf/commit/e138c93b90d691a308ab300c1925519361bf2705 Signed-off-by: tobias.pobocik --- .../helm/lighty-rcgnmi-app-helm/templates/configmaps.yaml | 2 +- .../lighty-rcgnmi-app-module/src/test/resources/config.json | 2 +- .../src/main/resources/example-config/example_config.json | 2 +- .../lighty-rnc-app-docker/example-config/configuration.json | 2 +- .../helm/lighty-rnc-app-helm/templates/configmaps.yaml | 2 +- .../lighty-rnc-module/src/test/resources/config.json | 2 +- .../lighty-rnc-module/src/test/resources/http2Config.json | 2 +- .../lighty-rnc-module/src/test/resources/httpsConfig.json | 2 +- .../lighty-rnc-module/src/test/resources/openapi_config.json | 2 +- .../src/main/assembly/resources/sampleConfigSingleNode.json | 2 +- .../src/test/resources/testConfig.json | 2 +- .../src/main/assembly/resources/sampleConfigSingleNode.json | 2 +- .../src/main/assembly/resources/sampleConfigSingleNode.json | 2 +- .../lighty-gnmi-community-restconf-app/example_config.json | 2 +- .../src/test/resources/json/app_init_config.json | 2 +- .../restconf/community/impl/util/RestConfConfigUtils.java | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) diff --git a/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app-helm/helm/lighty-rcgnmi-app-helm/templates/configmaps.yaml b/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app-helm/helm/lighty-rcgnmi-app-helm/templates/configmaps.yaml index b30a79fbef..e07e134e9b 100644 --- a/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app-helm/helm/lighty-rcgnmi-app-helm/templates/configmaps.yaml +++ b/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app-helm/helm/lighty-rcgnmi-app-helm/templates/configmaps.yaml @@ -43,7 +43,7 @@ data: { "usedBy": "CONTROLLER", "name": "ietf-interfaces", "revision":"2018-02-20", "nameSpace":"urn:ietf:params:xml:ns:yang:ietf-interfaces"}, { "usedBy": "RESTCONF", "name": "ietf-restconf-monitoring", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"}, { "usedBy": "RESTCONF", "name": "subscribe-to-notification", "revision": "2016-10-28", "nameSpace": "subscribe:to:notification"}, - { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2014-07-08", "nameSpace": "urn:sal:restconf:event:subscription"}, + { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2023-11-03", "nameSpace": "urn:sal:restconf:event:subscription"}, { "usedBy": "RESTCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, { "usedBy": "RESTCONF", "name": "ietf-restconf", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, diff --git a/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app-module/src/test/resources/config.json b/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app-module/src/test/resources/config.json index 2078c4ac46..2c83604a5b 100644 --- a/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app-module/src/test/resources/config.json +++ b/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app-module/src/test/resources/config.json @@ -33,7 +33,7 @@ { "usedBy": "RESTCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, { "usedBy": "RESTCONF", "name": "ietf-restconf-monitoring", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"}, { "usedBy": "RESTCONF", "name": "subscribe-to-notification", "revision": "2016-10-28", "nameSpace": "subscribe:to:notification"}, - { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2014-07-08", "nameSpace": "urn:sal:restconf:event:subscription"}, + { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2023-11-03", "nameSpace": "urn:sal:restconf:event:subscription"}, { "usedBy": "RESTCONF", "name": "ietf-restconf", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy": "GNMI", "name": "gnmi-topology", "revision": "2021-03-16", "nameSpace": "urn:lighty:gnmi:topology"}, diff --git a/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app/src/main/resources/example-config/example_config.json b/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app/src/main/resources/example-config/example_config.json index 06bd44d33f..b05ee51a6b 100644 --- a/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app/src/main/resources/example-config/example_config.json +++ b/lighty-applications/lighty-rcgnmi-app-aggregator/lighty-rcgnmi-app/src/main/resources/example-config/example_config.json @@ -37,7 +37,7 @@ { "usedBy": "RESTCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, { "usedBy": "RESTCONF", "name": "ietf-restconf-monitoring", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"}, { "usedBy": "RESTCONF", "name": "subscribe-to-notification", "revision": "2016-10-28", "nameSpace": "subscribe:to:notification"}, - { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2014-07-08", "nameSpace": "urn:sal:restconf:event:subscription"}, + { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2023-11-03", "nameSpace": "urn:sal:restconf:event:subscription"}, { "usedBy": "RESTCONF", "name": "ietf-restconf", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy": "GNMI", "name": "gnmi-topology", "revision": "2021-03-16", "nameSpace": "urn:lighty:gnmi:topology"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-docker/example-config/configuration.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-docker/example-config/configuration.json index 5de00ce606..72128a49de 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-docker/example-config/configuration.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-docker/example-config/configuration.json @@ -37,7 +37,7 @@ { "usedBy": "RESTCONF", "name": "ietf-restconf-monitoring", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"}, { "usedBy": "RESTCONF", "name": "subscribe-to-notification", "revision": "2016-10-28", "nameSpace": "subscribe:to:notification"}, { "usedBy": "RESTCONF", "name": "ietf-restconf", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf"}, - { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2014-07-08", "nameSpace": "urn:sal:restconf:event:subscription"}, + { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2023-11-03", "nameSpace": "urn:sal:restconf:event:subscription"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy": "RESTCONF/NETCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2017-10-17", "nameSpace": "urn:opendaylight:netconf:keystore"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-helm/helm/lighty-rnc-app-helm/templates/configmaps.yaml b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-helm/helm/lighty-rnc-app-helm/templates/configmaps.yaml index c9e836283b..8fd0702729 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-helm/helm/lighty-rnc-app-helm/templates/configmaps.yaml +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-helm/helm/lighty-rnc-app-helm/templates/configmaps.yaml @@ -43,7 +43,7 @@ data: { "usedBy": "CONTROLLER", "name": "cluster-admin", "revision": "2015-10-13", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin"}, { "usedBy": "RESTCONF", "name": "ietf-restconf-monitoring", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"}, { "usedBy": "RESTCONF", "name": "subscribe-to-notification", "revision": "2016-10-28", "nameSpace": "subscribe:to:notification"}, - { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2014-07-08", "nameSpace": "urn:sal:restconf:event:subscription"}, + { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2023-11-03", "nameSpace": "urn:sal:restconf:event:subscription"}, { "usedBy": "RESTCONF", "name": "ietf-restconf", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy": "RESTCONF/NETCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/config.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/config.json index e4a45c5fdf..6fe710fcb5 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/config.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/config.json @@ -31,7 +31,7 @@ { "usedBy": "CONTROLLER", "name": "cluster-admin", "revision": "2015-10-13", "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin"}, { "usedBy": "CONTROLLER", "name":"ietf-interfaces", "revision":"2018-02-20", "nameSpace":"urn:ietf:params:xml:ns:yang:ietf-interfaces"}, { "usedBy": "RESTCONF", "name": "subscribe-to-notification", "revision": "2016-10-28", "nameSpace": "subscribe:to:notification"}, - { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2014-07-08", "nameSpace": "urn:sal:restconf:event:subscription"}, + { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2023-11-03", "nameSpace": "urn:sal:restconf:event:subscription"}, { "usedBy": "RESTCONF", "name": "ietf-restconf", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf"}, { "usedBy": "RESTCONF", "name": "ietf-restconf-monitoring", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/http2Config.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/http2Config.json index ed1ae2b43e..ad5aebc32f 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/http2Config.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/http2Config.json @@ -30,7 +30,7 @@ { "usedBy": "RESTCONF", "name": "ietf-restconf-monitoring", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"}, { "usedBy": "RESTCONF", "name": "subscribe-to-notification", "revision": "2016-10-28", "nameSpace": "subscribe:to:notification"}, { "usedBy": "RESTCONF", "name": "ietf-restconf", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf"}, - { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2014-07-08", "nameSpace": "urn:sal:restconf:event:subscription"}, + { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2023-11-03", "nameSpace": "urn:sal:restconf:event:subscription"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy": "RESTCONF/NETCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2017-10-17", "nameSpace": "urn:opendaylight:netconf:keystore"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/httpsConfig.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/httpsConfig.json index a69d7d9809..3ba858d722 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/httpsConfig.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/httpsConfig.json @@ -30,7 +30,7 @@ { "usedBy": "RESTCONF", "name": "ietf-restconf-monitoring", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"}, { "usedBy": "RESTCONF", "name": "subscribe-to-notification", "revision": "2016-10-28", "nameSpace": "subscribe:to:notification"}, { "usedBy": "RESTCONF", "name": "ietf-restconf", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf"}, - { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2014-07-08", "nameSpace": "urn:sal:restconf:event:subscription"}, + { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2023-11-03", "nameSpace": "urn:sal:restconf:event:subscription"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy": "RESTCONF/NETCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2017-10-17", "nameSpace": "urn:opendaylight:netconf:keystore"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/openapi_config.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/openapi_config.json index 1febc796e0..5af8151d7c 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/openapi_config.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/openapi_config.json @@ -40,7 +40,7 @@ { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:toaster-app-config", "name": "toaster-app-config", "revision": "2016-05-03" }, { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:general-entity", "name": "general-entity", "revision": "2015-08-20" }, { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:pingpong", "name": "opendaylight-pingpong-broker", "revision": "2014-11-07" }, - { "nameSpace": "urn:sal:restconf:event:subscription", "name": "sal-remote-augment", "revision": "2014-07-08" }, + { "nameSpace": "urn:sal:restconf:event:subscription", "name": "sal-remote-augment", "revision": "2023-11-03" }, { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:netty", "name": "netty", "revision": "2013-11-19" }, { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library", "name": "ietf-yang-library", "revision": "2019-01-04" }, { "nameSpace": "urn:ietf:params:xml:ns:yang:ospf-topology", "name": "ospf-topology", "revision": "2013-07-12" }, diff --git a/lighty-examples/lighty-community-aaa-restconf-app/src/main/assembly/resources/sampleConfigSingleNode.json b/lighty-examples/lighty-community-aaa-restconf-app/src/main/assembly/resources/sampleConfigSingleNode.json index 8618ed2609..2850ae2205 100644 --- a/lighty-examples/lighty-community-aaa-restconf-app/src/main/assembly/resources/sampleConfigSingleNode.json +++ b/lighty-examples/lighty-community-aaa-restconf-app/src/main/assembly/resources/sampleConfigSingleNode.json @@ -37,7 +37,7 @@ { "usedBy":"RESTCONF","name":"ietf-restconf","revision":"2017-01-26","nameSpace":"urn:ietf:params:xml:ns:yang:ietf-restconf"}, { "usedBy":"RESTCONF","name":"ietf-yang-library","revision":"2019-01-04","nameSpace":"urn:ietf:params:xml:ns:yang:ietf-yang-library"}, { "usedBy":"RESTCONF","name":"sal-remote","revision":"2014-01-14","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote"}, - { "usedBy":"RESTCONF","name":"sal-remote-augment","revision":"2014-07-08","nameSpace":"urn:sal:restconf:event:subscription"}, + { "usedBy":"RESTCONF","name":"sal-remote-augment","revision":"2023-11-03","nameSpace":"urn:sal:restconf:event:subscription"}, { "usedBy":"RESTCONF","name":"subscribe-to-notification","revision":"2016-10-28","nameSpace":"subscribe:to:notification"}, { "usedBy":"RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy":"AAA","name":"aaa-cert-mdsal","revision":"2016-03-21","nameSpace":"urn:opendaylight:yang:aaa:cert:mdsal"}, diff --git a/lighty-examples/lighty-community-aaa-restconf-app/src/test/resources/testConfig.json b/lighty-examples/lighty-community-aaa-restconf-app/src/test/resources/testConfig.json index 337fb83549..d984057854 100644 --- a/lighty-examples/lighty-community-aaa-restconf-app/src/test/resources/testConfig.json +++ b/lighty-examples/lighty-community-aaa-restconf-app/src/test/resources/testConfig.json @@ -34,7 +34,7 @@ { "usedBy":"RESTCONF","name":"ietf-restconf","revision":"2017-01-26","nameSpace":"urn:ietf:params:xml:ns:yang:ietf-restconf"}, { "usedBy":"RESTCONF","name":"ietf-yang-library","revision":"2019-01-04","nameSpace":"urn:ietf:params:xml:ns:yang:ietf-yang-library"}, { "usedBy":"RESTCONF","name":"sal-remote","revision":"2014-01-14","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote"}, - { "usedBy":"RESTCONF","name":"sal-remote-augment","revision":"2014-07-08","nameSpace":"urn:sal:restconf:event:subscription"}, + { "usedBy":"RESTCONF","name":"sal-remote-augment","revision":"2023-11-03","nameSpace":"urn:sal:restconf:event:subscription"}, { "usedBy":"RESTCONF","name":"subscribe-to-notification","revision":"2016-10-28","nameSpace":"subscribe:to:notification"}, { "usedBy":"RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy":"AAA","name":"aaa-cert-rpc","revision":"2015-12-15","nameSpace":"urn:opendaylight:yang:aaa:cert:rpc"}, diff --git a/lighty-examples/lighty-community-restconf-actions-app/src/main/assembly/resources/sampleConfigSingleNode.json b/lighty-examples/lighty-community-restconf-actions-app/src/main/assembly/resources/sampleConfigSingleNode.json index 0de71af6ea..21b991fc2e 100644 --- a/lighty-examples/lighty-community-restconf-actions-app/src/main/assembly/resources/sampleConfigSingleNode.json +++ b/lighty-examples/lighty-community-restconf-actions-app/src/main/assembly/resources/sampleConfigSingleNode.json @@ -37,7 +37,7 @@ { "usedBy":"RESTCONF","name":"ietf-restconf","revision":"2017-01-26","nameSpace":"urn:ietf:params:xml:ns:yang:ietf-restconf"}, { "usedBy":"RESTCONF","name":"ietf-restconf-monitoring","revision":"2017-01-26","nameSpace":"urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"}, { "usedBy":"RESTCONF","name":"sal-remote","revision":"2014-01-14","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote"}, - { "usedBy":"RESTCONF","name":"sal-remote-augment","revision":"2014-07-08","nameSpace":"urn:sal:restconf:event:subscription"}, + { "usedBy":"RESTCONF","name":"sal-remote-augment","revision":"2023-11-03","nameSpace":"urn:sal:restconf:event:subscription"}, { "usedBy":"RESTCONF","name":"subscribe-to-notification","revision":"2016-10-28","nameSpace":"subscribe:to:notification"}, { "usedBy":"RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy":"NETCONF","name":"netconf-keystore","revision":"2017-10-17","nameSpace":"urn:opendaylight:netconf:keystore"}, diff --git a/lighty-examples/lighty-community-restconf-netconf-app/src/main/assembly/resources/sampleConfigSingleNode.json b/lighty-examples/lighty-community-restconf-netconf-app/src/main/assembly/resources/sampleConfigSingleNode.json index bf092c0804..e1c82392ff 100644 --- a/lighty-examples/lighty-community-restconf-netconf-app/src/main/assembly/resources/sampleConfigSingleNode.json +++ b/lighty-examples/lighty-community-restconf-netconf-app/src/main/assembly/resources/sampleConfigSingleNode.json @@ -37,7 +37,7 @@ { "usedBy":"RESTCONF","name":"ietf-restconf","revision":"2017-01-26","nameSpace":"urn:ietf:params:xml:ns:yang:ietf-restconf"}, { "usedBy":"RESTCONF","name":"ietf-restconf-monitoring","revision":"2017-01-26","nameSpace":"urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"}, { "usedBy":"RESTCONF","name":"sal-remote","revision":"2014-01-14","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote"}, - { "usedBy":"RESTCONF","name":"sal-remote-augment","revision":"2014-07-08","nameSpace":"urn:sal:restconf:event:subscription"}, + { "usedBy":"RESTCONF","name":"sal-remote-augment","revision":"2023-11-03","nameSpace":"urn:sal:restconf:event:subscription"}, { "usedBy":"RESTCONF","name":"subscribe-to-notification","revision":"2016-10-28","nameSpace":"subscribe:to:notification"}, { "usedBy":"RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy":"NETCONF","name":"netconf-keystore","revision":"2017-10-17","nameSpace":"urn:opendaylight:netconf:keystore"}, diff --git a/lighty-examples/lighty-gnmi-community-restconf-app/example_config.json b/lighty-examples/lighty-gnmi-community-restconf-app/example_config.json index 4f6735d423..475effce1c 100644 --- a/lighty-examples/lighty-gnmi-community-restconf-app/example_config.json +++ b/lighty-examples/lighty-gnmi-community-restconf-app/example_config.json @@ -29,7 +29,7 @@ { "usedBy": "RESTCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, { "usedBy": "RESTCONF", "name": "ietf-restconf-monitoring", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"}, { "usedBy": "RESTCONF", "name": "subscribe-to-notification", "revision": "2016-10-28", "nameSpace": "subscribe:to:notification"}, - { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2014-07-08", "nameSpace": "urn:sal:restconf:event:subscription"}, + { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2023-11-03", "nameSpace": "urn:sal:restconf:event:subscription"}, { "usedBy": "RESTCONF", "name": "ietf-restconf", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy": "GNMI", "name": "gnmi-topology", "revision": "2021-03-16", "nameSpace": "urn:lighty:gnmi:topology"}, diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/resources/json/app_init_config.json b/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/resources/json/app_init_config.json index 8e84fb0438..519c9e586f 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/resources/json/app_init_config.json +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/resources/json/app_init_config.json @@ -29,7 +29,7 @@ { "usedBy": "CONTROLLER", "name": "ietf-interfaces", "revision": "2018-02-20", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-interfaces"}, { "usedBy": "RESTCONF", "name": "ietf-restconf-monitoring", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"}, { "usedBy": "RESTCONF", "name": "subscribe-to-notification", "revision": "2016-10-28", "nameSpace": "subscribe:to:notification"}, - { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2014-07-08", "nameSpace": "urn:sal:restconf:event:subscription"}, + { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2023-11-03", "nameSpace": "urn:sal:restconf:event:subscription"}, { "usedBy": "RESTCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, { "usedBy": "RESTCONF", "name": "ietf-restconf", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, diff --git a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/util/RestConfConfigUtils.java b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/util/RestConfConfigUtils.java index 36dbd42114..cfdb7e33dd 100644 --- a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/util/RestConfConfigUtils.java +++ b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/util/RestConfConfigUtils.java @@ -35,7 +35,7 @@ public final class RestConfConfigUtils { .YangModuleInfoImpl.getInstance(), org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114 .YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.svc.v1.urn.sal.restconf.event.subscription.rev140708 + org.opendaylight.yang.svc.v1.urn.sal.restconf.event.subscription.rev231103 .YangModuleInfoImpl.getInstance(), org.opendaylight.yang.svc.v1.subscribe.to.notification.rev161028 .YangModuleInfoImpl.getInstance(), From b617e988084819e12e023ec319c044fa7cf9720a Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Mon, 26 Feb 2024 17:23:41 +0100 Subject: [PATCH 41/70] Use newer revision of odl-device-notification https://github.com/opendaylight/netconf/commit/9470af8c9d8e26b487b88f8175506bf0b0ca2d04 Signed-off-by: tobias.pobocik --- .../restconf/community/impl/util/RestConfConfigUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/util/RestConfConfigUtils.java b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/util/RestConfConfigUtils.java index cfdb7e33dd..d94e5c6fbc 100644 --- a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/util/RestConfConfigUtils.java +++ b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/util/RestConfConfigUtils.java @@ -41,7 +41,7 @@ public final class RestConfConfigUtils { .YangModuleInfoImpl.getInstance(), org.opendaylight.yang.svc.v1.instance.identifier.patch.module.rev151121 .YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.svc.v1.urn.opendaylight.device.notification.rev221106 + org.opendaylight.yang.svc.v1.urn.opendaylight.device.notification.rev240218 .YangModuleInfoImpl.getInstance()); public static final int MAXIMUM_FRAGMENT_LENGTH = 0; public static final int IDLE_TIMEOUT = 30000; From 17ea33b8c17e58121955638963f1b7882645c27f Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Mon, 26 Feb 2024 17:48:47 +0100 Subject: [PATCH 42/70] Introduce restconf.server.{api,spi,mdsal} https://github.com/opendaylight/netconf/commit/8616c9655db145125c23ca8e66b5f27745126458 Signed-off-by: tobias.pobocik --- .../restconf/community/impl/util/RestConfConfigUtils.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/util/RestConfConfigUtils.java b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/util/RestConfConfigUtils.java index d94e5c6fbc..b5f1569040 100644 --- a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/util/RestConfConfigUtils.java +++ b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/util/RestConfConfigUtils.java @@ -46,7 +46,6 @@ public final class RestConfConfigUtils { public static final int MAXIMUM_FRAGMENT_LENGTH = 0; public static final int IDLE_TIMEOUT = 30000; public static final int HEARTBEAT_INTERVAL = 10000; - public static final boolean USE_SSE = true; private RestConfConfigUtils() { throw new UnsupportedOperationException(); @@ -170,6 +169,6 @@ public static RestConfConfiguration getDefaultRestConfConfiguration() { } public static StreamsConfiguration getStreamsConfiguration() { - return new StreamsConfiguration(MAXIMUM_FRAGMENT_LENGTH, IDLE_TIMEOUT, HEARTBEAT_INTERVAL, USE_SSE); + return new StreamsConfiguration(MAXIMUM_FRAGMENT_LENGTH, IDLE_TIMEOUT, HEARTBEAT_INTERVAL); } } From 4bebed793b17a6656ceebae1755fd54eb42d6fb3 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Mon, 26 Feb 2024 18:06:28 +0100 Subject: [PATCH 43/70] Eliminate InstanceIdentifierContext https://github.com/opendaylight/netconf/commit/32fad0d2b1161304ff9a9d18ea2f4e72dff591d5 Signed-off-by: tobias.pobocik --- .../restconf/community/impl/tests/YangPatchTest.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lighty-modules/lighty-restconf-nb-community/src/test/java/io/lighty/modules/northbound/restconf/community/impl/tests/YangPatchTest.java b/lighty-modules/lighty-restconf-nb-community/src/test/java/io/lighty/modules/northbound/restconf/community/impl/tests/YangPatchTest.java index 5366b47f31..2c7534df16 100644 --- a/lighty-modules/lighty-restconf-nb-community/src/test/java/io/lighty/modules/northbound/restconf/community/impl/tests/YangPatchTest.java +++ b/lighty-modules/lighty-restconf-nb-community/src/test/java/io/lighty/modules/northbound/restconf/community/impl/tests/YangPatchTest.java @@ -16,7 +16,6 @@ import java.util.List; import java.util.concurrent.TimeUnit; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.restconf.common.context.InstanceIdentifierContext; import org.opendaylight.restconf.common.patch.PatchContext; import org.opendaylight.restconf.common.patch.PatchEntity; import org.opendaylight.restconf.common.patch.PatchStatusContext; @@ -60,9 +59,7 @@ public void patchDataReplaceTest() throws Exception { .build(); final PatchEntity entityReplace = new PatchEntity("edit1", REPLACE, targetNodeMerge, patchContainerNode); - final InstanceIdentifierContext iidContext = InstanceIdentifierContext.ofLocalRoot( - getLightyController().getServices().getDOMSchemaService().getGlobalContext()); - final PatchContext patchContext = new PatchContext(iidContext, List.of(entityReplace), "test-patch"); + final PatchContext patchContext = new PatchContext("test-patch" ,List.of(entityReplace)); final PatchStatusContext patchStatusContext = PatchDataTransactionUtil.patchData(patchContext, new MdsalRestconfStrategy(getLightyController().getServices().getClusteredDOMDataBroker()), @@ -74,7 +71,7 @@ public void patchDataReplaceTest() throws Exception { final ContainerNode response = (ContainerNode) getLightyController().getServices().getClusteredDOMDataBroker() .newReadOnlyTransaction() - .read(LogicalDatastoreType.CONFIGURATION, iidContext.getInstanceIdentifier()) + .read(LogicalDatastoreType.CONFIGURATION, YangInstanceIdentifier.of()) .get(5000, TimeUnit.MILLISECONDS).orElseThrow(); final DataContainerChild bodyOfResponse = response.body().iterator().next(); From 260389236c22f38e460e4fd78d56e69ab17d3922 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 27 Feb 2024 09:42:31 +0100 Subject: [PATCH 44/70] Eliminate PatchDataTransactionUtil https://github.com/opendaylight/netconf/commit/1f0f517bd1fb8e14d37dbdcf5a838f91c9d7845e Signed-off-by: tobias.pobocik --- .../community/impl/tests/YangPatchTest.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/lighty-modules/lighty-restconf-nb-community/src/test/java/io/lighty/modules/northbound/restconf/community/impl/tests/YangPatchTest.java b/lighty-modules/lighty-restconf-nb-community/src/test/java/io/lighty/modules/northbound/restconf/community/impl/tests/YangPatchTest.java index 2c7534df16..6762bc5070 100644 --- a/lighty-modules/lighty-restconf-nb-community/src/test/java/io/lighty/modules/northbound/restconf/community/impl/tests/YangPatchTest.java +++ b/lighty-modules/lighty-restconf-nb-community/src/test/java/io/lighty/modules/northbound/restconf/community/impl/tests/YangPatchTest.java @@ -21,7 +21,7 @@ import org.opendaylight.restconf.common.patch.PatchStatusContext; import org.opendaylight.restconf.common.patch.PatchStatusEntity; import org.opendaylight.restconf.nb.rfc8040.rests.transactions.MdsalRestconfStrategy; -import org.opendaylight.restconf.nb.rfc8040.rests.utils.PatchDataTransactionUtil; +import org.opendaylight.restconf.server.api.DatabindContext; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -61,13 +61,20 @@ public void patchDataReplaceTest() throws Exception { final PatchEntity entityReplace = new PatchEntity("edit1", REPLACE, targetNodeMerge, patchContainerNode); final PatchContext patchContext = new PatchContext("test-patch" ,List.of(entityReplace)); - final PatchStatusContext patchStatusContext = PatchDataTransactionUtil.patchData(patchContext, - new MdsalRestconfStrategy(getLightyController().getServices().getClusteredDOMDataBroker()), - getLightyController().getServices().getDOMSchemaService().getGlobalContext()); - for (final PatchStatusEntity entity : patchStatusContext.getEditCollection()) { + final var strategy = new MdsalRestconfStrategy(DatabindContext.ofModel(getLightyController() + .getServices().getEffectiveModelContext()), getLightyController().getServices() + .getClusteredDOMDataBroker(), getLightyController().getServices().getDOMRpcService(), + getLightyController().getServices() + .getDOMActionService(), getLightyController().getServices().getYangTextSourceExtension(), + getLightyController().getServices() + .getDOMMountPointService()); + + final PatchStatusContext patchStatusContext = strategy.patchData(patchContext).get().status(); + + for (final PatchStatusEntity entity : patchStatusContext.editCollection()) { assertTrue(entity.isOk()); } - assertTrue(patchStatusContext.isOk()); + assertTrue(patchStatusContext.ok()); final ContainerNode response = (ContainerNode) getLightyController().getServices().getClusteredDOMDataBroker() .newReadOnlyTransaction() From f85da4921ffc2c5187d5f44d560886815ed4d844 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 27 Feb 2024 09:52:30 +0100 Subject: [PATCH 45/70] Eliminate PatchEditOperation https://github.com/opendaylight/netconf/commit/484e3adb4503ce00704a361de8389be26e0074ad#diff-cdb90390c19b7cfba5cf00cd5f5f07e4dbf75fc331676a15b0adcca112182ef4 Signed-off-by: tobias.pobocik --- .../restconf/community/impl/tests/YangPatchTest.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lighty-modules/lighty-restconf-nb-community/src/test/java/io/lighty/modules/northbound/restconf/community/impl/tests/YangPatchTest.java b/lighty-modules/lighty-restconf-nb-community/src/test/java/io/lighty/modules/northbound/restconf/community/impl/tests/YangPatchTest.java index 6762bc5070..5db2a104fc 100644 --- a/lighty-modules/lighty-restconf-nb-community/src/test/java/io/lighty/modules/northbound/restconf/community/impl/tests/YangPatchTest.java +++ b/lighty-modules/lighty-restconf-nb-community/src/test/java/io/lighty/modules/northbound/restconf/community/impl/tests/YangPatchTest.java @@ -7,7 +7,6 @@ */ package io.lighty.modules.northbound.restconf.community.impl.tests; -import static org.opendaylight.restconf.common.patch.PatchEditOperation.REPLACE; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.AssertJUnit.assertTrue; @@ -22,6 +21,7 @@ import org.opendaylight.restconf.common.patch.PatchStatusEntity; import org.opendaylight.restconf.nb.rfc8040.rests.transactions.MdsalRestconfStrategy; import org.opendaylight.restconf.server.api.DatabindContext; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.patch.rev170222.yang.patch.yang.patch.Edit; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -58,8 +58,9 @@ public void patchDataReplaceTest() throws Exception { .node(CONTAINER_ID) .build(); - final PatchEntity entityReplace = new PatchEntity("edit1", REPLACE, targetNodeMerge, patchContainerNode); - final PatchContext patchContext = new PatchContext("test-patch" ,List.of(entityReplace)); + final PatchEntity entityReplace = new PatchEntity("edit1", Edit.Operation.Replace, targetNodeMerge, + patchContainerNode); + final PatchContext patchContext = new PatchContext("test-patch", List.of(entityReplace)); final var strategy = new MdsalRestconfStrategy(DatabindContext.ofModel(getLightyController() .getServices().getEffectiveModelContext()), getLightyController().getServices() From d1d44da9fb698ee9eac533398a872a65aa1ef37f Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 27 Feb 2024 12:20:27 +0100 Subject: [PATCH 46/70] Eliminate OpenApiApplication class Rework the initialization based on the changes made in: https://github.com/opendaylight/netconf/commit/ea43fb4c186e3b067db9216354f91ce292adc3f4 Signed-off-by: tobias.pobocik --- .../java/io/lighty/openapi/OpenApiLighty.java | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/lighty-modules/lighty-openapi/src/main/java/io/lighty/openapi/OpenApiLighty.java b/lighty-modules/lighty-openapi/src/main/java/io/lighty/openapi/OpenApiLighty.java index 082dc112dc..fe93dce7b2 100644 --- a/lighty-modules/lighty-openapi/src/main/java/io/lighty/openapi/OpenApiLighty.java +++ b/lighty-modules/lighty-openapi/src/main/java/io/lighty/openapi/OpenApiLighty.java @@ -7,20 +7,25 @@ */ package io.lighty.openapi; +import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; import com.google.common.annotations.VisibleForTesting; import io.lighty.core.controller.api.AbstractLightyModule; import io.lighty.core.controller.api.LightyServices; import io.lighty.modules.northbound.restconf.community.impl.config.RestConfConfiguration; import io.lighty.server.LightyServerBuilder; +import java.util.Set; +import javax.servlet.http.HttpServlet; +import javax.ws.rs.core.Application; +import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jetty.server.handler.ContextHandlerCollection; import org.eclipse.jetty.servlet.DefaultServlet; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.glassfish.jersey.server.ResourceConfig; import org.glassfish.jersey.servlet.ServletContainer; +import org.opendaylight.restconf.nb.rfc8040.streams.RestconfStreamServletFactory; import org.opendaylight.restconf.openapi.api.OpenApiService; import org.opendaylight.restconf.openapi.impl.OpenApiServiceImpl; -import org.opendaylight.restconf.openapi.jaxrs.OpenApiApplication; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -56,11 +61,26 @@ protected boolean initProcedure() { LOG.info("basePath: {}", basePathString); this.apiDocService = new OpenApiServiceImpl(lightyServices.getDOMSchemaService(), - lightyServices.getDOMMountPointService(), basePathString); + lightyServices.getDOMMountPointService(), new RestconfStreamServletFactory() { + @Override + public @NonNull String restconf() { + return basePathString; + } + + @Override + public @NonNull HttpServlet newStreamServlet() { + return new DefaultServlet(); + } + }); + + final ServletContainer restServletContainer = new ServletContainer(ResourceConfig + .forApplication((new Application() { + @Override + public Set getSingletons() { + return Set.of(apiDocService, new JacksonJaxbJsonProvider()); + } + }))); - OpenApiApplication apiDocApplication = new OpenApiApplication(apiDocService); - - ServletContainer restServletContainer = new ServletContainer(ResourceConfig.forApplication(apiDocApplication)); ServletHolder restServletHolder = new ServletHolder(restServletContainer); ContextHandlerCollection contexts = new ContextHandlerCollection(); From ab2da6238d939893ac6b1a5c4f5297496f92603c Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 27 Feb 2024 12:28:18 +0100 Subject: [PATCH 47/70] Add missing OpenApiService exceptions https://github.com/opendaylight/netconf/commit/b85da3f350f0e282f04d2a8a66f7c07d8dadc3c1#diff-9f986061c4d7e6a13c334c3b10c8e635f2adf144b6017f2d5c1eda8f57162ffb Signed-off-by: tobias.pobocik --- .../java/io/lighty/openapi/OpenApiLightyRFC8040Test.java | 5 +++-- .../src/test/java/io/lighty/openapi/OpenApiLightyTest.java | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lighty-modules/lighty-openapi/src/test/java/io/lighty/openapi/OpenApiLightyRFC8040Test.java b/lighty-modules/lighty-openapi/src/test/java/io/lighty/openapi/OpenApiLightyRFC8040Test.java index b89a3469a5..ed97841a3f 100644 --- a/lighty-modules/lighty-openapi/src/test/java/io/lighty/openapi/OpenApiLightyRFC8040Test.java +++ b/lighty-modules/lighty-openapi/src/test/java/io/lighty/openapi/OpenApiLightyRFC8040Test.java @@ -8,6 +8,7 @@ package io.lighty.openapi; +import java.io.IOException; import org.testng.annotations.Test; public class OpenApiLightyRFC8040Test extends OpenApiLightyTest { @@ -27,13 +28,13 @@ public void testGetListOfMountsOpenApi3() { @Test - public void testGetAllModulesDocOpenApi3() { + public void testGetAllModulesDocOpenApi3() throws IOException { super.testGetAllModulesDoc(mockUriInfo(OPENAPI_BASE_URI + "/api/v3/single")); } @Test - public void testGetDocByModuleOpenApi3() { + public void testGetDocByModuleOpenApi3() throws IOException { String path = OPENAPI_BASE_URI + "/api/v3/" + DEFAULT_MODEL_NAME + "(" + DEFAULT_REVISION_DATE + ")"; super.testGetDocByModule(mockUriInfo(path), DEFAULT_MODEL_NAME, DEFAULT_REVISION_DATE); } diff --git a/lighty-modules/lighty-openapi/src/test/java/io/lighty/openapi/OpenApiLightyTest.java b/lighty-modules/lighty-openapi/src/test/java/io/lighty/openapi/OpenApiLightyTest.java index 7639085ccd..02835d08db 100644 --- a/lighty-modules/lighty-openapi/src/test/java/io/lighty/openapi/OpenApiLightyTest.java +++ b/lighty-modules/lighty-openapi/src/test/java/io/lighty/openapi/OpenApiLightyTest.java @@ -8,6 +8,7 @@ package io.lighty.openapi; +import java.io.IOException; import java.net.URI; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriBuilder; @@ -30,11 +31,11 @@ public void testGetListOfMounts(UriInfo uriInfo) { assertSuccessResponse(getOpenApiModule().getApiDocService().getListOfMounts(uriInfo)); } - public void testGetAllModulesDoc(UriInfo uriInfo) { + public void testGetAllModulesDoc(UriInfo uriInfo) throws IOException { assertSuccessResponse(getOpenApiModule().getApiDocService().getAllModulesDoc(uriInfo)); } - public void testGetDocByModule(UriInfo uriInfo, String modelName, String revisionDate) { + public void testGetDocByModule(UriInfo uriInfo, String modelName, String revisionDate) throws IOException { assertSuccessResponse(getOpenApiModule().getApiDocService().getDocByModule(modelName, revisionDate, uriInfo)); } From 52965ed71e9630003723f8db24e2dee08ec971a0 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 27 Feb 2024 12:45:11 +0100 Subject: [PATCH 48/70] Use DelegatedYangTextSource https://github.com/opendaylight/yangtools/commit/f8b228d74fd360d8f5f6b2446593ec8559d967c0 Signed-off-by: tobias.pobocik --- .../modules/gnmi/commons/util/GnmiDataConverterTest.java | 9 ++++----- .../utils/EffectiveModelContextBuilder.java | 5 +++-- .../modules/gnmi/simulatordevice/utils/FileUtils.java | 3 ++- .../southbound/schema/impl/SchemaContextHolderImpl.java | 5 +++-- .../schema/loader/impl/ByClassPathYangLoaderService.java | 3 ++- 5 files changed, 14 insertions(+), 11 deletions(-) diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/test/java/io/lighty/modules/gnmi/commons/util/GnmiDataConverterTest.java b/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/test/java/io/lighty/modules/gnmi/commons/util/GnmiDataConverterTest.java index 4663f4cd57..9845b7b013 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/test/java/io/lighty/modules/gnmi/commons/util/GnmiDataConverterTest.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/test/java/io/lighty/modules/gnmi/commons/util/GnmiDataConverterTest.java @@ -17,7 +17,7 @@ import org.junit.jupiter.api.Test; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.Module; -import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import org.opendaylight.yangtools.yang.model.spi.source.DelegatedYangTextSource; import org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException; import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors; import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangStatementStreamSource; @@ -57,10 +57,9 @@ private static EffectiveModelContext prepareSchemaWithMultipleRootContainersWith String content = new String(bytes); // Convert byte[] to String final YangStatementStreamSource yangModelRootSource = YangStatementStreamSource.create( - YangTextSchemaSource.delegateForCharSource( - YangTextSchemaSource.identifierFromFilename(modelName), - CharSource.wrap(content))); // Pass String as argument - + new DelegatedYangTextSource( + YangTextSchemaSource.identifierFromFilename(modelName), + CharSource.wrap(content))); // Pass String as argument buildAction.addSource(yangModelRootSource); } diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/utils/EffectiveModelContextBuilder.java b/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/utils/EffectiveModelContextBuilder.java index 095e37889f..2460a627ee 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/utils/EffectiveModelContextBuilder.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/utils/EffectiveModelContextBuilder.java @@ -24,6 +24,7 @@ import org.opendaylight.yangtools.yang.binding.YangModuleInfo; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import org.opendaylight.yangtools.yang.model.spi.source.DelegatedYangTextSource; import org.opendaylight.yangtools.yang.parser.api.YangParserException; import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors; import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangStatementStreamSource; @@ -111,7 +112,7 @@ private static List getYangStatementsFromYangModulesP final ByteSource sanitizedYangByteSource = YangModelSanitizer .removeRegexpPosix(com.google.common.io.Files.asByteSource(file)); final YangStatementStreamSource statementSource = YangStatementStreamSource.create( - YangTextSchemaSource.delegateForByteSource( + new DelegatedYangTextSource( YangTextSchemaSource.identifierFromFilename(file.getName()), sanitizedYangByteSource, StandardCharsets.UTF_8)); @@ -133,7 +134,7 @@ private static List getYangStatementsFromYangModulesI final ByteSource sanitizedYangByteSource = YangModelSanitizer .removeRegexpPosix(yangModuleInfo.getYangTextByteSource()); final YangStatementStreamSource statementSource - = YangStatementStreamSource.create(YangTextSchemaSource.delegateForByteSource( + = YangStatementStreamSource.create(new DelegatedYangTextSource( YangTextSchemaSource.identifierFromFilename(yangModuleInfo.getName().getLocalName() + ".yang"), sanitizedYangByteSource, StandardCharsets.UTF_8)); sourceArrayList.add(statementSource); diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/utils/FileUtils.java b/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/utils/FileUtils.java index 4e9f30e15f..83bda5c1ec 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/utils/FileUtils.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/utils/FileUtils.java @@ -19,6 +19,7 @@ import java.util.stream.Stream; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import org.opendaylight.yangtools.yang.model.spi.source.DelegatedYangTextSource; import org.opendaylight.yangtools.yang.parser.api.YangParserException; import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors; import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangStatementStreamSource; @@ -46,7 +47,7 @@ public static EffectiveModelContext buildSchemaFromYangsDir(final String path) { for (File file : filesInFolder) { final YangStatementStreamSource statementSource = YangStatementStreamSource.create( - YangTextSchemaSource.delegateForByteSource( + new DelegatedYangTextSource( YangTextSchemaSource.identifierFromFilename(file.getName()), com.google.common.io.Files.asByteSource(file), StandardCharsets.UTF_8)); diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/impl/SchemaContextHolderImpl.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/impl/SchemaContextHolderImpl.java index 03784114d7..134a8a9194 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/impl/SchemaContextHolderImpl.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/impl/SchemaContextHolderImpl.java @@ -37,6 +37,7 @@ import org.opendaylight.yangtools.yang.model.api.ModuleImport; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import org.opendaylight.yangtools.yang.model.spi.source.DelegatedYangTextSource; import org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException; import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangModelDependencyInfo; import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangStatementStreamSource; @@ -230,12 +231,12 @@ public EffectiveModelContext getSchemaContext(final List c private YangTextSchemaSource makeTextSchemaSource(final GnmiYangModel model) { if (model.getVersion().getValue().matches(SchemaConstants.REVISION_REGEX)) { - return YangTextSchemaSource.delegateForByteSource( + return new DelegatedYangTextSource( new SourceIdentifier(UnresolvedQName.Unqualified.of(model.getName()), Revision.of(model.getVersion().getValue())), bodyByteSource(model.getBody()), StandardCharsets.UTF_8); } else { - return YangTextSchemaSource.delegateForByteSource(new SourceIdentifier(model.getName()), + return new DelegatedYangTextSource(new SourceIdentifier(model.getName()), bodyByteSource(model.getBody()), StandardCharsets.UTF_8); } diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/impl/ByClassPathYangLoaderService.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/impl/ByClassPathYangLoaderService.java index 0c8ced331c..289a8da7a6 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/impl/ByClassPathYangLoaderService.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/impl/ByClassPathYangLoaderService.java @@ -26,6 +26,7 @@ import java.util.concurrent.TimeoutException; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import org.opendaylight.yangtools.yang.model.spi.source.DelegatedYangTextSource; import org.opendaylight.yangtools.yang.parser.api.YangParser; import org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException; import org.opendaylight.yangtools.yang.parser.impl.DefaultYangParserFactory; @@ -54,7 +55,7 @@ public ByClassPathYangLoaderService(final Set yangModulesInfo) { public List load(final YangDataStoreService storeService) throws YangLoadException { final List loadedModels = new ArrayList<>(); for (YangModuleInfo yangModuleInfo : this.yangModulesInfo) { - final YangTextSchemaSource yangTextSchemaSource = YangTextSchemaSource.delegateForByteSource( + final DelegatedYangTextSource yangTextSchemaSource = new DelegatedYangTextSource( YangTextSchemaSource.identifierFromFilename( yangModuleInfo.getName().getLocalName() + ".yang"), yangModuleInfo.getYangTextByteSource(), StandardCharsets.UTF_8); From f533c2d1eb49f41a81363c0eca950ac5f9934873 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 27 Feb 2024 13:04:01 +0100 Subject: [PATCH 49/70] Use FileYangTextSource https://github.com/opendaylight/yangtools/commit/2c753dc2f3565eff4940286cdcc6c463de0a762a Signed-off-by: tobias.pobocik --- .../schema/loader/impl/ByPathYangLoaderService.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/impl/ByPathYangLoaderService.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/impl/ByPathYangLoaderService.java index 98d73c6585..a731df0502 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/impl/ByPathYangLoaderService.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/impl/ByPathYangLoaderService.java @@ -28,7 +28,8 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import org.opendaylight.yangtools.yang.common.YangConstants; -import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import org.opendaylight.yangtools.yang.model.api.source.YangTextSource; +import org.opendaylight.yangtools.yang.model.spi.source.FileYangTextSource; import org.opendaylight.yangtools.yang.parser.api.YangParser; import org.opendaylight.yangtools.yang.parser.api.YangParserException; import org.opendaylight.yangtools.yang.parser.impl.DefaultYangParserFactory; @@ -68,7 +69,7 @@ public List load(final YangDataStoreService storeService) for (Path path : paths) { try (InputStream bodyInputStream = Files.newInputStream(path)) { - final YangTextSchemaSource yangTextSchemaSource = YangTextSchemaSource.forPath(path); + final YangTextSource yangTextSchemaSource = new FileYangTextSource(path); // This validates the yang this.yangParser.addSource(yangTextSchemaSource); final YangLoadModelUtil yangLoadModelUtil = new YangLoadModelUtil(yangTextSchemaSource, From 64d9d4576a5319ac9e75cec06cb7d04d00d22ae7 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Wed, 28 Feb 2024 09:49:05 +0100 Subject: [PATCH 50/70] Use SourceIdentifier as CharSource YangTextSchemaSource is no longer awalible it got replaced: https://github.com/opendaylight/yangtools/commit/04e2170a5aa0e292c3850b8358c396c099d3f920#diff-c70f5f9eb0fd9dfe6a52dd255521247c37030aed4a55a96f3a691606d0efe792 Also before its replacement, it was turned into CharSource: https://github.com/opendaylight/yangtools/commit/d95368f629eb95d9e620d6394d445b689ad7bd11 Signed-off-by: tobias.pobocik --- .../gnmi/commons/util/YangModelSanitizer.java | 9 ++++----- .../commons/util/GnmiDataConverterTest.java | 3 ++- .../utils/EffectiveModelContextBuilder.java | 20 +++++++++---------- .../gnmi/simulatordevice/utils/FileUtils.java | 7 ++++--- .../impl/ByClassPathYangLoaderService.java | 7 +++---- .../schema/loader/util/YangLoadModelUtil.java | 6 +++--- 6 files changed, 26 insertions(+), 26 deletions(-) diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/main/java/io/lighty/modules/gnmi/commons/util/YangModelSanitizer.java b/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/main/java/io/lighty/modules/gnmi/commons/util/YangModelSanitizer.java index 48624cf1d2..f68cb2c637 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/main/java/io/lighty/modules/gnmi/commons/util/YangModelSanitizer.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/main/java/io/lighty/modules/gnmi/commons/util/YangModelSanitizer.java @@ -9,8 +9,8 @@ package io.lighty.modules.gnmi.commons.util; import com.google.common.io.ByteSource; +import com.google.common.io.CharSource; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -43,10 +43,9 @@ private YangModelSanitizer() { * @return Sanitized regex posix inside YANG model regex patterns. * @throws IOException Throw when is execute {@link ByteSource#read()} */ - public static ByteSource removeRegexpPosix(final ByteSource data) throws IOException { - final String textModel = new String(data.read(), StandardCharsets.UTF_8); - final String sanitizedModel = removeRegexpPosix(textModel); - return ByteSource.wrap(sanitizedModel.getBytes(StandardCharsets.UTF_8)); + public static CharSource removeRegexpPosix(final CharSource data) throws IOException { + final String sanitizedModel = removeRegexpPosix(data.read()); + return CharSource.wrap(sanitizedModel); } /** diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/test/java/io/lighty/modules/gnmi/commons/util/GnmiDataConverterTest.java b/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/test/java/io/lighty/modules/gnmi/commons/util/GnmiDataConverterTest.java index 9845b7b013..65cd898ac8 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/test/java/io/lighty/modules/gnmi/commons/util/GnmiDataConverterTest.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-commons/src/test/java/io/lighty/modules/gnmi/commons/util/GnmiDataConverterTest.java @@ -17,6 +17,7 @@ import org.junit.jupiter.api.Test; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.Module; +import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier; import org.opendaylight.yangtools.yang.model.spi.source.DelegatedYangTextSource; import org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException; import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors; @@ -58,7 +59,7 @@ private static EffectiveModelContext prepareSchemaWithMultipleRootContainersWith final YangStatementStreamSource yangModelRootSource = YangStatementStreamSource.create( new DelegatedYangTextSource( - YangTextSchemaSource.identifierFromFilename(modelName), + SourceIdentifier.ofYangFileName(modelName), CharSource.wrap(content))); // Pass String as argument buildAction.addSource(yangModelRootSource); } diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/utils/EffectiveModelContextBuilder.java b/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/utils/EffectiveModelContextBuilder.java index 2460a627ee..ac8abb488e 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/utils/EffectiveModelContextBuilder.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/utils/EffectiveModelContextBuilder.java @@ -8,7 +8,7 @@ package io.lighty.modules.gnmi.simulatordevice.utils; -import com.google.common.io.ByteSource; +import com.google.common.io.CharSource; import io.lighty.modules.gnmi.commons.util.YangModelSanitizer; import java.io.File; import java.io.IOException; @@ -23,7 +23,7 @@ import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; -import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier; import org.opendaylight.yangtools.yang.model.spi.source.DelegatedYangTextSource; import org.opendaylight.yangtools.yang.parser.api.YangParserException; import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors; @@ -109,12 +109,12 @@ private static List getYangStatementsFromYangModulesP .map(Path::toFile) .collect(Collectors.toList()); for (File file : filesInFolder) { - final ByteSource sanitizedYangByteSource = YangModelSanitizer - .removeRegexpPosix(com.google.common.io.Files.asByteSource(file)); + final CharSource sanitizedYangByteSource = YangModelSanitizer + .removeRegexpPosix(com.google.common.io.Files.asCharSource(file, StandardCharsets.UTF_8)); final YangStatementStreamSource statementSource = YangStatementStreamSource.create( new DelegatedYangTextSource( - YangTextSchemaSource.identifierFromFilename(file.getName()), - sanitizedYangByteSource, StandardCharsets.UTF_8)); + SourceIdentifier.ofYangFileName(file.getName()), + sanitizedYangByteSource)); sourceArrayList.add(statementSource); } @@ -131,12 +131,12 @@ private static List getYangStatementsFromYangModulesI final ArrayList sourceArrayList = new ArrayList<>(); for (YangModuleInfo yangModuleInfo : yangModulesInfo) { try { - final ByteSource sanitizedYangByteSource = YangModelSanitizer - .removeRegexpPosix(yangModuleInfo.getYangTextByteSource()); + final CharSource sanitizedYangByteSource = YangModelSanitizer + .removeRegexpPosix(yangModuleInfo.getYangTextCharSource()); final YangStatementStreamSource statementSource = YangStatementStreamSource.create(new DelegatedYangTextSource( - YangTextSchemaSource.identifierFromFilename(yangModuleInfo.getName().getLocalName() + ".yang"), - sanitizedYangByteSource, StandardCharsets.UTF_8)); + SourceIdentifier.ofYangFileName(yangModuleInfo.getName().getLocalName() + ".yang"), + sanitizedYangByteSource)); sourceArrayList.add(statementSource); } catch (IOException | YangParserException e) { final String errorMsg = String.format("Failed to create YangStatementStreamSource from" diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/utils/FileUtils.java b/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/utils/FileUtils.java index 83bda5c1ec..68fe899711 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/utils/FileUtils.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-device-simulator/src/main/java/io/lighty/modules/gnmi/simulatordevice/utils/FileUtils.java @@ -8,6 +8,7 @@ package io.lighty.modules.gnmi.simulatordevice.utils; +import com.google.common.io.CharSource; import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -18,7 +19,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; -import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier; import org.opendaylight.yangtools.yang.model.spi.source.DelegatedYangTextSource; import org.opendaylight.yangtools.yang.parser.api.YangParserException; import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors; @@ -48,8 +49,8 @@ public static EffectiveModelContext buildSchemaFromYangsDir(final String path) { for (File file : filesInFolder) { final YangStatementStreamSource statementSource = YangStatementStreamSource.create( new DelegatedYangTextSource( - YangTextSchemaSource.identifierFromFilename(file.getName()), - com.google.common.io.Files.asByteSource(file), StandardCharsets.UTF_8)); + SourceIdentifier.ofYangFileName(file.getName()), CharSource.wrap( + (CharSequence) com.google.common.io.Files.asCharSource(file,StandardCharsets.UTF_8)))); buildAction.addSource(statementSource); } diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/impl/ByClassPathYangLoaderService.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/impl/ByClassPathYangLoaderService.java index 289a8da7a6..af50827de9 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/impl/ByClassPathYangLoaderService.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/impl/ByClassPathYangLoaderService.java @@ -16,7 +16,6 @@ import io.lighty.gnmi.southbound.timeout.TimeoutUtils; import java.io.IOException; import java.io.InputStream; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -25,7 +24,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; -import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier; import org.opendaylight.yangtools.yang.model.spi.source.DelegatedYangTextSource; import org.opendaylight.yangtools.yang.parser.api.YangParser; import org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException; @@ -56,9 +55,9 @@ public List load(final YangDataStoreService storeService) final List loadedModels = new ArrayList<>(); for (YangModuleInfo yangModuleInfo : this.yangModulesInfo) { final DelegatedYangTextSource yangTextSchemaSource = new DelegatedYangTextSource( - YangTextSchemaSource.identifierFromFilename( + SourceIdentifier.ofYangFileName( yangModuleInfo.getName().getLocalName() + ".yang"), - yangModuleInfo.getYangTextByteSource(), StandardCharsets.UTF_8); + yangModuleInfo.getYangTextCharSource()); try (InputStream yangTextStream = yangModuleInfo.openYangTextStream()) { // This validates the yang this.yangParser.addSource(yangTextSchemaSource); diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java index 74622ca642..9c39025d74 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java @@ -18,7 +18,7 @@ import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.ir.IRArgument.Single; import org.opendaylight.yangtools.yang.ir.IRStatement; -import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import org.opendaylight.yangtools.yang.model.api.source.YangTextSource; import org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException; import org.opendaylight.yangtools.yang.parser.rfc7950.repo.TextToIRTransformer; import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangModelDependencyInfo; @@ -32,7 +32,7 @@ public class YangLoadModelUtil { private final String modelBody; private final String modelName; - public YangLoadModelUtil(final YangTextSchemaSource yangTextSchemaSource, final InputStream yangTextStream) + public YangLoadModelUtil(final YangTextSource yangTextSchemaSource, final InputStream yangTextStream) throws YangSyntaxErrorException, IOException { final var irSchemaSource = TextToIRTransformer.transformText(yangTextSchemaSource); final var semanticVersion = getSemVer(irSchemaSource.getRootStatement()); @@ -40,7 +40,7 @@ public YangLoadModelUtil(final YangTextSchemaSource yangTextSchemaSource, final final YangModelDependencyInfo yangModelDependencyInfo = YangModelDependencyInfo.forYangText(yangTextSchemaSource); // If revision is present in fileName, prefer that - this.modelRevision = Optional.ofNullable(yangTextSchemaSource.name().revision()) + this.modelRevision = Optional.ofNullable(yangTextSchemaSource.sourceId().revision()) .or(yangModelDependencyInfo::getRevision).orElse(null); this.modelSemVer = semanticVersion.orElse(null); this.modelBody = IOUtils.toString(yangTextStream, StandardCharsets.UTF_8); From 4850f7b6c00253accc1698d2ef23341f63542207 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Wed, 28 Feb 2024 09:54:03 +0100 Subject: [PATCH 51/70] Rename YangIRSource method https://github.com/opendaylight/yangtools/commit/69550a6ef718e6109d1d3b07810b37c8f5a292f6 Signed-off-by: tobias.pobocik --- .../gnmi/southbound/schema/loader/util/YangLoadModelUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java index 9c39025d74..bd2c29f83b 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java @@ -35,7 +35,7 @@ public class YangLoadModelUtil { public YangLoadModelUtil(final YangTextSource yangTextSchemaSource, final InputStream yangTextStream) throws YangSyntaxErrorException, IOException { final var irSchemaSource = TextToIRTransformer.transformText(yangTextSchemaSource); - final var semanticVersion = getSemVer(irSchemaSource.getRootStatement()); + final var semanticVersion = getSemVer(irSchemaSource.statement()); final YangModelDependencyInfo yangModelDependencyInfo = YangModelDependencyInfo.forYangText(yangTextSchemaSource); From cd80bc25c16c43f5c58a316f1b2752687f2ba359 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Wed, 28 Feb 2024 12:08:19 +0100 Subject: [PATCH 52/70] Eliminate YangModelDependencyInfo https://github.com/opendaylight/yangtools/commit/9f3139fa4ade5c83a9b6ae435610fdf190837cdd Signed-off-by: tobias.pobocik --- .../schema/impl/SchemaContextHolderImpl.java | 75 +++++++++---------- .../schema/loader/util/YangLoadModelUtil.java | 10 +-- 2 files changed, 41 insertions(+), 44 deletions(-) diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/impl/SchemaContextHolderImpl.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/impl/SchemaContextHolderImpl.java index 134a8a9194..93ecf8f3c3 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/impl/SchemaContextHolderImpl.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/impl/SchemaContextHolderImpl.java @@ -9,16 +9,13 @@ package io.lighty.gnmi.southbound.schema.impl; import com.google.common.collect.Sets; -import com.google.common.io.ByteSource; +import com.google.common.io.CharSource; import io.lighty.gnmi.southbound.capabilities.GnmiDeviceCapability; import io.lighty.gnmi.southbound.schema.SchemaConstants; import io.lighty.gnmi.southbound.schema.SchemaContextHolder; import io.lighty.gnmi.southbound.schema.yangstore.service.YangDataStoreService; import io.lighty.gnmi.southbound.timeout.TimeoutUtils; -import java.io.ByteArrayInputStream; import java.io.IOException; -import java.io.InputStream; -import java.nio.charset.StandardCharsets; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -31,15 +28,13 @@ import java.util.concurrent.TimeoutException; import javax.annotation.Nullable; import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.yang.storage.rev210331.gnmi.yang.models.GnmiYangModel; -import org.opendaylight.yangtools.yang.common.Revision; -import org.opendaylight.yangtools.yang.common.UnresolvedQName; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; -import org.opendaylight.yangtools.yang.model.api.ModuleImport; -import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; -import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import org.opendaylight.yangtools.yang.model.api.source.SourceDependency; +import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier; import org.opendaylight.yangtools.yang.model.spi.source.DelegatedYangTextSource; +import org.opendaylight.yangtools.yang.model.spi.source.SourceInfo; import org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException; -import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangModelDependencyInfo; +import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangIRSourceInfoExtractor; import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangStatementStreamSource; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; @@ -80,13 +75,13 @@ private Set prepareModelsForSchema( // Read models reported in capabilities fullModelSet = readCapabilities(baseCaps, processedModuleNames, schemaException); // Get dependencies of models reported in capabilities - Set dependencyInfos = getDependenciesOfModels(fullModelSet, schemaException); + Set dependencyInfos = getDependenciesOfModels(fullModelSet, schemaException); boolean nonComplete = true; while (nonComplete) { // Read dependency models Set dependencyModels = new HashSet<>(); - for (YangModelDependencyInfo dependencyInfo : dependencyInfos) { + for (SourceInfo dependencyInfo : dependencyInfos) { final Set gnmiYangModels = readDependencyModels(dependencyInfo, processedModuleNames, schemaException); dependencyModels.addAll(gnmiYangModels); @@ -149,19 +144,19 @@ private Optional tryToReadModel(final GnmiDeviceCapability capabi gnmiYangModel.getVersion().getValue())); } } else { - readImport = yangDataStoreService.readYangModel(capability.getName()) + readImport = yangDataStoreService.readYangModel(capability.toString()) .get(TimeoutUtils.DATASTORE_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS); } return readImport; } - private Set getDependenciesOfModels(final Set toCheck, + private Set getDependenciesOfModels(final Set toCheck, final SchemaException schemaException) { - Set dependencies = new HashSet<>(); + Set dependencies = new HashSet<>(); for (GnmiYangModel model : toCheck) { try { - final YangModelDependencyInfo dependencyInfo = YangModelDependencyInfo.forYangText( + final SourceInfo dependencyInfo = YangIRSourceInfoExtractor.forYangText( makeTextSchemaSource(model)); dependencies.add(dependencyInfo); } catch (IOException | YangSyntaxErrorException e) { @@ -171,23 +166,37 @@ private Set getDependenciesOfModels(final Set readDependencyModels(final YangModelDependencyInfo dependencyInfo, + private Set readDependencyModels(final SourceInfo dependencyInfo, final Set processedModuleNames, final SchemaException schemaException) throws InterruptedException, ExecutionException, TimeoutException { Set models = new HashSet<>(); - for (ModuleImport moduleImport : dependencyInfo.getDependencies()) { - if (!processedModuleNames.contains(moduleImport.getModuleName().getLocalName())) { + for (SourceDependency.Include moduleImport : dependencyInfo.includes()) { + if (!processedModuleNames.contains(moduleImport.name().getLocalName())) { final GnmiDeviceCapability importedCapability = new GnmiDeviceCapability( - moduleImport.getModuleName().getLocalName(), null, - moduleImport.getRevision().orElse(null)); + moduleImport.name().getLocalName(), null, + moduleImport.revision()); final Optional gnmiYangModel = tryToReadModel(importedCapability); if (gnmiYangModel.isPresent()) { models.add(gnmiYangModel.get()); } else { schemaException.addMissingModel(importedCapability); } - processedModuleNames.add(moduleImport.getModuleName().getLocalName()); + processedModuleNames.add(moduleImport.name().getLocalName()); + } + } + for (SourceDependency.Import moduleImport : dependencyInfo.imports()) { + if (!processedModuleNames.contains(moduleImport.name().getLocalName())) { + final GnmiDeviceCapability importedCapability = new GnmiDeviceCapability( + moduleImport.name().getLocalName(), null, + moduleImport.revision()); + final Optional gnmiYangModel = tryToReadModel(importedCapability); + if (gnmiYangModel.isPresent()) { + models.add(gnmiYangModel.get()); + } else { + schemaException.addMissingModel(importedCapability); + } + processedModuleNames.add(moduleImport.name().getLocalName()); } } return models; @@ -229,26 +238,14 @@ public EffectiveModelContext getSchemaContext(final List c throw schemaException; } - private YangTextSchemaSource makeTextSchemaSource(final GnmiYangModel model) { - if (model.getVersion().getValue().matches(SchemaConstants.REVISION_REGEX)) { - return new DelegatedYangTextSource( - new SourceIdentifier(UnresolvedQName.Unqualified.of(model.getName()), - Revision.of(model.getVersion().getValue())), bodyByteSource(model.getBody()), - StandardCharsets.UTF_8); - } else { - return new DelegatedYangTextSource(new SourceIdentifier(model.getName()), - bodyByteSource(model.getBody()), StandardCharsets.UTF_8); - } + private DelegatedYangTextSource makeTextSchemaSource(final GnmiYangModel model) { + return new DelegatedYangTextSource( + new SourceIdentifier(model.getName()), bodyCharSource(model.getBody())); } - private ByteSource bodyByteSource(final String yangBody) { - return new ByteSource() { - @Override - public InputStream openStream() { - return new ByteArrayInputStream(yangBody.getBytes(StandardCharsets.UTF_8)); - } - }; + private CharSource bodyCharSource(final String yangBody) { + return CharSource.wrap(yangBody); } } diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java index bd2c29f83b..76a17b442f 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java @@ -21,7 +21,7 @@ import org.opendaylight.yangtools.yang.model.api.source.YangTextSource; import org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException; import org.opendaylight.yangtools.yang.parser.rfc7950.repo.TextToIRTransformer; -import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangModelDependencyInfo; +import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangIRSourceInfoExtractor; public class YangLoadModelUtil { @@ -37,14 +37,14 @@ public YangLoadModelUtil(final YangTextSource yangTextSchemaSource, final InputS final var irSchemaSource = TextToIRTransformer.transformText(yangTextSchemaSource); final var semanticVersion = getSemVer(irSchemaSource.statement()); - final YangModelDependencyInfo yangModelDependencyInfo = - YangModelDependencyInfo.forYangText(yangTextSchemaSource); + final var yangModelDependencyInfo = + YangIRSourceInfoExtractor.forYangText(yangTextSchemaSource); // If revision is present in fileName, prefer that this.modelRevision = Optional.ofNullable(yangTextSchemaSource.sourceId().revision()) - .or(yangModelDependencyInfo::getRevision).orElse(null); + .or(yangModelDependencyInfo::revisions).orElse(null); this.modelSemVer = semanticVersion.orElse(null); this.modelBody = IOUtils.toString(yangTextStream, StandardCharsets.UTF_8); - this.modelName = yangModelDependencyInfo.getName(); + this.modelName = yangModelDependencyInfo.sourceId().name().getLocalName(); } public String getVersionToStore() { From bfaa3d529694434d9a20939bca7ad6f9137a9122 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Wed, 28 Feb 2024 13:56:36 +0100 Subject: [PATCH 53/70] Remove usage of aaa.encrypt.PKIUtil https://github.com/opendaylight/aaa/commit/20144fb9f20657c5d86768d9b3a6a23d3f8ccbbf Signed-off-by: tobias.pobocik --- .../io/lighty/aaa/util/AAAConfigUtils.java | 35 +++++++++++++++++++ .../lighty-gnmi/lighty-gnmi-connector/pom.xml | 5 +++ .../connector/tests/commons/TestUtils.java | 4 +-- .../lighty-gnmi/lighty-gnmi-sb/pom.xml | 4 +++ .../KeystoreGnmiSecurityProvider.java | 4 +-- .../schema/loader/util/YangLoadModelUtil.java | 9 +++-- .../modules/gnmi/test/utils/TestUtils.java | 4 +-- 7 files changed, 57 insertions(+), 8 deletions(-) diff --git a/lighty-modules/lighty-aaa-aggregator/lighty-aaa/src/main/java/io/lighty/aaa/util/AAAConfigUtils.java b/lighty-modules/lighty-aaa-aggregator/lighty-aaa/src/main/java/io/lighty/aaa/util/AAAConfigUtils.java index b5c6fb62bd..2a8d655176 100644 --- a/lighty-modules/lighty-aaa-aggregator/lighty-aaa/src/main/java/io/lighty/aaa/util/AAAConfigUtils.java +++ b/lighty-modules/lighty-aaa-aggregator/lighty-aaa/src/main/java/io/lighty/aaa/util/AAAConfigUtils.java @@ -14,7 +14,18 @@ import io.lighty.core.controller.impl.config.ConfigurationException; import java.io.IOException; import java.io.InputStream; +import java.io.Reader; +import java.security.KeyPair; +import java.security.Provider; +import java.security.Security; import java.util.Set; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.bouncycastle.openssl.PEMDecryptorProvider; +import org.bouncycastle.openssl.PEMEncryptedKeyPair; +import org.bouncycastle.openssl.PEMKeyPair; +import org.bouncycastle.openssl.PEMParser; +import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter; +import org.bouncycastle.openssl.jcajce.JcePEMDecryptorProviderBuilder; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -31,6 +42,13 @@ public final class AAAConfigUtils { org.opendaylight.yang.svc.v1.urn.opendaylight.params.xml.ns.yang.aaa.rev161214 .YangModuleInfoImpl.getInstance()); + private static final Provider BCPROV; + + static { + final var prov = Security.getProvider(BouncyCastleProvider.PROVIDER_NAME); + BCPROV = prov != null ? prov : new BouncyCastleProvider(); + } + private AAAConfigUtils() { // Hide on purpose } @@ -60,6 +78,23 @@ public static AAAConfiguration getAAAConfiguration(final InputStream jsonConfigI return aaaConfiguration; } + public static KeyPair decodePrivateKey(final Reader reader, final String passphrase) throws IOException { + try (PEMParser keyReader = new PEMParser(reader)) { + JcaPEMKeyConverter converter = new JcaPEMKeyConverter(); + PEMDecryptorProvider decryptionProv = new JcePEMDecryptorProviderBuilder().setProvider(BCPROV) + .build(passphrase.toCharArray()); + + Object privateKey = keyReader.readObject(); + KeyPair keyPair; + if (privateKey instanceof PEMEncryptedKeyPair pemPrivateKey) { + keyPair = converter.getKeyPair(pemPrivateKey.decryptKeyPair(decryptionProv)); + } else { + keyPair = converter.getKeyPair((PEMKeyPair) privateKey); + } + return keyPair; + } + } + public static AAAConfiguration createDefaultAAAConfiguration() { return new AAAConfiguration(); } diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-connector/pom.xml b/lighty-modules/lighty-gnmi/lighty-gnmi-connector/pom.xml index 9a8b169ff9..83d9e32798 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-connector/pom.xml +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-connector/pom.xml @@ -43,6 +43,11 @@ aaa-encrypt-service test + + io.lighty.modules + lighty-aaa + test + diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-connector/src/test/java/io/lighty/modules/gnmi/connector/tests/commons/TestUtils.java b/lighty-modules/lighty-gnmi/lighty-gnmi-connector/src/test/java/io/lighty/modules/gnmi/connector/tests/commons/TestUtils.java index 48fe843ee9..8d7eec6c53 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-connector/src/test/java/io/lighty/modules/gnmi/connector/tests/commons/TestUtils.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-connector/src/test/java/io/lighty/modules/gnmi/connector/tests/commons/TestUtils.java @@ -9,6 +9,7 @@ package io.lighty.modules.gnmi.connector.tests.commons; import com.google.common.io.CharStreams; +import io.lighty.aaa.util.AAAConfigUtils; import io.lighty.modules.gnmi.connector.configuration.SecurityFactory; import io.lighty.modules.gnmi.connector.gnmi.session.impl.GnmiSessionFactoryImpl; import io.lighty.modules.gnmi.connector.security.Security; @@ -20,7 +21,6 @@ import java.io.StringReader; import java.nio.charset.StandardCharsets; import java.security.KeyPair; -import org.opendaylight.aaa.encrypt.PKIUtil; public final class TestUtils { @@ -36,7 +36,7 @@ private TestUtils() { } public static SessionManager createSessionManagerWithCerts() throws Exception { - final KeyPair keyPair = new PKIUtil().decodePrivateKey(new StringReader(readResource(CLIENT_KEY)), PASSPHRASE); + final KeyPair keyPair = AAAConfigUtils.decodePrivateKey(new StringReader(readResource(CLIENT_KEY)), PASSPHRASE); final Security gnmiSecurity = SecurityFactory.createGnmiSecurity(readResource(CA_CERTS), readResource(CLIENT_CERTS), keyPair.getPrivate()); diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/pom.xml b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/pom.xml index b2004a139b..b568106d45 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/pom.xml +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/pom.xml @@ -101,6 +101,10 @@ aaa-encrypt-service-impl test + + io.lighty.modules + lighty-aaa + diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/device/session/security/KeystoreGnmiSecurityProvider.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/device/session/security/KeystoreGnmiSecurityProvider.java index 042a97f3de..cfe47ab3db 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/device/session/security/KeystoreGnmiSecurityProvider.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/device/session/security/KeystoreGnmiSecurityProvider.java @@ -8,6 +8,7 @@ package io.lighty.gnmi.southbound.device.session.security; +import io.lighty.aaa.util.AAAConfigUtils; import io.lighty.gnmi.southbound.schema.certstore.service.CertificationStorageService; import io.lighty.gnmi.southbound.timeout.TimeoutUtils; import io.lighty.modules.gnmi.connector.configuration.SecurityFactory; @@ -20,7 +21,6 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import org.opendaylight.aaa.encrypt.PKIUtil; import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.certificate.storage.rev210504.Keystore; import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.topology.rev210316.GnmiNode; import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.topology.rev210316.security.SecurityChoice; @@ -99,7 +99,7 @@ private Security createSecurityFromKeystore(final KeyPair keyPair, final Keystor private KeyPair getKeyPair(final String clientKey, final String passphrase) throws SessionSecurityException { try { - return new PKIUtil().decodePrivateKey( + return AAAConfigUtils.decodePrivateKey( new StringReader(this.certService .decrypt(clientKey) .replace("\\\\n", "\n")), diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java index 76a17b442f..b358a3e8ff 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/loader/util/YangLoadModelUtil.java @@ -11,6 +11,9 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Comparator; import java.util.Optional; import org.apache.commons.io.IOUtils; import org.opendaylight.yangtools.concepts.SemVer; @@ -40,8 +43,10 @@ public YangLoadModelUtil(final YangTextSource yangTextSchemaSource, final InputS final var yangModelDependencyInfo = YangIRSourceInfoExtractor.forYangText(yangTextSchemaSource); // If revision is present in fileName, prefer that - this.modelRevision = Optional.ofNullable(yangTextSchemaSource.sourceId().revision()) - .or(yangModelDependencyInfo::revisions).orElse(null); + this.modelRevision = yangModelDependencyInfo.revisions().stream() + .max(Comparator.comparing(revision -> LocalDate.parse(revision.toString(), + DateTimeFormatter.ofPattern("yyyy-MM-dd")))) + .orElse(null); this.modelSemVer = semanticVersion.orElse(null); this.modelBody = IOUtils.toString(yangTextStream, StandardCharsets.UTF_8); this.modelName = yangModelDependencyInfo.sourceId().name().getLocalName(); diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/utils/TestUtils.java b/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/utils/TestUtils.java index 4b4d18af27..e5502c4c1a 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/utils/TestUtils.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/utils/TestUtils.java @@ -9,6 +9,7 @@ package io.lighty.modules.gnmi.test.utils; import com.google.common.io.CharStreams; +import io.lighty.aaa.util.AAAConfigUtils; import io.lighty.gnmi.southbound.device.session.security.SessionSecurityException; import io.lighty.modules.gnmi.connector.configuration.SecurityFactory; import io.lighty.modules.gnmi.connector.gnmi.session.impl.GnmiSessionFactoryImpl; @@ -25,7 +26,6 @@ import java.security.KeyPair; import java.security.cert.CertificateException; import org.apache.commons.io.IOUtils; -import org.opendaylight.aaa.encrypt.PKIUtil; public final class TestUtils { @@ -51,7 +51,7 @@ public static SessionManager createSessionManagerWithCerts() throws IOException, private static KeyPair getKeyPair(final String clientKey) throws SessionSecurityException { try { - return new PKIUtil().decodePrivateKey(new StringReader(clientKey), PASSPHRASE); + return AAAConfigUtils.decodePrivateKey(new StringReader(clientKey), PASSPHRASE); } catch (IOException e) { throw new SessionSecurityException("Error while creating KeyPair from private key and passphrase", e); } From 4c7badf5d4f41e6d75bf1aae707890ed92ee23fb Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Mon, 4 Mar 2024 14:33:33 +0100 Subject: [PATCH 54/70] Remove (DOM)TransactionChainListener https://github.com/opendaylight/mdsal/commit/82d49007372df18b968afa6d297c991b91bf1fc2 Signed-off-by: tobias.pobocik --- .../mountpoint/broker/GnmiDataBroker.java | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/mountpoint/broker/GnmiDataBroker.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/mountpoint/broker/GnmiDataBroker.java index 7968da6d1d..a1b6fdcc44 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/mountpoint/broker/GnmiDataBroker.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/mountpoint/broker/GnmiDataBroker.java @@ -8,21 +8,21 @@ package io.lighty.gnmi.southbound.mountpoint.broker; -import com.google.common.collect.ClassToInstanceMap; -import com.google.common.collect.ImmutableClassToInstanceMap; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.ListenableFuture; import io.lighty.gnmi.southbound.mountpoint.ops.GnmiGet; import io.lighty.gnmi.southbound.mountpoint.ops.GnmiSet; import io.lighty.gnmi.southbound.mountpoint.transactions.ReadOnlyTx; import io.lighty.gnmi.southbound.mountpoint.transactions.ReadWriteTx; import io.lighty.gnmi.southbound.mountpoint.transactions.WriteOnlyTx; +import java.util.concurrent.Executor; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.mdsal.dom.api.DOMDataBrokerExtension; import org.opendaylight.mdsal.dom.api.DOMDataTreeReadTransaction; import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction; import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction; import org.opendaylight.mdsal.dom.api.DOMTransactionChain; -import org.opendaylight.mdsal.dom.api.DOMTransactionChainListener; import org.opendaylight.mdsal.dom.spi.PingPongMergingDOMDataBroker; +import org.opendaylight.yangtools.yang.common.Empty; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,7 +39,7 @@ public GnmiDataBroker(final GnmiGet getProvider, final GnmiSet setProvider) { } @Override - public @NonNull DOMTransactionChain createTransactionChain(DOMTransactionChainListener listener) { + public @NonNull DOMTransactionChain createTransactionChain() { return new DOMTransactionChain() { @Override public DOMDataTreeReadTransaction newReadOnlyTransaction() { @@ -51,6 +51,21 @@ public DOMDataTreeReadWriteTransaction newReadWriteTransaction() { return GnmiDataBroker.this.newReadWriteTransaction(); } + @Override + public void addCallback(FutureCallback callback) { + DOMTransactionChain.super.addCallback(callback); + } + + @Override + public void addCallback(FutureCallback callback, Executor executor) { + DOMTransactionChain.super.addCallback(callback, executor); + } + + @Override + public @NonNull ListenableFuture future() { + return createMergingTransactionChain().future(); + } + @Override public DOMDataTreeWriteTransaction newWriteOnlyTransaction() { return GnmiDataBroker.this.newWriteOnlyTransaction(); @@ -63,11 +78,6 @@ public void close() { }; } - @Override - public @NonNull ClassToInstanceMap getExtensions() { - return ImmutableClassToInstanceMap.of(); - } - @Override public DOMDataTreeReadTransaction newReadOnlyTransaction() { return new ReadOnlyTx(gnmiGet); From b52e5cc39e8386e9fcbde09c5e1a6eef58b45a9d Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Mon, 4 Mar 2024 15:40:08 +0100 Subject: [PATCH 55/70] Refactor PathArgument to DataObjectStep https://github.com/opendaylight/mdsal/commit/889d6606afceea88af3884ee340008c0f8810496 Signed-off-by: tobias.pobocik --- .../gnmi/southbound/identifier/IdentifierUtils.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/identifier/IdentifierUtils.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/identifier/IdentifierUtils.java index 11ac5d4fe2..c828145480 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/identifier/IdentifierUtils.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/identifier/IdentifierUtils.java @@ -16,9 +16,9 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; +import org.opendaylight.yangtools.yang.binding.DataObjectStep; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.IdentifiableItem; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument; +import org.opendaylight.yangtools.yang.binding.KeyStep; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -46,10 +46,10 @@ public static YangInstanceIdentifier nodeidToYii(final NodeId nodeId) { .build(); } - public static NodeId nodeIdOfPathArgument(final PathArgument pathArgument) + public static NodeId nodeIdOfPathArgument(final DataObjectStep pathArgument) throws IllegalStateException { - if (pathArgument instanceof IdentifiableItem identifiableItem) { - final var key = identifiableItem.getKey(); + if (pathArgument instanceof KeyStep identifiableItem) { + final var key = identifiableItem.key(); if (key instanceof NodeKey nodeKey) { return nodeKey.getNodeId(); } From d5764513c49edd8bae2a73349a446d6409459087 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 5 Mar 2024 12:50:26 +0100 Subject: [PATCH 56/70] Remove yang.binding.RpcService https://github.com/opendaylight/mdsal/commit/ef3f8223bba2be5728dde36c0b85dcb28a5f59e9 Signed-off-by: tobias.pobocik --- .../core/cluster/ClusteringHandler.java | 4 +- .../KubernetesClusteringHandlerImpl.java | 23 +++++++++-- .../kubernetes/MemberRemovedListener.java | 40 ++++++++++++++++--- .../core/controller/api/LightyServices.java | 4 +- .../controller/impl/LightyControllerImpl.java | 11 +++-- .../provider/GnmiSouthboundProvider.java | 6 +-- .../CertificationStorageServiceRpcImpl.java | 21 +++++++--- .../rpc/YangStorageServiceRpcImpl.java | 15 +++++-- 8 files changed, 91 insertions(+), 33 deletions(-) diff --git a/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/ClusteringHandler.java b/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/ClusteringHandler.java index 16aa57b8c1..bb6347ed60 100644 --- a/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/ClusteringHandler.java +++ b/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/ClusteringHandler.java @@ -10,13 +10,13 @@ import com.typesafe.config.Config; import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcService; +import org.opendaylight.mdsal.binding.api.RpcService; public interface ClusteringHandler { void initClustering(); - void start(@NonNull ClusterAdminRpcService clusterAdminRPCService); + void start(@NonNull RpcService clusterAdminRPCService); Optional getModuleShardsConfig(); } diff --git a/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/KubernetesClusteringHandlerImpl.java b/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/KubernetesClusteringHandlerImpl.java index b2c90ba2cd..ac861dff01 100644 --- a/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/KubernetesClusteringHandlerImpl.java +++ b/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/KubernetesClusteringHandlerImpl.java @@ -19,11 +19,16 @@ import java.util.List; import java.util.Optional; import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutionException; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.ActorSystemProvider; -import org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcService; +import org.opendaylight.mdsal.binding.api.RpcService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.AddReplicasForAllShards; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.AddReplicasForAllShardsInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.AddReplicasForAllShardsInputBuilder; +import org.opendaylight.yangtools.yang.binding.Rpc; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -79,10 +84,10 @@ public void initClustering() { } @Override - public void start(@NonNull final ClusterAdminRpcService clusterAdminRPCService) { + public void start(@NonNull final RpcService clusterAdminRPCService) { this.actorSystemProvider.getActorSystem().actorOf( MemberRemovedListener.props(clusterAdminRPCService), "memberRemovedListener"); - this.askForShards(clusterAdminRPCService); + this.askForShards(clusterAdminRPCService.getRpc(AddReplicasForAllShards.class)); } @Override @@ -94,10 +99,20 @@ public Optional getModuleShardsConfig() { * The first member of the cluster (leader) will create his shards. Other joining members will query * the leader for snapshots of the shards. */ - private void askForShards(final ClusterAdminRpcService clusterAdminRPCService) { + private void askForShards(final Rpc clusterAdminRpcService) { if (!Cluster.get(actorSystemProvider.getActorSystem()).selfAddress() .equals(Cluster.get(actorSystemProvider.getActorSystem()).state().getLeader())) { LOG.info("RPC call - Asking for Shard Snapshots"); + try { + final var rpcResult = clusterAdminRpcService.invoke( + new AddReplicasForAllShardsInputBuilder().build()).get(); + LOG.debug("RPC call - Asking for Shard Snapshots result: {}", rpcResult.getResult()); + } catch (ExecutionException e) { + LOG.error("RPC call - Asking for Shard Snapshots failed", e); + } catch (InterruptedException e) { + LOG.error("RPC call - Asking for Shard Snapshots interrupted", e); + Thread.currentThread().interrupt(); + } } } diff --git a/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/MemberRemovedListener.java b/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/MemberRemovedListener.java index 0bdac4c5a9..1b8a1ad49d 100644 --- a/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/MemberRemovedListener.java +++ b/lighty-core/lighty-clustering/src/main/java/io/lighty/core/cluster/kubernetes/MemberRemovedListener.java @@ -12,11 +12,11 @@ import akka.cluster.Cluster; import akka.cluster.ClusterEvent; import akka.cluster.Member; -import com.google.common.util.concurrent.ListenableFuture; import java.util.List; import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; -import org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcService; +import org.opendaylight.mdsal.binding.api.RpcService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.RemoveAllShardReplicas; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.RemoveAllShardReplicasInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.RemoveAllShardReplicasOutput; import org.opendaylight.yangtools.yang.common.RpcResult; @@ -28,15 +28,15 @@ public class MemberRemovedListener extends AbstractActor { private static final Logger LOG = LoggerFactory.getLogger(MemberRemovedListener.class); private final Cluster cluster; - private final ClusterAdminRpcService clusterAdminRPCService; + private final RpcService clusterAdminRPCService; - public MemberRemovedListener(final ClusterAdminRpcService clusterAdminRPCService) { + public MemberRemovedListener(final RpcService clusterAdminRPCService) { LOG.info("{} created", this.getClass()); this.cluster = Cluster.get(super.getContext().getSystem()); this.clusterAdminRPCService = clusterAdminRPCService; } - public static Props props(ClusterAdminRpcService clusterAdminRPCService) { + public static Props props(RpcService clusterAdminRPCService) { return Props.create(MemberRemovedListener.class, () -> new MemberRemovedListener(clusterAdminRPCService)); } @@ -56,8 +56,38 @@ public Receive createReceive() { return receiveBuilder() .match(ClusterEvent.MemberRemoved.class, removedMember -> { LOG.info("Member detected as removed, processing: {}", removedMember.member().address()); + processRemovedMember(removedMember.member()); }) .build(); } + private void processRemovedMember(Member member) { + LOG.info("Removing shard replicas for member {}. May result in WARN (DOES_NOT_EXIST) messages if already" + + "removed by another member.", member.address()); + List removedMemberRoles = member.getRoles().stream() + .filter(role -> !role.contains("default")).collect(Collectors.toList()); + + try { + for (String removedMemberRole : removedMemberRoles) { + + final var removeRpc = clusterAdminRPCService.getRpc(RemoveAllShardReplicas.class); + RpcResult rpcResult = removeRpc.invoke( + new RemoveAllShardReplicasInputBuilder().setMemberName(removedMemberRole).build()).get(); + if (rpcResult.isSuccessful()) { + LOG.info("RPC RemoveAllShards for member {} executed successfully", removedMemberRole); + } else { + LOG.warn("RPC RemoveAllShards for member {} failed: {}", removedMemberRole, + rpcResult.getErrors()); + } + } + LOG.info("Shard replicas removed for member {}", member.address()); + } catch (ExecutionException e) { + LOG.error("Unable to remove shard replicas for member {}", member.address(), e); + } catch (InterruptedException e) { + LOG.error("Interrupted while removing shard replicas for member {}", member.address(), e); + Thread.currentThread().interrupt(); + } + } + + } diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java index fe94153415..d873c8728b 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/api/LightyServices.java @@ -24,8 +24,8 @@ import org.opendaylight.mdsal.binding.api.MountPointService; import org.opendaylight.mdsal.binding.api.NotificationPublishService; import org.opendaylight.mdsal.binding.api.NotificationService; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; import org.opendaylight.mdsal.binding.api.RpcProviderService; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.mdsal.binding.dom.adapter.ConstantAdapterContext; import org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTreeFactory; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; @@ -131,6 +131,6 @@ public interface LightyServices extends LightyModuleRegistryService { ActionService getActionService(); - RpcConsumerRegistry getRpcConsumerRegistry(); + RpcService getRpcConsumerRegistry(); } diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java index 2d249d0eeb..d7dd3a4809 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java @@ -79,8 +79,8 @@ import org.opendaylight.mdsal.binding.api.MountPointService; import org.opendaylight.mdsal.binding.api.NotificationPublishService; import org.opendaylight.mdsal.binding.api.NotificationService; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; import org.opendaylight.mdsal.binding.api.RpcProviderService; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.mdsal.binding.dom.adapter.BindingAdapterFactory; import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMMountPointServiceAdapter; import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMNotificationPublishServiceAdapter; @@ -122,7 +122,6 @@ import org.opendaylight.yangtools.util.concurrent.SpecialExecutors; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; -import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier; import org.opendaylight.yangtools.yang.model.api.source.YangTextSource; import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; import org.opendaylight.yangtools.yang.parser.impl.DefaultYangParserFactory; @@ -194,7 +193,7 @@ public class LightyControllerImpl extends AbstractLightyModule implements Lighty private AkkaManagement akkaManagement; private Optional clusteringHandler; private Optional initialConfigData; - private RpcConsumerRegistry rpcConsumerRegistry; + private RpcService rpcConsumerRegistry; public LightyControllerImpl(final ExecutorService executorService, final Config actorSystemConfig, @@ -306,7 +305,7 @@ protected boolean initProcedure() { this.actionProviderService = this.bindingAdapterFactory.createActionProviderService( this.domActionProviderService); this.actionService = bindingAdapterFactory.createActionService(this.domActionService); - rpcConsumerRegistry = bindingAdapterFactory.createRpcConsumerRegistry(domRpcRouter.getRpcService()); + rpcConsumerRegistry = bindingAdapterFactory.createRpcService(domRpcRouter.rpcService()); this.rpcProviderService = new BindingDOMRpcProviderServiceAdapter(this.codec, this.domRpcRouter.rpcProviderService()); @@ -340,7 +339,7 @@ protected boolean initProcedure() { //create data broker this.dataBroker = bindingAdapterFactory.createDataBroker(concurrentDOMDataBroker); - this.clusteringHandler.ifPresent(handler -> handler.start(clusterAdminRpcService)); + this.clusteringHandler.ifPresent(handler -> handler.start(rpcConsumerRegistry)); this.bossGroup = new NioEventLoopGroup(); this.workerGroup = new NioEventLoopGroup(); @@ -661,7 +660,7 @@ public ActionProviderService getActionProviderService() { } @Override - public RpcConsumerRegistry getRpcConsumerRegistry() { + public RpcService getRpcConsumerRegistry() { return rpcConsumerRegistry; } diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/provider/GnmiSouthboundProvider.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/provider/GnmiSouthboundProvider.java index 799eb9677a..10ad80c21d 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/provider/GnmiSouthboundProvider.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/provider/GnmiSouthboundProvider.java @@ -43,9 +43,7 @@ import org.opendaylight.mdsal.binding.api.WriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.dom.api.DOMMountPointService; -import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.certificate.storage.rev210504.GnmiCertificateStorageService; import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.topology.rev210316.GnmiTopologyTypesBuilder; -import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.yang.storage.rev210331.GnmiYangStorageService; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyBuilder; @@ -97,14 +95,14 @@ public void init() throws ExecutionException, InterruptedException, TimeoutExcep //----Load initial yang models to datastore and register yang load rpc---- final YangDataStoreService yangDataStoreService = new YangDataStoreServiceImpl(dataBroker, gnmiExecutorService); final YangStorageServiceRpcImpl yangStorageServiceRpc = new YangStorageServiceRpcImpl(yangDataStoreService); - closeables.add(rpcProvider.registerRpcImplementation(GnmiYangStorageService.class, yangStorageServiceRpc)); + closeables.add(rpcProvider.registerRpcImplementations(yangStorageServiceRpc.getRpcClassToInstanceMap())); final CertificationStorageServiceImpl certStorageService = new CertificationStorageServiceImpl(encryptionService, dataBroker); final CertificationStorageServiceRpcImpl certStorageServiceRpc = new CertificationStorageServiceRpcImpl(certStorageService); closeables.add(rpcProvider - .registerRpcImplementation(GnmiCertificateStorageService.class,certStorageServiceRpc)); + .registerRpcImplementations(certStorageServiceRpc.getRpcClassToInstanceMap())); // Load initial Yang models if (!initialYangsLoaders.isEmpty()) { diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/rpc/CertificationStorageServiceRpcImpl.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/rpc/CertificationStorageServiceRpcImpl.java index d601b91de4..e5467f8c09 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/rpc/CertificationStorageServiceRpcImpl.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/rpc/CertificationStorageServiceRpcImpl.java @@ -9,6 +9,8 @@ package io.lighty.gnmi.southbound.schema.certstore.rpc; +import com.google.common.collect.ClassToInstanceMap; +import com.google.common.collect.ImmutableClassToInstanceMap; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; @@ -16,19 +18,21 @@ import com.google.common.util.concurrent.SettableFuture; import io.lighty.gnmi.southbound.schema.certstore.service.CertificationStorageService; import org.opendaylight.mdsal.common.api.CommitInfo; +import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.certificate.storage.rev210504.AddKeystoreCertificate; import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.certificate.storage.rev210504.AddKeystoreCertificateInput; import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.certificate.storage.rev210504.AddKeystoreCertificateOutput; import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.certificate.storage.rev210504.AddKeystoreCertificateOutputBuilder; -import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.certificate.storage.rev210504.GnmiCertificateStorageService; +import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.certificate.storage.rev210504.RemoveKeystoreCertificate; import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.certificate.storage.rev210504.RemoveKeystoreCertificateInput; import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.certificate.storage.rev210504.RemoveKeystoreCertificateOutput; import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.certificate.storage.rev210504.RemoveKeystoreCertificateOutputBuilder; +import org.opendaylight.yangtools.yang.binding.Rpc; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class CertificationStorageServiceRpcImpl implements GnmiCertificateStorageService { +public class CertificationStorageServiceRpcImpl { private static final Logger LOG = LoggerFactory.getLogger(CertificationStorageServiceRpcImpl.class); private final CertificationStorageService certStorage; @@ -37,8 +41,7 @@ public CertificationStorageServiceRpcImpl(final CertificationStorageService cert this.certStorage = certStorage; } - @Override - public ListenableFuture> addKeystoreCertificate( + private ListenableFuture> addKeystoreCertificate( final AddKeystoreCertificateInput input) { final ListenableFuture writeResult = this.certStorage.writeCertificates(input); final SettableFuture> rpcResult = SettableFuture.create(); @@ -59,8 +62,7 @@ public void onFailure(final Throwable throwable) { return rpcResult; } - @Override - public ListenableFuture> removeKeystoreCertificate( + private ListenableFuture> removeKeystoreCertificate( final RemoveKeystoreCertificateInput input) { final ListenableFuture removeResult = this.certStorage.removeCertificates(input); final SettableFuture> rpcResult = SettableFuture.create(); @@ -80,4 +82,11 @@ public void onFailure(final Throwable throwable) { }, MoreExecutors.directExecutor()); return rpcResult; } + + public ClassToInstanceMap> getRpcClassToInstanceMap() { + return ImmutableClassToInstanceMap.>builder() + .put(AddKeystoreCertificate.class, this::addKeystoreCertificate) + .put(RemoveKeystoreCertificate.class, this::removeKeystoreCertificate) + .build(); + } } diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/yangstore/rpc/YangStorageServiceRpcImpl.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/yangstore/rpc/YangStorageServiceRpcImpl.java index a802863364..22b7106e77 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/yangstore/rpc/YangStorageServiceRpcImpl.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/yangstore/rpc/YangStorageServiceRpcImpl.java @@ -8,6 +8,8 @@ package io.lighty.gnmi.southbound.schema.yangstore.rpc; +import com.google.common.collect.ClassToInstanceMap; +import com.google.common.collect.ImmutableClassToInstanceMap; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; @@ -16,17 +18,18 @@ import io.lighty.gnmi.southbound.schema.yangstore.service.YangDataStoreService; import org.checkerframework.checker.nullness.qual.Nullable; import org.opendaylight.mdsal.common.api.CommitInfo; -import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.yang.storage.rev210331.GnmiYangStorageService; +import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.yang.storage.rev210331.UploadYangModel; import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.yang.storage.rev210331.UploadYangModelInput; import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.yang.storage.rev210331.UploadYangModelOutput; import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.yang.storage.rev210331.UploadYangModelOutputBuilder; +import org.opendaylight.yangtools.yang.binding.Rpc; import org.opendaylight.yangtools.yang.common.ErrorType; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class YangStorageServiceRpcImpl implements GnmiYangStorageService { +public class YangStorageServiceRpcImpl { private static final Logger LOG = LoggerFactory.getLogger(YangStorageServiceRpcImpl.class); private final YangDataStoreService yangDataStoreService; @@ -35,8 +38,7 @@ public YangStorageServiceRpcImpl(final YangDataStoreService yangDataStoreService this.yangDataStoreService = yangDataStoreService; } - @Override - public ListenableFuture> uploadYangModel(final UploadYangModelInput input) { + private ListenableFuture> uploadYangModel(final UploadYangModelInput input) { final ListenableFuture uploadResultFuture = yangDataStoreService .addYangModel(input.getName(), input.getVersion().getValue(), input.getBody()); @@ -67,4 +69,9 @@ public void onFailure(Throwable throwable) { return rpcResultFuture; } + public ClassToInstanceMap> getRpcClassToInstanceMap() { + return ImmutableClassToInstanceMap.>builder() + .put(UploadYangModel.class, this::uploadYangModel) + .build(); + } } From fe08b97843fbe426730ba97e4a927f803654b9b2 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 5 Mar 2024 12:52:17 +0100 Subject: [PATCH 57/70] Expose completion future from WriteOperations https://github.com/opendaylight/mdsal/commit/94fb90ab450470ee1b3225d737cd394f034ea932#diff-5f6c1c6a2382fe3b5b00c5a443d4b2f2e0737b32818f9a72c7178715246a8489R90 Signed-off-by: tobias.pobocik --- .../southbound/mountpoint/transactions/ReadWriteTx.java | 6 ++++++ .../southbound/mountpoint/transactions/WriteOnlyTx.java | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/mountpoint/transactions/ReadWriteTx.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/mountpoint/transactions/ReadWriteTx.java index 4f81cfcc80..53babf50b1 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/mountpoint/transactions/ReadWriteTx.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/mountpoint/transactions/ReadWriteTx.java @@ -10,6 +10,7 @@ import com.google.common.util.concurrent.FluentFuture; import java.util.Optional; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.dom.api.DOMDataTreeReadTransaction; @@ -51,6 +52,11 @@ public void delete(final LogicalDatastoreType store, final YangInstanceIdentifie delegateWriteTx.delete(store, path); } + @Override + public @NonNull FluentFuture completionFuture() { + return delegateWriteTx.commit(); + } + @Override public FluentFuture commit() { return delegateWriteTx.commit(); diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/mountpoint/transactions/WriteOnlyTx.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/mountpoint/transactions/WriteOnlyTx.java index 6b6f09a321..407a0c0e06 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/mountpoint/transactions/WriteOnlyTx.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/mountpoint/transactions/WriteOnlyTx.java @@ -10,6 +10,7 @@ import com.google.common.util.concurrent.FluentFuture; import io.lighty.gnmi.southbound.mountpoint.ops.GnmiSet; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.common.api.CommitInfo; public class WriteOnlyTx extends AbstractWriteTx { @@ -26,4 +27,9 @@ public WriteOnlyTx(final GnmiSet gnmiSet) { public synchronized FluentFuture performCommit() { return FluentFuture.from(setProvider.set(putList, mergeList, deleteList)); } + + @Override + public @NonNull FluentFuture completionFuture() { + return FluentFuture.from(setProvider.set(putList, mergeList, deleteList)); + } } From 0a73bbd520d03f370eeb6b90465b54deeb4ca020 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 5 Mar 2024 12:58:37 +0100 Subject: [PATCH 58/70] Throw exception if decryption/encryption fails https://github.com/opendaylight/aaa/commit/b43fe318313a666acefb7bb98b46c85d18b4eef3 Signed-off-by: tobias.pobocik --- .../session/security/KeystoreGnmiSecurityProvider.java | 4 ++++ .../certstore/impl/CertificationStorageServiceImpl.java | 5 +++-- .../rpc/CertificationStorageServiceRpcImpl.java | 9 ++++++++- .../certstore/service/CertificationStorageService.java | 6 ++++-- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/device/session/security/KeystoreGnmiSecurityProvider.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/device/session/security/KeystoreGnmiSecurityProvider.java index cfe47ab3db..51c93fe15d 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/device/session/security/KeystoreGnmiSecurityProvider.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/device/session/security/KeystoreGnmiSecurityProvider.java @@ -15,6 +15,7 @@ import io.lighty.modules.gnmi.connector.security.Security; import java.io.IOException; import java.io.StringReader; +import java.security.GeneralSecurityException; import java.security.KeyPair; import java.security.cert.CertificateException; import java.util.Optional; @@ -106,6 +107,9 @@ private KeyPair getKeyPair(final String clientKey, final String passphrase) thro this.certService.decrypt(passphrase)); } catch (IOException e) { throw new SessionSecurityException("Error while creating KeyPair from private key and passphrase", e); + } catch (GeneralSecurityException e) { + LOG.error("Failed do decrypt input {}", clientKey); + throw new RuntimeException(e); } } } diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/impl/CertificationStorageServiceImpl.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/impl/CertificationStorageServiceImpl.java index 7a8034cab3..9e86ad6c75 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/impl/CertificationStorageServiceImpl.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/impl/CertificationStorageServiceImpl.java @@ -39,7 +39,8 @@ public CertificationStorageServiceImpl(final AAAEncryptionService encryptionServ } @Override - public @NonNull ListenableFuture writeCertificates(final AddKeystoreCertificateInput input) { + public @NonNull ListenableFuture writeCertificates(final AddKeystoreCertificateInput input) + throws GeneralSecurityException { byte[] encryptedParaphrase = this.encryptionService.encrypt( input.getPassphrase() != null ? input.getPassphrase().getBytes(Charset.defaultCharset()) : null); final Keystore keystore = new KeystoreBuilder() @@ -73,7 +74,7 @@ public CertificationStorageServiceImpl(final AAAEncryptionService encryptionServ } @Override - public String decrypt(final String data) { + public String decrypt(final String data) throws GeneralSecurityException { return new String(this.encryptionService.decrypt(DatatypeConverter.parseBase64Binary(data)), Charset.defaultCharset()); } diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/rpc/CertificationStorageServiceRpcImpl.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/rpc/CertificationStorageServiceRpcImpl.java index e5467f8c09..586cac0870 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/rpc/CertificationStorageServiceRpcImpl.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/rpc/CertificationStorageServiceRpcImpl.java @@ -17,6 +17,7 @@ import com.google.common.util.concurrent.MoreExecutors; import com.google.common.util.concurrent.SettableFuture; import io.lighty.gnmi.southbound.schema.certstore.service.CertificationStorageService; +import java.security.GeneralSecurityException; import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.certificate.storage.rev210504.AddKeystoreCertificate; import org.opendaylight.yang.gen.v1.urn.lighty.gnmi.certificate.storage.rev210504.AddKeystoreCertificateInput; @@ -43,7 +44,13 @@ public CertificationStorageServiceRpcImpl(final CertificationStorageService cert private ListenableFuture> addKeystoreCertificate( final AddKeystoreCertificateInput input) { - final ListenableFuture writeResult = this.certStorage.writeCertificates(input); + final ListenableFuture writeResult; + try { + writeResult = this.certStorage.writeCertificates(input); + } catch (GeneralSecurityException e) { + LOG.error("Failed do encrypt input {}", input); + throw new RuntimeException(e); + } final SettableFuture> rpcResult = SettableFuture.create(); Futures.addCallback(writeResult, new FutureCallback() { diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/service/CertificationStorageService.java b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/service/CertificationStorageService.java index 1ac5512a59..d877d9e805 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/service/CertificationStorageService.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-sb/src/main/java/io/lighty/gnmi/southbound/schema/certstore/service/CertificationStorageService.java @@ -9,6 +9,7 @@ package io.lighty.gnmi.southbound.schema.certstore.service; import com.google.common.util.concurrent.ListenableFuture; +import java.security.GeneralSecurityException; import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.common.api.CommitInfo; @@ -18,11 +19,12 @@ public interface CertificationStorageService { - @NonNull ListenableFuture writeCertificates(AddKeystoreCertificateInput input); + @NonNull ListenableFuture writeCertificates(AddKeystoreCertificateInput input) + throws GeneralSecurityException; @NonNull ListenableFuture removeCertificates(RemoveKeystoreCertificateInput input); @NonNull ListenableFuture> readCertificate(String keystoreId); - String decrypt(String data); + String decrypt(String data) throws GeneralSecurityException; } From aba4f7e1eb43cc7694644de67c61cf67a5eb5f4a Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Wed, 6 Mar 2024 09:11:24 +0100 Subject: [PATCH 59/70] Disconnect bgp from global event loop groups https://github.com/opendaylight/bgpcep/commit/19359ff05eb84d6e83cb6252fd0764dd8a686a0f Signed-off-by: tobias.pobocik --- .../java/io/lighty/modules/bgp/deployer/BgpModule.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lighty-modules/lighty-bgp/src/main/java/io/lighty/modules/bgp/deployer/BgpModule.java b/lighty-modules/lighty-bgp/src/main/java/io/lighty/modules/bgp/deployer/BgpModule.java index 1001c34f75..451f3361e9 100644 --- a/lighty-modules/lighty-bgp/src/main/java/io/lighty/modules/bgp/deployer/BgpModule.java +++ b/lighty-modules/lighty-bgp/src/main/java/io/lighty/modules/bgp/deployer/BgpModule.java @@ -35,6 +35,7 @@ import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionConsumerContext; import org.opendaylight.protocol.bgp.parser.spi.pojo.DefaultBGPExtensionConsumerContext; import org.opendaylight.protocol.bgp.rib.impl.BGPDispatcherImpl; +import org.opendaylight.protocol.bgp.rib.impl.BGPNettyGroups; import org.opendaylight.protocol.bgp.rib.impl.ConstantCodecsRegistry; import org.opendaylight.protocol.bgp.rib.impl.StrictBGPPeerRegistry; import org.opendaylight.protocol.bgp.rib.impl.config.DefaultBgpDeployer; @@ -52,7 +53,7 @@ public class BgpModule extends AbstractLightyModule { //Basic BGP private final SimpleStatementRegistry simpleStatementRegistry; - private final BGPDispatcherImpl bgpDispatcher; + private final BGPNettyGroups bgpNettyGroups; private final DefaultBgpDeployer bgpDeployer; private final StateProviderImpl stateProvider; private final StrictBGPPeerRegistry peerRegistry; @@ -73,7 +74,8 @@ public BgpModule(final EffectiveModelContext modelContext, final DataBroker data final EventLoopGroup bossGroup, final EventLoopGroup workerGroup) { initialConfigLoader = new InitialBgpConfigLoader(domDataBroker, modelContext); peerRegistry = new StrictBGPPeerRegistry(); - bgpDispatcher = new BGPDispatcherImpl(createBgpExtensions(), bossGroup, workerGroup, peerRegistry); + bgpNettyGroups = new BGPNettyGroups(); + final var bgpDispatcher = new BGPDispatcherImpl(createBgpExtensions(), bgpNettyGroups, peerRegistry); simpleStatementRegistry = createStatementRegistry(dataBroker); final DefaultBGPRibRoutingPolicyFactory routingPolicyFactory = new DefaultBGPRibRoutingPolicyFactory( dataBroker, simpleStatementRegistry); @@ -147,7 +149,7 @@ protected boolean stopProcedure() { closeSuccess = false; } try { - bgpDispatcher.close(); + bgpNettyGroups.close(); } catch (Exception e) { LOG.warn("Failed to stop BGP dispatcher", e); closeSuccess = false; From 59ff909efd73de6f8b1e567e617f5312c83a9c05 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Wed, 6 Mar 2024 12:21:07 +0100 Subject: [PATCH 60/70] Use newer revision of odl-netconf-device https://github.com/opendaylight/netconf/commit/1afaf777cb77151f3b04f76854a578fedd046627 Signed-off-by: tobias.pobocik --- .../controller/springboot/rest/NetconfDeviceRestService.java | 3 ++- .../springboot/rest/dto/NetconfDeviceResponse.java | 2 +- .../southbound/netconf/tests/TopologyPluginsTest.java | 5 +++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/NetconfDeviceRestService.java b/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/NetconfDeviceRestService.java index 23d2433710..098c4d2ea5 100644 --- a/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/NetconfDeviceRestService.java +++ b/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/NetconfDeviceRestService.java @@ -30,7 +30,8 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; -import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.credentials.credentials.LoginPasswordBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240120.credentials.credentials.LoginPwUnencryptedBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240120.credentials.credentials.login.pw.unencrypted.LoginPasswordUnencryptedBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev231121.NetconfNodeBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; diff --git a/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/dto/NetconfDeviceResponse.java b/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/dto/NetconfDeviceResponse.java index 2a3cf035d3..324665830e 100644 --- a/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/dto/NetconfDeviceResponse.java +++ b/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/dto/NetconfDeviceResponse.java @@ -10,7 +10,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.ConnectionOper.ConnectionStatus; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240120.ConnectionOper.ConnectionStatus; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev231121.NetconfNode; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; diff --git a/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/TopologyPluginsTest.java b/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/TopologyPluginsTest.java index c2f50ed1b1..ab56dbd949 100644 --- a/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/TopologyPluginsTest.java +++ b/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/TopologyPluginsTest.java @@ -33,8 +33,9 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; -import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.credentials.Credentials; -import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.credentials.credentials.LoginPasswordBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240120.credentials.Credentials; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240120.credentials.credentials.LoginPwUnencryptedBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240120.credentials.credentials.login.pw.unencrypted.LoginPasswordUnencryptedBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev231121.NetconfNode; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev231121.NetconfNodeBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology; From ccade21d916f86fbe2052b15a77a5a914c3afc9b Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Wed, 6 Mar 2024 12:35:12 +0100 Subject: [PATCH 61/70] Change Credentials creation https://github.com/opendaylight/netconf/commit/3a7861bd177cb31373573002ac85027100a11916 Signed-off-by: tobias.pobocik --- .../controller/springboot/rest/NetconfDeviceRestService.java | 5 +++-- .../southbound/netconf/tests/TopologyPluginsTest.java | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/NetconfDeviceRestService.java b/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/NetconfDeviceRestService.java index 098c4d2ea5..8df96ac9f5 100644 --- a/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/NetconfDeviceRestService.java +++ b/lighty-examples/lighty-controller-springboot-netconf/src/main/java/io/lighty/core/controller/springboot/rest/NetconfDeviceRestService.java @@ -137,10 +137,11 @@ public ResponseEntity connectNetconfDevice(@PathVariable final String netconfDev .addAugmentation(new NetconfNodeBuilder() .setHost(new Host(new IpAddress(new Ipv4Address(deviceInfo.getAddress())))) .setPort(new PortNumber(Uint16.valueOf(deviceInfo.getPort()))) - .setCredentials(new LoginPasswordBuilder() + .setCredentials(new LoginPwUnencryptedBuilder().setLoginPasswordUnencrypted( + new LoginPasswordUnencryptedBuilder() .setUsername(deviceInfo.getUsername()) .setPassword(deviceInfo.getPassword()) - .build()) + .build()).build()) .setTcpOnly(false) .build()) .build(); diff --git a/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/TopologyPluginsTest.java b/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/TopologyPluginsTest.java index ab56dbd949..3f761e8c64 100644 --- a/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/TopologyPluginsTest.java +++ b/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/TopologyPluginsTest.java @@ -102,10 +102,11 @@ public void afterClass() { @Test public void testMountDevice() throws Exception { final NodeId nodeId = new NodeId("device1"); - final Credentials loginPassword = new LoginPasswordBuilder() + final Credentials loginPassword = new LoginPwUnencryptedBuilder().setLoginPasswordUnencrypted( + new LoginPasswordUnencryptedBuilder() .setUsername("user1") .setPassword("password1") - .build(); + .build()).build(); final NetconfNode netconfNode = new NetconfNodeBuilder() .setHost(new Host(new IpAddress(new Ipv4Address("10.10.8.8")))) .setPort(new PortNumber(Uint16.valueOf(17830))) From 2399d3b6221d213051e0970ec34af831633cb205 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 9 Apr 2024 09:32:34 +0200 Subject: [PATCH 62/70] Factor out MdsalDatabindProvider https://github.com/opendaylight/netconf/commit/ef4a8eca3ab2f11cd83b39012500f97cc8fd4df0 Signed-off-by: tobias.pobocik --- .../restconf/community/impl/CommunityRestConf.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java index df332ae479..8e14a88420 100644 --- a/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java +++ b/lighty-modules/lighty-restconf-nb-community/src/main/java/io/lighty/modules/northbound/restconf/community/impl/CommunityRestConf.java @@ -37,9 +37,8 @@ import org.opendaylight.restconf.nb.rfc8040.jersey.providers.XmlPatchStatusBodyWriter; import org.opendaylight.restconf.nb.rfc8040.jersey.providers.errors.RestconfDocumentedExceptionMapper; import org.opendaylight.restconf.nb.rfc8040.streams.StreamsConfiguration; -import org.opendaylight.restconf.server.api.DatabindContext; +import org.opendaylight.restconf.server.mdsal.MdsalDatabindProvider; import org.opendaylight.restconf.server.mdsal.MdsalRestconfServer; -import org.opendaylight.restconf.server.spi.DatabindProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -96,8 +95,8 @@ protected boolean initProcedure() { LOG.info("Starting RestconfApplication with configuration {}", streamsConfiguration); - final DatabindProvider databindProvider = () -> DatabindContext.ofModel(domSchemaService.getGlobalContext()); - final var server = new MdsalRestconfServer(domSchemaService, domDataBroker, domRpcService, domActionService, + final MdsalDatabindProvider databindProvider = new MdsalDatabindProvider(domSchemaService); + final var server = new MdsalRestconfServer(databindProvider, domDataBroker, domRpcService, domActionService, domMountPointService); final ServletContainer servletContainer8040 = new ServletContainer(ResourceConfig From 5ef349919a6560df8ac9f5055e21d605cf097e02 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 9 Apr 2024 14:22:59 +0200 Subject: [PATCH 63/70] Provide yanglib-mdsal-writer to Lighty controller We need this writer in order for restconf to work. https://github.com/opendaylight/netconf/commit/003031286ffc17e48b1d3717eac29f9ab3aa2b01 Signed-off-by: tobias.pobocik --- lighty-core/lighty-controller/pom.xml | 4 ++++ .../lighty/core/controller/impl/LightyControllerImpl.java | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lighty-core/lighty-controller/pom.xml b/lighty-core/lighty-controller/pom.xml index d98b2203dc..4c70e1be7d 100644 --- a/lighty-core/lighty-controller/pom.xml +++ b/lighty-core/lighty-controller/pom.xml @@ -217,6 +217,10 @@ lighty-test-models test + + org.opendaylight.netconf + yanglib-mdsal-writer + diff --git a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java index d7dd3a4809..7516230fc3 100644 --- a/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java +++ b/lighty-core/lighty-controller/src/main/java/io/lighty/core/controller/impl/LightyControllerImpl.java @@ -117,6 +117,7 @@ import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.mdsal.singleton.impl.EOSClusterSingletonServiceProvider; +import org.opendaylight.netconf.yanglib.writer.YangLibraryWriterSingleton; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.util.DurationStatisticsTracker; import org.opendaylight.yangtools.util.concurrent.SpecialExecutors; @@ -194,6 +195,7 @@ public class LightyControllerImpl extends AbstractLightyModule implements Lighty private Optional clusteringHandler; private Optional initialConfigData; private RpcService rpcConsumerRegistry; + private YangLibraryWriterSingleton yangLibraryWriter; public LightyControllerImpl(final ExecutorService executorService, final Config actorSystemConfig, @@ -326,7 +328,7 @@ protected boolean initProcedure() { new ClusterAdminRpcService(this.configDatastore, this.operDatastore, this.akkaEntityOwnershipService); this.clusterSingletonServiceProvider = - new EOSClusterSingletonServiceProvider (this.akkaEntityOwnershipService); + new EOSClusterSingletonServiceProvider(this.akkaEntityOwnershipService); //create binding mount point service this.mountPointService = new BindingDOMMountPointServiceAdapter(this.codec, this.domMountPointService); @@ -349,6 +351,9 @@ protected boolean initProcedure() { Executors.newFixedThreadPool(2, new DefaultThreadFactory("default-pool")); this.scheduledThreadPool = new ScheduledThreadPoolExecutor(2, new DefaultThreadFactory("default-scheduled-pool")); + this.yangLibraryWriter = new YangLibraryWriterSingleton(clusterSingletonServiceProvider, schemaService, + dataBroker, true); + yangLibraryWriter.instantiateServiceInstance(); if (this.initialConfigData.isPresent()) { final InitialConfigData initialData = this.initialConfigData.get(); From f7c918967aca10c4d29ac050b5b6c33c674cdda5 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 9 Apr 2024 14:52:14 +0200 Subject: [PATCH 64/70] Change action output Do not include namespace in output. Signed-off-by: tobias.pobocik --- .../examples/controller/actions/RestconfActionsAppTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lighty-examples/lighty-community-restconf-actions-app/src/test/java/io/lighty/examples/controller/actions/RestconfActionsAppTest.java b/lighty-examples/lighty-community-restconf-actions-app/src/test/java/io/lighty/examples/controller/actions/RestconfActionsAppTest.java index 5ffc051461..2e04fdac68 100644 --- a/lighty-examples/lighty-community-restconf-actions-app/src/test/java/io/lighty/examples/controller/actions/RestconfActionsAppTest.java +++ b/lighty-examples/lighty-community-restconf-actions-app/src/test/java/io/lighty/examples/controller/actions/RestconfActionsAppTest.java @@ -31,11 +31,11 @@ public class RestconfActionsAppTest { private static final String DOM_ACTION_PATH = "restconf/data/example-data-center:device/start"; private static final String DOM_ACTION_INPUT = "{\"input\":{\"start-at\":\"2021-09-09T16:20:00Z\"}}"; private static final String DOM_ACTION_OUTPUT = - "{\"example-data-center:output\":{\"example-data-center:start-finished-at\":\"2021-09-09T16:20:00Z\"}}"; + "{\"example-data-center:output\":{\"start-finished-at\":\"2021-09-09T16:20:00Z\"}}"; private static final String BINDING_ACTION_PATH = "restconf/data/example-data-center:server=server-earth/reset"; private static final String BINDING_ACTION_INPUT = "{\"input\":{\"reset-at\":\"2021-09-09T16:20:00Z\"}}"; private static final String BINDING_ACTION_OUTPUT = - "{\"example-data-center:output\":{\"example-data-center:reset-finished-at\":\"2021-09-09T16:20:00Z\"}}"; + "{\"example-data-center:output\":{\"reset-finished-at\":\"2021-09-09T16:20:00Z\"}}"; private static final long SLEEP_AFTER_SHUTDOWN_TIMEOUT_MILLIS = 3_000; private static Main restconfApp; From fb343f79c1dc86bc3ed6f2c9aea2e0819bcc3b23 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 9 Apr 2024 14:54:21 +0200 Subject: [PATCH 65/70] Create workaround for NETCONF-1285 Uncomment this after NETCONF-1285 is resolved Signed-off-by: tobias.pobocik --- .../workflows/lighty-rcgnmi-app/tests-lighty-rcgnmi-app.sh | 4 ++-- .../workflows/lighty-rnc-app/test-lighty-rnc-app-cluster.sh | 4 ++-- .github/workflows/lighty-rnc-app/tests-lighty-rnc-app.sh | 4 ++-- .../examples/controller/actions/RestconfActionsAppTest.java | 2 ++ .../controllers/restconfapp/tests/RestconfAppTest.java | 2 ++ 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/lighty-rcgnmi-app/tests-lighty-rcgnmi-app.sh b/.github/workflows/lighty-rcgnmi-app/tests-lighty-rcgnmi-app.sh index ade01ef226..02ec03339d 100755 --- a/.github/workflows/lighty-rcgnmi-app/tests-lighty-rcgnmi-app.sh +++ b/.github/workflows/lighty-rcgnmi-app/tests-lighty-rcgnmi-app.sh @@ -89,7 +89,7 @@ do \ assertHttpStatusCode $(curl -o /dev/null -s -w "%{http_code} GET %{url_effective}\n" --user admin:admin -H "Content-Type: application/json" --insecure http://$pod_controller_ip:8558/cluster/members) \ ;done sleep 1 - +: ' FIXME uncomment this after NETCONF-1285 is resolved #Pods healthcheck (:8888/restconf/operations) for pod_controller_ip in $POD_CONTROLLER_IPS; \ @@ -100,7 +100,7 @@ sleep 1 #Service healthcheck (:30888/restconf/operations) assertHttpStatusCode $(curl -o /dev/null -s -w "%{http_code} GET %{url_effective}\n" --user admin:admin -H "Content-Type: application/json" --insecure http://$MINIKUBE_IP:$CONTROLLER_PORT/restconf/operations) - +' # add gNMI node into gNMI topology assertHttpStatusCode $(curl -X PUT -o /dev/null -s -w "%{http_code} PUT %{url_effective}\n" \ http://"$MINIKUBE_IP":$CONTROLLER_PORT/restconf/data/network-topology:network-topology/topology=gnmi-topology/node=node-"${MINIKUBE_IP//.}" \ diff --git a/.github/workflows/lighty-rnc-app/test-lighty-rnc-app-cluster.sh b/.github/workflows/lighty-rnc-app/test-lighty-rnc-app-cluster.sh index da7f47f9d0..335fcf0cc6 100644 --- a/.github/workflows/lighty-rnc-app/test-lighty-rnc-app-cluster.sh +++ b/.github/workflows/lighty-rnc-app/test-lighty-rnc-app-cluster.sh @@ -182,7 +182,7 @@ do \ "http://$pod_controller_ip:8558/cluster/members")" \ ;done validateTestStatus - +: ' FIXME uncomment this after NETCONF-1285 is resolved # Pods health check (:8888/restconf/operations) for pod_controller_ip in $POD_CONTROLLER_IPS; \ do \ @@ -190,7 +190,7 @@ do \ -H "Content-Type: application/json" \ "http://$pod_controller_ip:$CONTROLLER_PORT/restconf/operations")" \ ;done - +' # Add node into topology assertHttpStatusCode "$(curl -X PUT -o /dev/null -s -w "%{http_code} PUT %{url_effective}\n" \ "http://$CTRL0_IP:$CONTROLLER_PORT/restconf/data/network-topology:network-topology/topology=topology-netconf/node=node-${SIMULATOR_IP//.}" \ diff --git a/.github/workflows/lighty-rnc-app/tests-lighty-rnc-app.sh b/.github/workflows/lighty-rnc-app/tests-lighty-rnc-app.sh index 370f26a6b3..6b5435d4f6 100755 --- a/.github/workflows/lighty-rnc-app/tests-lighty-rnc-app.sh +++ b/.github/workflows/lighty-rnc-app/tests-lighty-rnc-app.sh @@ -80,7 +80,7 @@ do \ assertHttpStatusCode $(curl -o /dev/null -s -w "%{http_code} GET %{url_effective}\n" --user admin:admin -H "Content-Type: application/json" --insecure http://$pod_controller_ip:8558/cluster/members) \ ;done sleep 1 - +: ' FIXME uncomment this after NETCONF-1285 is resolved # Pods healthcheck (:8888/restconf/operations) for pod_controller_ip in $POD_CONTROLLER_IPS; \ @@ -92,7 +92,7 @@ sleep 1 # Service healthcheck (:30888/restconf/operations) assertHttpStatusCode $(curl -o /dev/null -s -w "%{http_code} GET %{url_effective}\n" --user admin:admin -H "Content-Type: application/json" --insecure http://$MINIKUBE_IP:$CONTROLLER_PORT/restconf/operations) sleep 1 - +' # add node into topology assertHttpStatusCode $(curl -X PUT -o /dev/null -s -w "%{http_code} PUT %{url_effective}\n" http://"$MINIKUBE_IP":$CONTROLLER_PORT/restconf/data/network-topology:network-topology/topology=topology-netconf/node=node-"${SIMULATOR_IP//.}" \ -H 'Content-Type: application/json' \ diff --git a/lighty-examples/lighty-community-restconf-actions-app/src/test/java/io/lighty/examples/controller/actions/RestconfActionsAppTest.java b/lighty-examples/lighty-community-restconf-actions-app/src/test/java/io/lighty/examples/controller/actions/RestconfActionsAppTest.java index 2e04fdac68..1f196e164a 100644 --- a/lighty-examples/lighty-community-restconf-actions-app/src/test/java/io/lighty/examples/controller/actions/RestconfActionsAppTest.java +++ b/lighty-examples/lighty-community-restconf-actions-app/src/test/java/io/lighty/examples/controller/actions/RestconfActionsAppTest.java @@ -63,8 +63,10 @@ public void simpleApplicationTest() throws Exception { } ] }"""); + /* FIXME uncomment this after NETCONF-1285 is resolved operations = restClient.GET("restconf/operations"); assertEquals(operations.statusCode(), 200); + */ operations = restClient.GET("restconf/data/network-topology:network-topology?content=config"); assertEquals(operations.statusCode(), 200); operations = restClient.GET("restconf/data/network-topology:network-topology?content=nonconfig"); diff --git a/lighty-examples/lighty-community-restconf-netconf-app/src/test/java/io/lighty/examples/controllers/restconfapp/tests/RestconfAppTest.java b/lighty-examples/lighty-community-restconf-netconf-app/src/test/java/io/lighty/examples/controllers/restconfapp/tests/RestconfAppTest.java index 3a295516e1..6655272d75 100644 --- a/lighty-examples/lighty-community-restconf-netconf-app/src/test/java/io/lighty/examples/controllers/restconfapp/tests/RestconfAppTest.java +++ b/lighty-examples/lighty-community-restconf-netconf-app/src/test/java/io/lighty/examples/controllers/restconfapp/tests/RestconfAppTest.java @@ -56,8 +56,10 @@ public void simpleApplicationTest() throws IOException, InterruptedException { ] }"""); + /* FIXME uncomment this after NETCONF-1285 is resolved operations = restClient.GET("rests/operations"); Assert.assertEquals(operations.statusCode(), 200); + */ operations = restClient.GET("rests/data/network-topology:network-topology?content=config"); Assert.assertEquals(operations.statusCode(), 200); operations = restClient.GET("rests/data/network-topology:network-topology?content=nonconfig"); From f922927c623587da1e2d7bdf9dbbafd937f719fe Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 9 Apr 2024 14:56:22 +0200 Subject: [PATCH 66/70] Do not hard-code localhost Let's get the address straight from the configuration. Signed-off-by: tobias.pobocik --- .../modules/southbound/netconf/tests/CallhomePluginTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/CallhomePluginTest.java b/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/CallhomePluginTest.java index ac360460f2..e16860e71e 100644 --- a/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/CallhomePluginTest.java +++ b/lighty-modules/integration-tests/src/test/java/io/lighty/modules/southbound/netconf/tests/CallhomePluginTest.java @@ -16,7 +16,6 @@ import io.lighty.modules.southbound.netconf.impl.NetconfCallhomePluginBuilder; import io.lighty.modules.southbound.netconf.impl.config.NetconfConfiguration; import io.lighty.modules.southbound.netconf.impl.util.NetconfConfigUtils; -import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketAddress; @@ -69,7 +68,8 @@ public void testStart() throws Exception { netconfPlugin.start().get(); // check, whether TCP server is running on port try (Socket socket = new Socket()) { - final SocketAddress endpoint = new InetSocketAddress(InetAddress.getLocalHost(), 4334); + final SocketAddress endpoint = new InetSocketAddress( + RestConfConfigUtils.getDefaultRestConfConfiguration().getInetAddress(), 4334); socket.connect(endpoint); } } From c2d47979080c7c99fe8d8d5f8a87a587b40c4669 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 9 Apr 2024 19:31:34 +0200 Subject: [PATCH 67/70] Adjust expected test result This test expected us to be unable to create Qname without revision. This is no longer the case, so lets adjust the test. https://github.com/opendaylight/yangtools/commit/903f6f1f3d98ab73cdd252a0fc2e1c0045f48681#diff-529e55d1b7b1f18b30666a84bce17d3203a80ea0986777c0c6da7bc42439dc7c Signed-off-by: tobias.pobocik --- .../io/lighty/core/common/models/tests/YangModelUtilsTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lighty-core/lighty-common/src/test/java/io/lighty/core/common/models/tests/YangModelUtilsTests.java b/lighty-core/lighty-common/src/test/java/io/lighty/core/common/models/tests/YangModelUtilsTests.java index 6a33b4a4e7..f022a4c7c2 100644 --- a/lighty-core/lighty-common/src/test/java/io/lighty/core/common/models/tests/YangModelUtilsTests.java +++ b/lighty-core/lighty-common/src/test/java/io/lighty/core/common/models/tests/YangModelUtilsTests.java @@ -95,10 +95,10 @@ public static Object[][] gatModuleIdStringInits() { //valid inits {TEST_NAMESPACE, TEST_NAME, TEST_REVISION, true}, {"", TEST_NAME, TEST_REVISION, true}, + {TEST_NAMESPACE, TEST_NAME, null, true}, //invalid inits {TEST_NAMESPACE, TEST_NAME, "", false}, - {TEST_NAMESPACE, TEST_NAME, null, false}, {null, TEST_NAME, TEST_REVISION, false}, {TEST_NAMESPACE, null, TEST_REVISION, false}, {TEST_NAMESPACE, "", TEST_REVISION, false}, From b3e80d20da9c021c6c9d2583f74ddaec3e3445e0 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 9 Apr 2024 17:35:41 +0200 Subject: [PATCH 68/70] Use newer revision of netconf-keystore https://github.com/opendaylight/netconf/commit/bfdd73eb11d1f69c7bd484d564bc8e6abf4e07fe Signed-off-by: tobias.pobocik --- .../lighty-rnc-app-docker/example-config/configuration.json | 2 +- .../helm/lighty-rnc-app-helm/templates/configmaps.yaml | 2 +- .../lighty-rnc-module/src/test/resources/config.json | 2 +- .../lighty-rnc-module/src/test/resources/http2Config.json | 2 +- .../lighty-rnc-module/src/test/resources/httpsConfig.json | 2 +- .../lighty-rnc-module/src/test/resources/openapi_config.json | 2 +- .../src/main/assembly/resources/sampleConfigSingleNode.json | 2 +- .../src/main/assembly/resources/sampleConfigSingleNode.json | 2 +- .../src/main/resources/sampleConfigCluster.json | 2 +- .../src/main/resources/sampleConfigSingleNode.json | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-docker/example-config/configuration.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-docker/example-config/configuration.json index 72128a49de..b48dec4f02 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-docker/example-config/configuration.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-docker/example-config/configuration.json @@ -40,8 +40,8 @@ { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2023-11-03", "nameSpace": "urn:sal:restconf:event:subscription"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy": "RESTCONF/NETCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, - { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2017-10-17", "nameSpace": "urn:opendaylight:netconf:keystore"}, { "usedBy": "NETCONF", "name": "netconf-node-topology", "revision": "2022-12-25", "nameSpace": "urn:opendaylight:netconf-node-topology"}, + { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2023-11-09", "nameSpace": "urn:opendaylight:netconf:keystore"}, { "usedBy": "NETCONF", "name":"ietf-netconf", "revision":"2011-06-01", "nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"}, { "usedBy": "AAA", "name": "aaa-cert-mdsal", "revision":"2016-03-21", "nameSpace":"urn:opendaylight:yang:aaa:cert:mdsal"}, { "usedBy": "AAA", "name": "aaa", "revision": "2016-12-14", "nameSpace": "urn:opendaylight:params:xml:ns:yang:aaa"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-helm/helm/lighty-rnc-app-helm/templates/configmaps.yaml b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-helm/helm/lighty-rnc-app-helm/templates/configmaps.yaml index 8fd0702729..8e00e11d68 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-helm/helm/lighty-rnc-app-helm/templates/configmaps.yaml +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-helm/helm/lighty-rnc-app-helm/templates/configmaps.yaml @@ -47,8 +47,8 @@ data: { "usedBy": "RESTCONF", "name": "ietf-restconf", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy": "RESTCONF/NETCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, - { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2017-10-17", "nameSpace": "urn:opendaylight:netconf:keystore"}, { "usedBy": "NETCONF", "name": "netconf-node-topology", "revision": "2022-12-25", "nameSpace": "urn:opendaylight:netconf-node-topology"}, + { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2023-11-09", "nameSpace": "urn:opendaylight:netconf:keystore"}, { "usedBy": "NETCONF", "name":"ietf-netconf", "revision":"2011-06-01", "nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"}, { "usedBy": "AAA", "name": "aaa-cert-mdsal", "revision":"2016-03-21", "nameSpace":"urn:opendaylight:yang:aaa:cert:mdsal"}, { "usedBy": "AAA", "name": "aaa", "revision": "2016-12-14", "nameSpace": "urn:opendaylight:params:xml:ns:yang:aaa"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/config.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/config.json index 6fe710fcb5..766f1302f7 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/config.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/config.json @@ -37,7 +37,7 @@ { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy": "RESTCONF/NETCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2017-10-17", "nameSpace": "urn:opendaylight:netconf:keystore"}, - { "usedBy": "NETCONF", "name": "netconf-node-topology", "revision": "2022-12-25", "nameSpace": "urn:opendaylight:netconf-node-topology"}, + { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2023-11-09", "nameSpace": "urn:opendaylight:netconf:keystore"}, { "usedBy": "NETCONF", "name":"ietf-netconf", "revision":"2011-06-01", "nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"}, { "usedBy": "AAA", "name": "aaa", "revision": "2016-12-14", "nameSpace": "urn:opendaylight:params:xml:ns:yang:aaa"}, { "usedBy": "AAA", "name": "aaa-cert-mdsal", "revision":"2016-03-21", "nameSpace":"urn:opendaylight:yang:aaa:cert:mdsal"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/http2Config.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/http2Config.json index ad5aebc32f..91436441fb 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/http2Config.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/http2Config.json @@ -33,8 +33,8 @@ { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2023-11-03", "nameSpace": "urn:sal:restconf:event:subscription"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy": "RESTCONF/NETCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, - { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2017-10-17", "nameSpace": "urn:opendaylight:netconf:keystore"}, { "usedBy": "NETCONF", "name": "netconf-node-topology", "revision": "2022-12-25", "nameSpace": "urn:opendaylight:netconf-node-topology"}, + { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2023-11-09", "nameSpace": "urn:opendaylight:netconf:keystore"}, { "usedBy": "NETCONF", "name":"ietf-netconf", "revision":"2011-06-01", "nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"}, { "usedBy": "AAA", "name": "aaa-cert-mdsal", "revision":"2016-03-21", "nameSpace":"urn:opendaylight:yang:aaa:cert:mdsal"}, { "usedBy": "AAA", "name": "aaa", "revision": "2016-12-14", "nameSpace": "urn:opendaylight:params:xml:ns:yang:aaa"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/httpsConfig.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/httpsConfig.json index 3ba858d722..06dfdc03b7 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/httpsConfig.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/httpsConfig.json @@ -33,8 +33,8 @@ { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2023-11-03", "nameSpace": "urn:sal:restconf:event:subscription"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy": "RESTCONF/NETCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, - { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2017-10-17", "nameSpace": "urn:opendaylight:netconf:keystore"}, { "usedBy": "NETCONF", "name": "netconf-node-topology", "revision": "2022-12-25", "nameSpace": "urn:opendaylight:netconf-node-topology"}, + { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2023-11-09", "nameSpace": "urn:opendaylight:netconf:keystore"}, { "usedBy": "NETCONF", "name":"ietf-netconf", "revision":"2011-06-01", "nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"}, { "usedBy": "AAA", "name": "aaa-cert-mdsal", "revision":"2016-03-21", "nameSpace":"urn:opendaylight:yang:aaa:cert:mdsal"}, { "usedBy": "AAA", "name": "aaa", "revision": "2016-12-14", "nameSpace": "urn:opendaylight:params:xml:ns:yang:aaa"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/openapi_config.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/openapi_config.json index 5af8151d7c..a17008809f 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/openapi_config.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/openapi_config.json @@ -45,7 +45,7 @@ { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library", "name": "ietf-yang-library", "revision": "2019-01-04" }, { "nameSpace": "urn:ietf:params:xml:ns:yang:ospf-topology", "name": "ospf-topology", "revision": "2013-07-12" }, { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-netconf-notifications", "name": "ietf-netconf-notifications", "revision": "2012-02-06" }, - { "nameSpace": "urn:opendaylight:netconf:keystore", "name": "netconf-keystore", "revision": "2017-10-17" }, + { "nameSpace": "urn:opendaylight:netconf:keystore", "name": "netconf-keystore", "revision": "2023-11-09" }, { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf", "name": "ietf-restconf", "revision": "2013-10-19" }, { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin", "name": "cluster-admin", "revision": "2015-10-13" }, { "nameSpace": "urn:opendaylight:params:xml:ns:yang:md:sal:config:impl:cluster-singleton-service", "name": "cluster-singleton-service-impl", "revision": "2016-07-18" }, diff --git a/lighty-examples/lighty-community-restconf-actions-app/src/main/assembly/resources/sampleConfigSingleNode.json b/lighty-examples/lighty-community-restconf-actions-app/src/main/assembly/resources/sampleConfigSingleNode.json index 21b991fc2e..04d23661d6 100644 --- a/lighty-examples/lighty-community-restconf-actions-app/src/main/assembly/resources/sampleConfigSingleNode.json +++ b/lighty-examples/lighty-community-restconf-actions-app/src/main/assembly/resources/sampleConfigSingleNode.json @@ -40,9 +40,9 @@ { "usedBy":"RESTCONF","name":"sal-remote-augment","revision":"2023-11-03","nameSpace":"urn:sal:restconf:event:subscription"}, { "usedBy":"RESTCONF","name":"subscribe-to-notification","revision":"2016-10-28","nameSpace":"subscribe:to:notification"}, { "usedBy":"RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, - { "usedBy":"NETCONF","name":"netconf-keystore","revision":"2017-10-17","nameSpace":"urn:opendaylight:netconf:keystore"}, { "usedBy":"NETCONF","name":"netconf-node-topology","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-topology"}, { "usedBy":"NETCONF","name":"netconf-node-optional","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-optional"}, + { "usedBy":"NETCONF","name":"netconf-keystore","revision":"2023-11-09","nameSpace":"urn:opendaylight:netconf:keystore"}, { "usedBy":"NETCONF","name":"ietf-netconf","revision":"2011-06-01","nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"}, { "usedBy":"NETCONF_ACTION","name":"example-data-center","revision":"2018-08-07","nameSpace":"urn:example:data-center"} ] diff --git a/lighty-examples/lighty-community-restconf-netconf-app/src/main/assembly/resources/sampleConfigSingleNode.json b/lighty-examples/lighty-community-restconf-netconf-app/src/main/assembly/resources/sampleConfigSingleNode.json index e1c82392ff..800f359325 100644 --- a/lighty-examples/lighty-community-restconf-netconf-app/src/main/assembly/resources/sampleConfigSingleNode.json +++ b/lighty-examples/lighty-community-restconf-netconf-app/src/main/assembly/resources/sampleConfigSingleNode.json @@ -40,9 +40,9 @@ { "usedBy":"RESTCONF","name":"sal-remote-augment","revision":"2023-11-03","nameSpace":"urn:sal:restconf:event:subscription"}, { "usedBy":"RESTCONF","name":"subscribe-to-notification","revision":"2016-10-28","nameSpace":"subscribe:to:notification"}, { "usedBy":"RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, - { "usedBy":"NETCONF","name":"netconf-keystore","revision":"2017-10-17","nameSpace":"urn:opendaylight:netconf:keystore"}, { "usedBy":"NETCONF","name":"netconf-node-topology","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-topology"}, { "usedBy":"NETCONF","name":"netconf-node-optional","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-optional"}, + { "usedBy":"NETCONF","name":"netconf-keystore","revision":"2023-11-09","nameSpace":"urn:opendaylight:netconf:keystore"}, { "usedBy":"NETCONF","name":"ietf-netconf","revision":"2011-06-01","nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"} ] } diff --git a/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigCluster.json b/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigCluster.json index 0f24863c1e..64ce15a036 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigCluster.json +++ b/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigCluster.json @@ -28,9 +28,9 @@ { "usedBy":"CONTROLLER","name":"odl-general-entity","revision":"2015-09-30","nameSpace":"urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity"}, { "usedBy":"CONTROLLER","name":"distributed-datastore-provider","revision":"2023-12-29","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy":"CONTROLLER","name":"odl-entity-owners","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, - { "usedBy":"NETCONF","name":"netconf-keystore","revision":"2017-10-17","nameSpace":"urn:opendaylight:netconf:keystore"}, { "usedBy":"NETCONF","name":"netconf-node-topology","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-topology"}, { "usedBy":"NETCONF","name":"netconf-node-optional","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-optional"}, + { "usedBy":"NETCONF","name":"netconf-keystore","revision":"2023-11-09","nameSpace":"urn:opendaylight:netconf:keystore"}, { "usedBy":"NETCONF","name":"ietf-netconf","revision":"2011-06-01","nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"}, { "usedBy":"CLUSTER","name": "netconf-clustered-topology-config","revision":"2017-04-19","nameSpace":"urn:opendaylight:netconf:topology:singleton:config" } ] diff --git a/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigSingleNode.json b/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigSingleNode.json index 653ebbb7b3..e762f0bfe1 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigSingleNode.json +++ b/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigSingleNode.json @@ -28,9 +28,9 @@ { "usedBy":"CONTROLLER","name":"odl-general-entity","revision":"2015-09-30","nameSpace":"urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity"}, { "usedBy":"CONTROLLER","name":"distributed-datastore-provider","revision": "2023-12-29","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy":"CONTROLLER","name":"odl-entity-owners","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, - { "usedBy":"NETCONF","name":"netconf-keystore","revision":"2017-10-17","nameSpace":"urn:opendaylight:netconf:keystore"}, { "usedBy":"NETCONF","name":"netconf-node-topology","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-topology"}, { "usedBy":"NETCONF","name":"netconf-node-optional","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-optional"}, + { "usedBy":"NETCONF","name":"netconf-keystore","revision":"2023-11-09","nameSpace":"urn:opendaylight:netconf:keystore"}, { "usedBy":"NETCONF","name":"ietf-netconf","revision":"2011-06-01","nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"} ] } From d3c391ddb90aadb5e83c477d8ef2fa5488bb0551 Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Tue, 9 Apr 2024 17:37:08 +0200 Subject: [PATCH 69/70] Use newer revision of netconf-node-topology/optional https://github.com/opendaylight/netconf/commit/3a7861bd177cb31373573002ac85027100a11916 Signed-off-by: tobias.pobocik --- .../workflows/lighty-rnc-app/test-lighty-rnc-app-cluster.sh | 6 ++++-- .github/workflows/lighty-rnc-app/tests-lighty-rnc-app.sh | 6 ++++-- .../lighty-rnc-app-docker/example-config/configuration.json | 2 +- .../helm/lighty-rnc-app-helm/templates/configmaps.yaml | 2 +- .../lighty-rnc-module/src/test/resources/config.json | 2 +- .../lighty-rnc-module/src/test/resources/http2Config.json | 2 +- .../lighty-rnc-module/src/test/resources/httpsConfig.json | 2 +- .../src/test/resources/openapi_config.json | 2 +- .../src/main/assembly/resources/sampleConfigSingleNode.json | 4 ++-- .../src/main/assembly/resources/sampleConfigSingleNode.json | 4 ++-- .../src/main/resources/sampleConfigCluster.json | 4 ++-- .../src/main/resources/sampleConfigSingleNode.json | 4 ++-- 12 files changed, 22 insertions(+), 18 deletions(-) diff --git a/.github/workflows/lighty-rnc-app/test-lighty-rnc-app-cluster.sh b/.github/workflows/lighty-rnc-app/test-lighty-rnc-app-cluster.sh index 335fcf0cc6..7ede7a1411 100644 --- a/.github/workflows/lighty-rnc-app/test-lighty-rnc-app-cluster.sh +++ b/.github/workflows/lighty-rnc-app/test-lighty-rnc-app-cluster.sh @@ -201,8 +201,10 @@ do \ "node-id": "node-'"${SIMULATOR_IP//.}"'", "host": "'"$SIMULATOR_IP"'", "port": '"$SIMULATOR_PORT"', - "username": "admin", - "password": "admin", + "login-password-unencrypted": { + "username": "admin", + "password": "admin" + }, "tcp-only": false, "keepalive-delay": 0 } diff --git a/.github/workflows/lighty-rnc-app/tests-lighty-rnc-app.sh b/.github/workflows/lighty-rnc-app/tests-lighty-rnc-app.sh index 6b5435d4f6..7a44300476 100755 --- a/.github/workflows/lighty-rnc-app/tests-lighty-rnc-app.sh +++ b/.github/workflows/lighty-rnc-app/tests-lighty-rnc-app.sh @@ -102,8 +102,10 @@ sleep 1 "node-id": "node-'"${SIMULATOR_IP//.}"'", "host": "'"$SIMULATOR_IP"'", "port": '"$SIMULATOR_PORT"', - "username": "admin", - "password": "admin", + "login-password-unencrypted": { + "username": "admin", + "password": "admin" + }, "tcp-only": false, "keepalive-delay": 0 } diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-docker/example-config/configuration.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-docker/example-config/configuration.json index b48dec4f02..f6818b6192 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-docker/example-config/configuration.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-docker/example-config/configuration.json @@ -40,8 +40,8 @@ { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2023-11-03", "nameSpace": "urn:sal:restconf:event:subscription"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy": "RESTCONF/NETCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, - { "usedBy": "NETCONF", "name": "netconf-node-topology", "revision": "2022-12-25", "nameSpace": "urn:opendaylight:netconf-node-topology"}, { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2023-11-09", "nameSpace": "urn:opendaylight:netconf:keystore"}, + { "usedBy": "NETCONF", "name": "netconf-node-topology", "revision": "2023-11-21", "nameSpace": "urn:opendaylight:netconf-node-topology"}, { "usedBy": "NETCONF", "name":"ietf-netconf", "revision":"2011-06-01", "nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"}, { "usedBy": "AAA", "name": "aaa-cert-mdsal", "revision":"2016-03-21", "nameSpace":"urn:opendaylight:yang:aaa:cert:mdsal"}, { "usedBy": "AAA", "name": "aaa", "revision": "2016-12-14", "nameSpace": "urn:opendaylight:params:xml:ns:yang:aaa"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-helm/helm/lighty-rnc-app-helm/templates/configmaps.yaml b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-helm/helm/lighty-rnc-app-helm/templates/configmaps.yaml index 8e00e11d68..0a6346aefc 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-helm/helm/lighty-rnc-app-helm/templates/configmaps.yaml +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-app-helm/helm/lighty-rnc-app-helm/templates/configmaps.yaml @@ -47,8 +47,8 @@ data: { "usedBy": "RESTCONF", "name": "ietf-restconf", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy": "RESTCONF/NETCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, - { "usedBy": "NETCONF", "name": "netconf-node-topology", "revision": "2022-12-25", "nameSpace": "urn:opendaylight:netconf-node-topology"}, { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2023-11-09", "nameSpace": "urn:opendaylight:netconf:keystore"}, + { "usedBy": "NETCONF", "name": "netconf-node-topology", "revision": "2023-11-21", "nameSpace": "urn:opendaylight:netconf-node-topology"}, { "usedBy": "NETCONF", "name":"ietf-netconf", "revision":"2011-06-01", "nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"}, { "usedBy": "AAA", "name": "aaa-cert-mdsal", "revision":"2016-03-21", "nameSpace":"urn:opendaylight:yang:aaa:cert:mdsal"}, { "usedBy": "AAA", "name": "aaa", "revision": "2016-12-14", "nameSpace": "urn:opendaylight:params:xml:ns:yang:aaa"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/config.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/config.json index 766f1302f7..5c27e17f49 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/config.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/config.json @@ -36,8 +36,8 @@ { "usedBy": "RESTCONF", "name": "ietf-restconf-monitoring", "revision": "2017-01-26", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy": "RESTCONF/NETCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, - { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2017-10-17", "nameSpace": "urn:opendaylight:netconf:keystore"}, { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2023-11-09", "nameSpace": "urn:opendaylight:netconf:keystore"}, + { "usedBy": "NETCONF", "name": "netconf-node-topology", "revision": "2023-11-21", "nameSpace": "urn:opendaylight:netconf-node-topology"}, { "usedBy": "NETCONF", "name":"ietf-netconf", "revision":"2011-06-01", "nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"}, { "usedBy": "AAA", "name": "aaa", "revision": "2016-12-14", "nameSpace": "urn:opendaylight:params:xml:ns:yang:aaa"}, { "usedBy": "AAA", "name": "aaa-cert-mdsal", "revision":"2016-03-21", "nameSpace":"urn:opendaylight:yang:aaa:cert:mdsal"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/http2Config.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/http2Config.json index 91436441fb..6af94a78ea 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/http2Config.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/http2Config.json @@ -33,8 +33,8 @@ { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2023-11-03", "nameSpace": "urn:sal:restconf:event:subscription"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy": "RESTCONF/NETCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, - { "usedBy": "NETCONF", "name": "netconf-node-topology", "revision": "2022-12-25", "nameSpace": "urn:opendaylight:netconf-node-topology"}, { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2023-11-09", "nameSpace": "urn:opendaylight:netconf:keystore"}, + { "usedBy": "NETCONF", "name": "netconf-node-topology", "revision": "2023-11-21", "nameSpace": "urn:opendaylight:netconf-node-topology"}, { "usedBy": "NETCONF", "name":"ietf-netconf", "revision":"2011-06-01", "nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"}, { "usedBy": "AAA", "name": "aaa-cert-mdsal", "revision":"2016-03-21", "nameSpace":"urn:opendaylight:yang:aaa:cert:mdsal"}, { "usedBy": "AAA", "name": "aaa", "revision": "2016-12-14", "nameSpace": "urn:opendaylight:params:xml:ns:yang:aaa"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/httpsConfig.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/httpsConfig.json index 06dfdc03b7..b425aeae2a 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/httpsConfig.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/httpsConfig.json @@ -33,8 +33,8 @@ { "usedBy": "RESTCONF", "name": "sal-remote-augment", "revision": "2023-11-03", "nameSpace": "urn:sal:restconf:event:subscription"}, { "usedBy": "RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, { "usedBy": "RESTCONF/NETCONF", "name": "ietf-yang-library", "revision": "2019-01-04", "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"}, - { "usedBy": "NETCONF", "name": "netconf-node-topology", "revision": "2022-12-25", "nameSpace": "urn:opendaylight:netconf-node-topology"}, { "usedBy": "NETCONF", "name": "netconf-keystore", "revision": "2023-11-09", "nameSpace": "urn:opendaylight:netconf:keystore"}, + { "usedBy": "NETCONF", "name": "netconf-node-topology", "revision": "2023-11-21", "nameSpace": "urn:opendaylight:netconf-node-topology"}, { "usedBy": "NETCONF", "name":"ietf-netconf", "revision":"2011-06-01", "nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"}, { "usedBy": "AAA", "name": "aaa-cert-mdsal", "revision":"2016-03-21", "nameSpace":"urn:opendaylight:yang:aaa:cert:mdsal"}, { "usedBy": "AAA", "name": "aaa", "revision": "2016-12-14", "nameSpace": "urn:opendaylight:params:xml:ns:yang:aaa"}, diff --git a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/openapi_config.json b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/openapi_config.json index a17008809f..b33e97c0b9 100644 --- a/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/openapi_config.json +++ b/lighty-applications/lighty-rnc-app-aggregator/lighty-rnc-module/src/test/resources/openapi_config.json @@ -54,7 +54,7 @@ { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:inmemory-datastore-provider", "name": "opendaylight-inmemory-datastore-provider", "revision": "2014-06-17" }, { "nameSpace": "urn:ietf:params:xml:ns:yang:iana-afn-safi", "name": "iana-afn-safi", "revision": "2013-07-04" }, { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl", "name": "opendaylight-sal-binding-broker-impl", "revision": "2013-10-28" }, - { "nameSpace": "urn:opendaylight:netconf-node-topology", "name": "netconf-node-topology", "revision": "2022-12-25" }, + { "nameSpace": "urn:opendaylight:netconf-node-topology", "name": "netconf-node-topology", "revision": "2023-11-21" }, { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf", "name": "ietf-restconf", "revision": "2017-01-26" }, { "nameSpace": "urn:ietf:params:xml:ns:netmod:notification", "name": "nc-notifications", "revision": "2008-07-14" }, { "nameSpace": "urn:opendaylight:l2:types", "name": "opendaylight-l2-types", "revision": "2013-08-27" }, diff --git a/lighty-examples/lighty-community-restconf-actions-app/src/main/assembly/resources/sampleConfigSingleNode.json b/lighty-examples/lighty-community-restconf-actions-app/src/main/assembly/resources/sampleConfigSingleNode.json index 04d23661d6..7eeae08d85 100644 --- a/lighty-examples/lighty-community-restconf-actions-app/src/main/assembly/resources/sampleConfigSingleNode.json +++ b/lighty-examples/lighty-community-restconf-actions-app/src/main/assembly/resources/sampleConfigSingleNode.json @@ -40,9 +40,9 @@ { "usedBy":"RESTCONF","name":"sal-remote-augment","revision":"2023-11-03","nameSpace":"urn:sal:restconf:event:subscription"}, { "usedBy":"RESTCONF","name":"subscribe-to-notification","revision":"2016-10-28","nameSpace":"subscribe:to:notification"}, { "usedBy":"RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, - { "usedBy":"NETCONF","name":"netconf-node-topology","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-topology"}, - { "usedBy":"NETCONF","name":"netconf-node-optional","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-optional"}, { "usedBy":"NETCONF","name":"netconf-keystore","revision":"2023-11-09","nameSpace":"urn:opendaylight:netconf:keystore"}, + { "usedBy":"NETCONF","name":"netconf-node-topology","revision":"2023-11-21","nameSpace":"urn:opendaylight:netconf-node-topology"}, + { "usedBy":"NETCONF","name":"netconf-node-optional","revision":"2023-11-21","nameSpace":"urn:opendaylight:netconf-node-optional"}, { "usedBy":"NETCONF","name":"ietf-netconf","revision":"2011-06-01","nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"}, { "usedBy":"NETCONF_ACTION","name":"example-data-center","revision":"2018-08-07","nameSpace":"urn:example:data-center"} ] diff --git a/lighty-examples/lighty-community-restconf-netconf-app/src/main/assembly/resources/sampleConfigSingleNode.json b/lighty-examples/lighty-community-restconf-netconf-app/src/main/assembly/resources/sampleConfigSingleNode.json index 800f359325..d950dc0d3c 100644 --- a/lighty-examples/lighty-community-restconf-netconf-app/src/main/assembly/resources/sampleConfigSingleNode.json +++ b/lighty-examples/lighty-community-restconf-netconf-app/src/main/assembly/resources/sampleConfigSingleNode.json @@ -40,9 +40,9 @@ { "usedBy":"RESTCONF","name":"sal-remote-augment","revision":"2023-11-03","nameSpace":"urn:sal:restconf:event:subscription"}, { "usedBy":"RESTCONF","name":"subscribe-to-notification","revision":"2016-10-28","nameSpace":"subscribe:to:notification"}, { "usedBy":"RESTCONF", "name": "instance-identifier-patch-module", "revision": "2015-11-21", "nameSpace": "instance:identifier:patch:module"}, - { "usedBy":"NETCONF","name":"netconf-node-topology","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-topology"}, - { "usedBy":"NETCONF","name":"netconf-node-optional","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-optional"}, { "usedBy":"NETCONF","name":"netconf-keystore","revision":"2023-11-09","nameSpace":"urn:opendaylight:netconf:keystore"}, + { "usedBy":"NETCONF","name":"netconf-node-topology","revision":"2023-11-21","nameSpace":"urn:opendaylight:netconf-node-topology"}, + { "usedBy":"NETCONF","name":"netconf-node-optional","revision":"2023-11-21","nameSpace":"urn:opendaylight:netconf-node-optional"}, { "usedBy":"NETCONF","name":"ietf-netconf","revision":"2011-06-01","nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"} ] } diff --git a/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigCluster.json b/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigCluster.json index 64ce15a036..8952457c04 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigCluster.json +++ b/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigCluster.json @@ -28,9 +28,9 @@ { "usedBy":"CONTROLLER","name":"odl-general-entity","revision":"2015-09-30","nameSpace":"urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity"}, { "usedBy":"CONTROLLER","name":"distributed-datastore-provider","revision":"2023-12-29","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy":"CONTROLLER","name":"odl-entity-owners","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, - { "usedBy":"NETCONF","name":"netconf-node-topology","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-topology"}, - { "usedBy":"NETCONF","name":"netconf-node-optional","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-optional"}, { "usedBy":"NETCONF","name":"netconf-keystore","revision":"2023-11-09","nameSpace":"urn:opendaylight:netconf:keystore"}, + { "usedBy":"NETCONF","name":"netconf-node-topology","revision":"2023-11-21","nameSpace":"urn:opendaylight:netconf-node-topology"}, + { "usedBy":"NETCONF","name":"netconf-node-optional","revision":"2023-11-21","nameSpace":"urn:opendaylight:netconf-node-optional"}, { "usedBy":"NETCONF","name":"ietf-netconf","revision":"2011-06-01","nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"}, { "usedBy":"CLUSTER","name": "netconf-clustered-topology-config","revision":"2017-04-19","nameSpace":"urn:opendaylight:netconf:topology:singleton:config" } ] diff --git a/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigSingleNode.json b/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigSingleNode.json index e762f0bfe1..a98e8696c7 100644 --- a/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigSingleNode.json +++ b/lighty-modules/lighty-netconf-sb/src/main/resources/sampleConfigSingleNode.json @@ -28,9 +28,9 @@ { "usedBy":"CONTROLLER","name":"odl-general-entity","revision":"2015-09-30","nameSpace":"urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity"}, { "usedBy":"CONTROLLER","name":"distributed-datastore-provider","revision": "2023-12-29","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"}, { "usedBy":"CONTROLLER","name":"odl-entity-owners","nameSpace":"urn:opendaylight:params:xml:ns:yang:controller:entity-owners"}, - { "usedBy":"NETCONF","name":"netconf-node-topology","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-topology"}, - { "usedBy":"NETCONF","name":"netconf-node-optional","revision":"2022-12-25","nameSpace":"urn:opendaylight:netconf-node-optional"}, { "usedBy":"NETCONF","name":"netconf-keystore","revision":"2023-11-09","nameSpace":"urn:opendaylight:netconf:keystore"}, + { "usedBy":"NETCONF","name":"netconf-node-topology","revision":"2023-11-21","nameSpace":"urn:opendaylight:netconf-node-topology"}, + { "usedBy":"NETCONF","name":"netconf-node-optional","revision":"2023-11-21","nameSpace":"urn:opendaylight:netconf-node-optional"}, { "usedBy":"NETCONF","name":"ietf-netconf","revision":"2011-06-01","nameSpace":"urn:ietf:params:xml:ns:netconf:base:1.0"} ] } From b5da251f447b38fd163743e3a73810a7cd1ab29e Mon Sep 17 00:00:00 2001 From: "tobias.pobocik" Date: Wed, 10 Apr 2024 14:18:43 +0200 Subject: [PATCH 70/70] Adjust expected message response https://github.com/opendaylight/netconf/commit/32fad0d2b1161304ff9a9d18ea2f4e72dff591d5#diff-a1e7e241d013f73929272ede23e40fe332e4f161302f829b3c9f19900d0e2afdR222 Signed-off-by: tobias.pobocik --- .../modules/gnmi/test/gnmi/rcgnmi/GnmiCertificatesTest.java | 6 ++++-- .../lighty/modules/gnmi/test/gnmi/rcgnmi/GnmiSetITTest.java | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/gnmi/rcgnmi/GnmiCertificatesTest.java b/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/gnmi/rcgnmi/GnmiCertificatesTest.java index 293fa54bb3..2bad455e54 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/gnmi/rcgnmi/GnmiCertificatesTest.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/gnmi/rcgnmi/GnmiCertificatesTest.java @@ -226,7 +226,8 @@ public void connectDeviceWithWrongCaCertificatesAndReconnect() throws IOExceptio HttpResponse tdGetResponse = sendGetRequestJSON(String.format(TEST_DATA_PATH, GNMI_NODE_ID)); Assertions.assertEquals(HttpURLConnection.HTTP_UNAVAILABLE, tdGetResponse.statusCode()); - assertTrue(tdGetResponse.body().contains("Mount point does not exist")); + assertTrue(tdGetResponse.body().contains("Mount point") && tdGetResponse.body() + .contains("does not exist")); }); // Register correct keystore @@ -296,7 +297,8 @@ public void connectDeviceWithoutPassphrase() throws IOException, InterruptedExce HttpResponse tdGetResponse = sendGetRequestJSON(String.format(TEST_DATA_PATH, GNMI_NODE_ID)); assertEquals(HttpURLConnection.HTTP_UNAVAILABLE, tdGetResponse.statusCode()); - assertTrue(tdGetResponse.body().contains("Mount point does not exist")); + assertTrue(tdGetResponse.body().contains("Mount point") && tdGetResponse.body() + .contains("does not exist")); }); } diff --git a/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/gnmi/rcgnmi/GnmiSetITTest.java b/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/gnmi/rcgnmi/GnmiSetITTest.java index 967068639c..b41b2a3efd 100644 --- a/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/gnmi/rcgnmi/GnmiSetITTest.java +++ b/lighty-modules/lighty-gnmi/lighty-gnmi-test/src/test/java/io/lighty/modules/gnmi/test/gnmi/rcgnmi/GnmiSetITTest.java @@ -88,11 +88,11 @@ public class GnmiSetITTest extends GnmiITBase { + " \"errors\": {\n" + " \"error\": [\n" + " {\n" - + " \"error-type\": \"application\",\n" + " \"error-tag\": \"operation-failed\",\n" - + " \"error-info\": \"io.grpc.StatusRuntimeException: NOT_FOUND: " + + " \"error-info\": \"NOT_FOUND: " + "Update for non existing simple value is not permitted\",\n" - + " \"error-message\": \"Transaction failed\"\n" + + " \"error-message\": \"Transaction(PUT) failed\",\n" + + " \"error-type\": \"application\"\n" + " }\n" + " ]\n" + " }\n"