<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:54:24 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[YANGTOOLS-821] LeafRefContext fails to process augmentations</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-821</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;LeafRefContext.validateNodeData() looks like it cant process augmentation nodes, &lt;br/&gt;
or at least when Augmentation Node enters it, it fails on &lt;/p&gt;

&lt;p&gt;java.lang.UnsupportedOperationException: Augmentation node has no QName&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier$AugmentationIdentifier.getNodeType(YangInstanceIdentifier.java:651) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;yang-data-api-1.1.2-Carbon.jar:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.impl.schema.nodes.AbstractImmutableNormalizedNode.getNodeType(AbstractImmutableNormalizedNode.java:27) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;yang-data-impl-1.1.2-Carbon.jar:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefValidatation.validateNodeData(LeafRefValidatation.java:251) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;yang-data-impl-1.1.2-Carbon.jar:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefValidatation.validateNodeData(LeafRefValidatation.java:241) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;yang-data-impl-1.1.2-Carbon.jar:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefValidatation.validateNodeData(LeafRefValidatation.java:270) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;yang-data-impl-1.1.2-Carbon.jar:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefValidatation.validateNodeData(LeafRefValidatation.java:241) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;yang-data-impl-1.1.2-Carbon.jar:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefValidatation.validateNode(LeafRefValidatation.java:95) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;yang-data-impl-1.1.2-Carbon.jar:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefValidatation.validate0(LeafRefValidatation.java:73) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;yang-data-impl-1.1.2-Carbon.jar:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefValidatation.validate(LeafRefValidatation.java:59) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;yang-data-impl-1.1.2-Carbon.jar:na&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;From looking at the method, support for augmentations is missing, in that case it falls back to MapNode logic and fails with exception above&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Appears in 1.1.2-Carbon&lt;/b&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="28613">YANGTOOLS-821</key>
            <summary>LeafRefContext fails to process augmentations</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="mgradzki">Marek Gradzki</assignee>
                                    <reporter username="jsrnicek_cisco">Jan Srnicek</reporter>
                        <labels>
                    </labels>
                <created>Fri, 20 Oct 2017 12:10:11 +0000</created>
                <updated>Sun, 10 Apr 2022 18:36:02 +0000</updated>
                            <resolved>Tue, 24 Jul 2018 00:43:44 +0000</resolved>
                                    <version>1.1.2</version>
                    <version>2.0.5</version>
                                    <fixVersion>2.0.9</fixVersion>
                    <fixVersion>2.0.6.1</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="60560" author="rovarga" created="Tue, 26 Dec 2017 09:27:06 +0000"  >&lt;p&gt;We need the models and data used to reproduce this issue.&lt;/p&gt;</comment>
                            <comment id="63812" author="mgradzki@cisco.com" created="Fri, 29 Jun 2018 10:40:53 +0000"  >&lt;p&gt;Here is example of config that fails to validate:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-xml&quot;&gt;
&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;bgp xmlns=&lt;span class=&quot;code-quote&quot;&gt;&quot;http://openconfig.net/yang/bgp&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;peer-groups&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;peer-group&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;peer-group-name&amp;gt;&lt;/span&gt;application-peers&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/peer-group-name&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/peer-group&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/peer-groups&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;neighbors&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;neighbor&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;neighbor-address&amp;gt;&lt;/span&gt;10.25.1.9&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/neighbor-address&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;config&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;peer-group&amp;gt;&lt;/span&gt;application-peers&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/peer-group&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/config&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/neighbor&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/neighbors&amp;gt;&lt;/span&gt;
&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/bgp&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Where peer-group is defined in openconfig-bgp@2015-10-09.yang as:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
  &lt;span class=&quot;code-comment&quot;&gt;// add peer-group pointer only &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; the neighbor list
