<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:15:13 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-514] Spurious reads before put in 8040 implementation across a mounted resource</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-514</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;8040 code does unnecessary reads when a PUT is given via restconf.&lt;/p&gt;

&lt;p&gt;A PUT according to RFC is a &quot;create or modify&quot;. There is absolutely no need to perform a read here. This is not a POST where ODL needs to verify if the resource exists beforehand.&lt;/p&gt;

&lt;p&gt;This is purely a performance penalty issue, it does not effect functionality&lt;/p&gt;</description>
                <environment>&lt;p&gt;Observed with JSON RPC, should be observable using any mounted data resource broker.&lt;/p&gt;</environment>
        <key id="29272">NETCONF-514</key>
            <summary>Spurious reads before put in 8040 implementation across a mounted resource</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.opendaylight.org/images/icons/priorities/minor.svg">Low</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="-1">Unassigned</assignee>
                                    <reporter username="aivanov">Anton Ivanov</reporter>
                        <labels>
                    </labels>
                <created>Fri, 23 Feb 2018 18:03:28 +0000</created>
                <updated>Wed, 28 Feb 2018 19:09:05 +0000</updated>
                            <resolved>Wed, 28 Feb 2018 19:09:05 +0000</resolved>
                                                                    <component>restconf-nb</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="61204" author="tpantelis" created="Sun, 25 Feb 2018 22:50:33 +0000"  >&lt;p&gt;The read is done to satisfy RFC8040 section 4.5 (&lt;a href=&quot;https://tools.ietf.org/html/rfc8040#section-4.5):&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://tools.ietf.org/html/rfc8040#section-4.5):&lt;/a&gt; &quot;Consistent with &lt;span class=&quot;error&quot;&gt;&amp;#91;RFC7231&amp;#93;&lt;/span&gt;, if the PUT request creates a new resource, a &quot;201 Created&quot; status-line is returned.  If an existing resource is modified, a &quot;204 No Content&quot; status-line is returned.&quot;.  So the read result is used to initialize the response status in ResponseFactory.prepareStatus:&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt; return readData != null ? Status.OK : Status.CREATED;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;However, according to the RFC, Status.OK should be Status.NO_CONTENT.&lt;/p&gt;</comment>
                            <comment id="61206" author="aivanov" created="Mon, 26 Feb 2018 05:18:18 +0000"  >&lt;p&gt;This makes more sense. However, in that case it may be worth it to consider using exist() - this is the same cost internally and for mount points it does not incur the penalty of transferring all the data under this node.&lt;/p&gt;</comment>
                            <comment id="61215" author="tpantelis" created="Mon, 26 Feb 2018 14:09:02 +0000"  >&lt;p&gt;Agreed. Also the exists call can be done in parallel with the submit.&lt;/p&gt;</comment>
                            <comment id="61216" author="tpantelis" created="Mon, 26 Feb 2018 15:52:38 +0000"  >&lt;p&gt;Actually doing it in parallel when accessing the data store would be OK but we can&apos;t be sure about mount points.&lt;/p&gt;</comment>
                            <comment id="61226" author="tpantelis" created="Mon, 26 Feb 2018 22:33:58 +0000"  >&lt;p&gt;Submitted &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/68782/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/68782/&lt;/a&gt;&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|i03aqn:</customfieldvalue>

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