Review Request 351: Indication manager [1/1] Indication manager

Roman Rakus reviewboard at gallagherhome.com
Fri May 24 16:00:16 UTC 2013



> On May 17, 2013, 7:30 a.m., Jan Safranek wrote:
> > src/indmanager/ind_manager.h, lines 60-63
> > <http://reviewboard-openlmi.rhcloud.com/r/351/diff/2/?file=2297#file2297line60>
> >
> >     I see now, the function does not actually spawn anything, it just waits for an event. The name confused me a bit. I leave it to you judgement if you rename it or not.
> >     
> >     Anyway, I'd appreciate some more introduction, like:
> >     
> >     - the ind. manager works in two modes (polling/with IMInstGather callback)
> >     
> >     - the ind. manager can serve watch multiple classes simultaneously, but they must share the callbacks (?)
> >     
> >     - some real-life example would be nice.
> >     
> >     This does not need to be documented in the code, it can be in README or Usage.txt.

It would be good to rename it, but I'm out of any idea how to name it. Watcher?
README is definetely missing. But I also like comments in the header files.

Regarding the question mark - yes, only 1 callback. I want to keep it as simple as possible (for using). It is supposed that you will have more indications providers doing basic things. I will also add it to documentation.


- Roman


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard-openlmi.rhcloud.com/r/351/#review439
-----------------------------------------------------------


On May 16, 2013, 11:59 a.m., Roman Rakus wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard-openlmi.rhcloud.com/r/351/
> -----------------------------------------------------------
> 
> (Updated May 16, 2013, 11:59 a.m.)
> 
> 
> Review request for OpenLMI Developers.
> 
> 
> Repository: openlmi-providers
> 
> 
> Description
> -------
> 
> Indication manager
> 
> Signed-off-by: Roman Rakus <rrakus at redhat.com>
> 
> 
> Diffs
> -----
> 
>   CMakeLists.txt f25850e1640f52aed9f18c3bd343d41f7f5f21a4 
>   src/CMakeLists.txt 9f714d080d8541c368dedc235996e7a790930fff 
>   src/indmanager/CMakeLists.txt PRE-CREATION 
>   src/indmanager/ind_manager.h PRE-CREATION 
>   src/indmanager/ind_manager.c PRE-CREATION 
>   src/indmanager/openlmiindmanager.pc.in PRE-CREATION 
> 
> Diff: http://reviewboard-openlmi.rhcloud.com/r/351/diff/
> 
> 
> Testing
> -------
> 
> For testing purposes I used the following provider:
> #include <konkret/konkret.h>
> #include "LMI_AccountInstCreationIndication.h"
> 
> #include "ind_manager.h"
> #include <stdbool.h>
> 
> static const CMPIBroker* _cb = NULL;
> 
> static IMManager *im = NULL;
> IMError im_err = IM_ERR_OK;
> 
> static bool filter_checker(const CMPISelectExp *filter)
> {
>     //TODO - true checking
>     return true;
> }
> 
> // TODO - remove !
> #include <unistd.h>
> static bool spawner(void *data)
> {
>     //TODO - true checking
>     return true;
> }
> 
> // TODO - remove !
> #include <unistd.h>
> static bool spawner(void *data)
> {
>     //TODO - inotify
>     sleep(10);
>     return true;
> }
> 
> static void LMI_AccountInstCreationIndicationInitialize()
> {
>     // startup indication manager
>     im = im_create_manager(NULL, filter_checker, true, spawner,
>                            IM_IND_CREATION, (CMPIBroker *)_cb, &im_err);
> }
> 
> static CMPIStatus LMI_AccountInstCreationIndicationIndicationCleanup(
>     CMPIIndicationMI* mi,
>     const CMPIContext* cc,
>     CMPIBoolean term)
> {
>     // destroy indication manager
>     im_destroy_manager(im, cc, &im_err);
>     CMReturn(CMPI_RC_OK);
> }
> 
> static CMPIStatus LMI_AccountInstCreationIndicationAuthorizeFilter(
>     CMPIIndicationMI* mi,
>     const CMPIContext* cc,
>     const CMPISelectExp* se,
>     const char* ns,
>     const CMPIObjectPath* op,
>     const char* user)
> {
>     // verify filter
>     im_verify_filter(im, se, cc, &im_err);
>     CMReturn(CMPI_RC_OK);
> }
> 
> static CMPIStatus LMI_AccountInstCreationIndicationMustPoll(
>     CMPIIndicationMI* mi,
>     const CMPIContext* cc,
>     const CMPISelectExp* se,
>     const char* ns, 
>     const CMPIObjectPath* op)
> {
>   // yes, this is not supported :(
>     CMReturn(CMPI_RC_ERR_NOT_SUPPORTED);
> }
> 
> static CMPIStatus LMI_AccountInstCreationIndicationActivateFilter(
>     CMPIIndicationMI* mi,
>     const CMPIContext* cc,
>     const CMPISelectExp* se,
>     const char* ns,
>     const CMPIObjectPath* op,
>     CMPIBoolean firstActivation)
> {
>     // verify filter and add it via indication manager
>     im_verify_filter(im, se, cc, &im_err);
>     im_add_filter(im, (CMPISelectExp*)se, cc, &im_err);
>     CMReturn(CMPI_RC_OK);
> }
> 
> static CMPIStatus LMI_AccountInstCreationIndicationDeActivateFilter(
>     CMPIIndicationMI* mi,
>     const CMPIContext* cc,
>     const CMPISelectExp* se,
>     const char* ns,
>     const CMPIObjectPath* op,
>     CMPIBoolean lastActivation)
> {
>     // remove filter from indication manager
>     im_remove_filter(im, se, cc, &im_err);
>     CMReturn(CMPI_RC_OK);
> }
> 
> static CMPIStatus LMI_AccountInstCreationIndicationEnableIndications(
>     CMPIIndicationMI* mi, 
>     const CMPIContext* cc)
> {
>     // start indications
>     im_start_ind(im, cc, &im_err);
>     CMReturn(CMPI_RC_OK);
> }
> 
> static CMPIStatus LMI_AccountInstCreationIndicationDisableIndications(
>     CMPIIndicationMI* mi, 
>     const CMPIContext* cc)
> {
>     // stop indications
>     im_stop_ind(im, cc, &im_err);
>     CMReturn(CMPI_RC_OK);
> }
> 
> CMIndicationMIStub(
>     LMI_AccountInstCreationIndication,
>     LMI_AccountInstCreationIndication, 
>     _cb, 
>     LMI_AccountInstCreationIndicationInitialize())
> 
> KONKRET_REGISTRATION(
>     "root/cimv2",
>     "LMI_AccountInstCreationIndication",
>     "LMI_AccountInstCreationIndication",
>     "indication")
> 
> 
> Thanks,
> 
> Roman Rakus
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.fedorahosted.org/pipermail/openlmi-devel/attachments/20130524/00b25e4c/attachment.html>


More information about the openlmi-devel mailing list