// Copyright (c) 2005 DMTF. All rights reserved. [Version ( "2.11.0" ), UMLPackagePath ( "CIM::Device::StorageServices" ), Description ( "This service allows the active management of a Storage Server. " "It allows jobs to be started for the creation, modification " "and deletion of storage objects (StoragePools, StorageVolumes " "and LogicalDisks)." )] class CIM_StorageConfigurationService : CIM_Service { [Description ( "Starts a job to create (or modify) a StoragePool. The " "StoragePool will be (or must be) scoped to the same " "System as this Service. One of the parameters for this " "method is Size. As an input parameter, Size specifies " "the desired size of the pool. As an output parameter, it " "specifies the size achieved. Space is taken from either " "or both of the specified input StoragePools and " "StorageExtents (InPools and InExtents). The capability " "requirements that the Pool must support are defined " "using the Goal parameter. If the requested pool size " "cannot be created, no action will be taken, the Return " "Value will be 4097/0x1001, and the output value of Size " "will be set to the nearest possible size. If 0 is " "returned, then the task completed successfully and the " "use of ConcreteJob was not required. If the task will " "take some time to complete, a ConcreteJob will be " "created and its reference returned in the output " "parameter Job." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097", "4098..32767", "32768..65535" }, Values { "Job Completed with No Error", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "In Use", "DMTF Reserved", "Method Parameters Checked - Job Started", "Size Not Supported", "Method Reserved", "Vendor Specific" }] uint32 CreateOrModifyStoragePool( [IN, Description ( "A end user relevant name for the pool being " "created. If NULL, then a system supplied default " "name can be used. The value will be stored in the " "\'ElementName\' property for the created pool. If " "not NULL, this parameter will supply a new name " "when modifying an existing pool." )] string ElementName, [IN ( false ), OUT, Description ( "Reference to the job (may be null if job completed)." )] CIM_ConcreteJob REF Job, [IN, Description ( "Reference to an instance of StorageSetting that " "defines the desired capabilities of the " "StoragePool. If set to a null value, the default " "configuration from the source pool will be used. " "If not NULL, this parameter will supply a new Goal " "setting when modifying an existing pool." )] CIM_StorageSetting REF Goal, [IN, OUT, Description ( "As an input parameter this specifies the desired " "pool size in bytes. As an output parameter this " "specifies the size achieved." ), Units ( "Bytes" )] uint64 Size, [IN, Description ( "Array of strings containing representations of " "references to CIM_StoragePool instances, that are " "used to create the Pool or modify the source " "pools." )] string InPools[], [IN, Description ( "Array of strings containing representations of " "references to CIM_StorageExtent instances, that " "are used to create the Pool or modify the source " "extents." )] string InExtents[], [IN, OUT, Description ( "As an input parameter: if null, creates a new " "StoragePool. If not null, modifies the referenced " "Pool. When returned, it is a reference to the " "resulting StoragePool." )] CIM_StoragePool REF Pool); [Description ( "Start a job to create (or modify) a specified element " "(for example a StorageVolume or StorageExtent) from a " "StoragePool. One of the parameters for this method is " "Size. As an input parameter, Size specifies the desired " "size of the element. As an output parameter, it " "specifies the size achieved. Space is taken from the " "input StoragePool. The desired settings for the element " "are specified by the Goal parameter. If the requested " "size cannot be created, no action will be taken, and the " "Return Value will be 4097/0x1001. Also, the output value " "of Size is set to the nearest possible size. If 0 is " "returned, the function completed successfully and no " "ConcreteJob instance was required. If 4096/0x1000 is " "returned, a ConcreteJob will be started to create the " "element. The Job\'s reference will be returned in the " "output parameter Job." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097", "4098..32767", "32768..65535" }, Values { "Job Completed with No Error", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "In Use", "DMTF Reserved", "Method Parameters Checked - Job Started", "Size Not Supported", "Method Reserved", "Vendor Specific" }] uint32 CreateOrModifyElementFromStoragePool( [IN, Description ( "A end user relevant name for the element being " "created. If NULL, then a system supplied default " "name can be used. The value will be stored in the " "\'ElementName\' property for the created element. " "If not NULL, this parameter will supply a new name " "when modifying an existing element." )] string ElementName, [IN, Description ( "Enumeration indicating the type of element being " "created or modified. If the input parameter " "TheElement is specified when the operation is a " "\'modify\', this type value must match the type of " "that instance." ), ValueMap { "0", "1", "2", "3", "4", "..", "32768..65535" }, Values { "Unknown", "Reserved", "StorageVolume", "StorageExtent", "LogicalDisk", "DMTF Reserved", "Vendor Specific" }] uint16 ElementType, [IN ( false ), OUT, Description ( "Reference to the job (may be null if job completed)." )] CIM_ConcreteJob REF Job, [IN, Description ( "The requirements for the element to maintain. If " "set to a null value, the default configuration " "from the source pool will be used. This parameter " "should be a reference to a Setting or Profile " "appropriate to the element being created. If not " "NULL, this parameter will supply a new Goal when " "modifying an existing element." )] CIM_ManagedElement REF Goal, [IN, OUT, Description ( "As an input parameter Size specifies the desired " "size. If not NULL, this parameter will supply a " "new size when modifying an existing element. As an " "output parameter Size specifies the size achieved." ), Units ( "Bytes" )] uint64 Size, [IN, Description ( "The Pool from which to create the element. This " "parameter must be set to null if the input " "parameter TheElement is specified (in the case of " "a \'modify\' operation)." )] CIM_StoragePool REF InPool, [IN, OUT, Description ( "As an input parameter: if null, creates a new " "element. If not null, then the method modifies the " "specified element. As an output parameter, it is a " "reference to the resulting element." )] CIM_LogicalElement REF TheElement); [Description ( "Start a job to delete a StoragePool. The freed space is " "returned source StoragePools (indicated by AllocatedFrom " "StoragePool) or back to underlying storage extents. If 0 " "is returned, the function completed successfully, and no " "ConcreteJob was required. If 4096/0x1000 is returned, a " "ConcreteJob will be started to delete the StoragePool. A " "reference to the Job is returned in the Job parameter." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097..32767", "32768..65535" }, Values { "Job Completed with No Error", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "In Use", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific" }] uint32 DeleteStoragePool( [IN ( false ), OUT, Description ( "Reference to the job (may be null if job completed)." )] CIM_ConcreteJob REF Job, [IN, Description ( "Reference to the pool to delete." )] CIM_StoragePool REF Pool); [Description ( "Start a job to delete an element previously created from " "a StoragePool. The freed space is returned to the source " "StoragePool. If 0 is returned, the function completed " "successfully and no ConcreteJob was required. If " "4096/0x1000 is returned, a ConcreteJob will be started " "to delete the element. A reference to the Job is " "returned in the Job parameter." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097..32767", "32768..65535" }, Values { "Job Completed with No Error", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "In Use", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific" }] uint32 ReturnToStoragePool( [IN ( false ), OUT, Description ( "Reference to the job (may be null if job completed)." )] CIM_ConcreteJob REF Job, [IN, Description ( "Reference to the element to return to the StoragePool." )] CIM_LogicalElement REF TheElement); [Description ( "Start a job to create a new storage object which is a " "replica of the specified source storage object. " "(SourceElement). Note that using the input paramter, " "CopyType, this function can be used to instantiate the " "replica, and to create an ongoing association between " "the source and replica. If 0 is returned, the function " "completed successfully and no ConcreteJob instance is " "created. If 4096/0x1000 is returned, a ConcreteJob is " "started, a reference to which is returned in the Job " "output parameter." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097..32767", "32768..65535" }, Values { "Job Completed with No Error", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "In Use", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific" }] uint32 CreateReplica( [IN, Description ( "A end user relevant name for the element being " "created. If NULL, then a system supplied default " "name can be used. The value will be stored in the " "\'ElementName\' property for the created element." )] string ElementName, [IN ( false ), OUT, Description ( "Reference to the job (may be null if job completed)." )] CIM_ConcreteJob REF Job, [Required, IN, Description ( "The source storage object which may be a " "StorageVolume or storage object." )] CIM_LogicalElement REF SourceElement, [IN ( false ), OUT, Description ( "Reference to the created target storage element " "(i.e., the replica)." )] CIM_LogicalElement REF TargetElement, [IN, Description ( "The definition for the StorageSetting to be " "maintained by the target storage object (the " "replica)." )] CIM_StorageSetting REF TargetSettingGoal, [IN, Description ( "The underlying storage for the target element (the " "replica) will be drawn from TargetPool if " "specified, otherwise the allocation is " "implementation specific." )] CIM_StoragePool REF TargetPool, [IN, Description ( "CopyType describes the type of copy that will be " "made. Values are: \n" "Async: Create and maintain an asynchronous copy of " "the source. \n" "Sync: Create and maintain a synchronized copy of " "the source. \n" "UnSyncAssoc: Create an unsynchronized copy and " "maintain an association to the source. \n" "UnSyncUnAssoc: Create unassociated copy of the " "source element." ), ValueMap { "2", "3", "4", "5", "..", "32768..65535" }, Values { "Async", "Sync", "UnSyncAssoc", "UnSyncUnAssoc", "DMTF Reserved", "Vendor Specific" }] uint16 CopyType); [Description ( "Modify (or start a job to modify) the synchronization " "association between two storage objects. If 0 is " "returned, the function completed successfully and no " "ConcreteJob instance was created. If 0x1000 is returned, " "a ConcreteJob was started and a reference to this Job is " "returned in the Job output parameter. A return value of " "1 indicates the method is not supported. All other " "values indicate some type of error condition." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "0x1000", "0x1001..0x7FFF", "0x8000..0xFFFF" }, Values { "Job Completed with No Error", "Not Supported", "Unspecified Error", "Timeout", "Failed", "Invalid Parameter", "In Use", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific" }] uint32 ModifySynchronization( [IN, Description ( "Operation describes the type of modification to be " "made to the replica. Values are: \n" "Detach: \'Forget\' the synchronization between two " "storage objects. Start to treat the objects as " "independent. \n" "Fracture: Suspend the synchronization between two " "storage objects using Sync or Async replication. \n" "The association and (typically) changes are " "remembered to allow a fast resynchronization. This " "may be used during a backup cycle to allow one of " "the objects to be copied while the other remains " "in production. \n" "Resync Replica: Re-establish the synchronization " "of a Sync or Async replication. This will negate " "the action of a previous Fracture operation. " "Recreate a Point In Time image for an UnSyncAssoc " "replication. \n" "Restore from Replica: Renew the contents of the " "original storage object from a replica. \n" "Prepare: Get the link ready for a Resync operation " "to take place. Some implementations will require " "this operation to be invoked to keep the Resync " "operation as fast as possible. May start the copy " "engine. \n" "Unprepare: Clear a prepared state if a Prepare is " "not to be followed by a Resync operation. \n" "Quiesce: Some applications require notification so " "that they can ready the link for an operation. For " "example flush any cached data or buffered changes. " "The copy engine is stopped for UnSyncAssoc " "replications. \n" "Unquiesce: Take the link from the quiesced state " "(without executing the intended operation. \n" "Start Copy: initiate a full background copy of the " "source to the UnSyncAssoc replica. Replica enters " "Frozen state when copy operation is completed. \n" "Stop Copy: stop the background copy previously " "started. Reset To Sync: Change the CopyType of the " "association to Sync (e.g., from the Async " "CopyType). \n" "Reset To Async: Change the CopyType of the " "association to Async (e.g., from the Sync " "CopyType)." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "..", "0x8000..0xFFFF" }, Values { "DMTF Reserved", "DMTF Reserved", "Detach", "Fracture", "Resync Replica", "Restore from Replica", "Prepare", "Unprepare", "Quiesce", "Unquiesce", "Reset To Sync", "Reset To Async", "Start Copy", "Stop Copy", "DMTF Reserved", "Vendor Specific" }] uint16 Operation, [IN ( false ), OUT, Description ( "Reference to the job (may be null if the task completed)." )] CIM_ConcreteJob REF Job, [IN, Description ( "The referenced to the StorageSynchronized " "association describing the storage source/replica " "relationship." )] CIM_StorageSynchronized REF Synchronization); [Description ( "Create (or start a job to create) a StorageSynchronized " "relationship between two existing storage objects. Note " "that using the input parameter, CopyType, this function " "can be used to to create an ongoing association between " "the source and replica. If 0 is returned, the function " "completed successfully and no ConcreteJob instance is " "created. If 0x1000 is returned, a ConcreteJob is " "started, a reference to which is returned in the Job " "output parameter. A return value of 1 indicates the " "method is not supported. All other values indicate some " "type of error condition." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "0x1000", "0x1001..0x7FFF", "0x8000..0xFFFF" }, Values { "Job Completed with No Error", "Not Supported", "Unspecified Error", "Timeout", "Failed", "Invalid Parameter", "In Use", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific" }] uint32 AttachReplica( [IN ( false ), OUT, Description ( "Reference to the job (may be null if the task completed)." )] CIM_ConcreteJob REF Job, [Required, IN, Description ( "The source storage object which may be a " "StorageVolume or other storage object." )] CIM_ManagedElement REF SourceElement, [IN, Description ( "Reference to the target storage element (i.e., the replica)." )] CIM_ManagedElement REF TargetElement, [IN, Description ( "CopyType describes the type of Synchronized " "relationship that will be created. Values are: \n" "Async: Create and maintain an asynchronous copy of " "the source. \n" "Sync: Create and maintain a synchronized copy of " "the source. \n" "UnSyncAssoc: Create an unsynchronized copy and " "maintain an association to the source. \n" "UnSyncUnAssoc: Create unassociated copy of the " "source element." ), ValueMap { "2", "3", "4", "5", "..", "0x8000..0xFFFF" }, Values { "Async", "Sync", "UnSyncAssoc", "UnSyncUnAssoc", "DMTF Reserved", "Vendor Specific" }] uint16 CopyType); [Description ( "Start a job to create (or modify) a specified storage " "element from specified input StorageExtents. The created " "or modified storage element can be a StorageExtent, " "StorageVolume, LogicalDisk, or StoragePool. An input " "list of InElements must be specified. The " "GetAvailableExtents method can be used to get a list of " "valid extents that can be used to achieve a desired " "goal. Validity of the extents is determined by the " "implementation. As an input parameter, Size specifies " "the desired size of the element. As an output parameter, " "it specifies the size achieved. Space is taken from the " "input InElements. The desired Settings for the element " "are specified by the Goal parameter. If the size of " "Extents passed is less than the size requested, then the " "capacity is drawn from the extents in the order, left to " "right, that the Extents were specified. The partial " "consumption of an Extent is represented by an Extent for " "the capacity used and an Extent for the capacity not " "used. If the Size is NULL, then a configuration using " "all Extents passed will be attempted. If the requested " "size cannot be created, no action will be taken, and the " "Return Value will be 4097/0x1001. Also, the output value " "of Size is set to the nearest possible size. If 0 is " "returned, the function completed successfully and no " "ConcreteJob instance was required. If 4096/0x1000 is " "returned, a ConcreteJob will be started to create the " "element. The Job\'s reference will be returned in the " "output parameter Job." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097", "4098..32767", "32768..65535" }, Values { "Completed with No Error", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "In Use", "DMTF Reserved", "Method Parameters Checked - Job Started", "Size Not Supported", "Method Reserved", "Vendor Specific" }] uint32 CreateOrModifyElementFromElements( [IN, Description ( "A end user relevant name for the element being " "created. If NULL, then a system-supplied default " "name can be used. The value will be stored in the " "\'ElementName\' property for the created element. " "If not NULL, this parameter will supply a new name " "when modifying an existing element." )] string ElementName, [Required, IN, Description ( "Enumeration indicating the type of element being " "created or modified. If the input parameter " "TheElement is specified when the operation is a " "\'modify\', this type value must match the type of " "that instance. The actual CIM class of the created " "TheElement can be vendor-specific, but it must be " "a derived class of the appropriate CIM class -- " "i.e., CIM_StorageVolume, CIM_StorageExtent, " "CIM_LogicalDisk, or CIM_StoragePool." ), ValueMap { "0", "1", "2", "3", "4", "5", "..", "32768..65535" }, Values { "Unknown", "Reserved", "Storage Volume", "Storage Extent", "Storage Pool", "Logical Disk", "DMTF Reserved", "Vendor Specific" }] uint16 ElementType, [IN ( false ), OUT, Description ( "Reference to the job (may be null if job completed)." )] CIM_ConcreteJob REF Job, [IN, Description ( "The requirements for the element to maintain. If " "set to a null value, the default configuration " "associated with the Service will be used. This " "parameter should be a reference to a Setting, " "SettingData, or Profile appropriate to the element " "being created. If not NULL, this parameter will " "supply a new Goal when modifying an existing " "element." )] CIM_ManagedElement REF Goal, [IN, OUT, Description ( "As an input parameter Size specifies the desired " "size. If not NULL, this parameter will supply a " "new size when modifying an existing element. As an " "output parameter Size specifies the size achieved." ), Units ( "Bytes" )] uint64 Size, [Required, IN, Description ( "Array of references to storage element instances " "that are used to create or modify TheElement." )] CIM_StorageExtent REF InElements[], [IN, OUT, Description ( "As an input parameter: if null, creates a new " "element. If not null, then the method modifies the " "specified element. As an output parameter, it is a " "reference to the resulting element." )] CIM_LogicalElement REF TheElement); };