(file) Return to Device27_StorageServices.mof CVS log (file) (dir) Up to [Pegasus] / pegasus / Schemas / CIM27

  1 kumpf 1.2 // ===================================================================
  2           // Title:       Device Storage Services 2.7
  3           // Filename:    Device27_StorageServices.mof
  4           // Version:     2.7.1
  5           // Release:     Final
  6           // Date:        04/22/03
  7           // ===================================================================
  8           // Copyright 2002-2003 Distributed Management Task Force, Inc. (DMTF).
  9           // All rights reserved.  
 10           // DMTF is a not-for-profit association of industry members dedicated 
 11           // to promoting enterprise and systems management and interoperability. 
 12           // DMTF specifications and documents may be reproduced for uses
 13           // consistent with this purpose by members and non-members, 
 14           // provided that correct attribution is given. 
 15           // As DMTF specifications may be revised from time to time, 
 16           // the particular version and release date should always be noted.
 17           //
 18           // Implementation of certain elements of this standard or proposed 
 19           // standard may be subject to third party patent rights, including 
 20           // provisional patent rights (herein "patent rights"). DMTF makes 
 21           // no representations to users of the standard as to the existence 
 22 kumpf 1.2 // of such rights, and is not responsible to recognize, disclose, or
 23           // identify any or all such third party patent right, owners or 
 24           // claimants, nor for any incomplete or inaccurate identification or 
 25           // disclosure of such rights, owners or claimants. DMTF shall have no 
 26           // liability to any party, in any manner or circumstance, under any 
 27           // legal theory whatsoever, for failure to recognize, disclose, or 
 28           // identify any such third party patent rights, or for such party's
 29           // reliance on the standard or incorporation thereof in its product, 
 30           // protocols or testing procedures. DMTF shall have no liability to 
 31           // any party implementing such standard, whether such implementation 
 32           // is foreseeable or not, nor to any patent owner or claimant, and shall 
 33           // have no liability or responsibility for costs or losses incurred if 
 34           // a standard is withdrawn or modified after publication, and shall be
 35           // indemnified and held harmless by any party implementing the 
 36           // standard from any and all claims of infringement by a patent owner 
 37           // for such implementations.
 38           //
 39           // For information about patents held by third-parties which have 
 40           // notified the DMTF that, in their opinion, such patent may relate to 
 41           // or impact implementations of DMTF standards, visit 
 42           // http://www.dmtf.org/about/policies/disclosures.php.
 43 kumpf 1.2 // ===================================================================
 44           // Description: The Device Model extends the management concepts that
 45           //              are related to LogicalDevices. This file defines
 46           //              a model for storage services.
 47           //
 48           //              The object classes below are listed in an order that
 49           //              avoids forward references. Required objects, defined 
 50           //              by other working groups, are omitted.
 51           // ==================================================================
 52           // Change Log for v2.7.1
 53           //       - Fix MaxValue declarations in StorageSettingWithHints - the
 54           //         properties, AccessDirectionHint and AccessBandwidthWeight
 55           //
 56           // Change Log for v2.7 Final
 57           // CR970 - Removal of the Experimental qualifier
 58           //       - Remove StoragePool.GetSupportedSize and StoragePool.
 59           //         GetSupportedSizeRange so they can remain experimental in 2.8
 60           // CR978 - Clarify the use of settings and capabilities
 61           //       - Change 'spindle' to 'package'
 62           //       - Add ElementType in StoragePool methods
 63           //       - Add ElementName to creation methods
 64 kumpf 1.2 //       - Fix ValueMap issues
 65           //       - Generalize the "goal" parameter in CreateOrModifyElement
 66           //       - Change units from megabytes to bytes.
 67           // CR994 - Update description for InstanceID
 68           //
 69           // Change Log for v2.7
 70           // CR775 - Add StorageSetting, StoragePool, StorageCapabilities,
 71           //         StorageConfigurationService, StorageSettingsWithHints,
 72           //         HostedStoragePool, and AllocatedStoragePool
 73           // CR759 - Add ConfigurationReportingService
 74           // CR777 - Add StorageSynchrononized 
 75           //         Add StorageSetting.DeltaReservation, 
 76           //         StorageCpabilities.DeltaReservationMin, 
 77           //         StorageCpabilities.DeltaReservationMax, 
 78           //         StorageCpabilities.DeltaReservationDefault, 
 79           //         StorageConfigurationService.CreateReplica() and 
 80           //         StorageConfigurationService.ModifySynchronization()
 81           // CR895 - Correct the method return Values/ValueMaps for all the
 82           //         methods in the ConfigurationReportingService.
 83           // ================================================================== 
 84           
 85 kumpf 1.2 #pragma locale ("en_US")
 86           
 87           
 88           // ==================================================================
 89           // StorageSynchrononized
 90           // ==================================================================
 91           [Association, Version ("2.7.0"), Description (
 92               "Indicates that two Storage objects were replicated "
 93               "at the specified point in time. If the CopyType "
 94               "property is set to 'Sync' (=3), then synchronization "
 95               "of the Storage objects is preserved.") ]
 96           class CIM_StorageSynchronized : CIM_Synchronized {
 97           
 98               [Override("SystemElement"), Description (
 99                   "SystemElement represents the Storage that is "
100                   "the source of the replication.") ]
101               CIM_LogicalElement REF SystemElement;
102           
103               [Override("SyncedElement"), Description (
104                   "SyncedElement represents the Storage that is "
105                   "the target of the replication.") ]
106 kumpf 1.2     CIM_LogicalElement REF SyncedElement;
107           
108               [Description(
109                   "CopyType describes the Replication Policy. "
110                   "Values are:  \n"
111                   "  Async: create and maintain an asynchronous "
112                   "copy of the source. \n"
113                   "  Sync: create and maintain a synchronized copy "
114                   "of the source. \n"
115                   "  UnSyncAssoc: create an unsynchronized copy and "
116                   "maintain an association to the source."),
117                   ValueMap {"2", "3", "4", "..", "32768..65535"},
118                   Values {"Async", "Sync", "UnSyncAssoc", 
119                       "DMTF Reserved", "Vendor Specific"} ]
120               uint16 CopyType;
121           };
122           
123           
124           // ==================================================================
125           // StorageSetting                                                     
126           // ==================================================================
127 kumpf 1.2 [Version ("2.7.0"), Description (
128               "StorageSetting is roughly equivalent to a Service Level "
129               "Agreement (SLA) It defines the characteristics, qualities "
130               "of service and goals when used in a "
131               "CreateOrModifyElementFromStoragePool or "
132               "CreateOrModifyStoragePool "
133               "method in the StorageConfigurationService. It specifies a "
134               "series of properties with Maximum and Minimum values that define "
135               "the (inclusive) bounds that the object should maintain. Note that "
136               "the setting is associated to a StorageVolume, using ElementSetting.") ]
137           class CIM_StorageSetting : CIM_SettingData {
138                   
139               [Write, Description (
140                   "Indicates the desired value for No Single Point of Failure. "
141                   "Possible values are false = single point of failure, and "
142                   "true = no single point of failure.") ]
143               boolean NoSinglePointOfFailure;
144            
145               [Write, MinValue(1), Description (
146                   "DataRedundancyMax describes the maximum number of complete "
147                   "copies of data to be maintained. Examples would be RAID 5 "
148 kumpf 1.2         "where 1 copy is maintained and RAID 1 where 2 or more copies "
149                   "are maintained.  Possible values are 1 to n. The desired "
150                   "redundancy is specified using DataRedundancyGoal, while the "
151                   "minimum is defined by DataRedundancyMin."),
152                   ModelCorrespondence {"CIM_StorageSetting.DataRedundancyMin",
153                   "CIM_StorageSetting.DataRedundancyGoal"} ]
154               uint16 DataRedundancyMax;
155            
156               [Write, MinValue(1), Description (
157                   "DataRedundancyMin describes the minimum number of complete "
158                   "copies of data to be maintained. Examples would be RAID 5 "
159                   "where 1 copy is maintained and RAID 1 where 2 or more copies "
160                   "are maintained.  Possible values are 1 to n. The desired "
161                   "redundancy is specified using DataRedundancyGoal, while the "
162                   "maximum is defined by DataRedundancyMax."),
163                   ModelCorrespondence {"CIM_StorageSetting.DataRedundancyMax",
164                   "CIM_StorageSetting.DataRedundancyGoal"} ]
165               uint16 DataRedundancyMin;
166            
167               [Write, MinValue(1), Description (
168                   "DataRedundancyGoal describes the desired number of complete "
169 kumpf 1.2         "copies of data to be maintained. Examples would be RAID 5 "
170                   "where 1 copy is maintained and RAID 1 where 2 or more copies "
171                   "are maintained.  Possible values are 1 to n. The bounds (max "
172                   "and min) for redundancy are defined using the properties, "
173                   "DataRedundancyMax and DataRedundancyMin."), 
174                   ModelCorrespondence {"CIM_StorageSetting.DataRedundancyMax",
175                  "CIM_StorageSetting.DataRedundancyMin"} ]
176               uint16 DataRedundancyGoal;
177            
178               [Write, Description (
179                   "PackageRedundancyMax describes the maximum number of redundant "
180                   "packages to be used. For example, in the storage domain, "
181                   "package redundancy describes how many disk "
182                   "spindles can fail without data loss including, at most, one "
183                   "spare. An example would be RAID5 with a spare disk which would "
184                   "have a PackageRedundancy of 2. Possible values are 0 to n. The "
185                   "desired redundancy is specified using PackageRedundancyGoal, "
186                   "while the minimum is defined by PackageRedundancyMin."),
187                   ModelCorrespondence {"CIM_StorageSetting.PackageRedundancyMin"
188                  "CIM_StorageSetting.PackageRedundancyGoal"} ]
189                uint16 PackageRedundancyMax;
190 kumpf 1.2  
191               [Write, Description (
192                   "PackageRedundancyMin describes the minimum number of redundant "
193                   "packages to be used. For example, in the storage domain, "
194                   "package redundancy describes how many disk "
195                   "spindles can fail without data loss including, at most, one "
196                   "spare. An example would be RAID5 with a spare disk which would "
197                   "have a PackageRedundancy of 2. Possible values are 0 to n. The "
198                   "desired redundancy is specified using PackageRedundancyGoal, "
199                   "while the maximum is defined by PackageRedundancyMax."),
200                   ModelCorrespondence {"CIM_StorageSetting.PackageRedundancyMax"
201                  "CIM_StorageSetting.PackageRedundancyGoal"} ]
202                uint16 PackageRedundancyMin;
203            
204               [Write, Description (
205                   "PackageRedundancyGoal describes the desired number of redundant "
206                   "packages to be used. For example, in the storage domain, "
207                   "package redundancy describes how many disk "
208                   "spindles can fail without data loss including, at most, one "
209                   "spare. An example would be RAID5 with a spare disk which would "
210                   "have a PackageRedundancy of 2. Possible values are 0 to n. The "
211 kumpf 1.2         "bounds (max and min) for redundancy are defined using the properties, "
212                   "PackageRedundancyMax and PackageRedundancyMin."), 
213                   ModelCorrespondence {"CIM_StorageSetting.PackageRedundancyMax"
214                  "CIM_StorageSetting.PackageRedundancyMin"} ]
215                uint16 PackageRedundancyGoal;
216             
217               [MinValue (1), MaxValue (100), Description (
218                   "DeltaReservationMax is a number between 1 (1%) and a 100 (100%) "
219                   "which specifies the maximum amount of space that should "
220                   "be reserved in a replica for caching changes. For a complete copy "
221                   "this would be 100%. The desired reservation is specified "
222                   "using DeltaReservationGoal, while the minimum is defined by "
223                   "DeltaReservationMin."), Units ("Percentage"),
224                   ModelCorrespondence {"CIM_StorageSetting.DeltaReservationMin"
225                  "CIM_StorageSetting.DeltaReservationGoal"} ]
226               uint8 DeltaReservationMax;
227            
228               [MinValue (1), MaxValue (100), Description (
229                   "DeltaReservationMin is a number between 1 (1%) and a 100 (100%) "
230                   "which specifies the minimum amount of space that should "
231                   "be reserved in a replica for caching changes. For a complete copy "
232 kumpf 1.2         "this would be 100%. The desired reservation is specified "
233                   "using DeltaReservationGoal, while the maximum is defined by "
234                   "DeltaReservationMax."), Units ("Percentage"),
235                   ModelCorrespondence {"CIM_StorageSetting.DeltaReservationMax"
236                  "CIM_StorageSetting.DeltaReservationGoal"} ]
237               uint8 DeltaReservationMin;
238            
239               [MinValue (1), MaxValue (100), Description (
240                   "DeltaReservationGoal is a number between 1 (1%) and a 100 (100%) "
241                   "which specifies the desired amount of space that should "
242                   "be reserved in a replica for caching changes. For a complete copy "
243                   "this would be 100%. The bounds (max and min) for the reservation "
244                   "are defined using the properties, DeltaReservationMax and "
245                   "DeltaReservationMin."), Units ("Percentage"), 
246                   ModelCorrespondence {"CIM_StorageSetting.DeltaReservationMin"
247                  "CIM_StorageSetting.DeltaReservationMax"} ]
248               uint8 DeltaReservationGoal;
249            
250           };
251            
252            
253 kumpf 1.2 // ==================================================================
254           // StoragePool
255           // ==================================================================
256           [Version ("2.7.0"), Description (
257               "A pool of Storage that is managed within the scope of a particular "
258               "System. StoragePools may consist of component StoragePools or "
259               "StorageExtents. StorageExtents that belong to the "
260               "StoragePool have a Component relationship to the StoragePool. "
261               "StorageExtents/StoragePools that are elements of a "
262               "pool have their available space aggregated into the pool. "
263               "StoragePools and StorageVolumes may be created from StoragePools. "
264               "This is indicated by the AllocatedFromStoragePool association. "
265               "StoragePool is scoped to a system by the HostedStoragePool "
266               "association.") ] 
267           class CIM_StoragePool : CIM_LogicalElement {
268               
269               [Key, Description (
270                   "Within the scope of the instantiating Namespace, InstanceID "
271                   "opaquely and uniquely identifies an instance of this class. "
272                   "In order to ensure uniqueness within the NameSpace, the "
273                   "value of InstanceID SHOULD be constructed using the "
274 kumpf 1.2         "following 'preferred' algorithm: \n"
275                   "   <OrgID>:<LocalID> \n"
276                   "Where <OrgID> and <LocalID> are separated by a colon ':', "
277                   "and where <OrgID> MUST include a copyrighted, trademarked "
278                   "or otherwise unique name that is owned by the business entity "
279                   "creating/defining the InstanceID, or is a registered ID that is "
280                   "assigned to the business entity by a recognized global "
281                   "authority (This is similar to the <Schema Name>_<Class Name> "
282                   "structure of Schema class names.) In addition, to ensure "
283                   "uniqueness <OrgID> MUST NOT contain a colon (':'). When using "
284                   "this algorithm, the first colon to appear in "
285                   "InstanceID MUST appear between <OrgID> and <LocalID>.  \n"
286                   "   <LocalID> is chosen by the business entity and SHOULD not be "
287                   "re-used to identify different underlying (real-world) elements. "
288                   "If the above 'preferred' algorithm is not used, the defining "
289                   "entity MUST assure that the resultant InstanceID is not "
290                   "re-used across any InstanceIDs produced by this or other "
291                   "providers for this instance's NameSpace. \n"
292                   "For DMTF defined instances, the 'preferred' algorithm MUST be "
293                   "used with the <OrgID> set to 'CIM'.") ]        
294               string InstanceID;
295 kumpf 1.2  
296               [Required, MaxLen (256), Description (
297                   "A unique name in the context of the System that "
298                   "identifies this pool.") ]
299               string PoolID;
300            
301               [Description (
302                    "Maximum available formatted space (in bytes) available "
303                    "via this pool."), 
304                    Units("Bytes") ]
305               uint64 TotalAvailableSpace;
306           };  
307            
308            
309           // ==================================================================
310           // StorageCapabilities
311           // ==================================================================
312           [Version ("2.7.0"), Description (
313               "A subclass of Capabilities that defines the " 
314               "Capabilities of a StorageService or StoragePool. "
315               "For example, an instance of StorageCapabilities could be"
316 kumpf 1.2     "associated with either a StorageConfigurationService or "
317               "StoragePool by using ElementCapabilities.") ]
318           class CIM_StorageCapabilities : CIM_Capabilities {
319            
320               [Description (
321                   "Enumeration indicating the type of element to which this "
322                   "StorageCapabilities applies."),
323                   ValueMap{"0", "1", "2", "3", "4", "5", "6"},
324                   Values {"Unknown", "Reserved", "Any Type", "StorageVolume", 
325                       "StorageExtent", "StoragePool", 
326                       "StorageConfigurationService"} ]
327               uint16 ElementType;
328            
329               [Description (
330                   "Indicates whether or not the associated element supports "
331                   "no single point of failure.  Values are: "
332                   "FALSE = does not support no single point of failure, "
333                   "and TRUE = supports no single point of failure."),
334                   ModelCorrespondence {
335                       "CIM_StorageCapabilities.NoSinglePointOfFailureDefault"} ]
336               boolean NoSinglePointOfFailure;
337 kumpf 1.2  
338               [Description (
339                   "Indicates the default value for the NoSinglePointOfFailure "
340                   "property."),
341                   ModelCorrespondence {
342                       "CIM_StorageCapabilities.NoSinglePointOfFailure"} ]
343               boolean NoSinglePointOfFailureDefault;
344            
345               [MinValue (1), Description (
346                   "DataRedundancyMax describes the maximum number of complete "
347                   "copies of data that can be maintained. Examples would be "
348                   "RAID 5 (where 1 copy is maintained) and RAID 1 (where 2 or "
349                   "more copies are maintained).  Possible values are 1 to n. The "
350                   "default redundancy is specified using DataRedundancyDefault, "
351                   "while the minimum is defined by DataRedundancyMin."),
352                   ModelCorrespondence {"CIM_StorageCapabilities.DataRedundancyMin",
353                   "CIM_StorageCapabilities.DataRedundancyDefault"} ]
354               uint16 DataRedundancyMax;
355            
356               [MinValue (1), Description (
357                   "DataRedundancyMin describes the minimum number of complete "
358 kumpf 1.2         "copies of data that can be maintained. Examples would be "
359                   "RAID 5 where 1 copy is maintained and RAID 1 where 2 or "
360                   "more copies are maintained).  Possible values are 1 to n. The "
361                   "default redundancy is specified using DataRedundancyDefault, "
362                   "while the maximum is defined by DataRedundancyMax."),
363                   ModelCorrespondence {"CIM_StorageCapabilities.DataRedundancyMax",
364                   "CIM_StorageCapabilities.DataRedundancyDefault"} ]
365               uint16 DataRedundancyMin;
366            
367               [MinValue(1), Description (
368                   "DataRedundancyDefault describes the default number of "
369                   "complete copies of data that can be maintained. Examples "
370                   "would be RAID 5 where 1 copy is maintained and RAID 1 where "
371                   "2 or more copies are maintained.  Possible values are "
372                   "1 to n. The bounds for the redundancy (max and min) are "
373                   "defined by DataRedundancyMax and DataRedundancyMin."),
374                   ModelCorrespondence {"CIM_StorageCapabilities.DataRedundancyMax",
375                   "CIM_StorageCapabilities.DataRedundancyMin"} ]
376               uint16 DataRedundancyDefault;
377            
378               [Description (
379 kumpf 1.2         "PackageRedundancyMax describes the maximum number of redundant "
380                   "packages that can be used. For example, in the storage domain, "
381                   "package redundancy describes how many disk "
382                   "spindles can fail without data loss including, at most, one "
383                   "spare. An example would be RAID5 with a spare disk which would "
384                   "have a PackageRedundancy of 2. Possible values are 0 to n."
385                   "The default redundancy is specified using PackageRedundancyDefault, "
386                   "while the maximum is defined by PackageRedundancyMax."),
387                   ModelCorrespondence {
388                   "CIM_StorageCapabilities.PackageRedundancyMin",
389                   "CIM_StorageCapabilities.PackageRedundancyDefault"} ]
390               uint16 PackageRedundancyMax;
391            
392               [Description (
393                   "PackageRedundancyMin describes the minimum number of redundant "
394                   "packages that can be used. For example, in the storage domain, "
395                   "package redundancy describes how many disk "
396                   "spindles can fail without data loss including, at most, one "
397                   "spare. An example would be RAID5 with a spare disk which would "
398                   "have a PackageRedundancy of 2. Possible values are 0 to n."
399                   "The default redundancy is specified using PackageRedundancyDefault, "
400 kumpf 1.2         "while the minimum is defined by PackageRedundancyMin."),
401                   ModelCorrespondence {
402                   "CIM_StorageCapabilities.PackageRedundancyMax",
403                   "CIM_StorageCapabilities.PackageRedundancyDefault"} ]
404               uint16 PackageRedundancyMin;
405            
406               [Description (
407                   "PackageRedundancyDefault describes the default number of redundant "
408                   "packages that will be used. For example, in the storage domain, "
409                   "package redundancy describes how many disk "
410                   "spindles can fail without data loss including, at most, one " 
411                   "spare. An example would be RAID5 with a spare disk which would "
412                   "have a PackageRedundancy of 2. Possible values are 0 to n."
413                   "The bounds for redundancy are specified using the properties, "
414                   "PackageRedundancyMax and PackageRedundancyMin."),
415                   ModelCorrespondence {
416                   "CIM_StorageCapabilities.PackageRedundancyMin",
417                   "CIM_StorageCapabilities.PackageRedundancyMax"} ]
418               uint16 PackageRedundancyDefault;
419            
420               [MinValue (1), MaxValue (100), Description (
421 kumpf 1.2         "DeltaReservatioMax is a number between 1 (1%) and a 100 (100%) "
422                   "that specifies the maximum amount of space reserved in a replica "
423                   "for caching changes. For a complete copy this would be 100%, "
424                   "but it can be lower in some implementations. This parameter "
425                   "sets the upper limit, while DeltaReservationMin sets the lower limit."),
426                   Units ("Percentage"), ModelCorrespondence {
427                       "CIM_StorageCapabilities.DeltaReservationMin",
428                       "CIM_StorageCapabilities.DeltaReservationDefault"} ]
429               uint16 DeltaReservationMax;
430            
431               [MinValue (1), MaxValue (100), Description (
432                   "DeltaReservationMin is a number between 1 (1%) and a 100 (100%) "
433                   "that specifies the minimum amount of space that should be reserved "
434                   "in a replica for caching changes. For a complete copy this would be 100%, "
435                   "but it can be lower in some implementations. This parameter "
436                   "sets the lower limit, while DeltaReservationMax sets the upper limit."), 
437                   Units ("Percentage"), ModelCorrespondence {
438                       "CIM_StorageCapabilities.DeltaReservationMax",
439                       "CIM_StorageCapabilities.DeltaReservationDefault"} ]
440               uint16 DeltaReservationMin;
441            
442 kumpf 1.2     [MinValue (1), MaxValue (100), Description (
443                   "Delta reservation is a number between 1 (1%) and a 100 (100%) "
444                   "that specifies how much space should be reserved by default in a "
445                   "replica for caching changes. For a complete copy this would be 100%, "
446                   "but it can be lower in some implementations. This parameter "
447                   "sets the default value, while DeletaReservationMax and DeltReservationMin "
448                   "set the upper and lower bounds."),
449                   Units ("Percentage"), ModelCorrespondence {
450                       "CIM_StorageCapabilities.DeltaReservationMax",
451                       "CIM_StorageCapabilities.DeltaReservationMin"} ]
452               uint16 DeltaReservationDefault;
453           };
454            
455           // ==================================================================
456           // StorageConfigurationService 
457           // ==================================================================
458           [Version ("2.7.0"), Description (
459               "This service allows the active management of a Storage "
460               "Server. It allows jobs to be started for the creation, "
461               "modification and deletion of storage objects (StoragePools "
462               "and StorageVolumes).") ]
463 kumpf 1.2 class CIM_StorageConfigurationService : CIM_Service {
464            
465               [Description (
466                   "Starts a job to create (or modify) a StoragePool.  The "
467                   "StoragePool will be (or must be) scoped to the same System "
468                   "as this Service. One of the parameters for this method is "
469                   "Size. As an input parameter, Size specifies the desired size of "
470                   "the pool. As an output parameter, it specifies the size achieved. "
471                   "Space is taken from either or both of the specified input "
472                   "StoragePools and StorageExtents (InPools and InExtents). "
473                   "The capability requirements that the Pool must support "
474                   "are defined using the Goal parameter. If the requested "
475                   "pool size cannot be created, no action will be taken, the "
476                   "Return Value will be 4097/0x1001, and the output value of "
477                   "Size will be set to the nearest possible size. If 0 is "
478                   "returned, then the task completed successfully and the "
479                   "use of ConcreteJob was not required. If the task will take "
480                   "some time to complete, a ConcreteJob will be created "
481                   "and its reference returned in the output parameter Job."),
482                   ValueMap {"0", "1", "2", "3", "4", "5", "6", "..", 
483                       "4096", "4097", "4098..32767", "32768..65535"},
484 kumpf 1.2         Values {"Job Completed with No Error", "Not Supported", 
485                       "Unknown", "Timeout", "Failed", "Invalid Parameter", 
486                       "In Use",
487                       "DMTF Reserved", "Method Parameters Checked - Job Started",
488                       "Size Not Supported", "Method Reserved", 
489                       "Vendor Specific"} ]
490               uint32 CreateOrModifyStoragePool ( 
491                   [IN, Description (
492                       "A end user relevant name for the pool being created. If "
493                       "NULL, then a system supplied default name can be used. The "
494                       "value will be stored in the 'ElementName' property for "
495                       "the created pool. If not NULL, this parameter "
496                       "will supply a new name when modifying an existing pool.") ]
497                   string ElementName,
498                   [OUT, IN(false), Description(
499                       "Reference to the job (may be null if job completed).") ]
500                   CIM_ConcreteJob REF Job,
501                   [IN, Description (
502                       "Reference to an instance of StorageSetting that defines "
503                       "the desired capabilities of the StoragePool. If set to a "
504                       "null value, the default configuration from the source "
505 kumpf 1.2             "pool will be used. If not NULL, this parameter will supply a "
506                       "new Goal setting when modifying an existing pool." ) ]
507                   CIM_StorageSetting REF Goal,
508                   [IN, OUT, Description(
509                       "As an input parameter this specifies the desired pool size in bytes. "
510                       "As an output parameter this specifies the size "
511                       "achieved."), Units ("Bytes") ] 
512                   uint64 Size,
513                   [IN, Description (
514                      "Array of strings containing representations of "
515                      "references to CIM_StoragePool instances, that are used "
516                      "to create the Pool or modify the source pools.") ]
517                   string InPools[],
518                   [IN, Description (
519                      "Array of strings containing representations of "
520                      "references to CIM_StorageExtent instances, that are used "
521                      "to create the Pool or modify the source extents.") ]
522                   string InExtents[],
523                   [IN, OUT, Description (
524                       "As an input parameter: if null, creates a new StoragePool. "
525                       "If not null, modifies the referenced Pool. When returned, it is a "
526 kumpf 1.2             "reference to the resulting StoragePool.") ] 
527                   CIM_StoragePool REF Pool);
528            
529               [Description (
530                   "Start a job to create (or modify) a specified element (for "
531                   "example a StorageVolume or StorageExtent) from "
532                   "a StoragePool. One of the parameters for this method is "
533                   "Size. As an input parameter, Size specifies the desired size of the element. "
534                   "As an output parameter, it specifies the size achieved. "
535                   "Space is taken from the input StoragePool. The desired "
536                   "settings for the element are specified by the Goal parameter. "
537                   "If the requested size cannot be created, no action will be "
538                   "taken, and the Return Value will be 4097/0x1001. Also, "
539                   "the output value of Size is set to the nearest possible "
540                   "size. If 0 is returned, the function completed successfully "
541                   "and no ConcreteJob instance was required.  If 4096/0x1000 is "
542                   "returned, a ConcreteJob will be started to create the "
543                   "element. The Job's reference will be returned in the "
544                   "output parameter Job."), 
545                   ValueMap {"0", "1", "2", "3", "4", "5", "6", "..", 
546                       "4096", "4097", "4098..32767", "32768..65535"},
547 kumpf 1.2         Values {"Job Completed with No Error", "Not Supported", 
548                       "Unknown", "Timeout", "Failed", "Invalid Parameter", 
549                       "In Use",
550                       "DMTF Reserved", "Method Parameters Checked - Job Started",
551                       "Size Not Supported", "Method Reserved",
552                       "Vendor Specific"} ]
553               uint32 CreateOrModifyElementFromStoragePool(
554                   [IN, Description (
555                       "A end user relevant name for the element being created. If "
556                       "NULL, then a system supplied default name can be used. The "
557                       "value will be stored in the 'ElementName' property for "
558                       "the created element. If not NULL, this parameter "
559                       "will supply a new name when modifying an existing element.") ]
560                   string ElementName,
561                   [IN, Description (
562                       "Enumeration indicating the type of element being created "
563                       "or modified. If the input parameter TheElement is specified "
564                       "when the operation is a 'modify', this type value must "
565                       "match the type of that instance."),
566                       ValueMap{"0", "1", "2", "3", "..", "32768..65535"},
567                       Values {"Unknown", "Reserved", "StorageVolume", 
568 kumpf 1.2                 "StorageExtent", "DMTF Reserved", "Vendor Specific"} ]
569                   uint16 ElementType,
570                   [OUT, IN(false), Description(
571                       "Reference to the job (may be null if job completed).") ]
572                   CIM_ConcreteJob REF Job,
573                   [IN, Description(
574                       "The requirements for the element to maintain. If set to "
575                       "a null value, the default configuration from the source "
576                       "pool will be used. This parameter should be a reference to "
577                       "a Setting or Profile appropriate to the element being "
578                       "created. If not NULL, this parameter "
579                       "will supply a new Goal when modifying an existing element.") ]
580                   CIM_ManagedElement REF Goal,
581                   [IN, OUT, Description (
582                       "As an input parameter Size specifies the desired size. "
583                       "If not NULL, this parameter "
584                       "will supply a new size when modifying an existing element."
585                       "As an output parameter Size specifies the size "
586                       "achieved."), Units ("Bytes") ] 
587                   uint64 Size,
588                   [IN, Description(
589 kumpf 1.2             "The Pool from which to create the element. This parameter "
590                       "must be set to null if the input parameter TheElement is "
591                       "specified (in the case of a 'modify' operation).") ] 
592                   CIM_StoragePool REF InPool,
593                   [IN, OUT, Description (
594                       "As an input parameter: if null, creates a new element. If "
595                       "not null, then the method modifies the specified element. "
596                       "As an output parameter, it is a reference to the "
597                       "resulting element.") ] 
598                   CIM_LogicalElement REF TheElement);
599            
600               [Description (
601                   "Start a job to delete a StoragePool. The freed space is "
602                   "returned source StoragePools (indicated by AllocatedFromStoragePool) "
603                   "or back to underlying storage extents.  If 0 is returned, the "
604                   "function completed successfully, and no ConcreteJob was required. "
605                   "If 4096/0x1000 is returned, a ConcreteJob will be started "
606                   "to delete the StoragePool. A reference to the Job is returned "
607                   "in the Job parameter."),
608                   ValueMap {"0", "1", "2", "3", "4", "5", "6", "..", "4096",
609                       "4097..32767", "32768..65535"},
610 kumpf 1.2         Values {"Job Completed with No Error", "Not Supported", 
611                       "Unknown", "Timeout", "Failed", "Invalid Parameter", 
612                       "In Use",
613                       "DMTF Reserved", "Method Parameters Checked - Job Started",
614                       "Method Reserved", "Vendor Specific"} ]
615               uint32 DeleteStoragePool (
616                   [OUT, IN(false), Description(
617                       "Reference to the job (may be null if job completed).") ]
618                   CIM_ConcreteJob REF Job,
619                   [IN, Description(
620                       "Reference to the pool to delete.") ] 
621                   CIM_StoragePool REF Pool);
622            
623               [Description (
624                   "Start a job to delete an element previously created from a "
625                   "StoragePool. The freed space is returned to the source "
626                   "StoragePool. If 0 is returned, the function completed "
627                   "successfully and no ConcreteJob was required. If 4096/0x1000 "
628                   "is returned, a ConcreteJob will be started to delete the "
629                   "element. A reference to the Job is returned in the Job "
630                   "parameter."),
631 kumpf 1.2         ValueMap {"0", "1", "2", "3", "4", "5", "6", "..", "4096",
632                       "4097..32767", "32768..65535"},
633                   Values {"Job Completed with No Error", "Not Supported", 
634                       "Unknown", "Timeout", "Failed", "Invalid Parameter", 
635                       "In Use",
636                       "DMTF Reserved", "Method Parameters Checked - Job Started",
637                       "Method Reserved", "Vendor Specific"} ]
638               uint32 ReturnToStoragePool(
639                   [OUT, IN(false), Description(
640                       "Reference to the job (may be null if job completed).") ]
641                   CIM_ConcreteJob REF Job,
642                   [IN, Description(
643                       "Reference to the element to return to the StoragePool.") ] 
644                   CIM_LogicalElement REF TheElement);
645            
646               [Description (
647                   "Start a job to create a new storage object which "
648                   "is a replica of the specified source storage object. "
649                   " (SourceElement). Note that using "
650                   "the input paramter, CopyType, this function can be used to "
651                   "instantiate the replica, and to create an ongoing "
652 kumpf 1.2         "association between the source and replica. If 0 is "
653                   "returned, the function completed successfully and no "
654                   "ConcreteJob instance is created. If 4096/0x1000 is returned, "
655                   "a ConcreteJob is started, a reference to which is "
656                   "returned in the Job output parameter."),
657                   ValueMap {"0", "1", "2", "3", "4", "5", "6", "..", "4096",
658                       "4097..32767", "32768..65535"},
659                   Values {"Job Completed with No Error", "Not Supported", 
660                       "Unknown", "Timeout", "Failed", "Invalid Parameter", 
661                       "In Use",
662                       "DMTF Reserved", "Method Parameters Checked - Job Started",
663                       "Method Reserved", "Vendor Specific"} ]
664               uint32 CreateReplica(
665                   [IN, Description (
666                       "A end user relevant name for the element being created. If "
667                       "NULL, then a system supplied default name can be used. The "
668                       "value will be stored in the 'ElementName' property for "
669                       "the created element.") ]
670                   string ElementName,
671                   [OUT, IN(false), Description(
672                       "Reference to the job (may be null if job completed).") ]
673 kumpf 1.2         CIM_ConcreteJob REF Job,
674                   [IN, Required, Description(
675                       "The source storage object which may be a StorageVolume or "
676                       "storage object.") ]
677                   CIM_LogicalElement REF SourceElement,
678                   [OUT, IN(false), Description(
679                       "Reference to the created target storage element "
680                       "(i.e., the replica).") ]
681                   CIM_LogicalElement REF TargetElement,
682                   [IN, Description(
683                       "The definition for the StorageSetting to be maintained "
684                       "by the target storage object (the replica).") ]
685                   CIM_StorageSetting REF TargetSettingGoal,
686                   [IN, Description(
687                       "The underlying storage for the target element (the "
688                       "replica) will be drawn from TargetPool if specified, "
689                       "otherwise the allocation is implementation specific.") ] 
690                   CIM_StoragePool REF TargetPool,
691                   [IN, Description(
692                       "CopyType describes the type of copy that will be made. "
693                       "Values are: \n "
694 kumpf 1.2             "  Async: Create and maintain an asynchronous "
695                       "copy of the source. \n "
696                       "  Sync: Create and maintain a synchronized copy "
697                       "of the source. \n" 
698                       "  UnSyncAssoc: Create an unsynchronized copy and "
699                       "maintain an association to the source. \n "
700                       "  UnSyncUnAssoc: Create unassociated copy of the "
701                       "source element."),
702                       ValueMap {"2", "3", "4", "5", "..", "32768..65535"},
703                       Values {"Async", "Sync", "UnSyncAssoc", "UnSyncUnAssoc",
704                           "DMTF Reserved", "Vendor Specific"} ]
705                   uint16 CopyType);
706            
707               [Description (
708                   "Starts a job to modify the synchronization association "
709                   "between two storage objects. If 0 is returned, the "
710                   "function completed successfully and no ConcreteJob instance "
711                   "was created. If 4096/0x1000 is returned, a ConcreteJob "
712                   "was started. A reference to this Job is returned in "
713                   "the Job output parameter."),
714                   ValueMap {"0", "1", "2", "3", "4", "5", "6", "..", "4096",
715 kumpf 1.2             "4097..32767", "32768..65535"},
716                   Values {"Job Completed with No Error", "Not Supported", 
717                       "Unknown", "Timeout", "Failed", "Invalid Parameter", 
718                       "In Use","DMTF Reserved", 
719                       "Method Parameters Checked - Job Started",
720                       "Method Reserved", "Vendor Specific"} ]
721               uint32 ModifySynchronization(
722                   [IN, Description(
723                       "Operation describes the type of modification "
724                       "to be made to the replica. Values are: \n "
725                        "  Detach: 'Forget' the synchronization between "
726                        "two storage objects. Start to treat the objects as "
727                        "independent. \n "
728                        "  Fracture: Suspend the synchronization between "
729                        "two storage objects. The association and "
730                        "(typically) changes are remembered to allow a fast "
731                        "resynchronization. This may be used during "
732                        "a backup cycle to allow one of the objects to be "
733                        "copied while the other remains in production. \n"
734                        "  Resync Replica: Re-establish the synchronization of "
735                        "a replica. This will negate the action of a previous "
736 kumpf 1.2              "Fracture operation. \n"
737                        "  Restore from Replica: Renew the contents of "
738                        "the original storage object from a replica."),
739                        ValueMap {"0","1","2", "3", "4", "5", "..", 
740                            "32768..65535"},
741                        Values {" DMTF Reserved", "DMTF Reserved", "Detach", 
742                            "Fracture", "Resync Replica", "Restore from Replica"
743                            "DMTF Reserved", "Vendor Specific"} ]
744                   uint16 Operation,
745                   [OUT, IN(false), Description(
746                       "Reference to the job (may be null if job completed).") ]
747                   CIM_ConcreteJob REF Job,
748                   [IN, Description(
749                       "The referenced to the StorageSynchronized association "
750                       "describing the storage source/replica relationship.") ]
751                   CIM_StorageSynchronized REF Synchronization);
752           };
753            
754            
755           // ====================================================================
756           // StorageSettingWithHints
757 kumpf 1.2 // ====================================================================
758           [Version("2.7.1"), Description (
759               "This subclass of StorageSetting allows a client to specify "
760               "'hint's for optimization of the volume performance. The effect "
761               "of these hints is implementation dependent.") ]
762           class CIM_StorageSettingWithHints: CIM_StorageSetting {
763               
764               [MinValue (0), MaxValue (10), Description (
765                   "This hint is an indication from a client of the importance "
766                   "placed on data availability. Values are 0=Don't Care to "
767                   "10=Very Important.") ]
768               uint16 DataAvailabilityHint;
769                   
770               [MinValue (0), MaxValue (10), Description (
771                   "This hint is an indication from a client of the randomness "
772                   "of accesses. Values are 0=Entirely Sequential to "
773                   "10=Entirely Random.") ]
774               uint16 AccessRandomnessHint;
775            
776               [MinValue (0), MaxValue (10), Description (
777                   "This hint is an indication from a client of the direction "
778 kumpf 1.2         "of accesses. Values are 0=Entirely Read to "
779                   "10=Entirely Write.") ]
780               uint16 AccessDirectionHint;
781            
782               [Description (
783                   "This hint is an indication from a client of the optimal "
784                   "access sizes (in bytes).  Since this  property is an array, "
785                   "several sizes can be specified. "),
786                   Units ("Bytes") ]
787               uint16 AccessSizeHint[];
788            
789               [MinValue (0), MaxValue (10), Description (
790                   "This hint is an indication from a client how important "
791                   "access latency is. Values are 0=Don't Care to "
792                   "10=Very Important.") ]
793               uint16 AccessLatencyHint;
794            
795               [MinValue (0), MaxValue (10), Description (
796                   "This hint is an indication from a client of bandwidth "
797                   "prioritization. Values are 0=Don't Care to "
798                   "10=Very Important.") ]
799 kumpf 1.2     uint16 AccessBandwidthWeight;
800            
801               [MinValue (0), MaxValue (10),Description (
802                   "This hint is an indication of the importance the client "
803                   "places on the cost of storage. Values are 0=Don't Care to "
804                   "10=Very Important. A StorageVolume provider might choose "
805                   "to place data on low cost or high cost drives based on "
806                   "this parameter.") ]
807               uint16 StorageCostHint;
808            
809               [MinValue (0), MaxValue (10), Description (
810                   "This hint is an indication of the importance placed on "
811                   "storage space efficiency by the client. Values are 0=Don't Care "
812                   "to 10=Very Important. A StorageVolume provider might choose "
813                   "different RAID levels based on this hint.") ]
814               uint16 StorageEfficiencyHint;
815           };
816            
817            
818           // ===================================================================
819           // AllocatedFromStoragePool
820 kumpf 1.2 // ===================================================================
821           [Association, Version ("2.7.0"), Description (
822               "AllocatedFromStoragePool is an association describing how "
823               "LogicalElements are allocated from underlying StoragePools. "
824               "These elements typically would be subclasses of StorageExtents "
825               "or StoragePools.") ] 
826           class CIM_AllocatedFromStoragePool : CIM_Dependency {
827               
828               [Override ("Antecedent"), 
829                   Description ("The StoragePool.") ]
830               CIM_StoragePool REF Antecedent;
831            
832               [Override ("Dependent"),
833                   Description ("The subsidiary element.") ]
834               CIM_LogicalElement REF Dependent;
835            
836               [Description (
837                   "Space consumed from this Pool, in bytes."), Units("Bytes") ]
838               uint64 SpaceConsumed;
839           };
840            
841 kumpf 1.2 
842           // ==================================================================
843           // HostedStoragePool
844           // ==================================================================
845           [Association, Aggregation, Composition, 
846               Version ("2.7.0"), Description (
847                   "SystemStoragePool is a specialization of SystemComponent "
848                   "association that establishes that the StoragePool is "
849                   "defined in the context of the System.") ]
850           class CIM_HostedStoragePool : CIM_SystemComponent {
851                   
852               [Override ("GroupComponent"), Aggregate, Max (1), Min (1), 
853                   Description ("The parent system in the Association.") ] 
854               CIM_System REF GroupComponent;
855            
856               [Override ("PartComponent"), Description (
857                   "The StoragePool that is a component of a System.") ] 
858               CIM_StoragePool REF PartComponent;
859           };
860           
861           
862 kumpf 1.2 // ===================================================================
863           // ConfigurationReportingService
864           // ===================================================================
865           [Description (
866               "Service to provide reports on current configuration and "
867               "potential for growth. The service may be used in several "
868               "circumstances: \n"
869               "- To report growth potential (how many can I have) \n"
870               "- To report information on objects not directly modeled for "
871               "performance or other reasons. \n "
872               "It can also report counts of 'things' or counts of 'units'. "
873               "For example, the number of disk drives could be reported or the "
874               "capacity that they would provide.") ]
875           class CIM_ConfigurationReportingService : CIM_Service {
876           
877               [Description(
878                   "Returns a list of classes that the given Managed"
879                   "Element supports or has installed."), 
880                   ValueMap {"0", "1", "2", "3", "4", "..", "32768..65535"},
881                   Values {"Success", "Not Supported", "Unknown",
882                       "Timeout", "Failed", "DMTF Reserved",
883 kumpf 1.2             "Vendor Specific"} ]
884               uint32 GetClassTypes(
885                   [IN, ValueMap {"2", "3"}, 
886                       Values {"Supports", "Installed"},
887                       Description (
888                           "The type of inquiry to be performed.") ] 
889                   uint16 InquiryType,
890                   [IN, Description(
891                       "False : Only report on elements directly contained "
892                       "in/attached to the given ManagedElement. \n"
893                       "True : Report on all objects contained in/attached "
894                       "to the given ManagedElement.") ]
895                   boolean Recursive,
896                   [IN, Description(
897                       "The target of query, for example a rack or a chassis.") ]
898                   CIM_ManagedElement REF Target,
899                   [OUT, IN (false), Description(
900                       "Array containing the class names (typically the leaf "
901                       "classes) that the given ManagedElement can support or "
902                       "has installed.") ]
903                   string ClassTypes[]);
904 kumpf 1.2 
905               [Description(
906                   "Returns a list of UnitTypes that are installed for "
907                   "a given ClassType on a given ManagedElement."),
908                   ValueMap {"0", "1", "2", "3", "4", "..", "32768..65535"},
909                   Values {"Success", "Not Supported", "Unknown",
910                       "Timeout", "Failed", "DMTF Reserved",
911                       "Vendor Specific"} ]
912               uint32 GetUnitTypes(
913                   [IN, ValueMap {"2", "3"}, 
914                       Values {"Supported", "Installed"},
915                       Description ("The type of inquiry to be performed.") ] 
916                   uint16 InquiryType,
917                   [IN, Description(
918                       "False : Only report on elements directly contained "
919                       "in/attached to the given ManagedElement. \n"
920                       "True : Report on all objects contained in/attached "
921                       "to the given ManagedElement.") ]
922                   boolean Recursive,
923                   [IN, Description(
924                       "The target of query, for example a rack or a chassis.") ]
925 kumpf 1.2         CIM_ManagedElement REF Target,
926                   [IN, Description(
927                       "The ClassType for the query. This should be a entry "
928                       "returned in the GetClassTypes.ClassTypes property.") ]
929                   string ClassType,
930                   [OUT, IN (false), Description(
931                       "A list of supported UnitTypes."),
932                       ValueMap{"2", "3", "4", "5", "6", "7", "8", "9", 
933                           "10", "..", "32768..65535"},
934                       Values {"None", "Front Side", "Back Side", "Contained",
935                           "Connected", "I/O", "Memory", "StorageMediaLocation",
936                           "Megabytes", "DMTF Reserved", "Vendor Specific"},
937                       ModelCorrespondence {
938                           "CIM_ConfigurationReportingService."
939                           "ReportCapacity(UnitType)"} ]
940                   uint16 UnitTypes[]);
941           
942               [Description(
943                   "Returns the maximum number supported or the "
944                   "number of currently installed units for the given UnitType, "
945                   "for a given ClassType on a given ManagedElement."),
946 kumpf 1.2         ValueMap {"0", "1", "2", "3", "4", "..", 
947                       "32768..65535"},
948                   Values {"Success", "Not Supported", "Unknown",
949                       "Timeout", "Failed", "DMTF Reserved",
950                       "Vendor Specific"} ]
951               uint32 ReportCapacity(
952                   [IN, ValueMap {"2", "3"}, 
953                       Values {"Supported", "Installed"},
954                       Description ("The type of inquiry to be performed.") ] 
955                   uint16 InquiryType,
956                   [IN, Description(
957                       "False : Only report on elements directly contained "
958                       "in/attached to the given ManagedElement. \n"
959                       "True : Report on all objects contained in/attached "
960                       "to the given ManagedElement.") ]
961                   boolean Recursive,
962                   [IN, Description(
963                       "The target of query, for example a rack or a chassis.") ]
964                   CIM_ManagedElement REF Target,
965                   [IN, Description(
966                       "The ClassType for the query. This should be a entry "
967 kumpf 1.2             "returned in the GetClassTypes.ClassTypes property.") ]
968                   string ClassType,
969                   [IN, Description(
970                       "The UnitType for the query."),
971                       ValueMap{"2", "3", "4", "5", "6", "7", "8", "9",
972                           "10", "..", "32768..65535"},
973                       Values {"None", "Front Side", "Back Side", "Contained",
974                           "Connected", "I/O", "Memory", "StorageMediaLocation",
975                           "Megabytes", "DMTF Reserved", "Vendor Specific"},
976                       ModelCorrespondence {
977                           "CIM_ConfigurationReportingService."
978                           "GetUnitTypes(UnitTypes)"} ]
979                   uint16 UnitType,
980                   [OUT, IN (false), Description (
981                       "The maximum number of supported or the number of "
982                       "currently installed units.") ]
983                   uint64 NumberOfUnits);
984           };
985           
986           
987           // ===================================================================
988 kumpf 1.2 // end of file
989           // ===================================================================

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2