<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:02:02 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>[INFRAUTILS-11] Ready service</title>
                <link>https://jira.opendaylight.org/browse/INFRAUTILS-11</link>
                <project id="10129" key="INFRAUTILS">infrautils</project>
                    <description>&lt;p&gt;Previous discussions, incl. a session at last year&apos;s ODL DDF, have repeatedly identified the need to have a general way to reliably detect when ODL is &quot;ready&quot;.&lt;/p&gt;

&lt;p&gt;Today projects sometimes have ad-hoc solution for this; for example netvirt&apos;s org.opendaylight.netvirt.statemanager.StateManager (which logs &quot;StateManager all is ready&quot;) is related to (the lack of a general solution for) this.&lt;/p&gt;

&lt;p&gt;I&apos;ve hit what&apos;s basically the same gap again while contributing an &quot;auto-import-on-boot&quot; feature to the Daexim project in &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/55035/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/55035/&lt;/a&gt;, where the Daexim committers would like that feature to hold importing until &quot;the system is full ready&quot; (I don&apos;t fully understand why, but that is not the point of this bug), and will therefore as part of the work I&apos;m doing in that context contribute a general new Ready Service, to infrautils.&lt;/p&gt;

&lt;p&gt;This will build on top of the work I&apos;ve done for the Extended SingleFeatureTest (SFT) incl. TestBundleDiag in odlparent (see e.g. &lt;a href=&quot;https://lists.opendaylight.org/pipermail/release/2017-January/009062.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://lists.opendaylight.org/pipermail/release/2017-January/009062.html&lt;/a&gt;), and actually re-use that same code.&lt;/p&gt;

&lt;p&gt;The first contribution for this will be minimalistic and fulfil the immediate need I have (in Daexim).  Later Enhancements by others or myself on top of that first iteration can then obviously extend it; ideas for possible future follow-up improvements which won&apos;t be in my initial proposal include but are not limited to:&lt;/p&gt;

&lt;p&gt;1. YANG model to expose the simple API I&apos;ll offer as RESTCONF etc. RPC&lt;/p&gt;

&lt;p&gt;2. YANG data model which sets a flag in the data store (like netvirt&apos;s StateManager)&lt;/p&gt;

&lt;p&gt;3. JMX ?&lt;/p&gt;

&lt;p&gt;3. ...&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="19500">INFRAUTILS-11</key>
            <summary>Ready service</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</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="vorburger">Michael Vorburger</assignee>
                                    <reporter username="vorburger">Michael Vorburger</reporter>
                        <labels>
                    </labels>
                <created>Wed, 10 May 2017 20:40:53 +0000</created>
                <updated>Mon, 19 Mar 2018 21:28:17 +0000</updated>
                            <resolved>Thu, 15 Mar 2018 10:20:41 +0000</resolved>
                                    <version>Nitrogen</version>
                                    <fixVersion>Oxygen</fixVersion>
                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>13</watches>
                                                                                                                <comments>
                            <comment id="35400" author="rovarga" created="Wed, 10 May 2017 21:28:16 +0000"  >&lt;p&gt;Doesn&apos;t daexim really want to have the data store and models ready, but applications not started?&lt;/p&gt;</comment>
                            <comment id="35401" author="vorburger" created="Wed, 10 May 2017 21:36:10 +0000"  >&lt;p&gt;&amp;gt; Doesn&apos;t daexim really want to have the data store &lt;br/&gt;
&amp;gt; and models ready, but applications not started?&lt;/p&gt;

&lt;p&gt;I&apos;ve no idea; but that is not the point of this bug... New &lt;a href=&quot;https://jira.opendaylight.org/browse/DAEXIM-3&quot; title=&quot;New &amp;quot;auto-import-on-boot&amp;quot; feature&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DAEXIM-3&quot;&gt;&lt;del&gt;DAEXIM-3&lt;/del&gt;&lt;/a&gt; open in Daexim now.&lt;/p&gt;</comment>
                            <comment id="35402" author="vorburger" created="Wed, 10 May 2017 21:38:33 +0000"  >&lt;p&gt;&amp;gt; contribute a general new Ready Service, to infrautils&lt;/p&gt;

&lt;p&gt;==&amp;gt; &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/56749/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/56749/&lt;/a&gt;, basic v1 done from my end and ready for general review now; I&apos;m hoping hoping to merge that soon-ish (i.e. &quot;days, not weeks&quot;).  I&apos;ll be raising a separate follow-up Gerrit to add Karaf 3 support on top of above.&lt;/p&gt;</comment>
                            <comment id="35403" author="david.suarez.fuentes@ericsson.com" created="Fri, 12 May 2017 18:04:22 +0000"  >&lt;p&gt;We are interested in using this functionality to know when a restore procedure is really finished.&lt;/p&gt;</comment>
                            <comment id="35404" author="vrpolak" created="Mon, 25 Sep 2017 16:08:13 +0000"  >&lt;p&gt;&amp;gt; &lt;a href=&quot;https://bugs.opendaylight.org/show_bug.cgi?id=9165#c9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.opendaylight.org/show_bug.cgi?id=9165#c9&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Responding here, as &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1771&quot; title=&quot;Add INFO log when config subsystem finishes applying initial configurations&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1771&quot;&gt;&lt;del&gt;CONTROLLER-1771&lt;/del&gt;&lt;/a&gt; was opened just for a simple logging change.&lt;/p&gt;

&lt;p&gt;I have never studied software design, so here is my list of ad-hoc ideas.&lt;/p&gt;

&lt;p&gt;What is the &quot;northbound&quot; for this service? Both it term of mechanism (Just write to operational datastore, or provide some other publishing method?) and amount of data presented (Will there be timestamps? Will there be IDs to identify currently un-ready components?).&lt;/p&gt;

&lt;p&gt;Cluster-wide or local member only?&lt;/p&gt;

&lt;p&gt;What about granularity? For example, topology-netconf might be ready, but when detecting configuration change (initiating a connect attempt to a netconf device) should the device connector be regarded as a sub-component with its own readiness? Can we create a hierarchy of such sub-components in an easy fashion? (Our own implementation of ListenableFuture which notifies the readiness service?)&lt;/p&gt;

&lt;p&gt;Do we want to report readiness, or quiescence (or both)? In the previous example, while device connector is not ready, topology-netconf (as a service) is ready, but not quiet (as the device operational status is in transient state).&lt;/p&gt;

&lt;p&gt;In CSIT we would use both. Global quiescence in &lt;del&gt;only&lt;/del&gt; jobs to ensure conditions are repeatable (and karaf.log clean), fine-grained readiness in &lt;del&gt;all&lt;/del&gt; jobs to speed up test execution while making sure the functionality works even if ODL is not quiet yet.&lt;/p&gt;

&lt;p&gt;What if a sub-component fails (connection to netconf device refused). Should the sub-component report readiness when it processes the failure? Can super-component &quot;unregister&quot; the sub-component when performing cleanup? Do we want a Failure Service?&lt;/p&gt;

&lt;p&gt;Any leaks we should think about before finalizing our design?&lt;br/&gt;
If a sub-component did not register and is garbage collected, we want to let the garbage collection happen even if it has registered (and unregister it).&lt;/p&gt;</comment>
                            <comment id="35405" author="vorburger" created="Mon, 25 Sep 2017 17:45:35 +0000"  >&lt;p&gt;Changing Target from Nitrogen to Oxygen.  Pending:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/56821/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/56821/&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/61480/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/61480/&lt;/a&gt; (plus it&apos;s impl follow-up)&lt;/li&gt;
	&lt;li&gt;Faseela&apos;s &quot;diagstatus&quot; work (in infrautils) - and how it integrates with &quot;ready&quot;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I&apos;m definitely wanting to close this general &quot;launch&quot; issue within Oxygen, and then have more specific follow-up new issues (linked here as Blocks) for future extensions...&lt;/p&gt;</comment>
                            <comment id="35406" author="vorburger" created="Mon, 25 Sep 2017 19:16:00 +0000"  >&lt;p&gt;&amp;gt; What is the &quot;northbound&quot; for this service? &lt;/p&gt;

&lt;p&gt;I&apos;m not sure how you mean the term &quot;northbound&quot; in this context - I always understood &quot;northbound&quot; as RESTCONF API - whereas infrautils.ready is lower-level, just an internal OSGi service.&lt;/p&gt;

&lt;p&gt;&amp;gt; write to operational datastore, or provide some other publishing method?&lt;/p&gt;

&lt;p&gt;infrautils.ready itself will never write to the operational datastore (because infrautils will never depend on controller/mdsal), BUT infrautils.diag is proposing a CLI command which among other things will also expose infrautils.ready&apos;s status, after we merge .&lt;/p&gt;

&lt;p&gt;You can find out more about infrautils.diag in the spec on &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/51171/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/51171/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another project, perhaps genius will, could write the infrautils.ready status and/or the infrautils.diag services status into MDSAL - if someone needs that and wants to contribute this.&lt;/p&gt;

&lt;p&gt;And infrautils.ready happily spams the log, with the same information that you get from SFT, now included at run-time.&lt;/p&gt;

&lt;p&gt;&amp;gt; Will there be timestamps? &lt;/p&gt;

&lt;p&gt;Not in the API/CLI, no, because it&apos;s not &quot;historical&quot;.  Yes in the LOG.&lt;/p&gt;

&lt;p&gt;&amp;gt; Will there be IDs to identify currently un-ready components?).&lt;/p&gt;

