<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:08:29 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-41] Provide support for custom Commit Cohorts</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-41</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:EverythingYouWantedtoKNowaboutOnDataChanged_butWasAfraidToAsk#Data_Commit_Handler_Issues&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:EverythingYouWantedtoKNowaboutOnDataChanged_butWasAfraidToAsk#Data_Commit_Handler_Issues&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I looked at 1209 and if new API provides fixes problems, please point to concrete example on how to overcome problems described in wiki.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: PC&lt;/p&gt;</environment>
        <key id="26863">MDSAL-41</key>
            <summary>Provide support for custom Commit Cohorts</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <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="tony.tkacik@gmail.com">Tony Tkacik</assignee>
                                    <reporter username="repenno">Reinaldo Penno</reporter>
                        <labels>
                    </labels>
                <created>Sun, 27 Jul 2014 18:50:53 +0000</created>
                <updated>Fri, 9 Mar 2018 18:00:04 +0000</updated>
                            <resolved>Fri, 10 Feb 2017 20:22:53 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>9</watches>
                                                                                                                <comments>
                            <comment id="53988" author="tony.tkacik@gmail.com" created="Mon, 28 Jul 2014 08:25:51 +0000"  >&lt;p&gt;Please&lt;/p&gt;</comment>
                            <comment id="53989" author="tony.tkacik@gmail.com" created="Mon, 28 Jul 2014 12:37:50 +0000"  >&lt;p&gt;(In reply to Tony Tkacik from comment #1)&lt;br/&gt;
&amp;gt; Please&lt;/p&gt;

&lt;p&gt;Accidentally submitted unfinished answer,&lt;/p&gt;

&lt;p&gt;Please could you insert body from wiki here, to track it in one place&lt;br/&gt;
outside of wiki (since wiki is free for all).&lt;/p&gt;</comment>
                            <comment id="53990" author="rapenno@gmail.com" created="Mon, 28 Jul 2014 14:36:10 +0000"  >
&lt;p&gt;1-    Commit Handler is called for every commit independent of attachment point. If I attach a Commit Handler to a Yang List in a specific model, I expect it to be called only for transaction at that level or lower, but it is called for every controller config transaction.&lt;br/&gt;
2 -    Even though I return a failed transaction from callback handler, data is still pushed to the datastore. Basically a RESTconf PUT request triggers the callback which returns &quot;RpcResultBuilder.&amp;lt;Void&amp;gt; failed().build()&quot; (I also tried returning null), but data is not rolled back. This does not agree with documentation and defeats the core value of this construct.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;https://jenkins.opendaylight.org/controller/job/controller-merge/lastSuccessfulBuild/artifact/target/apidocs/org/opendaylight/controller/md/sal/common/api/data/DataCommitHandler.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://jenkins.opendaylight.org/controller/job/controller-merge/lastSuccessfulBuild/artifact/target/apidocs/org/opendaylight/controller/md/sal/common/api/data/DataCommitHandler.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&quot;If error occured, the broker starts a commit rollback phase. &quot;&lt;/p&gt;


&lt;p&gt;If I change the code below to honor a failed RpcResult from Provider, the transaction still goes through. It seems there is no stopping RESTconf from failing a transaction&lt;/p&gt;


&lt;p&gt;       return Futures.transform(dataStoreCommit, new Function&amp;lt;RpcResult&amp;lt;TransactionStatus&amp;gt;,RpcResult&amp;lt;TransactionStatus&amp;gt;&amp;gt;() {&lt;br/&gt;
            @Override&lt;br/&gt;
            public RpcResult&amp;lt;TransactionStatus&amp;gt; apply(final RpcResult&amp;lt;TransactionStatus&amp;gt; input) {&lt;br/&gt;
                if(input.isSuccessful()) {&lt;br/&gt;
                    for(DataCommitTransaction&amp;lt;InstanceIdentifier&amp;lt;? extends DataObject&amp;gt;, DataObject&amp;gt; subTx : subTrans ) {&lt;br/&gt;
                        if (!subTx.finish().isSuccessful()) {  //&amp;lt;=== Changed Code&lt;br/&gt;
                            LOG.error(&quot;Provider {} commit failed.&quot;, subTx.toString());&lt;br/&gt;
                            RpcResult&amp;lt;TransactionStatus&amp;gt; rpcResult = RpcResultBuilder.&amp;lt;TransactionStatus&amp;gt;failed().build();&lt;br/&gt;
                            return rpcResult;&lt;br/&gt;
                        }&lt;br/&gt;
                    }&lt;br/&gt;
                } else {&lt;br/&gt;
                    LOG.error(&quot;Tx: {} Rollback - Datastore commit failed.&quot;,tx.getIdentifier());&lt;br/&gt;
                    for(DataCommitTransaction&amp;lt;InstanceIdentifier&amp;lt;? extends DataObject&amp;gt;, DataObject&amp;gt; subTx : subTrans ) &lt;/p&gt;
{
                        subTx.rollback();
                    }
&lt;p&gt;                }&lt;br/&gt;
                return input;&lt;br/&gt;
            }&lt;br/&gt;
        });&lt;/p&gt;

&lt;p&gt;It also important to point out that when I changed the code as above to honor the return value from provider, the initial controller configuration did not not go through as many errors were displayed. . In other words, it seems people have been relying on this bug.&lt;/p&gt;</comment>
                            <comment id="53991" author="rapenno@gmail.com" created="Fri, 22 Aug 2014 17:42:37 +0000"  >&lt;p&gt;What&apos;s the progress on this one? Without this working I can not sanitize RESTconf operations&lt;/p&gt;</comment>
                            <comment id="53992" author="tony.tkacik@gmail.com" created="Thu, 18 Sep 2014 10:13:44 +0000"  >&lt;p&gt;This requires API enhancement for new DataBroker described in &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-662&quot; title=&quot;Datastore: expose AsyncConfigurationCommitCohort into DataBroker&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-662&quot;&gt;&lt;del&gt;CONTROLLER-662&lt;/del&gt;&lt;/a&gt; which will introduce new API AsyncConfigutationCommitCohort with better semantics then original deprecated DataCommitHandler.&lt;/p&gt;</comment>
                            <comment id="53993" author="rapenno@gmail.com" created="Wed, 29 Oct 2014 02:10:20 +0000"  >&lt;p&gt;Requirements:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;I would like to attach a CommitHandler much like a data listener (to a specific leaf , subtree, etc).  This is because certain portions of the tree will have different business logic associated with them. Some I will have to contact another external server, some will be just a matter of validating some of the input.&lt;/li&gt;
	&lt;li&gt;I would like to define the error code and reason phrase RESTconf will send back. I do not want all errors to be 401. Based on the business logic output I will decide on the appropriate error. Of course if no error is passed from ODL Provider, infrastructure can return a default error&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Following up on above, I would like to be able to return 3XX code with appropriate payload. The reasons are many: Load-balancing, redirection to appropriate ODL or server instance that should handle resource, etc. This has been a long requirement since it is heavily used by business apps. This could be done with a Yang metadata data. A metadata-tag that we can change run-time with the URI to be used for redirection.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="53994" author="george.y.zhao@huawei.com" created="Mon, 19 Jan 2015 23:22:17 +0000"  >&lt;p&gt;move to Lithium&lt;/p&gt;</comment>
                            <comment id="53995" author="rapenno@gmail.com" created="Tue, 3 Mar 2015 22:28:19 +0000"  >&lt;p&gt;Any update? I would like to incorporate the new API into SFC with plenty of time to test, give feedback, fix bugs, stabilize.&lt;/p&gt;</comment>
                            <comment id="53996" author="tony.tkacik@gmail.com" created="Thu, 19 Mar 2015 08:30:19 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/14332/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/14332/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="53997" author="rapenno@gmail.com" created="Tue, 31 Mar 2015 05:40:02 +0000"  >&lt;p&gt;Any update? Code review seems stuck and did not receive any updates either.&lt;/p&gt;</comment>
                            <comment id="53998" author="tony.tkacik@gmail.com" created="Wed, 1 Apr 2015 12:27:41 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/17532/1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/17532/1&lt;/a&gt; - Binding to DOM part&lt;/p&gt;

&lt;p&gt;DOM to Data Store part is yet pending.&lt;/p&gt;</comment>
                            <comment id="53999" author="tony.tkacik@gmail.com" created="Thu, 28 Jan 2016 08:51:30 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/32602/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/32602/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="54000" author="colin@colindixon.com" created="Fri, 10 Feb 2017 20:22:53 +0000"  >&lt;p&gt;adding some keywords to make searching easier:&lt;br/&gt;
validation data validate cohort cohorts&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="25787">CONTROLLER-1233</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10002">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="25216">CONTROLLER-662</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </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>1435</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=1435]]></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_10204" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>ODL SR Target Milestone</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10309"><![CDATA[Boron]]></customfieldvalue>

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

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