// =================================================================== // Title: Device Storage Library 2.7 // Filename: Device27_StorageLib.mof // Version: 2.7.0 // Release: Preliminary // Date: 07/17/02 // =================================================================== // Copyright 2002 Distributed Management Task Force, Inc. (DMTF). // All rights reserved. // DMTF is a not-for-profit association of industry members dedicated // to promoting enterprise and systems management and interoperability. // DMTF specifications and documents may be reproduced for uses // consistent with this purpose by members and non-members, // provided that correct attribution is given. // As DMTF specifications may be revised from time to time, // the particular version and release date should always be noted. // // Implementation of certain elements of this standard or proposed // standard may be subject to third party patent rights, including // provisional patent rights (herein "patent rights"). DMTF makes // no representations to users of the standard as to the existence // of such rights, and is not responsible to recognize, disclose, or // identify any or all such third party patent right, owners or // claimants, nor for any incomplete or inaccurate identification or // disclosure of such rights, owners or claimants. DMTF shall have no // liability to any party, in any manner or circumstance, under any // legal theory whatsoever, for failure to recognize, disclose, or // identify any such third party patent rights, or for such party's // reliance on the standard or incorporation thereof in its product, // protocols or testing procedures. DMTF shall have no liability to // any party implementing such standard, whether such implementation // is foreseeable or not, nor to any patent owner or claimant, and shall // have no liability or responsibility for costs or losses incurred if // a standard is withdrawn or modified after publication, and shall be // indemnified and held harmless by any party implementing the // standard from any and all claims of infringement by a patent owner // for such implementations. // // For information about patents held by third-parties which have // notified the DMTF that, in their opinion, such patent may relate to // or impact implementations of DMTF standards, visit // http://www.dmtf.org/about/policies/disclosures.php. // =================================================================== // Description: The Device Model extends the management concepts that // are related to LogicalDevices. This file defines the // classes that model a storage library. // // The object classes below are listed in an order that // avoids forward references. Required objects, defined // by other working groups, are omitted. // ================================================================== // Change Log for v2.7 // CR721 - Add LabelReaderStatData and PickerStatData that are part // of the new statistics hierarcy // CR822 - Change the subclassing of LibraryPackage from // Dependency to SystemPackaging // ================================================================== #pragma locale ("en_US") // =================================================================== // StorageLibrary // =================================================================== [Version ("2.6.0"), Description ( "A StorageLibrary is a collection of ManagedSystemElements " "that operate together to provide cartridge library " "capabilities. This object serves as an aggregation point to " "group the following elements: MediaTransferDevices, a Label" "Reader, a library Door, MediaAccessDevices, and other " "Library components.") ] class CIM_StorageLibrary : CIM_System { [Description ( "Capabilities of the StorageLibrary. For example, it can be " "indicated that the Library can perform automatic cleaning of " "the MediaAccessDevices contained in it (value=1) or that the " "Library provides physical door access for an operator " "(value=2)."), ValueMap {"0", "1", "2", "3", "4"}, Values {"Unknown", "Other", "Automatic Cleaning", "Manual Operation", "Front Panel Lockable"} ] uint16 Capabilities[]; [Description ( "Boolean set to TRUE if there are more PhysicalMedia in a " "Library than there are StorageMediaLocations to contain them. " "For instance, if all MediaAccessDevices have a Media loaded " "in them, and all StorageMediaLocations are loaded by an " "operator, then an Overfilled condition exists.") ] boolean Overfilled; [Description ( "Boolean set to TRUE if the Library can not currently report " "the correct state of each PhysicalMedia within its proper " "StorageMediaLocation.") ] boolean AuditNeeded; [Description ( "Boolean set to TRUE if an audit of the location of some or " "all of the Library's PhysicalMedia is currently being " "performed. That an individual Changer is currently doing an " "audit is indicated by a similar AuditInProgress boolean " "property on the Changer object.") ] boolean AuditInProgress; [Description ( "Maximum time in seconds that it takes for the Storage" "Library to perform a complete audit of each StorageMedia" "Location, to determine the absence or presence of a Physical" "Media. If automated support is not provided, then this " "property's value is undefined."), Units ("Seconds") ] uint64 MaxAuditTime; [Description ( "Boolean set to TRUE if the Library includes a robotics " "mechanism that can be controlled by a ComputerSystem, to " "automatically load and unload PhysicalMedia to/from " "MediaAccessDevices and StorageMediaLocations. The " "property is set to FALSE if the Library represents a " "repository of Media that are inaccessible to a MediaAccess" "Device without human intervention. An example of a non-" "automated Library is a 'shelf' or 'vault' where Physical" "Media are kept for extended periods of time.") ] boolean Automated; [Description ( "Boolean indicating whether the Library's robotics are " "currently active/enabled. If TRUE, then the Library may not " "be safe for a human to enter.") ] boolean RoboticsEnabled; [Description ( "Requests that the Library robotics be enabled for " "automated operation (input parameter, Enabled, set to TRUE), " "or disabled for manual operation (input parameter set to " "FALSE). The return value should be 0 if the request was " "successfully executed, 1 if the request is not supported " "and some other value if an error occurred. In a subclass, " "the set of possible return codes could be specified, using " "a ValueMap qualifier on the method. The strings to which " "the ValueMap contents are 'translated' may also be specified " "in the subclass as a Values array qualifier.") ] uint32 EnableRobotics( [IN] boolean Enable); }; // ================================================================== // LibraryPackage // ================================================================== [Association, Version ("2.7.0"), Description ( "Similar to the way that LogicalDevices are 'Realized' by " "PhysicalElements, a StorageLibrary can be realized in one or " "more PhysicalPackages. The LibraryPackage association " "explicitly defines this relationship.") ] class CIM_LibraryPackage : CIM_SystemPackaging { [Override ("Antecedent"), Description ( "The PhysicalPackage(s) that realize a StorageLibrary.") ] CIM_PhysicalPackage REF Antecedent; [Override ("Dependent"), Description ("The StorageLibrary.") ] CIM_StorageLibrary REF Dependent; }; // =================================================================== // MediaTransferDevice // =================================================================== [Version ("2.6.0"), Description ( "A MediaTransferDevice represents hardware that moves Physical" "Media. It is a superclass for Devices like PickerElement, " "ChangerDevice and InterLibraryPort.") ] class CIM_MediaTransferDevice : CIM_LogicalDevice { }; // =================================================================== // DeviceServicesLocation // =================================================================== [Association, Version ("2.6.0"), Description ( "Within an automated StorageLibrary, Media should be accessible " "to the various robotics and MediaTransferDevices (Pickers, " "Changers, InterLibraryPorts, etc.). The Library may be " "serviced by different TransferDevices, each responsible for " "a subset of the Library's StorageMediaLocations. The Device" "ServicesLocation association indicates that the Transfer" "Device handles Media stored in the referenced Location. " "For example, LibraryPort 'A' may only service Media from " "Slots 1-10, while LibraryPort 'B' covers Slots 11-33. " "This detail is conveyed by this association.") ] class CIM_DeviceServicesLocation : CIM_Dependency { [Override ("Antecedent"), Description ( "The MediaTransferDevice that handles Media from the " "StorageMediaLocation.") ] CIM_MediaTransferDevice REF Antecedent; [Override ("Dependent"), Description ( "The MediaLocation that is serviced.") ] CIM_StorageMediaLocation REF Dependent; [Description ( "Boolean indicating that the referenced StorageMediaLocation " "is not currently accessible to the MediaTransferDevice. For " "example, the Location could be the realization of an " "InterLibraryPort that is currently servicing another " "Library. The DeviceServicesLocation association describes " "that the TransferDevice COULD service the MediaLocation. " "This boolean indicates that that this is temporarily not " "possible.") ] boolean Inaccessible; }; // =================================================================== // PickerElement // =================================================================== [Version ("2.6.0"), Description ( "PickerElements represent hardware used to pick or place " "PhysicalMedia from/into StorageMediaLocations.") ] class CIM_PickerElement : CIM_MediaTransferDevice { [Description ( "The maximum time in seconds for a PickerElement to grab " "a PhysicalMedia from a StorageMediaLocation, once the " "Picker has arrived at that Location. The maximum time " "interval for moving a Media from one point to another is " "the sum of the PickerElement's MaxPickTime, the Changer" "Device's MaxTransitTime and the PickerElement's MaxPutTime."), Units ("Seconds") ] uint32 MaxPickTime; [Description ( "The maximum time in seconds for a PickerElement to place " "a PhysicalMedia into a StorageMediaLocation, once the " "Picker has arrived at that Location. The maximum time " "interval for moving a Media from one point to another is " "the sum of the PickerElement's MaxPickTime, the Changer" "Device's MaxTransitTime and the PickerElement's MaxPutTime."), Units ("Seconds") ] uint32 MaxPutTime; [Description ( "String describing the location in the StorageLibrary " "where the Picker is currently positioned.") ] string CellLocation; }; // =================================================================== // ChangerDevice // =================================================================== [Version ("2.6.0"), Description ( "ChangerDevices represent hardware that moves PhysicalMedia " "within a System, such as a StorageLibrary.") ] class CIM_ChangerDevice : CIM_MediaTransferDevice { [Description ( "The maximum time in seconds between a PickerElement pick " "and place. It should be reported as the transit time " "between the two most physically distant StorageMedia" "Locations in a System. The maximum time interval for " "moving a Media from one point to another is the sum of " "the PickerElement's MaxPickTime, the ChangerDevice's Max" "TransitTime and the PickerElement's MaxPutTime."), Units ("Seconds") ] uint32 MaxTransitTime; [Description ( "Boolean set to TRUE if the Changer supports media flipping. " "Media needs to be flipped when multi-sided PhysicalMedia " "are placed into a MediaAccessDevice that does NOT support " "dual sided access.") ] boolean MediaFlipSupported; [Description ( "Boolean set to TRUE if an audit is currently being performed " "by the Changer.") ] boolean AuditInProgress; [Counter, Description ( "A count of the number of audits performed by the Changer.") ] uint64 AuditsPerformed; }; // =================================================================== // PickerForChanger // =================================================================== [Association, Version ("2.6.0"), Description ( "PickerForChanger indicates the PickerElement(s) that access " "StorageMediaLocations and deliver PhysicalMedia to the Changer, " "for movement through the System. A Changer may have several " "Pickers for faster exchange of Media.") ] class CIM_PickerForChanger : CIM_Dependency { [Override ("Antecedent"), Description ( "The PickerElement that accesses StorageMediaLocations " "to deliver Media to the Changer.") ] CIM_PickerElement REF Antecedent; [Override ("Dependent"), Max (1), Description ( "The ChangerDevice.") ] CIM_ChangerDevice REF Dependent; }; // =================================================================== // LimitedAccessPort // =================================================================== [Version ("2.6.0"), Description ( "LimitedAccessPorts represent hardware that transports Physical" "Media into or out of a System, such as a StorageLibrary. They " "are identified as 'limited' since these Ports do not provide " "access to ALL the PhysicalMedia or StorageMediaLocations in a " "Library, but only to a subset.") ] class CIM_LimitedAccessPort : CIM_MediaTransferDevice { [Description ( "Boolean indicating that the Port is 'locked' (TRUE) or " "'unlocked' (FALSE). When the Port is locked, access its Media " "Locations is prevented without the use of a physical key, " "front panel activity or the issuance of a software unlock " "command.") ] boolean Locked; [Description ( "When a Port is 'Extended' or 'open' (value=TRUE), its Storage" "MediaLocations are accessible to a human operator. If not " "extended (value=FALSE), the Locations are accessible to a " "PickerElement.") ] boolean Extended; [Description ( "When a LimitedAccessPort is 'Extended', all related media-" "transfer componentry may be stopped. The ExtendTimeout " "property provides a mechanism to event on a Port left open " "for a period of time (in seconds) exceeding the property's " "value."), Units ("Seconds") ] uint32 ExtendTimeout; [Description ( "Date and time that the Port was last extended.") ] datetime LastExtended; [Counter, Description ( "The number of times that the LimitedAccessPort was used to " "move a PhysicalMedia into the System/StorageLibrary.") ] uint64 ImportCount; [Counter, Description ( "The number of times that the LimitedAccessPort was used to " "move a PhysicalMedia out of the System/StorageLibrary.") ] uint64 ExportCount; [Description ( "An enumeration expressing whether the Port is used for " "import into the Library/System which scopes and names it " "(value=1), export from the Library/System (value=2), or " "both (value=3)."), ValueMap {"0", "1", "2", "3"}, Values {"Unknown", "Import", "Export", "Both Import and Export"} ] uint16 Direction; }; // =================================================================== // InterLibraryPort // =================================================================== [Version ("2.6.0"), Description ( "InterLibraryPorts represent hardware that transports Physical" "Media between connected StorageLibraries. The LibraryExchange " "association identifies the connected Libraries, by identifying " "the connected InterLibraryPorts.") ] class CIM_InterLibraryPort : CIM_MediaTransferDevice { [Description ( "Date and time that the Port was last accessed by its " "System/StorageLibrary. This value may be different " "than that specified for the Port(s) to which this Inter" "LibraryPort is connected. Connected Ports are identified " "using the LibraryExchange association.") ] datetime LastAccessed; [Counter, Description ( "The number of times that the InterLibraryPort was used to " "move a PhysicalMedia into the System/StorageLibrary.") ] uint64 ImportCount; [Counter, Description ( "The number of times that the InterLibraryPort was used to " "move a PhysicalMedia out of the System/StorageLibrary.") ] uint64 ExportCount; [Description ( "An enumeration expressing whether the Port is used for " "import into the Library/System which scopes and names it " "(value=1), export from the Library/System (value=2), or " "both (value=3)."), ValueMap {"0", "1", "2", "3"}, Values {"Unknown", "Import", "Export", "Both Import and Export"} ] uint16 Direction; }; // =================================================================== // LibraryExchange // =================================================================== [Association, Version ("2.6.0"), Description ( "LibraryExchange indicates that two StorageLibraries are " "connected through their InterLibraryPorts.") ] class CIM_LibraryExchange : CIM_Dependency { [Override ("Antecedent"), Description ( "The InterLibraryPort of one StorageLibrary.") ] CIM_InterLibraryPort REF Antecedent; [Override ("Dependent"), Description ( "The InterLibraryPort of the connected Library.") ] CIM_InterLibraryPort REF Dependent; [Description ( "Enumeration indicating whether the Antecedent (value=1), " "Dependent (value=2), or neither Library (value=3) currently " "has access to the Port."), ValueMap {"0", "1", "2", "3"}, Values {"Unknown", "Antecedent", "Dependent", "Neither"} ] uint16 CurrentlyAccessingPort; }; // =================================================================== // LabelReader // =================================================================== [Version ("2.6.0"), Description ( "LabelReaders represent hardware capable of scanning or reading " "a physical label or the NonVolatileMemory on a PhysicalMedia. " "Examples of labels include barcode and OCR tags.") ] class CIM_LabelReader : CIM_LogicalDevice { [Description ( "An array of enumerated integers describing the formats of " "the labels that can be read or scanned by the LabelReader. " "The values specified for this property correspond to " "those defined for CIM_PhysicalMedia.LabelFormats."), ValueMap {"0", "1", "2", "3", "4", "5"}, Values {"Barcode", "Radio Frequency Identification", "OCR (Optical Character Recognition)", "MICR (Magnetic Ink Character Recognition)", "7 Character Barcode", "9 Character Barcode"}, ModelCorrespondence {"CIM_PhysicalMedia.LabelFormats"} ] uint16 SupportedFormats[]; [Description ( "The technology used by the LabelReader. One entry of the " "Values array requires some explanation - \"Memory Reader\". " "The latter describes the ability to access memory in a " "PhysicalMedia's packaging (for example, memory on an AIT " "tape). The existence of this Memory is indicated by the " "MemoryWithMedia association on the physical side, or by " "AssociatedMemory on the logical side."), ValueMap {"0", "1", "2", "3", "4", "5", "6"}, Values {"Unknown", "Other", "Laser", "Infrared", "RF", "Camera", "Memory Reader"} ] uint16 Technology; }; // =================================================================== // AssociatedLabelReader // =================================================================== [Association, Version ("2.6.0"), Description ( "A LogicalDevice may use or require one or more LabelReaders, to " "scan barcodes or otherwise identify entities. This relationship " "is described by the AssociatedLabelReader dependency.") ] class CIM_AssociatedLabelReader : CIM_Dependency { [Override ("Antecedent"), Description ( "The LabelReader.") ] CIM_LabelReader REF Antecedent; [Override ("Dependent"), Description ( "The Device that is dependent on the Reader Device.") ] CIM_LogicalDevice REF Dependent; }; // =================================================================== // PickerLabelReader // =================================================================== [Association, Version ("2.6.0"), Description ( "PickerLabelReader is used to indicate that one or more Label" "Readers works in conjunction with PickerElements, to identify " "PhysicalMedia as they are being picked/placed.") ] class CIM_PickerLabelReader : CIM_AssociatedLabelReader { [Override ("Antecedent"), Description ( "The LabelReader.") ] CIM_LabelReader REF Antecedent; [Override ("Dependent"), Description ( "The PickerElement that is dependent on the Reader Device.") ] CIM_PickerElement REF Dependent; }; // =================================================================== // AccessLabelReader // =================================================================== [Association, Version ("2.6.0"), Description ( "AccessLabelReader is used to indicate that one or more Label" "Readers works in conjunction with MediaAccessDevices, " "to identify PhysicalMedia before read/write.") ] class CIM_AccessLabelReader : CIM_AssociatedLabelReader { [Override ("Antecedent"), Description ( "The LabelReader.") ] CIM_LabelReader REF Antecedent; [Override ("Dependent"), Description ( "The MediaAccessDevice that is dependent on the Reader " "Device.") ] CIM_MediaAccessDevice REF Dependent; }; // =================================================================== // LabelReaderStatInfo // =================================================================== [Version ("2.6.0"), Description ( "Statistics for a LabelReader, related to read successes, " "failures and retries.") ] class CIM_LabelReaderStatInfo : CIM_DeviceStatisticalInformation { [Counter, Description ( "The number of successful physical label scans.") ] uint64 ScanSuccesses; [Counter, Description ("The number of failed physical label scans.") ] uint64 ScanFailures; [Counter, Description ("The number of retried physical label scans.") ] uint64 ScanRetries; [Description ( "Method to reset the statistical counters. The method " "takes one parameter as input - an integer indicating which " "counter to reset. For this input parameter, 0 indicates all, " "1 resets the \"Scan Successes\" counter, 2 resets the " "\"Scan Failures\" counter, and 3 resets the \"Scan Retries\" " "counter. The method returns 0 if successful, 1 if not " "supported, and any other value if an error occurred. A method " "is specified so that the Device's instrumentation can also " "reset its internal processing and counters. \n" "In a subclass, the set of possible return codes should be " "specified in a ValueMap qualifier on the method. The strings " "to which the ValueMap contents are 'translated' can be " "specified as a Values array qualifier.") ] uint32 ResetCounter ( [IN, ValueMap {"0", "1", "2", "3"}, Values {"All", "Scan Successes", "Scan Failures", "Scan Retries"} ] uint16 SelectedCounter); }; // =================================================================== // PickerStatInfo // =================================================================== [Version ("2.6.0"), Description ( "Statistics for a PickerElement, related to pick/put successes, " "retries and failures.") ] class CIM_PickerStatInfo : CIM_DeviceStatisticalInformation { [Counter, Description ("The number of successful picks.") ] uint64 PickSuccesses; [Counter, Description ("The number of failed picks.") ] uint64 PickFailures; [Counter, Description ("The number of retried picks.") ] uint64 PickRetries; [Counter, Description ("The number of successful puts.") ] uint64 PutSuccesses; [Counter, Description ("The number of failed puts.") ] uint64 PutFailures; [Counter, Description ("The number of retried puts.") ] uint64 PutRetries; [Description ( "Method to reset the statistical counters. The method takes " "one parameter as input - an integer indicating which counter " "to reset. For this input parameter, 0 indicates all, 1-3 " "reset the 'pick'-related counters, and 4-6 reset the 'put'-" "related counters. The method returns 0 if successful, 1 if " "not supported, and any other value if an error occurred. A " "method is specified so that the Device's instrumentation can " "also reset its internal pocessing and counters. \n" "In a subclass, the set of possible return codes should be " "specified in a ValueMap qualifier on the method. The strings " "to which the ValueMap contents are 'translated' can be " "specified as a Values array qualifier.") ] uint32 ResetCounter ( [IN, ValueMap {"0", "1", "2", "3", "4", "5", "6"}, Values {"All", "Pick Successes", "Pick Failures", "Pick Retries", "Put Successes", "Put Failures", "Put Retries"} ] uint16 SelectedCounter); }; // =================================================================== // LabelReaderStatData // =================================================================== [Experimental, Version ("2.7.0"), Description ( "Statistics for a LabelReader, related to read successes, " "failures and retries. The element whose statistics are " "described is associated using the relationship, " "ElementStatisticalData.") ] class CIM_LabelReaderStatData : CIM_StatisticalData { [Counter, Description ( "The number of successful physical label scans.") ] uint64 ScanSuccesses; [Counter, Description ("The number of failed physical label scans.") ] uint64 ScanFailures; [Counter, Description ("The number of retried physical label scans.") ] uint64 ScanRetries; }; // =================================================================== // PickerStatData // =================================================================== [Experimental, Version ("2.7.0"), Description ( "Statistics for a PickerElement, related to pick/put successes, " "retries and failures. The element whose statistics are described " "is associated using the relationship, ElementStatisticalData.") ] class CIM_PickerStatData : CIM_StatisticalData { [Counter, Description ("The number of successful picks.") ] uint64 PickSuccesses; [Counter, Description ("The number of failed picks.") ] uint64 PickFailures; [Counter, Description ("The number of retried picks.") ] uint64 PickRetries; [Counter, Description ("The number of successful puts.") ] uint64 PutSuccesses; [Counter, Description ("The number of failed puts.") ] uint64 PutFailures; [Counter, Description ("The number of retried puts.") ] uint64 PutRetries; }; // =================================================================== // end of file // ===================================================================