&lt;p&gt;infrautils.diag has something a bit like this, but not 100% sure.&lt;/p&gt;

&lt;p&gt;&amp;gt; Cluster-wide or local member only?&lt;/p&gt;

&lt;p&gt;Currently infrautils.ready reports local status only.&lt;/p&gt;

&lt;p&gt;infrautils.diag has an upcoming CLI command to query the entire cluster&apos;s status, see &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/62900/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/62900/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;gt; What about granularity? &lt;/p&gt;

&lt;p&gt;infrautils.ready&apos;s scope is the OSGi bundles.&lt;/p&gt;

&lt;p&gt;infrautils.diag&apos;s scope is (possible N several) &quot;functional services&quot; within those bundles.  It currently has no notion of hierarchy, but if you feel strongly that this could be of value, then perhaps it is something you&apos;d like to open a separate new enhancement issue for, and discuss further (likely more with Faseela than with me) over there.&lt;/p&gt;

&lt;p&gt;&amp;gt; Do we want to report readiness, or quiescence (or both)? &lt;/p&gt;

&lt;p&gt;infrautils.ready reports readiness of OSGi bundles (incl. their BP state).&lt;/p&gt;

&lt;p&gt;I&apos;m not sure yet how quiescence relates to this, but curious to learn more...&lt;/p&gt;</comment>
                            <comment id="61749" author="vorburger" created="Thu, 15 Mar 2018 10:20:41 +0000"  >&lt;p&gt;The infrautils.ready service is available in Oxygen, and this issue is overly broad and has nothing actionable (that I can see) for Fluorine. I encourage all 13 watchers of this issue who have an interest in&#160;infrautils.ready to email infrautils-dev with new requirements, which can lead to more specific fine grained issues than this for possible Improvements in&#160;Fluorine (an&#160;example of such an extension is &lt;a href=&quot;https://jira.opendaylight.org/browse/INFRAUTILS-27&quot; title=&quot;Ready API for more fine grained per-bundle notifications&quot; class=&quot;issue-link&quot; data-issue-key=&quot;INFRAUTILS-27&quot;&gt;&lt;del&gt;INFRAUTILS-27&lt;/del&gt;&lt;/a&gt;).&lt;/p&gt;</comment>
                            <comment id="61776" author="jluhrsen" created="Fri, 16 Mar 2018 23:56:02 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=vorburger&quot; class=&quot;user-hover&quot; rel=&quot;vorburger&quot;&gt;vorburger&lt;/a&gt; and any other folks that worked to provide this functionality, THANK YOU!&lt;/p&gt;

