// Copyright (c) 2013 DMTF. All rights reserved. [Experimental, Version ( "2.42.0" ), UMLPackagePath ( "CIM::Device::Tape" ), Description ( "Provides functions needed for the following type of copies: " "snapshot and selective copy." )] class CIM_TapeCopyService : CIM_Service { [Experimental, Description ( "AcquireTape initializes a transaction for a given tape " "and informs the provider that a sequence of actions will " "be performed on that tape. A transaction is defined as a " "sequence of actions on a tape, starting with AcquireTape " "and ending with ReleaseTape. A call to AcquireTape is " "required before any sequence of actions can be " "performed, actions that will result in an error if the " "tape activity is not \'Acquired\'. These actions are: " "\tPositionTape, \tWriteMetaData, \tReadMetaData, " "\tTapeSnapshot, \tSelectiveTapeCopy. " "GetTapeServicesActivity is the only call pertaining to a " "tape that doesn\'t require that tape to be " "\'Acquired\'.For any given tape, additional calls to " "AcquireTape shall return an error unless ReleaseTape was " "called or if the AcquireTape timeout has expired." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "32768..65535" }, Values { "Success", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "Already Acquired", "DMTF Reserved", "Vendor Specific" }] uint16 AcquireTape( [IN, Description ( "A reference to the tape that needs to be acquired" )] CIM_PhysicalTape REF targetTape, [IN, Description ( "The time after which an inactive transaction will " "automatically end (equivalent to an implicit call " "to RealeaseTape. A value of 0 indicates that the " "default timeout specified in " "TapeCopyServiceCapabilities will be used." )] datetime timeout, [IN ( false ), OUT, Description ( "returned reference to a job control object if " "AcquireTape is implemented asynchronously." )] CIM_ConcreteJob REF job); [Experimental, Description ( "ReleaseTape marks the end of a transaction. At this " "point, the tape becomes available for use by other " "clients or for a new transaction. ReleaseTape shall fail " "if called on a tape whose activity is not \'Acquired\'." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "..", "32768..65535" }, Values { "Success", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "Operation in Progress", "Tape Not Acquired", "DMTF Reserved", "Vendor Specific" }] uint16 ReleaseTape( [IN, Description ( "The tape to be released." )] CIM_PhysicalTape REF targetTape, [IN ( false ), OUT, Description ( "returned reference to a job control object if " "ReleaseTape is implemented asynchronously." )] CIM_ConcreteJob REF job); [Experimental, Description ( "PositionTape positions a tape before data gets read or " "written by one of the following calls: ReadTapeMetaData, " "WriteTapeMetaData, TapeSnapshot, SelectiveTapeCopy. " "PositionTape uses relative positioning and can also be " "used to rewind the tape by passing 0 as a start " "position. PositionTape shall fail if called on a tape " "whose activity is not \'Acquired\'." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "32768..65535" }, Values { "Success", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "Tape Not Acquired", "DMTF Reserved", "Vendor Specific" }] uint16 PositionTape( [IN, Description ( "The tape to be positioned" )] CIM_PhysicalTape REF targetTape, [IN, Description ( "Type of positioning: filemark or block" ), ValueMap { "1", "2", "3..65535" }, Values { "filemark", "block", "Vendor Specific" }] uint16 startType, [IN, Description ( "A number of elements of type start type. Relative " "positioning implie that negative values are " "acceptable. A zero value has a special meaning and " "will result in a full rewind of the tape." )] sint64 start, [IN ( false ), OUT, Description ( "returned reference to a job control object if " "PositionTape is implemented asynchronously." )] CIM_ConcreteJob REF job); [Experimental, Description ( "WriteTapeMetaData writes meta data to tape at a the " "current tape position (specified by PositionTape). The " "size of the tape meta data size is limited to 1MB beyond " "which an error will be returned. WriteTapeMetaData shall " "fail if called on a tape whose activity is not " "\'Acquired\'." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "32768..65535" }, Values { "Success", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "Tape Not Acquired", "DMTF Reserved", "Vendor Specific" }] uint16 WriteTapeMetaData( [IN, Description ( "The tape to write meta data to" )] CIM_PhysicalTape REF targetTape, [IN, Description ( "The meta data to be written to tape, passed as an " "embedded instance. See CIM_TapeMetaData.mof for " "details" ), EmbeddedInstance ( "CIM_TapeMetaData" )] string metaData, [IN ( false ), OUT, Description ( "returned reference to a job control object if " "WriteTapeMetaData is implemented asynchronously." )] CIM_ConcreteJob REF job); [Experimental, Description ( "ReadTapeMetaData reads meta data from tape. The tape " "meta data size is limited to 1MB beyond which an error " "will be returned.The metaData parameter is a reference, " "which means that clients will have to retrieve the " "actual data from the provider through CIM access methods " "(i.e. GetInstance). The lifecycle of tape meta data on " "the provider is defined as follows: \t- A list of " "TapeMetaData instances will be maintained for every " "acquired tape. \t- The provider will delete a given " "TapeMetaData instance upon receiving a GetInstance call. " "\t- Upon receiving a ReleaseTape call, the provider will " "clear its list of TapeMetaData instances, \t thus " "ensuring proper memory management" ), ValueMap { "0", "1", "2", "3", "4", "5", "..", "32768..65535" }, Values { "Success", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "DMTF Reserved", "Vendor Specific" }] uint16 ReadTapeMetaData( [IN, Description ( "The tape to read meta data from" )] CIM_PhysicalTape REF targetTape, [IN, Description ( "Type of elements to read: filemark or block" ), ValueMap { "1", "2", "3..65535" }, Values { "filemark", "block", "Vendor Specific" }] uint16 sizeType, [IN, Description ( "Number of elements of type \'sizeType\' to be read" )] uint32 size, [IN ( false ), OUT, Description ( "A reference to the TapeMetaData object resulting from the read" )] CIM_TapeMetaData REF metaData, [IN ( false ), OUT, Description ( "returned reference to a job control object if " "ReadTapeMetaData is implemented asynchronously." )] CIM_ConcreteJob REF job); [Experimental, Description ( "TapeSnapshot triggers a snapshot copy. TapeSnapshot " "shall fail if called on a tape whose activity is not " "\'Acquired\'" ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "..", "32768..65535" }, Values { "Success", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "Source Tape Not Acquired", "Target Tape Not Acquired", "DMTF Reserved", "Vendor Specific" }] uint16 TapeSnapshot( [IN, Description ( "Source tape." )] CIM_PhysicalTape REF sourceTape, [IN, Description ( "Target tape." )] CIM_PhysicalTape REF targetTape, [IN, Description ( "Type of copy: simple snapshot or selective copy" ), ValueMap { "1", "2", "3..65535" }, Values { "SimpleSnapshot", "SelectiveTapeCopy", "Vendor Specific" }] uint16 copyType, [IN ( false ), OUT, Description ( "returned reference to a job control object if " "TapeSnapshot is implemented asynchronously." )] CIM_ConcreteJob REF job); [Experimental, Description ( "SelectiveTapeCopy partially copies data. It allows a " "host system to copy all or part of a tape to another " "tape. SelectiveTapeCopy is to be used in conjunction " "with WriteTapeMetaData to add meta data to tape. " "SelectiveTapeCopy shall fail if called on a tape whose " "activity is not \'Acquired\'" ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "..", "32768..65535" }, Values { "Success", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "Source Tape Not Acquired", "Target Tape Not Acquired", "DMTF Reserved", "Vendor Specific" }] uint16 SelectiveTapeCopy( [IN, Description ( "Source tape." )] CIM_PhysicalTape REF sourceTape, [IN, Description ( "Target tape." )] CIM_PhysicalTape REF targetTape, [IN, Description ( "Type of copy: simple snapshot or selective copy" ), ValueMap { "1", "2", "3..65535" }, Values { "SimpleSnapshot", "SelectiveTapeCopy", "Vendor Specific" }] uint16 copyType, [IN, Description ( "Type of elements to copy: filemark or block" ), ValueMap { "1", "2", "3..65535" }, Values { "filemark", "block", "Vendor Specific" }] uint16 sizeType, [IN, Description ( "Number of elements of type \'sizeType\' to be copied" )] uint32 size, [IN ( false ), OUT, Description ( "returned reference to a job control object if " "SelectiveTapeCopy is implemented asynchronously." )] CIM_ConcreteJob REF job); [Experimental, Description ( "GetTapeCopyServices indicates what copy-related actions " "is currently performed on a given tape. " "GetTapeCopyServices shall be implemented synchronously. " "Concurrent clients can use this call to check whether " "copy operations are in progress. tape activity is " "returned by way of an OUT parameter, defined as an " "enumeration of the following values:\t- Idle: the target " "is not currently acquired. \t- Acquired: the target tape " "is currently acquired and no operation is currently " "being performed. \t- Writing: the target tape is " "acquired and tape meta data is being written. \t- " "Reading: the target tape is acquired and tape meta data " "is being read. \t- Positioning: the target tape is " "acquired and being positioned. \t- SnapshotCopy: the " "target tape is acquired and is the source or target tape " "of a snapshot copy. \t- SelectiveCopy: the target tape " "is acquired and is the source or target tape of a " "selective copy." ), ValueMap { "0", "1", "2", "3", "4", "5", "..", "32768..65535" }, Values { "Success", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "DMTF Reserved", "Vendor Specific" }] uint16 GetTapeServicesActivity( [IN, Description ( "Target tape." )] CIM_PhysicalTape REF targetTape, [IN ( false ), OUT, Description ( "Current tape activity returned" ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "7..65535" }, Values { "Idle", "Acquired", "Writing", "Reading", "Positioning", "SnapshotCopy", "SelectiveCopy", "DMTF Reserved" }] uint16 activity); };