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

leafref path outside of augmented scope can not be resolved

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Medium Medium
    • None
    • None
    • Binding codegen
    • None

      The following two models:

      module a {
        yang-version 1.1;
        namespace "a";
        prefix a;
      
        container a-cont {
          leaf a-leaf-cont {
            type string;
          }
          container a-cont2 {
            leaf a-leaf-cont2 {
              type string;
            }
          }
        }
      }
      
      
      module b {
        yang-version 1.1;
        namespace "b";
        prefix b;
        import a {
          prefix a;
        }
      
        augment "/a:a-cont/a:a-cont2" {
          description
            "An augmentation of a leafref typed leaf with path to outside
             of the augmented scope and back to the module a";
          container b-cont {
            leaf b-aug-leaf {
              type leafref {
                path "../../../a-leaf-cont";
              }
            }
          }
        }
      }

      result in AbstractTypeProvider.provideTypeForLeafref() failing

       
      [ERROR] yang-to-sources: Unable to generate sources with org.opendaylight.mdsal.binding.maven.api.gen.plugin.CodeGeneratorImpl generator
       java.lang.IllegalArgumentException: Failed to find leafref target: ../../../a-leaf-cont in module a (QNameModule{ns=b})
       at com.google.common.base.Preconditions.checkArgument (Preconditions.java:459)
       at org.opendaylight.mdsal.binding.yang.types.AbstractTypeProvider.provideTypeForLeafref (AbstractTypeProvider.java:550)
       at org.opendaylight.mdsal.binding.yang.types.AbstractTypeProvider.javaTypeForLeafrefOrIdentityRef (AbstractTypeProvider.java:299)
       at org.opendaylight.mdsal.binding.yang.types.AbstractTypeProvider.javaTypeForSchemaDefinitionType (AbstractTypeProvider.java:193)
       at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.resolveLeafSchemaNodeAsMethod (AbstractTypeGenerator.java:1350)
       at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.addSchemaNodeToBuilderAsMethod (AbstractTypeGenerator.java:1051)
       at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.resolveDataSchemaNodes (AbstractTypeGenerator.java:1004)
       at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.containerToGenType (AbstractTypeGenerator.java:302)
       at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.addSchemaNodeToBuilderAsMethod (AbstractTypeGenerator.java:1055)
       at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.augSchemaNodeToMethods (AbstractTypeGenerator.java:1032)
       at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.addRawAugmentGenTypeDefinition (AbstractTypeGenerator.java:936)
       at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.addRawAugmentGenTypeDefinition (AbstractTypeGenerator.java:950)
       at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.augmentationToGenTypes (AbstractTypeGenerator.java:801)
       at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.allAugmentsToGenTypes (AbstractTypeGenerator.java:375)
       at java.util.ArrayList.forEach (ArrayList.java:1257)
       at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.<init> (AbstractTypeGenerator.java:203)
       at org.opendaylight.mdsal.binding.generator.impl.CodegenTypeGenerator.<init> (CodegenTypeGenerator.java:32)
       at org.opendaylight.mdsal.binding.generator.impl.BindingGeneratorImpl.generateTypes (BindingGeneratorImpl.java:64)
       at org.opendaylight.mdsal.binding.maven.api.gen.plugin.CodeGeneratorImpl.generateSources (CodeGeneratorImpl.java:70)
       at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.generateSourcesWithOneGenerator (YangToSourcesProcessor.java:383)
       at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.generateSources (YangToSourcesProcessor.java:332)
       at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.conditionalExecute (YangToSourcesProcessor.java:159)
       at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesMojo.execute (YangToSourcesMojo.java:127)
       at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
      

            rovarga Robert Varga
            miro.kovac Miroslav Kovac
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: