1
/*###############################################################################
2
# Linux Management Providers (LMP), OpenDRIM_RecordLogPackage provider package
3
# Copyright (C) 2007 Ilsoo Byun, ETRI <widepis@etri.re.kr, widepis@empal.com>
5
# This program is being developed under the "OpenDRIM" project.
6
# The "OpenDRIM" project web page: http://opendrim.sourceforge.net
7
# The "OpenDRIM" project mailing list: opendrim@googlegroups.com
9
# This program is free software; you can redistribute it and/or
10
# modify it under the terms of the GNU General Public License
11
# as published by the Free Software Foundation; version 2
14
# This program is distributed in the hope that it will be useful,
15
# but WITHOUT ANY WARRANTY; without even the implied warranty of
16
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
# GNU General Public License for more details.
19
# You should have received a copy of the GNU General Public License
20
# along with this program; if not, write to the Free Software
21
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22
#################################################################################
24
#################################################################################
25
# To contributors, please leave your contact information in this section
26
# AND comment your changes in the source code.
28
# Modified by 2008 Guillaume BOTTEX, ETRI <guillaumebottex@etri.re.kr, guillaumebottex@gmail.com>
29
###############################################################################*/
31
#include "cmpiOpenDRIM_RecordLogCapabilities.h"
32
#include "OpenDRIM_RecordLogCapabilitiesAccess.h"
34
static const CMPIBroker * _broker;
37
#define OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilitiesProviderSetInstance OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilitiesProviderModifyInstance
40
int OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_init(const CMPIBroker* broker);
42
int OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_finalize();
44
/* ---------------------------------------------------------------------------*/
45
/* Instance Provider Interface */
46
/* ---------------------------------------------------------------------------*/
48
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilitiesProviderCleanup(CMPIInstanceMI * mi, const CMPIContext* ctx, CMPIBoolean terminate) {
50
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_finalize();
52
CMSetStatus(&rc, (CMPIrc) errorCode);
57
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilitiesProviderEnumInstanceNames(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* ref) {
59
CMPIStatus rc = {CMPI_RC_OK, NULL};
60
vector<OpenDRIM_RecordLogCapabilities> instances;
63
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_retrieve(_broker, ctx, instances, NULL, errorMessage, "ein");
64
if (errorCode != OK) {
65
errorMessage = (string) OpenDRIM_RecordLogCapabilities_classnames[0] + ": " + errorMessage;
66
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
69
for (size_t i=0; i < instances.size(); i++) {
70
CMPIObjectPath* op = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_toCMPIObjectPath(_broker, instances[i]);
71
CMReturnObjectPath(rslt, op);
78
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilitiesProviderEnumInstances(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* ref, const char** properties) {
80
CMPIStatus rc = {CMPI_RC_OK, NULL};
81
vector<OpenDRIM_RecordLogCapabilities> instances;
84
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_retrieve(_broker, ctx, instances, properties, errorMessage, "ei");
85
if (errorCode != OK) {
86
errorMessage = (string) OpenDRIM_RecordLogCapabilities_classnames[0] + ": " + errorMessage;
87
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
90
for (size_t i=0; i < instances.size(); i++) {
91
CMPIInstance* ci = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_toCMPIInstance(_broker, instances[i]);
92
CMReturnInstance(rslt, ci);
99
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilitiesProviderGetInstance(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop, const char** properties) {
101
CMPIStatus rc = {CMPI_RC_OK, NULL};
102
OpenDRIM_RecordLogCapabilities instance;
103
OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_toCPP(_broker, cop, instance);
106
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_getInstance(_broker, ctx, instance, properties, errorMessage);
107
if (errorCode != OK) {
108
errorMessage = (string) OpenDRIM_RecordLogCapabilities_classnames[0] + ": " + errorMessage;
109
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
112
CMPIInstance* ci = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_toCMPIInstance(_broker, instance);
113
CMReturnInstance(rslt, ci);
119
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilitiesProviderSetInstance(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop, const CMPIInstance* ci, const char** properties) {
121
CMPIStatus rc = {CMPI_RC_OK, NULL};
122
OpenDRIM_RecordLogCapabilities newInstance, oldInstance;
123
OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_toCPP(_broker, ci, newInstance);
124
OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_toCPP(_broker, cop, oldInstance);
127
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_getInstance(_broker, ctx, oldInstance, properties, errorMessage);
128
if (errorCode != OK) {
129
errorMessage = (string) OpenDRIM_RecordLogCapabilities_classnames[0] + ": " + errorMessage;
130
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
133
errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_setInstance(_broker, ctx, newInstance, oldInstance, properties, errorMessage);
134
if (errorCode != OK) {
135
errorMessage = (string) OpenDRIM_RecordLogCapabilities_classnames[0] + ": " + errorMessage;
136
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
144
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilitiesProviderCreateInstance(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop, const CMPIInstance* ci) {
146
CMPIStatus rc = {CMPI_RC_OK, NULL};
147
OpenDRIM_RecordLogCapabilities instance;
148
OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_toCPP(_broker, ci, instance);
151
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_getInstance(_broker, ctx, instance, NULL, errorMessage);
152
if (errorCode != NOT_FOUND) {
154
errorCode = ALREADY_EXISTS;
155
errorMessage = (string) OpenDRIM_RecordLogCapabilities_classnames[0] + ": " + errorMessage;
156
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
159
errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_createInstance(_broker, ctx, instance, errorMessage);
160
if (errorCode != OK) {
161
errorMessage = (string) OpenDRIM_RecordLogCapabilities_classnames[0] + ": " + errorMessage;
162
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
165
errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_getInstance(_broker, ctx, instance, NULL, errorMessage);
166
if (errorCode != OK) {
167
errorMessage = (string) OpenDRIM_RecordLogCapabilities_classnames[0] + ": " + errorMessage;
168
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
171
CMPIObjectPath* _cop = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_toCMPIObjectPath(_broker, instance);
172
CMReturnObjectPath(rslt, _cop);
178
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilitiesProviderDeleteInstance(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop) {
180
CMPIStatus rc = {CMPI_RC_OK, NULL};
181
OpenDRIM_RecordLogCapabilities instance;
182
OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_toCPP(_broker, cop, instance);
185
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_getInstance(_broker, ctx, instance, NULL, errorMessage);
186
if (errorCode != OK) {
187
errorMessage = (string) OpenDRIM_RecordLogCapabilities_classnames[0] + ": " + errorMessage;
188
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
191
errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_deleteInstance(_broker, ctx, instance, errorMessage);
192
if (errorCode != OK) {
193
errorMessage = (string) OpenDRIM_RecordLogCapabilities_classnames[0] + ": " + errorMessage;
194
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
202
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilitiesProviderExecQuery(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* ref, const char* lang, const char* query) {
204
CMReturn(CMPI_RC_ERR_NOT_SUPPORTED);
207
/* ---------------------------------------------------------------------------*/
208
/* End of Instance Provider Interface */
209
/* ---------------------------------------------------------------------------*/
211
/* ---------------------------------------------------------------------------*/
212
/* Method Provider Interface */
213
/* ---------------------------------------------------------------------------*/
215
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilitiesProviderMethodCleanup(CMPIMethodMI * mi, const CMPIContext * ctx, CMPIBoolean terminate) {
217
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_finalize();
219
CMSetStatus(&rc, (CMPIrc) errorCode);
224
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilitiesProviderInvokeMethod(CMPIMethodMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* ref, const char* methodName, const CMPIArgs* in, CMPIArgs* out) {
226
CMPIStatus rc = {CMPI_RC_OK, NULL};
227
OpenDRIM_RecordLogCapabilities instance;
228
OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_toCPP(_broker, ref, instance);
231
const char* properties[] = {"InstanceID"};
232
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_getInstance(_broker, ctx, instance, properties, errorMessage);
233
if (errorCode != OK) {
234
errorMessage = (string) OpenDRIM_RecordLogCapabilities_classnames[0] + ": " + errorMessage;
235
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
239
if ((string) methodName =="CreateGoalSettings") {
240
unsigned short returnValue;
241
OpenDRIM_RecordLogCapabilities_CreateGoalSettings_In inArgs;
242
OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_toCPP(_broker, in, inArgs);
243
OpenDRIM_RecordLogCapabilities_CreateGoalSettings_Out outArgs;
245
errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_CreateGoalSettings(_broker, ctx, instance, returnValue, inArgs, outArgs, errorMessage);
246
if (errorCode != OK) {
247
errorMessage = (string) OpenDRIM_RecordLogCapabilities_classnames[0] + ": " + errorMessage;
248
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
251
OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_toCMPIArg(_broker, out, outArgs);
253
CMPIValue value = CT_toCMPI(returnValue);
254
CMReturnData(rslt, &value.uint16, CMPI_uint16);
257
errorMessage = (string) OpenDRIM_RecordLogCapabilities_classnames[0] + ": " + "The requested method (" + (string) methodName +") was not found.";
258
CMSetStatusWithChars(_broker, &rc, (CMPIrc) NOT_SUPPORTED, errorMessage.c_str());
263
CMReturn(CMPI_RC_OK);
266
/* ---------------------------------------------------------------------------*/
267
/* End of Method Provider Interface */
268
/* ---------------------------------------------------------------------------*/
270
/* ---------------------------------------------------------------------------*/
271
/* Provider Factory */
272
/* ---------------------------------------------------------------------------*/
274
int OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_init(const CMPIBroker* broker) {
277
static bool initialized = false;
280
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_load(broker, errorMessage);
281
if (errorCode != OK) {
282
errorMessage += "OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_init FAILED: " + (string) OpenDRIM_RecordLogCapabilities_classnames[0] + ": " + errorMessage;
283
string cmd = "/bin/echo \"" + errorMessage + "\" >> cmpi_prov_debug.txt";
293
int OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_finalize() {
295
static bool finalized = false;
298
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_unload(errorMessage);
299
if (errorCode != OK) {
300
errorMessage += "OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_unload FAILED: " + (string) OpenDRIM_RecordLogCapabilities_classnames[0] + ": " + errorMessage;
301
string cmd = "/bin/echo \"" + errorMessage + "\" >> cmpi_prov_debug.txt";
311
#define OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_INIT if (OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_init(_broker) < 0) return NULL
313
CMInstanceMIStub(OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilitiesProvider, OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilitiesProvider, _broker, OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_INIT);
314
CMMethodMIStub(OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilitiesProvider, OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilitiesProvider, _broker, OpenDRIM_RecordLogPackage_OpenDRIM_RecordLogCapabilities_INIT);
316
/* ---------------------------------------------------------------------------*/
317
/* End of Provider Factory */
318
/* ---------------------------------------------------------------------------*/