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_LogManagesRecord.h"
32
#include "OpenDRIM_LogManagesRecordAccess.h"
34
static const CMPIBroker * _broker;
37
#define OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProviderSetInstance OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProviderModifyInstance
40
int OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_init(const CMPIBroker* broker);
42
int OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_finalize();
44
/* ---------------------------------------------------------------------------*/
45
/* Instance Provider Interface */
46
/* ---------------------------------------------------------------------------*/
48
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProviderCleanup(CMPIInstanceMI * mi, const CMPIContext* ctx, CMPIBoolean terminate) {
50
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_finalize();
52
CMSetStatus(&rc, (CMPIrc) errorCode);
57
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProviderEnumInstanceNames(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* ref) {
59
CMPIStatus rc = {CMPI_RC_OK, NULL};
60
vector<OpenDRIM_LogManagesRecord> instances;
63
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_retrieve(_broker, ctx, instances, NULL, errorMessage, "ein");
64
if (errorCode != OK) {
65
errorMessage = (string) OpenDRIM_LogManagesRecord_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_LogManagesRecord_toCMPIObjectPath(_broker, instances[i]);
71
CMReturnObjectPath(rslt, op);
78
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProviderEnumInstances(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* ref, const char** properties) {
80
CMPIStatus rc = {CMPI_RC_OK, NULL};
81
vector<OpenDRIM_LogManagesRecord> instances;
84
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_retrieve(_broker, ctx, instances, properties, errorMessage, "ei");
85
if (errorCode != OK) {
86
errorMessage = (string) OpenDRIM_LogManagesRecord_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_LogManagesRecord_toCMPIInstance(_broker, instances[i]);
92
CMReturnInstance(rslt, ci);
99
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProviderGetInstance(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop, const char** properties) {
101
CMPIStatus rc = {CMPI_RC_OK, NULL};
102
OpenDRIM_LogManagesRecord instance;
103
OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_toCPP(_broker, cop, instance);
106
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_getInstance(_broker, ctx, instance, properties, errorMessage);
107
if (errorCode != OK) {
108
errorMessage = (string) OpenDRIM_LogManagesRecord_classnames[0] + ": " + errorMessage;
109
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
112
CMPIInstance* ci = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_toCMPIInstance(_broker, instance);
113
CMReturnInstance(rslt, ci);
119
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProviderSetInstance(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_LogManagesRecord newInstance, oldInstance;
123
OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_toCPP(_broker, ci, newInstance);
124
OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_toCPP(_broker, cop, oldInstance);
127
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_getInstance(_broker, ctx, oldInstance, properties, errorMessage);
128
if (errorCode != OK) {
129
errorMessage = (string) OpenDRIM_LogManagesRecord_classnames[0] + ": " + errorMessage;
130
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
133
errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_setInstance(_broker, ctx, newInstance, oldInstance, properties, errorMessage);
134
if (errorCode != OK) {
135
errorMessage = (string) OpenDRIM_LogManagesRecord_classnames[0] + ": " + errorMessage;
136
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
144
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProviderCreateInstance(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop, const CMPIInstance* ci) {
146
CMPIStatus rc = {CMPI_RC_OK, NULL};
147
OpenDRIM_LogManagesRecord instance;
148
OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_toCPP(_broker, ci, instance);
151
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_getInstance(_broker, ctx, instance, NULL, errorMessage);
152
if (errorCode != NOT_FOUND) {
154
errorCode = ALREADY_EXISTS;
155
errorMessage = (string) OpenDRIM_LogManagesRecord_classnames[0] + ": " + errorMessage;
156
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
159
errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_createInstance(_broker, ctx, instance, errorMessage);
160
if (errorCode != OK) {
161
errorMessage = (string) OpenDRIM_LogManagesRecord_classnames[0] + ": " + errorMessage;
162
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
165
errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_getInstance(_broker, ctx, instance, NULL, errorMessage);
166
if (errorCode != OK) {
167
errorMessage = (string) OpenDRIM_LogManagesRecord_classnames[0] + ": " + errorMessage;
168
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
171
CMPIObjectPath* _cop = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_toCMPIObjectPath(_broker, instance);
172
CMReturnObjectPath(rslt, _cop);
178
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProviderDeleteInstance(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop) {
180
CMPIStatus rc = {CMPI_RC_OK, NULL};
181
OpenDRIM_LogManagesRecord instance;
182
OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_toCPP(_broker, cop, instance);
185
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_getInstance(_broker, ctx, instance, NULL, errorMessage);
186
if (errorCode != OK) {
187
errorMessage = (string) OpenDRIM_LogManagesRecord_classnames[0] + ": " + errorMessage;
188
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
191
errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_deleteInstance(_broker, ctx, instance, errorMessage);
192
if (errorCode != OK) {
193
errorMessage = (string) OpenDRIM_LogManagesRecord_classnames[0] + ": " + errorMessage;
194
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
202
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProviderExecQuery(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
/* Association Provider Interface */
213
/* ---------------------------------------------------------------------------*/
215
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProviderAssociationCleanup(CMPIAssociationMI * mi, const CMPIContext* ctx, CMPIBoolean terminate) {
217
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_finalize();
219
CMSetStatus(&rc, (CMPIrc) errorCode);
224
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProviderAssociatorNames(CMPIAssociationMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop, const char* assocClass, const char* resultClass, const char* role, const char* resultRole) {
226
CMPIStatus rc = {CMPI_RC_OK, NULL};
230
vector<Instance> associatedInstances;
232
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_associator(_broker, ctx, cop, known, assocClass, resultClass, role, resultRole, NULL, associatedInstances, leftToRight, errorMessage, "an");
233
if (errorCode != OK) {
234
errorMessage = (string) OpenDRIM_LogManagesRecord_classnames[0] + ": " + errorMessage;
235
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
239
for (size_t i=0; i < associatedInstances.size(); i++)
240
CMReturnObjectPath(rslt, associatedInstances[i].getObjectpath().getHdl());
246
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProviderAssociators(CMPIAssociationMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop, const char* assocClass, const char* resultClass, const char* role, const char* resultRole, const char** properties) {
248
CMPIStatus rc = {CMPI_RC_OK, NULL};
252
vector<Instance> associatedInstances;
254
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_associator(_broker, ctx, cop, known, assocClass, resultClass, role, resultRole, properties, associatedInstances, leftToRight, errorMessage, "a");
255
if (errorCode != OK) {
256
errorMessage = (string) OpenDRIM_LogManagesRecord_classnames[0] + ": " + errorMessage;
257
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
261
for (size_t i=0; i < associatedInstances.size(); i++)
262
CMReturnInstance(rslt, associatedInstances[i].getHdl());
268
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProviderReferenceNames(CMPIAssociationMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop, const char* assocClass, const char* role) {
270
CMPIStatus rc = {CMPI_RC_OK, NULL};
274
vector<Instance> associatedInstances;
276
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_associator(_broker, ctx, cop, known, assocClass, NULL, role, NULL, NULL, associatedInstances, leftToRight, errorMessage, "an");
277
if (errorCode != OK) {
278
errorMessage = (string) OpenDRIM_LogManagesRecord_classnames[0] + ": " + errorMessage;
279
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
283
vector<OpenDRIM_LogManagesRecord> associationInstances;
285
errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_referenceRecordToLog(_broker, ctx, known, associatedInstances, associationInstances, NULL, errorMessage, "rn");
287
errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_referenceLogToRecord(_broker, ctx, known, associatedInstances, associationInstances, NULL, errorMessage, "rn");
288
if (errorCode != OK) {
289
errorMessage = (string) OpenDRIM_LogManagesRecord_classnames[0] + ": " + errorMessage;
290
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
294
for (size_t i=0; i < associationInstances.size(); i++) {
295
CMPIObjectPath* op = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_toCMPIObjectPath(_broker, associationInstances[i]);
296
CMReturnObjectPath(rslt, op);
302
CMPIStatus OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProviderReferences(CMPIAssociationMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop, const char* assocClass, const char* role, const char** properties) {
304
CMPIStatus rc = {CMPI_RC_OK, NULL};
308
vector<Instance> associatedInstances;
310
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_associator(_broker, ctx, cop, known, assocClass, NULL, role, NULL, NULL, associatedInstances, leftToRight, errorMessage, "an");
311
if (errorCode != OK) {
312
errorMessage = (string) OpenDRIM_LogManagesRecord_classnames[0] + ": " + errorMessage;
313
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
317
vector<OpenDRIM_LogManagesRecord> associationInstances;
319
errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_referenceRecordToLog(_broker, ctx, known, associatedInstances, associationInstances, properties, errorMessage, "r");
321
errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_referenceLogToRecord(_broker, ctx, known, associatedInstances, associationInstances, properties, errorMessage, "r");
322
if (errorCode != OK) {
323
errorMessage = (string) OpenDRIM_LogManagesRecord_classnames[0] + ": " + errorMessage;
324
CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
328
for (size_t i=0; i < associationInstances.size(); i++) {
329
CMPIInstance* inst = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_toCMPIInstance(_broker, associationInstances[i]);
330
CMReturnInstance(rslt, inst);
336
/* ---------------------------------------------------------------------------*/
337
/* End Of Association Provider Interface */
338
/* ---------------------------------------------------------------------------*/
340
/* ---------------------------------------------------------------------------*/
341
/* Provider Factory */
342
/* ---------------------------------------------------------------------------*/
344
int OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_init(const CMPIBroker* broker) {
347
static bool initialized = false;
350
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_load(broker, errorMessage);
351
if (errorCode != OK) {
352
errorMessage += "OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_init FAILED: " + (string) OpenDRIM_LogManagesRecord_classnames[0] + ": " + errorMessage;
353
string cmd = "/bin/echo \"" + errorMessage + "\" >> cmpi_prov_debug.txt";
363
int OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_finalize() {
365
static bool finalized = false;
368
int errorCode = OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_unload(errorMessage);
369
if (errorCode != OK) {
370
errorMessage += "OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_unload FAILED: " + (string) OpenDRIM_LogManagesRecord_classnames[0] + ": " + errorMessage;
371
string cmd = "/bin/echo \"" + errorMessage + "\" >> cmpi_prov_debug.txt";
381
#define OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_INIT if (OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_init(_broker) < 0) return NULL
383
CMInstanceMIStub(OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProvider, OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProvider, _broker, OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_INIT);
384
CMAssociationMIStub(OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProvider, OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecordProvider, _broker, OpenDRIM_RecordLogPackage_OpenDRIM_LogManagesRecord_INIT);
386
/* ---------------------------------------------------------------------------*/
387
/* End of Provider Factory */
388
/* ---------------------------------------------------------------------------*/