static CMPIStatus associatorNames( CMPIAssociationMI* self, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* objName, const char* assocClass, const char* resultClass, const char* role, const char* resultRole) { Target_Type _ctx; Target_Type _rslt; Target_Type _objName ; Target_Type _assocClass; Target_Type _resultClass; Target_Type _role; Target_Type _resultRole; CMPIStatus status = {CMPI_RC_ERR_NOT_SUPPORTED, NULL}; _SBLIM_TRACE(1,("associatorNames() called, ctx %p, rslt %p, objName %p, assocClass %s, resultClass %s, role %s, resultRole %s", ctx, rslt, objName, assocClass, resultClass, role, resultRole)); TARGET_THREAD_BEGIN_BLOCK; _ctx = SWIG_NewPointerObj((void*) ctx, SWIGTYPE_p__CMPIContext, 0); _rslt = SWIG_NewPointerObj((void*) rslt, SWIGTYPE_p__CMPIResult, 0); _objName = SWIG_NewPointerObj((void*) objName, SWIGTYPE_p__CMPIObjectPath, 0); _assocClass = (Target_Type)NULL; _resultClass = (Target_Type)NULL; _role = (Target_Type)NULL; _resultRole = (Target_Type)NULL; if (assocClass != NULL) { _assocClass = string2target(assocClass); } if (resultClass != NULL) { _resultClass = string2target(resultClass); } if (role != NULL) { _role = string2target(role); } if (resultRole != NULL) { _resultRole = string2target(resultRole); } TargetCall((ProviderMIHandle*)self->hdl, &status, "associator_names", 7, _ctx, _rslt, _objName, _assocClass, _resultClass, _role, _resultRole); TARGET_THREAD_END_BLOCK; _SBLIM_TRACE(1,("associatorNames() %s", (status.rc == CMPI_RC_OK)? "succeeded":"failed")); return status; }
/* * ExecQuery() - return a list of all the instances that satisfy the desired query filter. */ static CMPIStatus ExecQuery(CMPIInstanceMI * self, const CMPIContext * context, const CMPIResult * results, const CMPIObjectPath * reference, const char * query, const char * language) { Target_Type _context; Target_Type _result; Target_Type _reference; Target_Type _query; Target_Type _lang; CMPIStatus status = {CMPI_RC_ERR_NOT_SUPPORTED, NULL}; /* Return status of CIM operations. */ _SBLIM_TRACE(1,("ExecQuery() called, context %p, results %p, reference %p, query %s, language %s", context, results, reference, query, language)); TARGET_THREAD_BEGIN_BLOCK; _context = SWIG_NewPointerObj((void*) context, SWIGTYPE_p__CMPIContext, 0); _result = SWIG_NewPointerObj((void*) results, SWIGTYPE_p__CMPIResult, 0); _reference = SWIG_NewPointerObj((void*) reference, SWIGTYPE_p__CMPIObjectPath, 0); _query = string2target(query); _lang = string2target(language); TargetCall((ProviderMIHandle*)self->hdl, &status, "exec_query", 5, _context, _result, _reference, _query, _lang); TARGET_THREAD_END_BLOCK; /* Query filtering is not supported for this class. */ _SBLIM_TRACE(1,("ExecQuery() %s", (status.rc == CMPI_RC_OK)? "succeeded":"failed")); return status; }
} expected_type = FIX2ULONG(rb_ary_entry(argsout, 0)); actual_type = target_to_value(result, &value, expected_type); CMReturnData(rslt, &value, actual_type); CMReturnDone(rslt); #else Target_Type _rslt; Target_Type _in; Target_Type _out; _rslt = SWIG_NewPointerObj((void*) rslt, SWIGTYPE_p__CMPIResult, 0); _in = SWIG_NewPointerObj((void*) in, SWIGTYPE_p__CMPIArgs, 0); _out = SWIG_NewPointerObj((void*) out, SWIGTYPE_p__CMPIArgs, 0); Target_Type _method; _method = string2target(method); TargetCall((ProviderMIHandle*)self->hdl, &status, "invoke_method", 6, _ctx, _rslt, _objName, _method, _in, _out); #endif TARGET_THREAD_END_BLOCK; _SBLIM_TRACE(1,("invokeMethod() %s", (status.rc == CMPI_RC_OK)? "succeeded":"failed")); return status; } /*
static char * get_exc_trace() { char *tbstr = NULL; PyObject *iostrmod = NULL; PyObject *tbmod = NULL; PyObject *iostr = NULL; PyObject *obstr = NULL; PyObject *args = NULL; PyObject *newstr = NULL; PyObject *func = NULL; char* rv = NULL; PyObject *type, *value, *traceback; TARGET_THREAD_BEGIN_BLOCK; PyErr_Fetch(&type, &value, &traceback); debug("** type %p, value %p, traceback %p", type, value, traceback); PyErr_Print(); PyErr_Clear(); PyErr_NormalizeException(&type, &value, &traceback); debug("** type %p, value %p, traceback %p", type, value, traceback); iostrmod = PyImport_ImportModule("StringIO"); if (iostrmod==NULL) TB_ERROR("can't import StringIO"); iostr = PyObject_CallMethod(iostrmod, "StringIO", NULL); if (iostr==NULL) TB_ERROR("cStringIO.StringIO() failed"); tbmod = PyImport_ImportModule("traceback"); if (tbmod==NULL) TB_ERROR("can't import traceback"); obstr = PyObject_CallMethod(tbmod, "print_exception", "(OOOOO)", type ? type : Py_None, value ? value : Py_None, traceback ? traceback : Py_None, Py_None, iostr); if (obstr==NULL) { PyErr_Print(); TB_ERROR("traceback.print_exception() failed"); } Py_DecRef(obstr); obstr = PyObject_CallMethod(iostr, "getvalue", NULL); if (obstr==NULL) TB_ERROR("getvalue() failed."); if (!PyString_Check(obstr)) TB_ERROR("getvalue() did not return a string"); debug("%s", PyString_AsString(obstr)); args = PyTuple_New(2); PyTuple_SetItem(args, 0, string2target("\n")); PyTuple_SetItem(args, 1, string2target("<br>")); func = PyObject_GetAttrString(obstr, "replace"); //newstr = PyObject_CallMethod(obstr, "replace", args); newstr = PyObject_CallObject(func, args); tbstr = PyString_AsString(newstr); rv = fmtstr("plugin:%s", tbstr); cleanup: PyErr_Restore(type, value, traceback); if (rv == NULL) { rv = tbstr ? tbstr : ""; } Py_DecRef(func); Py_DecRef(args); Py_DecRef(newstr); Py_DecRef(iostr); Py_DecRef(obstr); Py_DecRef(iostrmod); Py_DecRef(tbmod); TARGET_THREAD_END_BLOCK; return rv; }