From 45e2a83946baba314beb7a4d46de2227008d5516 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 28 Jun 2018 11:32:35 +0200 Subject: [PATCH] Remove duplicate ietf-yang-library models ietf-yang-library is provided by MD-SAL, along with bridge utilities to work with that model. Remove the two versions hosted in netconf and consume the version from mdsal. Change-Id: If43f159ebac4fedbb267a85fd9df6d46897a5330 Signed-off-by: Robert Varga --- features/netconf/odl-netconf-api/pom.xml | 4 +- features/restconf/odl-restconf-common/pom.xml | 4 +- features/yanglib/odl-yanglib/pom.xml | 5 - netconf/mdsal-netconf-yang-library/pom.xml | 4 +- .../library/SchemaServiceToMdsalWriter.java | 67 ++--- .../SchemaServiceToMdsalWriterTest.java | 26 +- .../models/ietf-netconf-yang-library/pom.xml | 37 --- .../rev160409/OptionalRevisionBuilder.java | 19 -- .../yang/ietf-yang-library@2016-04-09.yang | 264 ------------------ netconf/models/pom.xml | 1 - netconf/netconf-artifacts/pom.xml | 6 - netconf/sal-netconf-connector/pom.xml | 4 +- .../netconf/LibraryModulesSchemas.java | 6 +- .../NetconfStateSchemasResolverImpl.java | 2 +- netconf/yanglib/pom.xml | 4 +- .../yanglib/impl/YangLibProvider.java | 25 +- .../yanglib/impl/YangLibProviderTest.java | 30 +- restconf/restconf-artifacts/pom.xml | 5 - .../restconf-models/ietf-yang-library/pom.xml | 36 --- .../list/CommonLeafsRevisionBuilder.java | 21 -- .../yang/ietf-yang-library@2016-06-21.yang | 208 -------------- restconf/restconf-models/pom.xml | 1 - restconf/restconf-nb-bierman02/pom.xml | 4 +- restconf/restconf-nb-rfc8040/pom.xml | 4 +- 24 files changed, 80 insertions(+), 707 deletions(-) delete mode 100644 netconf/models/ietf-netconf-yang-library/pom.xml delete mode 100644 netconf/models/ietf-netconf-yang-library/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev160409/OptionalRevisionBuilder.java delete mode 100644 netconf/models/ietf-netconf-yang-library/src/main/yang/ietf-yang-library@2016-04-09.yang delete mode 100644 restconf/restconf-models/ietf-yang-library/pom.xml delete mode 100644 restconf/restconf-models/ietf-yang-library/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev160621/module/list/CommonLeafsRevisionBuilder.java delete mode 100644 restconf/restconf-models/ietf-yang-library/src/main/yang/ietf-yang-library@2016-06-21.yang diff --git a/features/netconf/odl-netconf-api/pom.xml b/features/netconf/odl-netconf-api/pom.xml index 86cbef2953..1f985a5156 100644 --- a/features/netconf/odl-netconf-api/pom.xml +++ b/features/netconf/odl-netconf-api/pom.xml @@ -93,8 +93,8 @@ ietf-netconf-monitoring-extension - org.opendaylight.netconf - ietf-netconf-yang-library + org.opendaylight.mdsal.model + rfc7895 diff --git a/features/restconf/odl-restconf-common/pom.xml b/features/restconf/odl-restconf-common/pom.xml index b7eddf7aad..eee6e77450 100644 --- a/features/restconf/odl-restconf-common/pom.xml +++ b/features/restconf/odl-restconf-common/pom.xml @@ -107,8 +107,8 @@ ietf-restconf - org.opendaylight.netconf - ietf-yang-library + org.opendaylight.mdsal.model + rfc7895 org.opendaylight.netconf diff --git a/features/yanglib/odl-yanglib/pom.xml b/features/yanglib/odl-yanglib/pom.xml index 614aa3bc25..4d6ae449bd 100644 --- a/features/yanglib/odl-yanglib/pom.xml +++ b/features/yanglib/odl-yanglib/pom.xml @@ -43,11 +43,6 @@ xml features - - org.opendaylight.netconf - ietf-netconf-yang-library - 1.5.0-SNAPSHOT - org.opendaylight.odlparent diff --git a/netconf/mdsal-netconf-yang-library/pom.xml b/netconf/mdsal-netconf-yang-library/pom.xml index d028269bef..d763ab0d42 100644 --- a/netconf/mdsal-netconf-yang-library/pom.xml +++ b/netconf/mdsal-netconf-yang-library/pom.xml @@ -36,8 +36,8 @@ ietf-inet-types-2013-07-15 - org.opendaylight.netconf - ietf-netconf-yang-library + org.opendaylight.mdsal.model + rfc7895 org.slf4j diff --git a/netconf/mdsal-netconf-yang-library/src/main/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriter.java b/netconf/mdsal-netconf-yang-library/src/main/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriter.java index 918e71d13f..b3fc2abfb0 100644 --- a/netconf/mdsal-netconf-yang-library/src/main/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriter.java +++ b/netconf/mdsal-netconf-yang-library/src/main/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriter.java @@ -8,28 +8,26 @@ package org.opendaylight.netconf.mdsal.yang.library; -import com.google.common.collect.Lists; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.MoreExecutors; import java.util.List; import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; import javax.annotation.Nullable; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.sal.core.api.model.SchemaService; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.ModulesState; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.ModulesStateBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.OptionalRevision; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.Module.ConformanceType; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.ModuleBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.module.Submodules; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.module.SubmodulesBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.module.submodules.Submodule; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.module.submodules.SubmoduleBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesState; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesStateBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.RevisionUtils; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.Module.ConformanceType; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.ModuleBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.module.Submodule; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.module.SubmoduleBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.YangIdentifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.model.api.Module; @@ -96,46 +94,29 @@ public class SchemaServiceToMdsalWriter implements SchemaContextListener, AutoCl } private ModulesState createModuleStateFromModules(final Set modules) { - final ModulesStateBuilder modulesStateBuilder = new ModulesStateBuilder(); - final List moduleList = - Lists.newArrayList(); - - for (final Module module : modules) { - moduleList.add(createModuleEntryFromModule(module)); - } - - return modulesStateBuilder.setModule(moduleList).setModuleSetId(String.valueOf(moduleSetId.getAndIncrement())) + return new ModulesStateBuilder() + .setModule(modules.stream().map(this::createModuleEntryFromModule).collect(Collectors.toList())) + .setModuleSetId(String.valueOf(moduleSetId.getAndIncrement())) .build(); } - private org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.Module + private org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.Module createModuleEntryFromModule(final Module module) { - final ModuleBuilder moduleBuilder = new ModuleBuilder(); - - // TODO Conformance type is always set to Implement value, but it should it really be like this? - // TODO Add also deviations and features lists to module entries - moduleBuilder.setName(new YangIdentifier(module.getName())); - - module.getQNameModule().getRevision().ifPresent(rev -> moduleBuilder.setRevision( - new OptionalRevision(rev.toString()))); - - return moduleBuilder.setNamespace(new Uri(module.getNamespace().toString())) + return new ModuleBuilder() + .setName(new YangIdentifier(module.getName())) + .setRevision(RevisionUtils.fromYangCommon(module.getQNameModule().getRevision())) + .setNamespace(new Uri(module.getNamespace().toString())) + // FIXME: Conformance type is always set to Implement value, but it should it really be like this? .setConformanceType(ConformanceType.Implement) - .setSubmodules(createSubmodulesForModule(module)) + .setSubmodule(createSubmodulesForModule(module)) + // FIXME: Add also deviations and features lists to module entries .build(); } - private static Submodules createSubmodulesForModule(final Module module) { - final List submodulesList = Lists.newArrayList(); - for (final Module subModule : module.getSubmodules()) { - final SubmoduleBuilder subModuleEntryBuilder = new SubmoduleBuilder() - .setName(new YangIdentifier(subModule.getName())); - subModule.getQNameModule().getRevision().ifPresent( - rev -> subModuleEntryBuilder.setRevision(new OptionalRevision(rev.toString()))); - submodulesList.add(subModuleEntryBuilder.build()); - } - - return new SubmodulesBuilder().setSubmodule(submodulesList).build(); + private static List createSubmodulesForModule(final Module module) { + return module.getSubmodules().stream().map(subModule -> new SubmoduleBuilder() + .setName(new YangIdentifier(subModule.getName())) + .setRevision(RevisionUtils.fromYangCommon(subModule.getQNameModule().getRevision())) + .build()).collect(Collectors.toList()); } } diff --git a/netconf/mdsal-netconf-yang-library/src/test/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriterTest.java b/netconf/mdsal-netconf-yang-library/src/test/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriterTest.java index dda6384042..ce303751bd 100644 --- a/netconf/mdsal-netconf-yang-library/src/test/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriterTest.java +++ b/netconf/mdsal-netconf-yang-library/src/test/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriterTest.java @@ -14,7 +14,7 @@ import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import com.google.common.collect.Lists; +import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.Futures; import org.junit.Before; import org.junit.Test; @@ -25,14 +25,15 @@ import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.sal.core.api.model.SchemaService; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.ModulesState; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.ModulesStateBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.OptionalRevision; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.Module; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.ModuleBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.module.SubmodulesBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.module.submodules.Submodule; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.module.submodules.SubmoduleBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesState; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesStateBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.RevisionIdentifier; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.RevisionUtils; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.CommonLeafs.Revision; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.Module; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.ModuleBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.module.Submodule; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.module.SubmoduleBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.YangIdentifier; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @@ -92,15 +93,16 @@ public class SchemaServiceToMdsalWriterTest { private static ModulesState createTestModuleState() { Submodule sub = new SubmoduleBuilder().setName(new YangIdentifier("test-submodule")) + .setRevision(RevisionUtils.emptyRevision()) .build(); Module module = new ModuleBuilder().setName(new YangIdentifier("test-module")) .setNamespace(new Uri("test:namespace")) - .setRevision(new OptionalRevision("2013-07-22")) - .setSubmodules(new SubmodulesBuilder().setSubmodule(Lists.newArrayList(sub)).build()) + .setRevision(new Revision(new RevisionIdentifier("2013-07-22"))) + .setSubmodule(ImmutableList.of(sub)) .setConformanceType(Module.ConformanceType.Implement) .build(); return new ModulesStateBuilder().setModuleSetId("0") - .setModule(Lists.newArrayList(module)).build(); + .setModule(ImmutableList.of(module)).build(); } } diff --git a/netconf/models/ietf-netconf-yang-library/pom.xml b/netconf/models/ietf-netconf-yang-library/pom.xml deleted file mode 100644 index 2ca7702ba4..0000000000 --- a/netconf/models/ietf-netconf-yang-library/pom.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - 4.0.0 - - - org.opendaylight.netconf - netconf-parent - 1.5.0-SNAPSHOT - ../../netconf-parent - - - org.opendaylight.netconf - ietf-netconf-yang-library - 1.5.0-SNAPSHOT - ${project.artifactId} - bundle - - - - org.opendaylight.mdsal.model - ietf-yang-types-20130715 - - - org.opendaylight.mdsal.model - ietf-inet-types-2013-07-15 - - - diff --git a/netconf/models/ietf-netconf-yang-library/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev160409/OptionalRevisionBuilder.java b/netconf/models/ietf-netconf-yang-library/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev160409/OptionalRevisionBuilder.java deleted file mode 100644 index 54ee117be7..0000000000 --- a/netconf/models/ietf-netconf-yang-library/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev160409/OptionalRevisionBuilder.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409; - - -/** - * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation. - * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32). - * - * The reason behind putting it under src/main/java is: - * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent - * loss of user code. - * - */ -public class OptionalRevisionBuilder { - - public static OptionalRevision getDefaultInstance(java.lang.String defaultValue) { - throw new java.lang.UnsupportedOperationException("Not yet implemented"); - } - -} diff --git a/netconf/models/ietf-netconf-yang-library/src/main/yang/ietf-yang-library@2016-04-09.yang b/netconf/models/ietf-netconf-yang-library/src/main/yang/ietf-yang-library@2016-04-09.yang deleted file mode 100644 index d82d808188..0000000000 --- a/netconf/models/ietf-netconf-yang-library/src/main/yang/ietf-yang-library@2016-04-09.yang +++ /dev/null @@ -1,264 +0,0 @@ -module ietf-yang-library { - namespace "urn:ietf:params:xml:ns:yang:ietf-yang-library"; - prefix "yanglib"; - - import ietf-yang-types { - prefix yang; - } - import ietf-inet-types { - prefix inet; - } - - organization - "IETF NETCONF (Network Configuration) Working Group"; - - contact - "WG Web: - WG List: - - WG Chair: Mehmet Ersue - - - WG Chair: Mahesh Jethanandani - - - Editor: Andy Bierman - - - Editor: Martin Bjorklund - - - Editor: Kent Watsen - "; - - description - "This module contains monitoring information about the YANG - modules and submodules that are used within a YANG-based - server. - - Copyright (c) 2016 IETF Trust and the persons identified as - authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject - to the license terms contained in, the Simplified BSD License - set forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (http://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC XXXX; see - the RFC itself for full legal notices."; - - // RFC Ed.: replace XXXX with actual RFC number and remove this - // note. - - // RFC Ed.: remove this note - // Note: extracted from draft-ietf-netconf-yang-library-06.txt - - // RFC Ed.: update the date below with the date of RFC publication - // and remove this note. - revision 2016-04-09 { - description - "Initial revision."; - reference - "RFC XXXX: YANG Module Library."; - } - - /* - * Typedefs - */ - - // FIXME inline this union after https://bugs.opendaylight.org/show_bug.cgi?id=5826 is fixed - typedef optional-revision { - type union { - type revision-identifier; - type string { length 0; } - } - description - "The YANG module or submodule revision date. - A zero-length string is used if no revision statement - is present in the YANG module or submodule."; - } - - typedef revision-identifier { - type string { - pattern '\d{4}-\d{2}-\d{2}'; - } - description - "Represents a specific date in YYYY-MM-DD format."; - } - - /* - * Groupings - */ - - grouping module-list { - description - "The module data structure is represented as a grouping - so it can be reused in configuration or another monitoring - data structure."; - - grouping common-leafs { - description - "Common parameters for YANG modules and submodules."; - - leaf name { - type yang:yang-identifier; - description - "The YANG module or submodule name."; - } - leaf revision { - type optional-revision; - } - } - - grouping schema-leaf { - description - "Common schema leaf parameter for modules and submodules."; - - leaf schema { - type inet:uri; - description - "Contains a URL that represents the YANG schema - resource for this module or submodule. - - This leaf will only be present if there is a URL - available for retrieval of the schema for this entry."; - } - } - - list module { - key "name revision"; - description - "Each entry represents one revision of one module - currently supported by the server."; - - uses common-leafs; - uses schema-leaf; - - leaf namespace { - type inet:uri; - mandatory true; - description - "The XML namespace identifier for this module."; - } - leaf-list feature { - type yang:yang-identifier; - description - "List of YANG feature names from this module that are - supported by the server, regardless whether they are - defined in the module or any included submodule."; - } - list deviation { - key "name revision"; - description - "List of YANG deviation module names and revisions - used by this server to modify the conformance of - the module associated with this entry. Note that - the same module can be used for deviations for - multiple modules, so the same entry MAY appear - within multiple 'module' entries. - - The deviation module MUST be present in the 'module' - list, with the same name and revision values. - The 'conformance-type' value will be 'implement' for - the deviation module."; - uses common-leafs; - } - leaf conformance-type { - type enumeration { - enum implement { - description - "Indicates that the server implements one or more - protocol-accessible objects defined in the YANG module - identified in this entry. This includes deviation - statements defined in the module. - - For YANG version 1.1 modules, there is at most one - module entry with conformance type 'implement' for a - particular module name, since YANG 1.1 requires that - at most one revision of a module is implemented. - - For YANG version 1 modules, there SHOULD NOT be more - than one module entry for a particular module name."; - } - enum import { - description - "Indicates that the server imports reusable definitions - from the specified revision of the module, but does - not implement any protocol accessible objects from - this revision. - - Multiple module entries for the same module name MAY - exist. This can occur if multiple modules import the - same module, but specify different revision-dates in - the import statements."; - } - } - mandatory true; - description - "Indicates the type of conformance the server is claiming - for the YANG module identified by this entry."; - } - container submodules { - description - "Contains information about all the submodules used - by the parent module entry"; - - list submodule { - key "name revision"; - description - "Each entry represents one submodule within the - parent module."; - uses common-leafs; - uses schema-leaf; - } - } - } - } - - /* - * Operational state data nodes - */ - - container modules-state { - config false; - description - "Contains YANG module monitoring information."; - - leaf module-set-id { - type string; - mandatory true; - description - "Contains a server-specific identifier representing - the current set of modules and submodules. The - server MUST change the value of this leaf if the - information represented by the 'module' list instances - has changed."; - } - - uses module-list; - } - - /* - * Notifications - */ - - notification yang-library-change { - description - "Generated when the set of modules and submodules supported - by the server has changed."; - leaf module-set-id { - type leafref { - path "/yanglib:modules-state/yanglib:module-set-id"; - } - mandatory true; - description - "Contains the module-set-id value representing the - set of modules and submodules supported at the server at - the time the notification is generated."; - } - } - -} - diff --git a/netconf/models/pom.xml b/netconf/models/pom.xml index 737de17f36..513399998c 100644 --- a/netconf/models/pom.xml +++ b/netconf/models/pom.xml @@ -27,6 +27,5 @@ ietf-netconf-monitoring ietf-netconf-notifications ietf-netconf-monitoring-extension - ietf-netconf-yang-library diff --git a/netconf/netconf-artifacts/pom.xml b/netconf/netconf-artifacts/pom.xml index be58318e98..94338ba903 100644 --- a/netconf/netconf-artifacts/pom.xml +++ b/netconf/netconf-artifacts/pom.xml @@ -160,12 +160,6 @@ ${project.version} - - ${project.groupId} - ietf-netconf-yang-library - ${project.version} - - org.opendaylight.netconf yanglib diff --git a/netconf/sal-netconf-connector/pom.xml b/netconf/sal-netconf-connector/pom.xml index d1306f1aca..795a743c59 100644 --- a/netconf/sal-netconf-connector/pom.xml +++ b/netconf/sal-netconf-connector/pom.xml @@ -40,8 +40,8 @@ ietf-netconf-notifications - ${project.groupId} - ietf-netconf-yang-library + org.opendaylight.mdsal.model + rfc7895 ${project.groupId} diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemas.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemas.java index 9e62919cf6..590996ea19 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemas.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemas.java @@ -47,8 +47,8 @@ import org.opendaylight.netconf.sal.connect.api.NetconfDeviceSchemas; import org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceRpc; import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.ModulesState; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.Module; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesState; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.Module; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.Revision; @@ -88,7 +88,7 @@ public final class LibraryModulesSchemas implements NetconfDeviceSchemas { static { final ModuleInfoBackedContext moduleInfoBackedContext = ModuleInfoBackedContext.create(); moduleInfoBackedContext.registerModuleInfo(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang - .library.rev160409.$YangModuleInfoImpl.getInstance()); + .library.rev160621.$YangModuleInfoImpl.getInstance()); LIBRARY_CONTEXT = moduleInfoBackedContext.tryToCreateSchemaContext().get(); } diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemasResolverImpl.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemasResolverImpl.java index 765c6108da..dd43dad938 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemasResolverImpl.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemasResolverImpl.java @@ -13,7 +13,7 @@ import org.opendaylight.netconf.sal.connect.api.NetconfDeviceSchemasResolver; import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences; import org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceRpc; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.ModulesState; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesState; import org.opendaylight.yangtools.yang.common.QName; /** diff --git a/netconf/yanglib/pom.xml b/netconf/yanglib/pom.xml index cb301d47f1..2751298d07 100644 --- a/netconf/yanglib/pom.xml +++ b/netconf/yanglib/pom.xml @@ -47,8 +47,8 @@ guava - org.opendaylight.netconf - ietf-netconf-yang-library + org.opendaylight.mdsal.model + rfc7895 org.mockito diff --git a/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/YangLibProvider.java b/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/YangLibProvider.java index 8e9b378a16..e9270c4f1e 100644 --- a/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/YangLibProvider.java +++ b/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/YangLibProvider.java @@ -22,13 +22,12 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.ModulesState; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.ModulesStateBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.OptionalRevision; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.RevisionIdentifier; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.Module; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.ModuleBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.ModuleKey; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesState; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesStateBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.RevisionUtils; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.Module; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.ModuleBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.ModuleKey; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.YangIdentifier; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.yanglib.impl.rev141210.YanglibConfig; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @@ -53,7 +52,6 @@ import org.slf4j.LoggerFactory; public class YangLibProvider implements AutoCloseable, SchemaSourceListener { private static final Logger LOG = LoggerFactory.getLogger(YangLibProvider.class); - private static final OptionalRevision NO_REVISION = new OptionalRevision(""); private static final Predicate> YANG_SCHEMA_SOURCE = input -> YangTextSchemaSource.class.isAssignableFrom(input.getRepresentation()); @@ -108,11 +106,9 @@ public class YangLibProvider implements AutoCloseable, SchemaSourceListener { for (PotentialSchemaSource potentialYangSource : Iterables.filter(sources, YANG_SCHEMA_SOURCE)) { final YangIdentifier moduleName = new YangIdentifier(potentialYangSource.getSourceIdentifier().getName()); - final OptionalRevision moduleRevision = getRevisionForModule(potentialYangSource.getSourceIdentifier()); - final Module newModule = new ModuleBuilder() .setName(moduleName) - .setRevision(moduleRevision) + .setRevision(RevisionUtils.fromYangCommon(potentialYangSource.getSourceIdentifier().getRevision())) .setSchema(getUrlForModule(potentialYangSource.getSourceIdentifier())) .build(); @@ -155,7 +151,7 @@ public class YangLibProvider implements AutoCloseable, SchemaSourceListener { .child(Module.class, new ModuleKey( new YangIdentifier(source.getSourceIdentifier().getName()), - getRevisionForModule(source.getSourceIdentifier())))); + RevisionUtils.fromYangCommon(source.getSourceIdentifier().getRevision())))); Futures.addCallback(tx.submit(), new FutureCallback() { @Override @@ -180,9 +176,4 @@ public class YangLibProvider implements AutoCloseable, SchemaSourceListener { private static String revString(final SourceIdentifier id) { return id.getRevision().map(Revision::toString).orElse(""); } - - private static OptionalRevision getRevisionForModule(final SourceIdentifier sourceIdentifier) { - return sourceIdentifier.getRevision().map(rev -> new OptionalRevision(new RevisionIdentifier(rev.toString()))) - .orElse(NO_REVISION); - } } diff --git a/netconf/yanglib/src/test/java/org/opendaylight/yanglib/impl/YangLibProviderTest.java b/netconf/yanglib/src/test/java/org/opendaylight/yanglib/impl/YangLibProviderTest.java index 440174efa6..f6c712976f 100644 --- a/netconf/yanglib/src/test/java/org/opendaylight/yanglib/impl/YangLibProviderTest.java +++ b/netconf/yanglib/src/test/java/org/opendaylight/yanglib/impl/YangLibProviderTest.java @@ -34,18 +34,18 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.ModulesState; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.ModulesStateBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.OptionalRevision; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.RevisionIdentifier; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.Module; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.ModuleBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.ModuleKey; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesState; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesStateBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.RevisionIdentifier; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.RevisionUtils; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.CommonLeafs.Revision; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.Module; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.ModuleBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.ModuleKey; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.YangIdentifier; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.yanglib.impl.rev141210.YanglibConfig; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.yanglib.impl.rev141210.YanglibConfigBuilder; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; import org.opendaylight.yangtools.yang.model.repo.api.YinSchemaSourceRepresentation; @@ -108,7 +108,8 @@ public class YangLibProviderTest { list.add( PotentialSchemaSource.create( - RevisionSourceIdentifier.create("with-revision", Revision.of("2016-04-28")), + RevisionSourceIdentifier.create("with-revision", + org.opendaylight.yangtools.yang.common.Revision.of("2016-04-28")), YangTextSchemaSource.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue())); when(writeTransaction.submit()).thenReturn(Futures.immediateCheckedFuture(null)); @@ -118,7 +119,7 @@ public class YangLibProviderTest { Module newModule = new ModuleBuilder() .setName(new YangIdentifier("no-revision")) - .setRevision(new OptionalRevision("")) + .setRevision(RevisionUtils.emptyRevision()) .setSchema(new Uri("http://www.fake.com:300/yanglib/schemas/no-revision/")) .build(); @@ -126,7 +127,7 @@ public class YangLibProviderTest { newModule = new ModuleBuilder() .setName(new YangIdentifier("with-revision")) - .setRevision(new OptionalRevision(new RevisionIdentifier("2016-04-28"))) + .setRevision(new Revision(new RevisionIdentifier("2016-04-28"))) .setSchema(new Uri("http://www.fake.com:300/yanglib/schemas/with-revision/2016-04-28")) .build(); @@ -220,13 +221,14 @@ public class YangLibProviderTest { eq(InstanceIdentifier.create(ModulesState.class) .child(Module.class, new ModuleKey(new YangIdentifier("unregistered-yang-schema-without-revision"), - new OptionalRevision(""))))); + RevisionUtils.emptyRevision())))); verify(writeTransaction).submit(); yangUnregistererSource = PotentialSchemaSource.create( - RevisionSourceIdentifier.create("unregistered-yang-with-revision", Revision.of("2016-04-28")), + RevisionSourceIdentifier.create("unregistered-yang-with-revision", + org.opendaylight.yangtools.yang.common.Revision.of("2016-04-28")), YangTextSchemaSource.class, PotentialSchemaSource.Costs.LOCAL_IO.getValue()); yangLibProvider.schemaSourceUnregistered(yangUnregistererSource); @@ -236,7 +238,7 @@ public class YangLibProviderTest { eq(InstanceIdentifier.create(ModulesState.class) .child(Module.class, new ModuleKey(new YangIdentifier("unregistered-yang-with-revision"), - new OptionalRevision(new RevisionIdentifier("2016-04-28")))))); + new Revision(new RevisionIdentifier("2016-04-28")))))); verify(writeTransaction, times(2)).submit(); } diff --git a/restconf/restconf-artifacts/pom.xml b/restconf/restconf-artifacts/pom.xml index 3a31580640..6e595cf6b6 100644 --- a/restconf/restconf-artifacts/pom.xml +++ b/restconf/restconf-artifacts/pom.xml @@ -29,11 +29,6 @@ ietf-restconf ${project.version} - - ${project.groupId} - ietf-yang-library - ${project.version} - ${project.groupId} ietf-restconf-monitoring diff --git a/restconf/restconf-models/ietf-yang-library/pom.xml b/restconf/restconf-models/ietf-yang-library/pom.xml deleted file mode 100644 index 285d35af58..0000000000 --- a/restconf/restconf-models/ietf-yang-library/pom.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - 4.0.0 - - - org.opendaylight.netconf - restconf-parent - 1.8.0-SNAPSHOT - ../../restconf-parent - - - org.opendaylight.netconf - ietf-yang-library - 1.8.0-SNAPSHOT - bundle - ${project.artifactId} - - - - org.opendaylight.mdsal.model - ietf-inet-types-2013-07-15 - - - org.opendaylight.mdsal.model - ietf-yang-types-20130715 - - - diff --git a/restconf/restconf-models/ietf-yang-library/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev160621/module/list/CommonLeafsRevisionBuilder.java b/restconf/restconf-models/ietf-yang-library/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev160621/module/list/CommonLeafsRevisionBuilder.java deleted file mode 100644 index 5bd5bc1b9e..0000000000 --- a/restconf/restconf-models/ietf-yang-library/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev160621/module/list/CommonLeafsRevisionBuilder.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list; - -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.CommonLeafs.Revision; - - -/** - * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation. - * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32). - * - * The reason behind putting it under src/main/java is: - * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent - * loss of user code. - * - */ -public class CommonLeafsRevisionBuilder { - - public static Revision getDefaultInstance(final java.lang.String defaultValue) { - return new Revision(defaultValue); - } - -} diff --git a/restconf/restconf-models/ietf-yang-library/src/main/yang/ietf-yang-library@2016-06-21.yang b/restconf/restconf-models/ietf-yang-library/src/main/yang/ietf-yang-library@2016-06-21.yang deleted file mode 100644 index bc466ee09d..0000000000 --- a/restconf/restconf-models/ietf-yang-library/src/main/yang/ietf-yang-library@2016-06-21.yang +++ /dev/null @@ -1,208 +0,0 @@ -module ietf-yang-library { - namespace "urn:ietf:params:xml:ns:yang:ietf-yang-library"; - prefix "yanglib"; - import ietf-yang-types { - prefix yang; - } - import ietf-inet-types { - prefix inet; - } - organization - "IETF NETCONF (Network Configuration) Working Group"; - contact - "WG Web: - WG List: - WG Chair: Mehmet Ersue - - WG Chair: Mahesh Jethanandani - - Editor: Andy Bierman - - Editor: Martin Bjorklund - - Editor: Kent Watsen - "; - description - "This module contains monitoring information about the YANG - modules and submodules that are used within a YANG-based - server. - Copyright (c) 2016 IETF Trust and the persons identified as - authors of the code. All rights reserved. - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject - to the license terms contained in, the Simplified BSD License - set forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (http://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC 7895; see - the RFC itself for full legal notices."; - revision 2016-06-21 { - description - "Initial revision."; - reference - "RFC 7895: YANG Module Library."; - } - /* - * Typedefs - */ - typedef revision-identifier { - type string { - pattern '\d{4}-\d{2}-\d{2}'; - } - description - "Represents a specific date in YYYY-MM-DD format."; - } - /* - * Groupings - */ - grouping module-list { - description - "The module data structure is represented as a grouping - so it can be reused in configuration or another monitoring - data structure."; - grouping common-leafs { - description - "Common parameters for YANG modules and submodules."; - leaf name { - type yang:yang-identifier; - description - "The YANG module or submodule name."; - } - leaf revision { - type union { - type revision-identifier; - type string { length 0; } - } - description - "The YANG module or submodule revision date. - A zero-length string is used if no revision statement - is present in the YANG module or submodule."; - } - } - grouping schema-leaf { - description - "Common schema leaf parameter for modules and submodules."; - leaf schema { - type inet:uri; - description - "Contains a URL that represents the YANG schema - resource for this module or submodule. - This leaf will only be present if there is a URL - available for retrieval of the schema for this entry."; - } - } - list module { - key "name revision"; - description - "Each entry represents one revision of one module - currently supported by the server."; - uses common-leafs; - uses schema-leaf; - leaf namespace { - type inet:uri; - mandatory true; - description - "The XML namespace identifier for this module."; - } - leaf-list feature { - type yang:yang-identifier; - description - "List of YANG feature names from this module that are - supported by the server, regardless of whether they are - defined in the module or any included submodule."; - } - list deviation { - key "name revision"; - description - "List of YANG deviation module names and revisions - used by this server to modify the conformance of - the module associated with this entry. Note that - the same module can be used for deviations for - multiple modules, so the same entry MAY appear - within multiple 'module' entries. - The deviation module MUST be present in the 'module' - list, with the same name and revision values. - The 'conformance-type' value will be 'implement' for - the deviation module."; - uses common-leafs; - } - leaf conformance-type { - type enumeration { - enum implement { - description - "Indicates that the server implements one or more - protocol-accessible objects defined in the YANG module - identified in this entry. This includes deviation - statements defined in the module. - For YANG version 1.1 modules, there is at most one - module entry with conformance type 'implement' for a - particular module name, since YANG 1.1 requires that, - at most, one revision of a module is implemented. - For YANG version 1 modules, there SHOULD NOT be more - than one module entry for a particular module name."; - } - enum import { - description - "Indicates that the server imports reusable definitions - from the specified revision of the module but does - not implement any protocol-accessible objects from - this revision. - Multiple module entries for the same module name MAY - exist. This can occur if multiple modules import the - same module but specify different revision dates in - the import statements."; - } - } - mandatory true; - description - "Indicates the type of conformance the server is claiming - for the YANG module identified by this entry."; - } - list submodule { - key "name revision"; - description - "Each entry represents one submodule within the - parent module."; - uses common-leafs; - uses schema-leaf; - } - } - } - /* - * Operational state data nodes - */ - container modules-state { - config false; - description - "Contains YANG module monitoring information."; - leaf module-set-id { - type string; - mandatory true; - description - "Contains a server-specific identifier representing - the current set of modules and submodules. The - server MUST change the value of this leaf if the - information represented by the 'module' list instances - has changed."; - } - uses module-list; - } - /* - * Notifications - */ - notification yang-library-change { - description - "Generated when the set of modules and submodules supported - by the server has changed."; - leaf module-set-id { - type leafref { - path "/yanglib:modules-state/yanglib:module-set-id"; - } - mandatory true; - description - "Contains the module-set-id value representing the - set of modules and submodules supported at the server at - the time the notification is generated."; - } - } -} diff --git a/restconf/restconf-models/pom.xml b/restconf/restconf-models/pom.xml index 7d758a4c7d..6a3c27d676 100644 --- a/restconf/restconf-models/pom.xml +++ b/restconf/restconf-models/pom.xml @@ -23,7 +23,6 @@ ${project.artifactId} - ietf-yang-library ietf-restconf-monitoring ietf-restconf diff --git a/restconf/restconf-nb-bierman02/pom.xml b/restconf/restconf-nb-bierman02/pom.xml index 18f702c26f..56a170953f 100644 --- a/restconf/restconf-nb-bierman02/pom.xml +++ b/restconf/restconf-nb-bierman02/pom.xml @@ -121,8 +121,8 @@ yang-model-export - org.opendaylight.netconf - ietf-yang-library + org.opendaylight.mdsal.model + rfc7895 org.opendaylight.netconf diff --git a/restconf/restconf-nb-rfc8040/pom.xml b/restconf/restconf-nb-rfc8040/pom.xml index ac9f586a6b..58fce6c60c 100644 --- a/restconf/restconf-nb-rfc8040/pom.xml +++ b/restconf/restconf-nb-rfc8040/pom.xml @@ -32,8 +32,8 @@ restconf-common - org.opendaylight.netconf - ietf-yang-library + org.opendaylight.mdsal.model + rfc7895 org.opendaylight.netconf -- 2.36.6