&lt;/span&gt;  augment /bgp/neighbors/neighbor/config {
    description
      &quot;Augmentation to allow association of a neighbor with a
      peer-group&quot;;
    uses bgp-neighbor-peer-group_config;
  }

  grouping bgp-neighbor-peer-group_config {
    [...]
    leaf peer-group {
      type leafref {
        &lt;span class=&quot;code-comment&quot;&gt;// we are at /bgp/neighbors/neighbor/
&lt;/span&gt;        path &lt;span class=&quot;code-quote&quot;&gt;&quot;/bgp/peer-groups/peer-group/peer-group-name&quot;&lt;/span&gt;;
        &lt;span class=&quot;code-comment&quot;&gt;//TODO: require-instance should be added when it&apos;s
&lt;/span&gt;        &lt;span class=&quot;code-comment&quot;&gt;//supported in YANG 1.1
&lt;/span&gt;        &lt;span class=&quot;code-comment&quot;&gt;//require-instance &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;;
&lt;/span&gt;      }
      description
        &lt;span class=&quot;code-quote&quot;&gt;&quot;The peer-group with which &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; neighbor is associated&quot;&lt;/span&gt;;
    }
  }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="63813" author="mgradzki@cisco.com" created="Fri, 29 Jun 2018 10:41:35 +0000"  >&lt;p&gt;Failing unit test (honeycomb):&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://gerrit.fd.io/r/#/c/13292/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://gerrit.fd.io/r/#/c/13292/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="63815" author="mgradzki@cisco.com" created="Fri, 29 Jun 2018 10:59:59 +0000"  >&lt;p&gt;More complex example, based on ODL BGP Oxygen User Guide, uses openconfig-network-instance:protocol augmentation defined in bgp-openconfig-extensions@2017-12-07 for configuration of neighbors:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-xml&quot;&gt;
&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;bgp xmlns=&lt;span class=&quot;code-quote&quot;&gt;&quot;http://openconfig.net/yang/bgp&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;peer-groups&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;peer-group&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;peer-group-name&amp;gt;&lt;/span&gt;application-peers&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/peer-group-name&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/peer-group&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/peer-groups&amp;gt;&lt;/span&gt;
&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/bgp&amp;gt;&lt;/span&gt;
&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;network-instances xmlns=&lt;span class=&quot;code-quote&quot;&gt;&quot;http://openconfig.net/yang/network-instance&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;network-instance&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;global-bgp&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;config&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;global-bgp&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/config&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;protocols&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;protocol&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;identifier &lt;span class=&quot;code-keyword&quot;&gt;xmlns:x&lt;/span&gt;=&lt;span class=&quot;code-quote&quot;&gt;&quot;http://openconfig.net/yang/policy-types&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;x:BGP&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/identifier&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;hc-bgp-instance&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;config&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;hc-bgp-instance&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;identifier &lt;span class=&quot;code-keyword&quot;&gt;xmlns:x&lt;/span&gt;=&lt;span class=&quot;code-quote&quot;&gt;&quot;http://openconfig.net/yang/policy-types&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;x:BGP&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/identifier&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/config&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;bgp xmlns=&lt;span class=&quot;code-quote&quot;&gt;&quot;urn:opendaylight:params:xml:ns:yang:bgp:openconfig-extensions&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;neighbors&amp;gt;&lt;/span&gt;
                        &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;neighbor&amp;gt;&lt;/span&gt;
                            &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;neighbor-address&amp;gt;&lt;/span&gt;10.25.1.9&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/neighbor-address&amp;gt;&lt;/span&gt;
                            &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;config&amp;gt;&lt;/span&gt;
                                &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;peer-group&amp;gt;&lt;/span&gt;application-peers&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/peer-group&amp;gt;&lt;/span&gt;
                            &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/config&amp;gt;&lt;/span&gt;
                        &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/neighbor&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/neighbors&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/bgp&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/protocol&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/protocols&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/network-instance&amp;gt;&lt;/span&gt;
&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/network-instances&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;LeafRefValidatation.validate fails to validate the config with the same exception as in the issue description.&lt;/p&gt;</comment>
                            <comment id="64156" author="mgradzki@cisco.com" created="Mon, 23 Jul 2018 15:27:51 +0000"  >&lt;p&gt;Fix:&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/74338/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/74338/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tests are using XmlParserStream (much easier to test + compatibility with XML parser is something we are interested in),&lt;br/&gt;
so they could not be placed in yang-data-impl (would introduce circular dependency).&lt;/p&gt;

&lt;p&gt;Robert, is there a better place for them than yang-data-codec-xml?&lt;/p&gt;</comment>
                            <comment id="64157" author="rovarga" created="Mon, 23 Jul 2018 15:39:26 +0000"  >&lt;p&gt;Couple of nitpicks in review, otherwise it looks good.&lt;/p&gt;

&lt;p&gt;The test suite is just fine as it is &#8211; we can move it down a notch when we refactor yang-data-impl.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i036r3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>