&lt;p&gt;I&apos;m starting &lt;a href=&quot;https://git.opendaylight.org/gerrit/c/69575/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;work &lt;/a&gt;  to use it in our CSIT jobs so we can just wait for this for-sure (hopefully) utility to tell us&lt;br/&gt;
when we are good to go.&lt;/p&gt;

&lt;p&gt;I&apos;ll email infrautils, but I think a feature request I have is to make this information available via REST API.&lt;br/&gt;
I know deployment tools out there that can benefit from this. Also other fun things like haproxy.&lt;/p&gt;</comment>
                            <comment id="61777" author="faseela.k@ericsson.com" created="Sat, 17 Mar 2018 03:43:40 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=jluhrsen&quot; class=&quot;user-hover&quot; rel=&quot;jluhrsen&quot;&gt;jluhrsen&lt;/a&gt; ready service status is Incorporated in the showSvcStatus Cli output of diagstatus, which you would have seen sathwik incorporating in genius CSIT.. The same status is available as Mbean, which can be accessed over REST..&lt;/p&gt;</comment>
                            <comment id="61778" author="jluhrsen" created="Sat, 17 Mar 2018 04:59:07 +0000"  >&lt;blockquote&gt;&lt;p&gt;Jamo Luhrsen ready service status is Incorporated in the showSvcStatus Cli output of diagstatus, which you would have seen sathwik incorporating in genius CSIT.. The same status is available as Mbean, which can be accessed over REST..&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I do remember seeing a CSIT patch(es) with that showSvcStatus CLI, but didn&apos;t think it was related to this &quot;ready status&quot;. What is the URI to hit to see this&lt;br/&gt;
