~ubuntu-branches/ubuntu/oneiric/opendrim-lmp-ssh/oneiric

« back to all changes in this revision

Viewing changes to OpenDRIM_SSHConformsToProfile/OpenDRIM_SSHConformsToProfileAccess.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Guillaume BOTTEX
  • Date: 2010-07-07 11:04:10 UTC
  • Revision ID: james.westby@ubuntu.com-20100707110410-2bojrtqjp582wiy8
Tags: upstream-1.0.0
ImportĀ upstreamĀ versionĀ 1.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*###############################################################################
 
2
# Linux Management Providers (LMP), SSH provider package
 
3
# Copyright (C) 2010 Feng Zhanlei, REDFLAG <fengzhanlei@redflag-linux.com>
 
4
 
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
 
8
 
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
 
12
# of the License.
 
13
 
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.
 
18
 
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
#################################################################################
 
23
 
 
24
#################################################################################
 
25
# To contributors, please leave your contact information in this section
 
26
# AND comment your changes in the source code.
 
27
 
28
# Modified by Guillaume BOTTEX <guillaumebottex@uxsystem.net>, UXSystem, 2010
 
29
###############################################################################*/
 
30
 
 
31
#include "OpenDRIM_SSHConformsToProfileAccess.h"
 
32
 
 
33
int SSH_OpenDRIM_SSHConformsToProfile_load(const CMPIBroker* broker, string& errorMessage) {
 
34
        _E_;
 
35
        /*
 
36
         * for Direct Invocation
 
37
         */
 
38
        /*
 
39
        CF_assert(SSH_CIM_RegisteredProfile_load(broker, errorMessage));
 
40
        CF_assert(SSH_CIM_ManagedElement_load(broker, errorMessage));
 
41
        */
 
42
        // TODO
 
43
        _L_;
 
44
        return OK;
 
45
}
 
46
 
 
47
int SSH_OpenDRIM_SSHConformsToProfile_unload(string& errorMessage) {
 
48
        _E_;
 
49
        /*
 
50
         * for Direct Invocation
 
51
         */
 
52
        /*
 
53
        CF_assert(SSH_CIM_RegisteredProfile_unload(errorMessage));
 
54
        CF_assert(SSH_CIM_ManagedElement_unload(errorMessage));
 
55
        */
 
56
        // TODO
 
57
        _L_;
 
58
        return OK;
 
59
}
 
60
 
 
61
int SSH_OpenDRIM_SSHConformsToProfile_isAssociated(const Instance& ConformantStandard, const Instance& ManagedElement, bool& isAssociated, string& errorMessage) {
 
62
        _E_;
 
63
        // TODO Determine if the association can be established or not
 
64
        isAssociated=true;
 
65
        _L_;
 
66
        return OK;
 
67
}
 
68
 
 
69
int SSH_OpenDRIM_SSHConformsToProfile_retrieve(const CMPIBroker* broker, const CMPIContext* ctx, vector<OpenDRIM_SSHConformsToProfile>& result, const char** properties, string& errorMessage, const string& discriminant) {
 
70
        _E_;
 
71
        /*
 
72
         * The following code has been generated for your convenience.
 
73
         * Feel free to modify/delete.
 
74
         */
 
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"));
 
90
 
 
91
                string ref_discriminant = discriminant == "ein" ? "rn" : "r";
 
92
                CF_assert(SSH_OpenDRIM_SSHConformsToProfile_referenceConformantStandardToManagedElement(broker, ctx, (*c), associatedInstances, result, NULL, errorMessage, ref_discriminant));
 
93
        }
 
94
        _L_;
 
95
        return OK;
 
96
}
 
97
 
 
98
int SSH_OpenDRIM_SSHConformsToProfile_getInstance(const CMPIBroker* broker, const CMPIContext* ctx, OpenDRIM_SSHConformsToProfile& instance, const char** properties, string& errorMessage) {
 
99
        _E_;
 
100
        /*
 
101
         * The following code has been generated for your convenience.
 
102
         * Feel free to modify/delete.
 
103
         */
 
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));
 
108
        
 
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));
 
113
 
 
114
        bool isAssociated = false;
 
115
        CF_assert(SSH_OpenDRIM_SSHConformsToProfile_isAssociated(ConformantStandard_instance, ManagedElement_instance, isAssociated, errorMessage));
 
116
        if (!isAssociated)
 
117
        {
 
118
                if(errorMessage.empty())
 
119
                        errorMessage = "No instance";
 
120
                
 
121
                return NOT_FOUND;
 
122
        }
 
123
        _L_;
 
124
        return OK;
 
125
}
 
126
 
 
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) {
 
128
        _E_;
 
129
        // TODO
 
130
        _L_;
 
131
        return NOT_SUPPORTED;
 
132
}
 
133
 
 
134
int SSH_OpenDRIM_SSHConformsToProfile_createInstance(const CMPIBroker* broker, const CMPIContext* ctx, const OpenDRIM_SSHConformsToProfile& instance, string& errorMessage) {
 
135
        _E_;
 
136
        // TODO
 
137
        _L_;
 
138
        return NOT_SUPPORTED;
 
139
}
 
140
 
 
141
int SSH_OpenDRIM_SSHConformsToProfile_deleteInstance(const CMPIBroker* broker, const CMPIContext* ctx, const OpenDRIM_SSHConformsToProfile& instance, string& errorMessage) {
 
142
        _E_;
 
143
        // TODO
 
144
        _L_;
 
145
        return NOT_SUPPORTED;
 
146
}
 
147
 
 
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) {
 
149
        _E_;
 
150
        /*
 
151
         * The following code has been generated for your convenience.
 
152
         * Feel free to modify/delete.
 
153
         */
 
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));
 
162
        }
 
163
 
 
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));
 
167
                if (isAssociated)
 
168
                        ManagedElement_associatedInstances.push_back(ManagedElement_instances[i]);
 
169
        }
 
170
        _L_;
 
171
        return OK;
 
172
}
 
173
 
 
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) {
 
175
        _E_;
 
176
        /*
 
177
         * The following code has been generated for your convenience.
 
178
         * Feel free to modify/delete.
 
179
         */
 
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));
 
188
        }
 
189
 
 
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));
 
193
                if (isAssociated)
 
194
                        ConformantStandard_associatedInstances.push_back(ConformantStandard_instances[i]);
 
195
        }
 
196
        _L_;
 
197
        return OK;
 
198
}
 
199
 
 
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) {
 
201
        _E_;
 
202
        /*
 
203
         * The following code has been generated for your convenience.
 
204
         * Feel free to modify/delete.
 
205
         */
 
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());
 
210
                
 
211
                OpenDRIM_SSHConformsToProfile_instances.push_back(instance);
 
212
        }
 
213
        _L_;
 
214
        return OK;
 
215
}
 
216
 
 
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) {
 
218
        _E_;
 
219
        /*
 
220
         * The following code has been generated for your convenience.
 
221
         * Feel free to modify/delete.
 
222
         */
 
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());
 
227
                
 
228
                OpenDRIM_SSHConformsToProfile_instances.push_back(instance);
 
229
        }
 
230
        _L_;
 
231
        return OK;
 
232
}
 
233
 
 
234
int SSH_OpenDRIM_SSHConformsToProfile_populate(OpenDRIM_SSHConformsToProfile& instance, string& errorMessage) {
 
235
        _E_;
 
236
        // TODO
 
237
        _L_;
 
238
        return OK;
 
239
}
 
240