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

Roman Rakus reviewboard at gallagherhome.com
Tue May 14 14:43:02 UTC 2013


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

(Updated May 14, 2013, 2:43 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 0cd11d911fb2cf8c26376790c2c9f86cc30d8358 
  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 (updated)
-------

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/20130514/bf16255f/attachment-0001.html>


More information about the openlmi-devel mailing list