Uploaded image for project: 'mdsal'
  1. mdsal
  2. MDSAL-199

Notification does not allow leafref to enum

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Resolution: Duplicate
    • None
    • None
    • None
    • None
    • Operating System: All
      Platform: All

    • 6815

    Description

      module IF-MIB {
      yang-version 1;
      namespace "urn:opendaylight:params:xml:ns:yang:nms:core:device-drivers:IF_MIB";
      prefix "if-mib";

      revision "2016-09-05"

      { description ""; }

      container ifTable {
      list ifEntry {
      leaf ifAdminStatus {
      type enumeration {
      enum up

      { value 1; }

      enum down

      { value 2; }

      enum testing

      { value 3; }

      }
      }
      }
      }

      notification linkDown {
      leaf ifAdminStatus {
      type leafref

      { path "/if-mib:ifTable/if-mib:ifEntry/if-mib:ifAdminStatus"; }

      }
      }
      }

      I am unable to generate java class for this yang model in version 1.1.0-SNAPSHOT. If I change notification keyword to containter for linkDown it's working, but with keyword notification I get this error message:

      [ERROR] yang-to-sources: Unable to generate sources with org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl generator
      java.lang.IllegalArgumentException: Failed to find leafref target: /if-mib:ifTable/if-mib:ifEntry/if-mib:ifOperStatus in module IF-MIB (QNameModule

      {ns=urn:ietf:params:xml:ns:yang:smiv2:IF-MIB, rev=2000-06-14}

      ) [org.opendaylight.yangtools.sal.binding.yang.types.TypeProviderImpl@3209d497]
      at com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)
      at org.opendaylight.yangtools.sal.binding.yang.types.TypeProviderImpl.provideTypeForLeafref(TypeProviderImpl.java:512)
      at org.opendaylight.yangtools.sal.binding.yang.types.TypeProviderImpl.javaTypeForLeafrefOrIdentityRef(TypeProviderImpl.java:320)
      at org.opendaylight.yangtools.sal.binding.yang.types.TypeProviderImpl.javaTypeForSchemaDefinitionType(TypeProviderImpl.java:213)
      at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.resolveLeafSchemaNodeAsMethod(BindingGeneratorImpl.java:1445)
      at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.addSchemaNodeToBuilderAsMethod(BindingGeneratorImpl.java:1141)
      at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.resolveDataSchemaNodes(BindingGeneratorImpl.java:1078)
      at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.containerToGenType(BindingGeneratorImpl.java:353)
      at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.addSchemaNodeToBuilderAsMethod(BindingGeneratorImpl.java:1145)
      at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.resolveDataSchemaNodes(BindingGeneratorImpl.java:1078)
      at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.notificationsToGenType(BindingGeneratorImpl.java:589)
      at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.moduleToGenTypes(BindingGeneratorImpl.java:283)
      at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.generateTypes(BindingGeneratorImpl.java:258)
      at org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl.generateSources(CodeGeneratorImpl.java:61)
      at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.generateSourcesWithOneGenerator(YangToSourcesProcessor.java:362)
      at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.generateSources(YangToSourcesProcessor.java:307)
      at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.execute(YangToSourcesProcessor.java:96)
      at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.conditionalExecute(YangToSourcesProcessor.java:117)
      at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesMojo.execute(YangToSourcesMojo.java:119)
      at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
      at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
      at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
      at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
      at org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions(MojoExecutor.java:352)
      at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:197)
      at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
      at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
      at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
      at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
      at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
      at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
      at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
      at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
      at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
      at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
      at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
      at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
      at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
      at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
      at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
      [ERROR] yang-to-sources: One or more code generators failed, including failed list(generatorClass=exception)

      {org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl=java.lang.IllegalArgumentException}

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              Unassigned Unassigned
              matej.petrak@pantheon.tech Matej Petrak
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: