<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:14:41 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>[NETCONF-312] ODL always uses edit operation &quot;replace&quot;</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-312</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;In my testing, ODL is always generating NETCONF &amp;lt;edit-config&amp;gt; requests with operation &quot;replace&quot;. According to IETF Draft IETF NETCONF RESTCONF the following is expected:&lt;/p&gt;

&lt;p&gt;       &lt;ins&gt;---------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;----------------------------------------------+&lt;/p&gt;
&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; RESTCONF &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; NETCONF                                       &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;       &lt;ins&gt;---------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;----------------------------------------------+&lt;/p&gt;
&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; OPTIONS  &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; none                                          &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; HEAD     &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; none                                          &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; GET      &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; &amp;lt;get-config&amp;gt;, &amp;lt;get&amp;gt;                           &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; POST     &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; &amp;lt;edit-config&amp;gt; (nc:operation=&quot;create&quot;)         &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; POST     &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; invoke an RPC operation                       &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; PUT      &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; &amp;lt;edit-config&amp;gt; (nc:operation=&quot;create/replace&quot;) &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; PATCH    &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; &amp;lt;edit-config&amp;gt; (nc:operation=&quot;merge&quot;)          &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; DELETE   &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; &amp;lt;edit-config&amp;gt; (nc:operation=&quot;delete&quot;)         &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;       &lt;ins&gt;---------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;----------------------------------------------+&lt;br/&gt;
REFERENCE &lt;a href=&quot;https://tools.ietf.org/html/draft-ietf-netconf-restconf&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://tools.ietf.org/html/draft-ietf-netconf-restconf&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;As a matter of consequence ODL is currently running into issues, for vendors who have not yet implemented the &quot;replace&quot; operation.&lt;/p&gt;

&lt;p&gt;Somehow I believe, this is caused by an incomplete implementation. OpenDaylight already has the &quot;checkItemDoesNotExists()&quot; method implemented. So it should use this information to decide about using the &quot;create&quot; or &quot;replace&quot; method based on using POST or PUT.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="21325">NETCONF-312</key>
            <summary>ODL always uses edit operation &quot;replace&quot;</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <status id="10003" iconUrl="https://jira.opendaylight.org/images/icons/status_generic.gif" description="">Confirmed</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="rkashapov">Ruslan Kashapov</assignee>
                                    <reporter username="sven.wisotzky@nokia.com">Sven Wisotzky</reporter>
                        <labels>
                            <label>pick-next</label>
                            <label>pt</label>
                    </labels>
                <created>Mon, 31 Oct 2016 13:57:24 +0000</created>
                <updated>Thu, 14 Dec 2023 23:30:43 +0000</updated>
                                                            <fixVersion>7.0.0</fixVersion>
                                    <component>restconf-nb</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="39697" author="huwenbo1988@gmail.com" created="Thu, 23 Mar 2017 05:26:19 +0000"  >&lt;p&gt;It also affects create operation in YANG Patch.&lt;br/&gt;
The problem is that &quot;DOMDataWriteTransaction&quot; interface only provides &amp;lt;put&amp;gt; and &amp;lt;merge&amp;gt; method.&lt;/p&gt;

&lt;p&gt;I&apos;m trying to fix this bug by wrapping payload of a &quot;create&quot; request with a implementation of NormalizedNode interface (PostNormalizedNode) in org.opendaylight.netconf.sal.restconf.impl.BrokerFacade. &lt;br/&gt;
And modify org.opendaylight.netconf.sal.connect.netconf.sal.tx.AbstractWriteTx#put method to check if the data is an instance of PostNormalizedNode.&lt;/p&gt;

&lt;p&gt;Current problem is that org.opendaylight.netconf.sal.restconf.impl.BrokerFacade is in sal-rest-connector module, while org.opendaylight.netconf.sal.connect.netconf.sal.tx.AbstractWriteTx is in sal-netconf-connector module.&lt;br/&gt;
I&apos;m not sure where should I put the PostNormalizedNode?&lt;/p&gt;</comment>
                            <comment id="39698" author="huwenbo1988@gmail.com" created="Fri, 24 Mar 2017 03:36:15 +0000"  >&lt;p&gt;I made a fix for this:&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/53764/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/53764/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="39699" author="tcere" created="Tue, 10 Oct 2017 13:54:46 +0000"  >&lt;p&gt;The above patch had no movement for 4months, so back in queue&lt;/p&gt;</comment>
                            <comment id="72912" author="rovarga" created="Thu, 14 Dec 2023 23:30:43 +0000"  >&lt;p&gt;So &lt;a href=&quot;https://jira.opendaylight.org/browse/NETCONF-773&quot; title=&quot;Refactor restconf-nb wiring&quot; class=&quot;issue-link&quot; data-issue-key=&quot;NETCONF-773&quot;&gt;NETCONF-773&lt;/a&gt; provides the isolation for this, so&#160; the way these work is under control of NetconfRestconfStrategy.&lt;/p&gt;

&lt;p&gt;I think we have a duplicate of this somewhere.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="32900">NETCONF-706</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <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_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>7069</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=7069]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10206" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Issue Type</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10300"><![CDATA[Bug]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10204" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>ODL SR Target Milestone</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10349"><![CDATA[Unspecified]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10202" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Priority</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10301"><![CDATA[Normal]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i01xrj:</customfieldvalue>

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