1
/*###############################################################################
2
# Linux Management Providers (LMP), SSH provider package
3
# Copyright (C) 2010 Feng Zhanlei, REDFLAG <fengzhanlei@redflag-linux.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 Guillaume BOTTEX <guillaumebottex@uxsystem.net>, UXSystem, 2010
29
###############################################################################*/
31
#include "OpenDRIM_SSHConformsToProfileAccess.h"
33
int SSH_OpenDRIM_SSHConformsToProfile_load(const CMPIBroker* broker, string& errorMessage) {
36
* for Direct Invocation
39
CF_assert(SSH_CIM_RegisteredProfile_load(broker, errorMessage));
40
CF_assert(SSH_CIM_ManagedElement_load(broker, errorMessage));
47
int SSH_OpenDRIM_SSHConformsToProfile_unload(string& errorMessage) {
50
* for Direct Invocation
53
CF_assert(SSH_CIM_RegisteredProfile_unload(errorMessage));
54
CF_assert(SSH_CIM_ManagedElement_unload(errorMessage));
61
int SSH_OpenDRIM_SSHConformsToProfile_isAssociated(const Instance& ConformantStandard, const Instance& ManagedElement, bool& isAssociated, string& errorMessage) {
63
// TODO Determine if the association can be established or not
69
int SSH_OpenDRIM_SSHConformsToProfile_retrieve(const CMPIBroker* broker, const CMPIContext* ctx, vector<OpenDRIM_SSHConformsToProfile>& result, const char** properties, string& errorMessage, const string& discriminant) {
72
* The following code has been generated for your convenience.
73
* Feel free to modify/delete.
75
vector<Instance> subjects;
76
// Only get the instance names
77
CF_assert(SSH_OpenDRIM_SSHConformsToProfile_enumerateConformantStandards(broker, ctx, subjects, NULL, true, errorMessage));
78
// OR get the full instances IF we need the content of the instance to evaluate the association condition OR to set the reference properties
79
// CF_assert(SSH_OpenDRIM_SSHConformsToProfile_enumerateConformantStandards(broker, ctx, subjects, NULL, false, errorMessage));
80
vector<Instance>::iterator c = subjects.begin();
81
vector<Instance>::iterator end = subjects.end();
82
for (; c != end; ++c) {
83
bool leftToRight = true;
84
vector<Instance> associatedInstances;
85
CF_assert(SSH_OpenDRIM_SSHConformsToProfile_associator(broker, ctx,
86
(*c).getObjectpath().getHdl(), (*c),
87
ConformantStandard_classnames[0], ManagedElement_classnames[0],
88
ConformantStandard_role.c_str(), ManagedElement_role.c_str(), NULL,
89
associatedInstances, leftToRight, errorMessage, "an"));
91
string ref_discriminant = discriminant == "ein" ? "rn" : "r";
92
CF_assert(SSH_OpenDRIM_SSHConformsToProfile_referenceConformantStandardToManagedElement(broker, ctx, (*c), associatedInstances, result, NULL, errorMessage, ref_discriminant));
98
int SSH_OpenDRIM_SSHConformsToProfile_getInstance(const CMPIBroker* broker, const CMPIContext* ctx, OpenDRIM_SSHConformsToProfile& instance, const char** properties, string& errorMessage) {
101
* The following code has been generated for your convenience.
102
* Feel free to modify/delete.
104
Objectpath ConformantStandard_objectpath;
105
instance.getConformantStandard(ConformantStandard_objectpath);
106
Instance ConformantStandard_instance;
107
CF_assert(SSH_OpenDRIM_SSHConformsToProfile_getConformantStandard(broker, ctx, ConformantStandard_objectpath, ConformantStandard_instance, NULL, errorMessage));
109
Objectpath ManagedElement_objectpath;
110
instance.getManagedElement(ManagedElement_objectpath);
111
Instance ManagedElement_instance;
112
CF_assert(SSH_OpenDRIM_SSHConformsToProfile_getManagedElement(broker, ctx, ManagedElement_objectpath, ManagedElement_instance, NULL, errorMessage));
114
bool isAssociated = false;
115
CF_assert(SSH_OpenDRIM_SSHConformsToProfile_isAssociated(ConformantStandard_instance, ManagedElement_instance, isAssociated, errorMessage));
118
if(errorMessage.empty())
119
errorMessage = "No instance";
127
int SSH_OpenDRIM_SSHConformsToProfile_setInstance(const CMPIBroker* broker, const CMPIContext* ctx, const OpenDRIM_SSHConformsToProfile& newInstance, const OpenDRIM_SSHConformsToProfile& oldInstance, const char** properties, string& errorMessage) {
131
return NOT_SUPPORTED;
134
int SSH_OpenDRIM_SSHConformsToProfile_createInstance(const CMPIBroker* broker, const CMPIContext* ctx, const OpenDRIM_SSHConformsToProfile& instance, string& errorMessage) {
138
return NOT_SUPPORTED;
141
int SSH_OpenDRIM_SSHConformsToProfile_deleteInstance(const CMPIBroker* broker, const CMPIContext* ctx, const OpenDRIM_SSHConformsToProfile& instance, string& errorMessage) {
145
return NOT_SUPPORTED;
148
int SSH_OpenDRIM_SSHConformsToProfile_associatorConformantStandardToManagedElement(const CMPIBroker* broker, const CMPIContext* ctx, const Instance& ConformantStandard_instance, const char** properties, vector<Instance>& ManagedElement_associatedInstances, string& errorMessage, const string& discriminant) {
151
* The following code has been generated for your convenience.
152
* Feel free to modify/delete.
154
vector<Instance> ManagedElement_instances;
155
if (discriminant=="a")
156
CF_assert(SSH_OpenDRIM_SSHConformsToProfile_enumerateManagedElements(broker, ctx, ManagedElement_instances, properties, false, errorMessage));
157
if (discriminant=="an") {
158
// Only get the instance names
159
CF_assert(SSH_OpenDRIM_SSHConformsToProfile_enumerateManagedElements(broker, ctx, ManagedElement_instances, properties, true, errorMessage));
160
// OR get the full instances IF we need the content of the instance to evaluate the association condition OR to set the reference properties
161
// CF_assert(SSH_OpenDRIM_SSHConformsToProfile_enumerateManagedElements(broker, ctx, ManagedElement_instances, properties, false, errorMessage));
164
for (size_t i=0; i<ManagedElement_instances.size(); i++) {
165
bool isAssociated = false;
166
CF_assert(SSH_OpenDRIM_SSHConformsToProfile_isAssociated(ConformantStandard_instance, ManagedElement_instances[i], isAssociated, errorMessage));
168
ManagedElement_associatedInstances.push_back(ManagedElement_instances[i]);
174
int SSH_OpenDRIM_SSHConformsToProfile_associatorManagedElementToConformantStandard(const CMPIBroker* broker, const CMPIContext* ctx, const Instance& ManagedElement_instance, const char** properties, vector<Instance>& ConformantStandard_associatedInstances, string& errorMessage, const string& discriminant) {
177
* The following code has been generated for your convenience.
178
* Feel free to modify/delete.
180
vector<Instance> ConformantStandard_instances;
181
if (discriminant=="a")
182
CF_assert(SSH_OpenDRIM_SSHConformsToProfile_enumerateConformantStandards(broker, ctx, ConformantStandard_instances, properties, false, errorMessage));
183
if (discriminant=="an") {
184
// Only get the instance names
185
CF_assert(SSH_OpenDRIM_SSHConformsToProfile_enumerateConformantStandards(broker, ctx, ConformantStandard_instances, properties, true, errorMessage));
186
// OR get the full instances IF we need the content of the instance to evaluate the association condition OR to set the reference properties
187
// CF_assert(SSH_OpenDRIM_SSHConformsToProfile_enumerateConformantStandards(broker, ctx, ConformantStandard_instances, properties, false, errorMessage));
190
for (size_t i=0; i<ConformantStandard_instances.size(); i++) {
191
bool isAssociated = false;
192
CF_assert(SSH_OpenDRIM_SSHConformsToProfile_isAssociated(ConformantStandard_instances[i], ManagedElement_instance, isAssociated, errorMessage));
194
ConformantStandard_associatedInstances.push_back(ConformantStandard_instances[i]);
200
int SSH_OpenDRIM_SSHConformsToProfile_referenceConformantStandardToManagedElement(const CMPIBroker* broker, const CMPIContext* ctx, const Instance& ConformantStandard_instance, const vector<Instance>& ManagedElement_instances, vector<OpenDRIM_SSHConformsToProfile>& OpenDRIM_SSHConformsToProfile_instances, const char** properties, string& errorMessage, const string& discriminant) {
203
* The following code has been generated for your convenience.
204
* Feel free to modify/delete.
206
for (size_t i=0; i < ManagedElement_instances.size(); i++) {
207
OpenDRIM_SSHConformsToProfile instance;
208
instance.setConformantStandard(((Instance) ConformantStandard_instance).getObjectpath());
209
instance.setManagedElement(((Instance) ManagedElement_instances[i]).getObjectpath());
211
OpenDRIM_SSHConformsToProfile_instances.push_back(instance);
217
int SSH_OpenDRIM_SSHConformsToProfile_referenceManagedElementToConformantStandard(const CMPIBroker* broker, const CMPIContext* ctx, const Instance& ManagedElement_instance, const vector<Instance>& ConformantStandard_instances, vector<OpenDRIM_SSHConformsToProfile>& OpenDRIM_SSHConformsToProfile_instances, const char** properties, string& errorMessage, const string& discriminant) {
220
* The following code has been generated for your convenience.
221
* Feel free to modify/delete.
223
for (size_t i=0; i < ConformantStandard_instances.size(); i++) {
224
OpenDRIM_SSHConformsToProfile instance;
225
instance.setConformantStandard(((Instance) ConformantStandard_instances[i]).getObjectpath());
226
instance.setManagedElement(((Instance) ManagedElement_instance).getObjectpath());
228
OpenDRIM_SSHConformsToProfile_instances.push_back(instance);
234
int SSH_OpenDRIM_SSHConformsToProfile_populate(OpenDRIM_SSHConformsToProfile& instance, string& errorMessage) {