<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:09:12 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>[MDSAL-246] Re-align data interaction model with RFCs 6241/8040/8072</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-246</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;Add method which creates data if data does not already exists, otherwise throws error.&lt;/p&gt;

&lt;p&gt;RFC: &lt;a href=&quot;https://tools.ietf.org/html/rfc6241#page-38&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://tools.ietf.org/html/rfc6241#page-38&lt;/a&gt; part about create method&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="27068">MDSAL-246</key>
            <summary>Re-align data interaction model with RFCs 6241/8040/8072</summary>
                <type id="10000" iconUrl="https://jira.opendaylight.org/images/icons/issuetypes/epic.svg">Epic</type>
                                            <priority id="2" iconUrl="https://jira.opendaylight.org/images/icons/priorities/critical.svg">High</priority>
                        <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="-1">Unassigned</assignee>
                                    <reporter username="ivan.hrasko@pantheon.tech">Ivan Hrasko</reporter>
                        <labels>
                            <label>pt</label>
                    </labels>
                <created>Fri, 21 Apr 2017 10:50:15 +0000</created>
                <updated>Tue, 9 Jan 2024 09:05:54 +0000</updated>
                                                            <fixVersion>14.0.0</fixVersion>
                                    <component>Binding API</component>
                    <component>DOM API</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="54650" author="ivan.hrasko@pantheon.tech" created="Fri, 21 Apr 2017 10:58:01 +0000"  >&lt;p&gt;This is follow up issue of &lt;a href=&quot;https://bugs.opendaylight.org/show_bug.cgi?id=7868&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.opendaylight.org/show_bug.cgi?id=7868&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="54651" author="rovarga" created="Sun, 21 May 2017 18:51:25 +0000"  >&lt;p&gt;RFC 8040 defines the set of operations which we need to provide on the northbound. This notably includes more operations and the ietf-yang-patch model, which we should support in binding.&lt;/p&gt;</comment>
                            <comment id="54652" author="rovarga" created="Sun, 21 May 2017 18:57:44 +0000"  >&lt;p&gt;While most functionality can be provided by RESTCONF using emulation, which works reasonably well in local node scenarios, it is very clunky and error-prone.&lt;/p&gt;

&lt;p&gt;In clustered scenarios the emulation layer needs to perform multiple operations, typicaly exists(), followed by puts(), which is inefficient as it:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;adds &apos;read&apos; aspect to otherwise write-only transactions&lt;/li&gt;
	&lt;li&gt;incurs multiple messages&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Hence providing native support to these operations will provide significant performance benefits.&lt;/p&gt;

&lt;p&gt;ietf-yang-patch defines effectively a DSL for expressing data store transformations, hence the set of operations we can provide to the end user (via DOM and Binding APIs) will vastly expand.&lt;/p&gt;</comment>
                            <comment id="54653" author="rovarga" created="Tue, 10 Oct 2017 15:04:08 +0000"  >&lt;p&gt;This is gaining criticality, as users are increasing using user-ordered lists, which require insert/point support as hinted in NETCONF WG RFCs.&lt;/p&gt;

&lt;p&gt;The write side of APIs need to realigned with RFC 8072, which defines the following operations:&lt;/p&gt;

&lt;p&gt;RFC      ReadWriteTransaction equivalent&lt;br/&gt;
===      ===============================&lt;br/&gt;
CREATE   exists() + put()&lt;br/&gt;
DELETE   exists() + delete()&lt;br/&gt;
INSERT   read() + put()&lt;br/&gt;
MERGE    merge()&lt;br/&gt;
MOVE     read() + put()&lt;br/&gt;
REPLACE  put()&lt;br/&gt;
REMOVE   delete()&lt;/p&gt;

&lt;p&gt;Furthermore &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; requires REPLACE operation to indicate whether a new item was created or a previous one was replaced. This use case can be supported via invoking an exists() operation before the modification, recording its (future) result &amp;#8211; and relying on transaction isolation/reconciliation to throw OptimisticLockFailedException.&lt;/p&gt;

&lt;p&gt;The read side of APIs really just need to support depth/fields requests. Since this data access pattern would result in partial subtrees being reported, I think we can forgo that optimization for now and perform filtering in the NETCONF/RESTCONF components.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc6241#section-6&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://tools.ietf.org/html/rfc6241#section-6&lt;/a&gt; additionally specifies subtree filtering capabilities, which are probably best served via (an optional) XPath evaluation engine.&lt;/p&gt;</comment>
                            <comment id="62773" author="opendaylight.release" created="Thu, 3 May 2018 10:12:14 +0000"  >&lt;p&gt;Robert, for now I&apos;m assigning this to you.&lt;/p&gt;

&lt;p&gt;Please decide if it should be moved to someone else.&lt;/p&gt;</comment>
                            <comment id="62786" author="rovarga" created="Thu, 3 May 2018 10:43:51 +0000"  >&lt;p&gt;This one is on the backlog &#8211; we don&apos;t assign issues until someone actively is going to work on them.&lt;/p&gt;</comment>
                            <comment id="69400" author="rovarga" created="Fri, 9 Jul 2021 22:09:02 +0000"  >&lt;p&gt;We certainly want to use RFC8072 yang-data objects for modeling binding-api requests.&lt;/p&gt;

&lt;p&gt;At DOM we probably want to go dual mode: based on NormalizedNode and API-driven, with a friendly Java API. If that is the case, one of those should be just a default method overlay in interfaces.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="21487">NETCONF-474</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="21270">NETCONF-257</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10002">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="26193">CONTROLLER-1639</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_10004" key="com.pyxis.greenhopper.jira:gh-epic-label">
                        <customfieldname>Epic Name</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>MD-SAL patch</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8272</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=8272]]></customfieldvalue>

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

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

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