<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:15:37 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-679] RESTCONF RFC8040 compliance: SSE support</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-679</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;Currently RESTCONF notifications are delivered only over Websocket. According to RFC8040&lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt; notifications must be sent over Server-Sent Events&lt;span class=&quot;error&quot;&gt;&amp;#91;2&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt; &lt;a href=&quot;https://tools.ietf.org/html/rfc8040#section-3.8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://tools.ietf.org/html/rfc8040#section-3.8&lt;/a&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;2&amp;#93;&lt;/span&gt; &lt;a href=&quot;https://www.w3.org/TR/2015/REC-eventsource-20150203/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://www.w3.org/TR/2015/REC-eventsource-20150203/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;how to test this:&lt;/p&gt;

&lt;p&gt;1)./target/assembly/bin/client &quot;feature:install odl-mdsal-model-inventory odl-netconf-mdsal odl-restconf odl-netconf-topology odl-netconf-connector-all odl-restconf-nb-rfc8040&quot;&lt;/p&gt;

&lt;p&gt;2)from postman collection call &quot;1. create&quot; and &quot;2.get&quot;&lt;/p&gt;

&lt;p&gt;3)connect to url for example with curl :&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;
curl -v -X GET http:&lt;span class=&quot;code-comment&quot;&gt;//127.0.0.1:8181/rests/notif/data-change-event-subscription/opendaylight-inventory:nodes/datastore=CONFIGURATION/scope=BASE -H &lt;span class=&quot;code-quote&quot;&gt;&quot;Content-Type: text/event-stream&quot;&lt;/span&gt; -H &lt;span class=&quot;code-quote&quot;&gt;&quot;Authorization: Basic YWRtaW46YWRtaW4=&quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;4) 3.update and 4. delete configuration and you must see data in SSE channel&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="32623">NETCONF-679</key>
            <summary>RESTCONF RFC8040 compliance: SSE support</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="2" iconUrl="https://jira.opendaylight.org/images/icons/priorities/critical.svg">High</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="blukas">Lukas Baca</assignee>
                                    <reporter username="hjslgfsd7">Valentin Mayamsin</reporter>
                        <labels>
                            <label>restconf</label>
                    </labels>
                <created>Wed, 29 Apr 2020 17:41:15 +0000</created>
                <updated>Mon, 3 Aug 2020 16:58:24 +0000</updated>
                            <resolved>Mon, 3 Aug 2020 16:58:24 +0000</resolved>
                                                    <fixVersion>Aluminium</fixVersion>
                                    <component>restconf-nb</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="68105" author="jluhrsen" created="Tue, 12 May 2020 00:23:12 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=hjslgfsd7&quot; class=&quot;user-hover&quot; rel=&quot;hjslgfsd7&quot;&gt;hjslgfsd7&lt;/a&gt;, do you know of any person/team committed to working on this ticket for the Aluminium release?&lt;/p&gt;</comment>
                            <comment id="68108" author="ecelgp" created="Tue, 12 May 2020 16:42:38 +0000"  >&lt;p&gt;As commented in the Kernel call, we need to make sure SSE implementation conforms RFC8650 (&lt;a href=&quot;https://tools.ietf.org/html/rfc8650&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://tools.ietf.org/html/rfc8650&lt;/a&gt;). This should not be much of concern because this newer RFC already says: &quot;The streaming of notifications that encapsulate the resulting information push is done via the mechanism described in Section 6.3 of &lt;span class=&quot;error&quot;&gt;&amp;#91;RFC8040&amp;#93;&lt;/span&gt;.&quot;&lt;/p&gt;</comment>
                            <comment id="68170" author="JIRAUSER12931" created="Wed, 3 Jun 2020 12:14:23 +0000"  >&lt;p&gt;There is one additional possibility sending ping as event(now is sending as data) but in RFC8040 is:&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;
The SSE specification supports the following additional fields:
 &lt;span class=&quot;code-quote&quot;&gt;&quot;event&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;id&quot;&lt;/span&gt;, and &lt;span class=&quot;code-quote&quot;&gt;&quot;retry&quot;&lt;/span&gt;. A RESTCONF server MAY send the &lt;span class=&quot;code-quote&quot;&gt;&quot;retry&quot;&lt;/span&gt;
 field, and &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; it does, RESTCONF clients SHOULD use it. A RESTCONF
 server SHOULD NOT send the &lt;span class=&quot;code-quote&quot;&gt;&quot;event&quot;&lt;/span&gt; or &lt;span class=&quot;code-quote&quot;&gt;&quot;id&quot;&lt;/span&gt; fields, as there are no
 meaningful values that could be used &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; them that would not be
 redundant to the contents of the notification itself.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;But probably will be nicer send it as event to split data part and keep-alive part&lt;/p&gt;</comment>
                            <comment id="68268" author="jluhrsen" created="Thu, 25 Jun 2020 16:22:03 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=tcere&quot; class=&quot;user-hover&quot; rel=&quot;tcere&quot;&gt;tcere&lt;/a&gt;, &lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=rovarga&quot; class=&quot;user-hover&quot; rel=&quot;rovarga&quot;&gt;rovarga&lt;/a&gt;, any chance we can get a little progress on this? I think the patch was updated to keep&lt;br/&gt;
both websocket as well as SSE (for backward compatibility). The netconf patch also depends on a AAA patch:&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/c/aaa/+/89860&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/c/aaa/+/89860&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="68447" author="JIRAUSER12913" created="Wed, 15 Jul 2020 23:26:15 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=blukas&quot; class=&quot;user-hover&quot; rel=&quot;blukas&quot;&gt;blukas&lt;/a&gt;&#160;I have tested the build from your patch ([gerrit patch|&lt;a href=&quot;https://git.opendaylight.org/gerrit/c/netconf/+/90229&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/c/netconf/+/90229&lt;/a&gt;]) The SSE support looks like its working. Can you confirm my results when subscribing to the event-stream:&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&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;

[jenkins@ip-10-1-97-74 ~]$ curl -v -X GET http:&lt;span class=&quot;code-comment&quot;&gt;//127.0.0.1:8181/rests/notif/data-change-event-subscription/opendaylight-inventory:nodes/datastore=CONFIGURATION/scope=BASE -H &lt;span class=&quot;code-quote&quot;&gt;&quot;Content-Type: text/event-stream&quot;&lt;/span&gt; -H &lt;span class=&quot;code-quote&quot;&gt;&quot;Authorization: Basic YWRtaW46YWRtaW4=&quot;&lt;/span&gt;
&lt;/span&gt;* About to connect() to 127.0.0.1 port 8181 (#0)
* Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 8181 (#0)
&amp;gt; GET /rests/notif/data-change-event-subscription/opendaylight-inventory:nodes/datastore=CONFIGURATION/scope=BASE HTTP/1.1
&amp;gt; User-Agent: curl/7.29.0
&amp;gt; Host: 127.0.0.1:8181
&amp;gt; Accept: */*
&amp;gt; Content-Type: text/event-stream
&amp;gt; Authorization: Basic YWRtaW46YWRtaW4=
&amp;gt;
&amp;lt; HTTP/1.1 200 OK
&amp;lt; Set-Cookie: JSESSIONID=node0remdbub5qc81g4ikedstbyu53.node0; Path=/; HttpOnly
&amp;lt; Expires: Thu, 01 Jan 1970 00:00:00 GMT
&amp;lt; Set-Cookie: rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Tue, 14-Jul-2020 23:15:31 GMT
&amp;lt; Content-Type: text/event-stream
&amp;lt; Transfer-Encoding: chunked
&amp;lt;

: ping
: ping
: ping
: ping
: ping
: ping
: ping
: ping
data: &amp;lt;?xml version=&lt;span class=&quot;code-quote&quot;&gt;&quot;1.0&quot;&lt;/span&gt; encoding=&lt;span class=&quot;code-quote&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt; standalone=&lt;span class=&quot;code-quote&quot;&gt;&quot;no&quot;&lt;/span&gt;?&amp;gt;
data: &amp;lt;notification xmlns=&lt;span class=&quot;code-quote&quot;&gt;&quot;urn:ietf:params:xml:ns:netconf:notification:1.0&quot;&lt;/span&gt;&amp;gt;
data: &amp;lt;eventTime&amp;gt;2020-07-15T23:17:06.438654Z&amp;lt;/eventTime&amp;gt;
data: &amp;lt;data-changed-notification xmlns=&lt;span class=&quot;code-quote&quot;&gt;&quot;urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote&quot;&lt;/span&gt;&amp;gt;
data: &amp;lt;data-change-event&amp;gt;
data: &amp;lt;path&amp;gt;/opendaylight-inventory:nodes&amp;lt;/path&amp;gt;
data: &amp;lt;operation&amp;gt;created&amp;lt;/operation&amp;gt;
data: &amp;lt;data&amp;gt;
data: &amp;lt;nodes xmlns=&lt;span class=&quot;code-quote&quot;&gt;&quot;urn:opendaylight:inventory&quot;&lt;/span&gt;&amp;gt;
data: &amp;lt;node&amp;gt;
data: &amp;lt;id&amp;gt;agent-007dd&amp;lt;/id&amp;gt;
data: &amp;lt;/node&amp;gt;
data: &amp;lt;/nodes&amp;gt;
data: &amp;lt;/data&amp;gt;
data: &amp;lt;/data-change-event&amp;gt;
data: &amp;lt;data-change-event&amp;gt;
data: &amp;lt;path&amp;gt;/opendaylight-inventory:nodes/opendaylight-inventory:node/opendaylight-inventory:node[opendaylight-inventory:id=&lt;span class=&quot;code-quote&quot;&gt;&apos;agent-007dd&apos;&lt;/span&gt;]&amp;lt;/path&amp;gt;
data: &amp;lt;operation&amp;gt;created&amp;lt;/operation&amp;gt;
data: &amp;lt;data&amp;gt;
data: &amp;lt;node xmlns=&lt;span class=&quot;code-quote&quot;&gt;&quot;urn:opendaylight:inventory&quot;&lt;/span&gt;&amp;gt;
data: &amp;lt;id&amp;gt;agent-007dd&amp;lt;/id&amp;gt;
data: &amp;lt;/node&amp;gt;
data: &amp;lt;/data&amp;gt;
data: &amp;lt;/data-change-event&amp;gt;
data: &amp;lt;data-change-event&amp;gt;
data: &amp;lt;path&amp;gt;/opendaylight-inventory:nodes/opendaylight-inventory:node/opendaylight-inventory:node[opendaylight-inventory:id=&lt;span class=&quot;code-quote&quot;&gt;&apos;agent-007dd&apos;&lt;/span&gt;]/opendaylight-inventory:id&amp;lt;/path&amp;gt;
data: &amp;lt;operation&amp;gt;created&amp;lt;/operation&amp;gt;
data: &amp;lt;data&amp;gt;
data: &amp;lt;id xmlns=&lt;span class=&quot;code-quote&quot;&gt;&quot;urn:opendaylight:inventory&quot;&lt;/span&gt;&amp;gt;agent-007dd&amp;lt;/id&amp;gt;
data: &amp;lt;/data&amp;gt;
data: &amp;lt;/data-change-event&amp;gt;
data: &amp;lt;/data-changed-notification&amp;gt;
data: &amp;lt;/notification&amp;gt;
data:
: ping
: ping
: ping
: ping
: ping
: ping
: ping
: ping
: ping
: ping
: ping
: ping
: ping
: ping
data: &amp;lt;?xml version=&lt;span class=&quot;code-quote&quot;&gt;&quot;1.0&quot;&lt;/span&gt; encoding=&lt;span class=&quot;code-quote&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt; standalone=&lt;span class=&quot;code-quote&quot;&gt;&quot;no&quot;&lt;/span&gt;?&amp;gt;
data: &amp;lt;notification xmlns=&lt;span class=&quot;code-quote&quot;&gt;&quot;urn:ietf:params:xml:ns:netconf:notification:1.0&quot;&lt;/span&gt;&amp;gt;
data: &amp;lt;eventTime&amp;gt;2020-07-15T23:19:22.668968Z&amp;lt;/eventTime&amp;gt;
data: &amp;lt;data-changed-notification xmlns=&lt;span class=&quot;code-quote&quot;&gt;&quot;urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote&quot;&lt;/span&gt;&amp;gt;
data: &amp;lt;data-change-event&amp;gt;
data: &amp;lt;path&amp;gt;/opendaylight-inventory:nodes&amp;lt;/path&amp;gt;
data: &amp;lt;operation&amp;gt;deleted&amp;lt;/operation&amp;gt;
data: &amp;lt;/data-change-event&amp;gt;
data: &amp;lt;data-change-event&amp;gt;
data: &amp;lt;path&amp;gt;/opendaylight-inventory:nodes/opendaylight-inventory:node/opendaylight-inventory:node[opendaylight-inventory:id=&lt;span class=&quot;code-quote&quot;&gt;&apos;agent-007dd&apos;&lt;/span&gt;]&amp;lt;/path&amp;gt;
data: &amp;lt;operation&amp;gt;deleted&amp;lt;/operation&amp;gt;
data: &amp;lt;/data-change-event&amp;gt;
data: &amp;lt;data-change-event&amp;gt;
data: &amp;lt;path&amp;gt;/opendaylight-inventory:nodes/opendaylight-inventory:node/opendaylight-inventory:node[opendaylight-inventory:id=&lt;span class=&quot;code-quote&quot;&gt;&apos;agent-007dd&apos;&lt;/span&gt;]/opendaylight-inventory:id&amp;lt;/path&amp;gt;
data: &amp;lt;operation&amp;gt;deleted&amp;lt;/operation&amp;gt;
data: &amp;lt;/data-change-event&amp;gt;
data: &amp;lt;/data-changed-notification&amp;gt;
data: &amp;lt;/notification&amp;gt;
data:
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="68448" author="JIRAUSER12931" created="Wed, 15 Jul 2020 23:48:39 +0000"  >&lt;p&gt;yes this looks good. We can see ping message as comment. And in same time data messages&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="32668">AAA-199</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="15700" name="SSE_Test.postman_collection.json" size="6230" author="blukas" created="Wed, 1 Jul 2020 16:47:20 +0000"/>
                    </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|i03s8n:</customfieldvalue>

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