On Thu, Oct 12, 2017 at 6:10 AM, Tom Pantelis <tompante...@gmail.com> wrote:

>
>
> On Thu, Oct 12, 2017 at 6:05 AM, Faseela K <faseel...@ericsson.com> wrote:
>
>>
>>
>>
>>
>> *From:* Tom Pantelis [mailto:tompante...@gmail.com]
>> *Sent:* Thursday, October 12, 2017 3:23 PM
>> *To:* Faseela K <faseel...@ericsson.com>
>> *Cc:* Anil Vishnoi <vishnoia...@gmail.com>; Muthukumaran K <
>> muthukumara...@ericsson.com>; infrautils-...@lists.opendaylight.org;
>> controller-dev@lists.opendaylight.org; R Srinivasan E <
>> r.e.sriniva...@ericsson.com>; Dayavanti Gopal Kamath <
>> dayavanti.gopal.kam...@ericsson.com>
>> *Subject:* Re: [controller-dev] Expose Datastore health to applications
>> via infrautils.diagstatus
>>
>>
>>
>>
>>
>> So here is how diagstatus module works – any application should register
>> as a “service” with the framework, report an initial status(using the APIs
>> provided by diagstatus).
>>
>> There is another OsgiService “ServiceStatusProvider” exposed, and if
>> applications implement the same, that will be called everytime an external
>> request is made to get the current service status.
>>
>> In looking at the API, it appears an app would register with the
>> DiagStatusService and invoke report each time its status changes. An app
>> can also register a ServiceStatusProvider to report its status when
>> queried. It seems this is an alternative to interacting with the
>> DiagStatusService in looking at the DiagStatusServiceImpl which always
>> calls updateServiceStatusMap to query the ServiceStatusProviders from the
>> get* methods. Given that, why would an app need to explicitly register and
>> push its status to the DiagStatusService? Why not just advertise a
>> ServiceStatusProvider? This seems simpler. In that case,
>> DiagStatusServiceImpl doesn't need to maintain the statusMap - it would
>> just query the ServiceStatusProvider(s) on demand. Or am I missing
>> something?
>>
>>
>>
>> For services like “DATASTORE” only the pull model is required, just
>> register the service and implement ServiceStatusProvider.
>>
>> There are some usecases in genius, where a push model was preferred, and
>> hence we have kept both the options open.
>>
>
> OK.  By "just register the service" I assume you mean just advertise a 
> ServiceStatusProvider
> OSGi service. It is not necessary to explicitly register with the 
> DiagStatusService
> as that is implicit by advertising a ServiceStatusProvider.
>

The code in DiagStatusServiceImpl does not enforce explicit registration -
one can just call report w/o a prior register call - not sure if that was
the original intent.  Similarly a ServiceStatusProvider's status is
reported even if it didn't explicitly call register.

>
>>
>> Thanks,
>>
>> Faseela
>>
>>
>>
>
>
_______________________________________________
controller-dev mailing list
controller-dev@lists.opendaylight.org
https://lists.opendaylight.org/mailman/listinfo/controller-dev

Reply via email to