with REST?&lt;/p&gt;</comment>
                            <comment id="61789" author="vorburger" created="Mon, 19 Mar 2018 11:44:01 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=jluhrsen&quot; class=&quot;user-hover&quot; rel=&quot;jluhrsen&quot;&gt;jluhrsen&lt;/a&gt; just create a new JIRA, if still needed &lt;a href=&quot;https://lists.opendaylight.org/pipermail/infrautils-dev/2018-March/000631.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;following this email thread&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="61802" author="dfarrell07" created="Mon, 19 Mar 2018 21:03:28 +0000"  >&lt;p&gt;This is awesome, thanks &lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=vorburger&quot; class=&quot;user-hover&quot; rel=&quot;vorburger&quot;&gt;vorburger&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=jluhrsen&quot; class=&quot;user-hover&quot; rel=&quot;jluhrsen&quot;&gt;jluhrsen&lt;/a&gt; - Once you have an example of this in CSIT I&apos;d like to copy it in Int/Pack logic.&lt;/p&gt;</comment>
                            <comment id="61803" author="jluhrsen" created="Mon, 19 Mar 2018 21:28:17 +0000"  >&lt;blockquote&gt;&lt;p&gt;This is awesome, thanks Michael Vorburger!&lt;/p&gt;

&lt;p&gt;Jamo Luhrsen - Once you have an example of this in CSIT I&apos;d like to copy it in Int/Pack logic.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=dfarrell07&quot; class=&quot;user-hover&quot; rel=&quot;dfarrell07&quot;&gt;dfarrell07&lt;/a&gt; , here is a &lt;a href=&quot;https://git.opendaylight.org/gerrit/c/69575/4/jjb/integration/integration-deploy-controller-run-test.sh&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;patch&lt;/a&gt; where&lt;br/&gt;
I&apos;m grepping the karaf.log for the specific message. I&apos;ll figure out the REST way of doing this too and maybe propose that as well.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="25073">CONTROLLER-519</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="26814">DAEXIM-3</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="19506">INFRAUTILS-17</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="28880">INFRAUTILS-27</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="22209">ODLPARENT-86</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10002">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="25073">CONTROLLER-519</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>8415</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=8415]]></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="10320"><![CDATA[Nitrogen]]></customfieldvalue>

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

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

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