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

Jan Safranek reviewboard at gallagherhome.com
Fri May 17 07:30:01 UTC 2013


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



src/indmanager/ind_manager.h
<http://reviewboard-openlmi.rhcloud.com/r/351/#comment285>

    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.


- Jan Safranek


On May 16, 2013, 1:59 p.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, 1:59 p.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/20130517/6504a039/attachment-0001.html>


More information about the openlmi-devel mailing list