3PAR CIM API Programming Reference For InForm OS 2.3.1 - 320
3PAR CIM API Programming Reference For InForm OS 2.3.1 - 320
Programming Reference
for InForm OS 2.3.1
3PAR Inc.
4209 Technology Drive
Fremont, CA 94538 U.S.A.
Part No. 320-200164 Rev B
February 2010
Revision Notice
This is the second release of this manual. A complete revision history is provided at the end of this document.
Changes
The material in this document is for information only and is subject to change without notice. While reasonable efforts have been
made in the preparation of this document to assure its accuracy, 3PAR Inc. assumes no liability resulting from errors or omissions in
this document or from the use of the information contained herein.
3PAR reserves the right to make changes in the product design without reservation and without notification to its users.
Copyrights
© 2010 3PAR Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any
form or by any means, electronic, mechanical, photocopying, recording or otherwise, without the prior written consent of 3PAR Inc.,
4245 Technology Drive, Fremont, CA 94538. By way of exception to the foregoing, the user may print one copy of electronic material
for personal use only.
Trademarks
3PAR, InServ, InForm, InSpire and Serving Information are registered trademarks of 3PAR Inc.
Microsoft, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation.
UNIX is a registered trademark of The Open Group.
All other trademarks and registered trademarks are owned by their respective owners.
This device complies with Part 15 of FFC Rules. Operation is subjected to the following two conditions (1) this device may not cause
harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired
operation.
This equipment has been tested and found to comply with the limits for a Class A digital device, pursuant to Part 15 of the FCC rules.
These limits are designed to provide reasonable protection against harmful interference when the equipment is operated in a
commercial environment. This equipment generates, uses, and can radiate radio frequency energy and, if not installed and used in
accordance with the instruction manual, may cause harmful interference to radio communications. Operation of this equipment in a
residential area is likely to cause harmful interference in which case the user required to correct the interference at his own expense.
InForm OS Version 2.3.1 CIM API Programming Reference
Table of Contents
1 Introduction
1.1 Audience 1.1
2 Concepts
2.1 About SMI-S 2.1
3 Security
3.1 TCP Ports 3.1
iv Table of Contents
InForm OS Version 2.3.1 CIM API Programming Reference
Table of Contents v
CIM API Programming Reference InForm OS Version 2.3.1
vi Table of Contents
InForm OS Version 2.3.1 CIM API Programming Reference
5.15 HideLUsFromStorageHardwareIDCollection
(Removing Host-Sees VLUNs) 5.121
5.15.0.1 StorageHardwareIDManagementService 5.122
5.15.0.2 CreateStorageHardwareID (Creating Host and Path) 5.123
5.15.0.3 DeleteStorageHardwareID (Removing a Path from a Host) 5.124
5.15.0.4 CreateStorageHardwareIDCollection (Creating a Host) 5.125
5.15.0.5 AddStorageHardwareIDsToCollection (Adding a Path to a Host) 5.126
5.15.0.6 StorageHardwareIDCollection.DeleteInstance (Deleting a Host) 5.126
5.15.1 ConcreteDependency 5.126
5.15.2 SAPAvailableForElement 5.126
5.15.3 iSCSISAPAvailableForElement 5.127
5.15.4 SCSIPrococolController 5.127
5.15.5 iSCSIPrococolController 5.127
5.15.6 SCSIPrococolEndpoint 5.127
6 CIM Indications
6.1 Overview 6.1
Table of Contents ix
CIM API Programming Reference InForm OS Version 2.3.1
x Table of Contents
InForm OS Version 2.3.1 CIM API Programming Reference
IX Index
RH Revision History
Table of Contents xi
CIM API Programming Reference InForm OS Version 2.3.1
1
Introduction
In this chapter
1.1 Audience 1.1
1.1 Audience
To use this document, you must be familiar with basic object oriented development techniques
and be familiar with the following:
Introduction 1.1
CIM API Programming Reference InForm OS Version 2.3.1
Determining InServ Storage Server hardware 3PAR InServ E-Class/F-Class Storage Server
specifications, installation considerations, Physical Planning Manual
power requirements, networking options, and
cabling 3PAR InServ S-Class/T-Class Storage Server
Physical Planning Manual
Identifying storage server components and 3PAR InForm OS Messages and Operator’s
detailed alert information Guide
CLI commands and their usage InForm OS Command Line Interface Reference
Using the InForm Management Console 3PAR InForm Management Console Online
Graphical User Interface to configure and Help
administer InServ Storage Servers
Using the InForm Command Line Interface (CLI) 3PAR InForm OS CLI Administrator’s Manual
to configure and administer InServ Storage
Servers
1.3 Organization
This guide is organized as follows:
Chapter 4, Configuring and Using the CIM Server, explains the steps required to configure
the 3PAR CIM Server using the InForm CLI.
Chapter 5, 3PAR CIM API SMI-S Support, provides information on all 3PAR CIM supported
profile and subprofiles.
Chapter 6, CIM Indications, describes the indication subscriptions supported by the 3PAR
CIM Server.
Chapter 7, 3PAR CIM-API Extensions, discusses additional classes that provide management
for InServ Storage Server specific features not covered by SMI-S.
Appendix A, Managed Object Format Files, provides the contents of the Managed Object
Format (MOF) files for the InServ Storage Server.
<ABCDabcd> Used for variables in Modify the content string by adding the -
filenames, paths, and P<x> option after -jar inform.jar
screen output.
1.5 Advisories
To avoid injury to people or damage to data and equipment, be sure to observe the cautions
and warnings in this guide.
NOTE: Notes are reminders, tips, or suggestions that supplement the procedures
included in this guide.
CAUTION: Cautions alert you to actions that can cause damage to equipment,
software, or data.
WARNING: Warnings alert you to actions that can cause injury to people or
irreversible damage to data or the operating system.
1.4 Advisories
InForm OS Version 2.3.1 CIM API Programming Reference
2
Concepts
In this chapter
2.1 About SMI-S 2.1
The SMI-S model is divided into several profiles, each of which describes a particular class of
SAN entities (such as disk arrays or Fibre Channel switches). These profiles allow for differences
in implementations but provide a consistent approach for clients to discover and manage SAN
resources and facilitate interoperability across vendor products within the SAN.
SMI-S also defines an automated resource discovery process using Service Location Protocol
version 2 (SLPv2). This allows management applications to automatically find SAN resources
and then probe them to determine which of the SMI-S profiles and features they support.
For more information about SMI-S, refer to the Storage Management Initiative Web site at
http://www.snia.org/smi/home.
Concepts 2.1
CIM API Programming Reference InForm OS Version 2.3.1
The DMTF has developed the following core set of standards that make up WBEM:
Standard Description
The Common Information Model The CIM standard is the data model for WBEM. CIM provides
(CIM) standard a conceptual framework for describing management data
for systems, networks, applications and services, and allows
for vendor extensions. SMI-S uses CIM to model those objects
and relationships that comprise a SAN.
WBEM Discovery using Service WBEM Discovery using SLP is a method for applications to
Location Protocol (SLP) identify WBEM-based management systems. For more
information regarding WBEM and CIM, refer to the DMTF
web site at http://www.dmtf.org.
3
Security
In this chapter
3.1 TCP Ports 3.1
Security 3.1
CIM API Programming Reference InForm OS Version 2.3.1
3.2 Authentication
Authentication verifies the identity of an entity.
Management clients accessing the 3PAR CIM Server are authenticated using a request/
challenge mechanism using HTTP Basic authentication. When a request is received from a
management client, the CIM Server challenges the client to send a user name and password
encoded in the HTTP Authorization header. The user names and passwords used are the same
as those used by other management interfaces and are case sensitive.
NOTE: 3PAR CIM does not currently support LDAP user name and password
authentication; only local user names and passwords are valid. Please see the
3PAR Concepts Guide, Chapter 3 for more information on local versus LDAP user
credentials.
The 3PAR CIM Server uses OpenSSL to support HTTPS connections. The server supports SSLv3
and TLSv1 by default and uses the default OpenSSL cipher list only. For more about OpenSSL,
refer to http://www.openssl.org/docs.
NOTE: Because Basic Authentication means that client user names and passwords
are sent over the wire in unencrypted form, it is recommended that the
authentication is carried out either over a physically secure private network, or in
conjunction with HTTPS.
3.2 Authentication
InForm OS Version 2.3.1 CIM API Programming Reference
3.3 Authorization
Authorization determines whether an entity that has already been authenticated is allowed to
perform a given operation.
The 3PAR CIM Server allows any authenticated user to retrieve CIM class and instance
information. However, to invoke methods on CIM classes or instances, you must either have an
Edit or Super permission level. Refer to the 3PAR Concepts Guide or the 3PAR InForm OS CLI
Administrators Manual for a full discussion on authorization levels.
Authorization 3.3
CIM API Programming Reference InForm OS Version 2.3.1
3.4 Authorization
InForm OS Version 2.3.1 CIM API Programming Reference
4
Configuring and Using the
CIM Server
In this chapter
4.1 CLI Command Overview 4.2
This chapter provides information required to configure the 3PAR CIM Server using the InForm
CLI.
Table 4-1. CLI Commands Used to Manage the 3PAR CIM Server
NOTE: Refer to the 3PAR InForm OS Command Line Interface Reference for
additional information.
# startcim
CIM server will start in about 90 seconds.
#stopcim -f
CIM server stopped successfully.
If you issue this command without the -f option, you are prompted to confirm your intent to
disable the 3PAR CIM Server.
# showcim
-Service- -State- --SLP-- SLPPort -HTTP-- HTTPPort -HTTPS- HTTPSPort PGVer CIMVer
Enabled Active Enabled 427 Enabled 5988 Enabled 5989 2.5.1 2.3.1
If the CIM Server process is not running, the following output is displayed:
# showcim
-Service- -State-- --SLP-- SLPPort -HTTP-- HTTPPort -HTTPS- HTTPSPort PGVer CIMVer
Enabled Inactive Enabled 427 Enabled 5988 Enabled 5989 2.5.1 2.3.1
The showcim command enables you to view the overall status of the CIM Server; the status
and ports used for the HTTP, HTTPS, and SLP; the version of the internal Pegasus CIM Object
Manager; and the version of the CIM Server.
# showversion -a
Release version 2.3.1
Patches: None
This address consists of an IP Address and the appropriate TCP port for either HTTP or
HTTPS as shown in the table that follows:
For information about CIM operations, please refer to CIM Operations over HTTP.
The payload of the client request is XML. For information about XML coding for CIM, refer
to Representation of CIM in XML.
Table 4-3 provides information about the namespaces supported by the 3PAR CIM Server:
Namespace Purpose
5
3PAR CIM API SMI-S
Support
In this chapter
5.1 Standard Compliance 5.2
The 3PAR CIM API supports the Storage Management Initiative Specification. The CIM API also
supports extensions to these profiles to provide features that are not available from the
standard profiles.
http://www.snia.org/forums/smi/tech_programs/ctp/conformingproviders/
3PAR.html
Server Profile 1.1.0 Defines the capabilities of the CIM Server, including the
supported SMI-S Profiles and Subprofiles supported.
Array Profile 1.1.0 Describes RAID arrays and disk storage systems.
FC Target Ports 1.1.0 Provides management of front end (host facing) Fibre Channel
ports.
iSCSI Target 1.1.0 Provides management of front end (host facing) iSCSI ports.
Ports
Block Server 1.1.0 Provides performance statistics information for block servers.
Performance
Copy Services 1.1.0 Provides management of physical and virtual copies (remote
copy is not supported).
Array Profile X X X X
Software X X X X
Array Profile X X X X
Software X X X X
Block Services X X X X
Masking and X X X X
Mapping
FC Target Ports X X X X
FC Initiator Ports X X X X
Location X X X X
Multiple X X X X
Computer System
Block Server X X X
Performance
Copy Services X
Job Control X
TPD_RegisteredProfile One instance of this class exists for each SMI-S Profile
that is registered with the CIM Server.
Method Description
modifyInstance() Provides the ability to set owner and contact information for the
StorageSystem.
Class Description
Method Description
Class Description
Class Description
Method Description
Method Description
Method Description
Method Description
5.9.3 StorageSetting
There are eight types of StorageSetting:
There are three of these, one for each RAID type, and each is associated to
3PAR:Capabilities:RAIDx StorageCapabilities. Their InstanceIDs are
3PAR:StorageSetting:RAIDx. A client can use StorageSetting to create a legacy or fully
provisioned virtual volume. Most Logical Disk (LD) and virtual volume-specific properties
are populated. For InForm OS release 2.3.1, a fourth instance is added for RAID-60.
There are three of these, one for each RAID type, and each is associated to
3PAR:Capabilities:RAIDx StorageCapabilities. Their InstanceIDs are
3PAR:DynamicStoragePoolSetting:RAIDx. A client can use this StorageSetting to create
a DynamicStoragePool. Most LD properties are populated, but not those for virtual
volumes. For InForm OS release 2.3.1, a fourth instance is added for RAID-60.
There are three of these, one for each RAID type, and each is associated to
3PAR:Capabilities:RAIDx StorageCapabilities. Its InstanceID is
3PAR:ThinProvisionedVolumeSetting:RAIDx. A client can use this StorageSetting for
creating a Thinly Provisioned (TP) virtual volume. Only virtual volume-related properties are
populated. For InForm OS release 2.3.1, a fourth instance is added for RAID-60.
This StorageSetting contains the current configuration of a virtual volume. If the virtual
volume is a legacy volume, this Setting has a
StorageSettingAssociatedToCapabilities association to the
3PAR:Capabilities:RAIDx capabilities. If the virtual volume user space draws from a
DynamicStoragePool (DSP), then this Setting has a
StorageSettingAssociatedToCapabilities association to the “3PAR:Current Capabilities
for DynamicStoragePool <name> StorageCapabilities” of the DSP.
StorageSetting created this way is generic enough that it encompasses LD, virtual volume
and snap space specific properties. A client has to tailor the properties carefully to create
the element (DSP, legacy volume or new-style volume) it desires. This Setting has a
StorageSetting created this way can be used by a client for user space or snap space of a
virtual volume. By default the ThinlyProvisioned property is set to FALSE. A client has to
modify this to TRUE if a TPVV is desired. This setting has a
StorageSettingGeneratedFromCapabilities association to the “3PAR:Current
Capabilities for DynamicStoragePool:RAIDx” Capabilities.
These StorageSetting contain values that are totally determined by the client who
created it. The most likely usage for this is if a client clones an existing fixed
StorageSetting and then modified some of the property values before creating it. This
Setting has a StorageSettingGeneratedFromCapabilities association to the appropriate
“3PAR:Capabilities:RAIDx” Capabilities according to the RAID type of the
StorageSetting.The default is RAID10.
8 Persistent StorageSetting/template.
Properties Description
Properties Description
Properties Description
Uint16 Describes how the elements are used. For example, if a new
IntendedUsage TP StorageVolume is used for snap shot, this value is 7.
The default value is 0 (“not specialized”).
Properties Description
ThinlyProvisioned F NULL T F F
Table 5-15. Matrix of Populated Properties for Different Types of StorageSetting (continued)
Size - The virtual size of the DynamicStoragePool. On initial creation, the system does
not allocate any space to the pool. The minimum unit (the grow increment) is allocated for
this pool only after a volume is created off this pool. If the DSP has a size limit, then
ThinProvisionedPoolType property in Goal has to be set to
ThinlyProvisionedQuotaStoragePool(8). To create a “limitless” DynamicStoragePool
(e.g., creating a CPG without specifying the size), the ThinProvisionedPoolType property
in Goal has to be set to ThinlyProvisionedLimitlessStoragePool(9), and this
parameter is ignored.
InPools - This shall contain an array of StoragePool where the new pool is to be created
from. However, only support creation from “3PAR:all-FC” or “3PAR:all-NL” pools is
supported. Therefore, this array should contain only one element. If any other values are
passed in, an “Invalid Parameter” error is returned.
1 Not supported
2 Unknown
3 Timeout
4 Failed
5 Invalid parameter
6 In Use
Properties Description
Uint64 This is the actual allocated size to the DSP (not the
TotalManagedSpace logical size).
Logical size is denoted by SpaceLimit.
Properties Description
Properties Description
CLI
StorageSetting Property Equivalence Comment
SpaceLimit -sdgl
LowSpaceWarningThreshold -aw
AllocationUnit -sdgs
HighAvailability -ha
CLI
StorageSetting Property Equivalence Comment
ChunkletLocationPreference -ch
There are four instances per system, one for each kind of StoragePool: PrimordialPool,
ConcretePool, DynamicStoragePool and DeltaReplicaStoragePool.
Storage PoolConfigurationCapabilities
Additionally, you can use the intrinsic method with the TPD_StorageSetting class. The
ModifyInstance method is used to modify the StorageSetting properties that are
returned by the CreateSetting method.
Method Description
uint32 CreateOrModifyElementFromStoragePool (
[In] String ElementName,
[In,
Values {“StorageVolume”, “StorageExtent”, “LogicalDisk” },
ValueMap{”2”,”3”, “4”}]
Uint16 ElementType,
[Out] CIM_ConcreteJob ref Job,
[In] CIM_StorageSetting ref Goal,
[In, Out] Uint64 Size,
[In] CIM_StoragePool ref InPool,
[In, Out] CIM_LogicalElement ref TheElement);
uint32 CreateOrModifyElementFromStoragePool (
[In] String ElementName,
[In,
Values {“StorageVolume”, “StorageExtent”, “LogicalDisk”,
"ThinlyProvisionedStorageVolume",
“ThinlyProvisionedLogicalDisk",
"ThinlyProvisionedAllocatedStoragePool",
"ThinlyProvisionedQuotaStoragePool",
"ThinlyProvisionedLimitlessStoragePool"},
ValueMap{”2”,”3”,“4”,”5”,”6”,”7”,”8”,”9”}]
Uint16 ElementType,
[Out] CIM_ConcreteJob ref Job,
[In] CIM_StorageSetting ref Goal,
[In, Out] Uint64 Size,
[In] CIM_StoragePool ref InPool,
[In, Out] CIM_LogicalElement ref TheElement);
Job: If a Job was created as a side-effect of the execution of the method, then a reference
to that Job is returned through this parameter. Job control is not supported. This output
parameter is always NULL.
Goal: This is the Service Level that the StorageVolume option is expected to provide. The
Setting is a subset of the Capabilities available from the parent StoragePool. The Goal can
be a null value, in which case the default Setting for the Pool is used. The Goal can refer to
one of the preexisting StorageSetting instances representing RAID types, or the
StorageSetting generated by a CreateSetting method, or from a StorageSetting
option that is associated with another existing StorageVolume option.
Size: As an input, this is the desired logical size in bytes of the StorageVolume. If it is not
possible to create a volume of the desired size, a return code of Size not supported is
returned with the size set to the nearest supported size. If it’s a growing volume request,
the size is the new size of the volume. As an output, size is the actual size allocated for the
volume. It might be a little larger than the input size because the allocation unit is based on
chunklet size (256 MB).
For InForm OS release 2.2.4 and prior, the only correct input is the reference to
Concrete pool. If something else is passed in, this method throws an invalid parameter
exception. There are two kinds of concrete pools: Fibre Channel (FC) pool and Nearline
(NL) pool. If this parameter is NULL, then by default StorageVolume is created from FC
pool.
For release 2.3.1 and later, this can either be a reference to Concrete pool or
DynamicStoragePool. If this contains a reference to Concrete pool, then only a fully
provisioned volume can be created and the ElementType has to be set to
StorageVolume(2). If this contains a reference to DynamicStoragePool, then the
volume that is created is a fully provisioned volume, if the ElementType is set to
StorageVolume(2), or TPVV, if ElementType is set to
ThinlyProvisionedStorageVolume(5). It is not valid to have a combination of
ThinlyProvisionedStorageVolume(5) for the ElementType and a reference to the
Concrete pool for InPool parameter. If this parameter is NULL and ElementType is set
to StorageVolume(2), then by default StorageVolume is created from FC pool.
TheElement: As an input, if it’s not null, the method is called to modify (either set or grow)
the existing StorageVolume. If it’s null (on input), the method is called to create a new
StorageVolume. As an output, it contains the newly created StorageVolume options.
4 Failed
5 Invalid Parameter
5.9.5.2 Creating Data and Snapshot Space from Two Storage Pools
Table 5-22 shows the supported method for creating data and snapshot space from two
storage pools:
Method Description
This method is useful for creating a default volume that has snap space without the need for
specifying a Goal parameter.
This method can also be used to create fully-provisioned volumes that draw user space from a
DSP.
NOTE: This method does not support creating a legacy volume where user space
is allocated from a concrete “all” pool, although
CreateOrModifyElementFromStoragePool still supports this.
uint32 TPD_CreateOrModifyElementFromStoragePools (
Job: If a Job was created as a side-effect of the execution of the method, a reference to
that Job is returned through this parameter. Job control is not supported. This output
parameter is always NULL.
InPool: This array contains string references (object path) of DynamicStoragePool where
the volume draws space. The first element contains DynamicStoragePool for user data. The
second element contains a DynamicStoragePool for snapshot space. The snapshot space
properties (allocation warning and space limit threshold, etc …) from each pool are
described in the corresponding Goals array. For TPVV or CPVV, the array size may be two,
even if both its user and snap space are drawn from the same DSP. For a fully-provisioned
volume or a TPVV that is not a CPVV, the array size must be one, corresponding to only the
user space. InPools cannot contain anything other than DynamicStoragePool.
Goal: This contains object path of StorageSetting, describing quality of service the new
StorageVolume must provide.
Size: As an input, this is the desired logical size in bytes of the TP StorageVolume or the
requested size of the StorageVolume. If it is a modification request, “Size” is the new size
which must be greater than the existing size (e.g. volume can grow, but can not shrink). For
TP StorageVolume, the system actually allocates only minimum disk space to back up the
volume. More space is allocated on demand as more write data occur. The allocation unit
for each space allocation is the “growth increment” size. The system continues to allocate
more space until either the system runs out of disk space or maximum allocation of the
volume (SpaceLimit) is reached.
1 Not supported
2 Unknown
3 Timeout
4 Failed
5 Invalid Parameter
6 In Use
5.9.5.3 CreateSetting
Table 5-24 shows the method forTPD_StorageCapabilities.CreateSetting:
.
Table 5-24. Method for TPD_StorageCapabilities.CreateSetting
Method Description
This method returns a new instance to the client with default property values. There are four
instances of StorageCapabilities (one for each RAID type). The type of StorageSetting
the client wants to create is determined by the referenced StorageCapabilities. For
example, if the client invokes CreateSetting() method on a RAID-0
StorageCapabilities instance, then a RAID-0 StorageSetting instance is returned. The
client can use intrinsic method ModifyInstance() to customize the properties as needed.
Uint32 CreateSetting (
[in] uint16 SettingType,
[Out] CIM_StorageSetting REF NewSetting);
SettingType (in): If 'Default' (2) is passed, the Max, Goal, and Min setting attributes are
set to the Default values of the parent StorageCapabilities option when the instance is
created. If they are set to 'Goal' (3), the new StorageSetting attributes are set to the
related attributes of the parent StorageCapabilities options, such as Min to Min, Goal
to Default, and Max to Max.
0 Method Completed OK
4 Failed
5 Invalid Parameters
2 If you would like to change the value of some or all of the properties in the
TPD_StorageSetting instance from step 1, then you should call the ModifyInstance
method to modify them.
To create a thinly provisioned volume or a fully provisioned volume that allocates from
a DynamicStoragepool, use reference to DynamicStoragePool as the InPool
parameter. For a TPVV, the ElementType parameter should also be set to
ThinlyProvisionedStorageVolume (5).
If the InPool parameter is NULL, by default, the FC drives are used to create the
volume.
4 You can optionally call DeleteInstance on the TPD_StorageSetting instance from step
1 or 2 to delete it.
Size (bytes) Minimum 268435456 (256 MB) Must be larger than the current
volume size; NULL means the
volume is not grown.
The format for the string is the same as that for the CLI as described in the Table 5-27:
<nb> – nb is an integer.
CLI
StorageSetting Property Equivalence Comment
Policy -pol
GeometrySectorsPerTrack -spt
GeometryHeadsPerCylinder -hpc
ThinlyProvisioned -tpvv
TotalManagedSpace for a concrete storage pool represents the raw capacity that can be used
to create storage volumes, dynamic storage pool, or delta replica storage pool.
RemainingManagedSpace for a concrete storage pool represents how much raw capacity is
available for creating a new volume, dynamic storage pool, or delta replica storage pool. After
a volume, dynamic storage pool or delta replica storage pool is created, the raw size of the
new volume or the actual raw size allocated to the dynamic storage pool or delta replica
storage pool is subtracted from the RemainingManagedSpace of the parent concrete pool.
This volume raw size is also represented in
TPD_AllocatedFromStoragePool.SpaceConsumed between the parent concrete pool and
the storage volume, dynamic storage pool, or delta replica storage pool.
TotalManagedSpace for a DSP represents the logical capacity that can be used to create
storage volumes or delta replica storage pool. RemainingManagedSpace for a DSP
represents what logical capacity is available for creating a new volume or delta replica storage
pool. After a volume or delta replica storage pool is created, the logical size of the new volume
or the actual logical size allocated to delta replica storage pool is subtracted from the
RemainingManagedSpace of the parent DSP. This size is also represented in
TPD_AllocatedFromStoragePool.SpaceConsumed between the DSP and the storage
volume or delta replica storage pool.
For a DynamicStoragePool, the formula used in capacity calculation is different from that of a
concrete pool (all-FC or all-NL). TotalManagedSpace is the actual allocated size to the pool and
is not involved in the calculation anymore. Instead, SpaceLimit is used:
SpaceLimit - Virtual size. If the pool is limitless, i.e., -sdgl is not specified, SpaceLimit is
1PB which represents the maximum size the system allows.
Since a concrete pool (3PAR:all-FC, 3PAR:all-NL, and 3PAR:all-SSD [3.1.1]) is not RAID-specific,
raw capacity is used in calculating its ManagedSpace as well as SpaceConsumed with its
direct parent primordial pool and child pools/volumes. All DeltaReplicaStoragePools
that are directly allocated from concrete pools also use raw capacity in calculating
TotalManagedSpace and RemaniningManagedSpace.
Capacity used for metadata in the creation of the storage volume can be calculated by
[(TPD_StorageVolume.NumberOfBlocks minus the
TPD_StorageVolume.ConsumableBlocks) multiplied by the
TPD_StorageVolume.BlockSize].
Capacity used for metadata in the creation of the storage volume can be calculated by
[(TPD_StorageVolume.NumberOfRawBlocks minus
TPD_StorageVolume.NumberOfBlocks) multiplied by the
TPD_StorageVolume.BlockSize].
These values for the primordial pool do change no matter how many volumes are created.
RemainingManagedSpace and SpaceConsumed only change if the new disks are admitted.
BlockSize = 512
InForm OS 2.3.1:
[(TPD_StorageVolume.NumberOfRawBlocks -
TPD_StorageVolume.NumberOfBlocks)* TPD_StorageVolume.BlockSize].
Example:
Initial State
A dynamic storage pool has a virtual capacity of 100GB (as set in the –sdgl option). This value is
reflected in the TPD_DynamicStoragePool.SpaceLimit property and is what’s available
for volume allocation. Let’s assume that there are no volumes or
DeltaReplicaStoragePool allocated from this pool initially. The TotalManagedSpace
property reflects the actual capacity allocated to the pool.
TPD_DynamicStoragePool.SpaceLimit = 100GB
Suppose a RAID-10 volume of logical size 10G is created from the dynamic storage pool. This
value is represented in the TPD_StorageVolume class as NumberOfBlocks
(ConsumableBlocks also has the same value). Since this is a RAID-10 volume, its raw size is
actually double that of the logical size, i.e., 20 GB. This value is represented in the
TPD_StorageVolume class as NumberOfRawBlocks.
AllocatedFromStoragePool.SpaceConsumed between StorageVolume and the parent
DynamicStoragePool is the same as the logical size of the volume; RAID overhead is
accounted for in the DynamicStoragePool itself and does not carry over to the child volume.
BlockSize = 512
TPD_StorageVolume.NumberOfBlocks = TPD_StorageVolume.ConsumableBlocks
= (10240 * 1024 * 1024) / BlockSize = 20971520 (logical block size of the volume)
TPD_DynamicStoragePool.RemainingManagedSpace =
TPD_DynamicStoragePool.SpaceLimit – volume logical size = 100G – 10G = 90G
Example:
Initial State
A dynamic storage pool has a virtual capacity of 100GB (as set in the –sdgl option). This value is
reflected in TPD_DynamicStoragePool.SpaceLimit property and is what’s available for
volume allocation. Let’s assume that there are no volumes or DeltaReplicaStoragePool
allocated from this pool initially. The TotalManagedSpace property reflects the actual
capacity allocated to the pool.
TPD_DynamicStoragePool.SpaceLimit = 100GB
Suppose a RAID-10 volume of logical size 10G is created from the dynamic storage pool. This
value is represented in the TPD_StorageVolume class as NumberOfBlocks
(ConsumableBlocks also has the same value). Since this is a thinly provisioned volume, what
are actually allocated to the volume may not be the full 10G (let us assume it is 4G). The actual
allocated value is represented in the TPD_StorageVolume class as
ProvisionedConsumableBlocks. AllocatedFromStoragePool.SpaceConsumed
between StorageVolume and the parent DynamicStoragePool is the capacity that is
actually allocated to the volume, i.e., AllocatedFromStoragePool.SpaceConsumed is
equal to StorageVolume.ProvisionedConsumableBlocks.
BlockSize = 512
TPD_StorageVolume.NumberOfBlocks = TPD_StorageVolume.ConsumableBlocks
= (10240 * 1024 * 1024) / BlockSize = 20971520 (logical block size of the volume)
TPD_DynamicStoragePool.RemainingManagedSpace =
TPD_DynamicStoragePool.SpaceLimit – capacity actually allocated to the volume =
100G – 4G = 96G
Properties Description
Properties Description
5.9.7 Indications
The following alert indications, related to thin provisioning, are supported starting with
release 2.3.1:
For detailed information regarding the Copy Services subprofile, please refer to
SMI-S at http://www.snia.org.
5.10.2.1 TPD_AffectedJobElement
Association between TPD_ConcreteJob and the replica TPD_StorageVolume. Please refer
to TPD_ConcreteJob on page 5.59 for a more detailed discussion.
5.10.2.2 TPD_AllocatedFromStoragePool
Virtual copy snapshot volume is associated to the TPD_DeltaReplicaStoragePool via
TPD_AllocatedFromStoragePool. SpaceConsumed property in this case is the space
consumed by the snapshots. For a fully-provisioned volume with static snapspace, the
TPD_AllocatedFromStoragePool association also links the
TPD_DeltaReplicaStoragePool with the concrete StoragePool; whether this is all-FC,
all-NL, or all-SSD [3.1.1] depends on the device type of the source volume.
5.10.2.3 TPD_AssociatedJobMethodResult
Association between TPD_ConcreteJob and TPD_MethodResult. Please refer to
TPD_ConcreteJob on page 5.59 for a more detailed discussion.
5.10.2.4 TPD_CapabilitiesOfStorageConfigurationService
Association is added between TPD_StorageConfigurationService and each instance of
TPD_StorageReplicationCapabilities.
5.10.2.5 TPD_CapabilitiesOfStoragePool
Association between TPD_DeltaReplicaStoragePool if it exists and the corresponding
TPD_StorageCapabilities.
5.10.2.6 TPD_ConcreteJob
This is the class that describes the job itself. Please refer to TPD_ConcreteJob on page 5.59 for a
more detailed discussion.
5.10.2.7 TPD_ConcreteJobInstModification
This is a indication class, sub-classed from CIM_InstModification, which indicates
completion of a job.
5.10.2.8 TPD_DeltaReplicaStoragePool
This StoragePool class is instantiated upon allocation of SA and SD space of a volume. The
SA and SD spaces are modeled as TPD_DeltaReplicaStoragePool from which virtual copy
snapshots (delta replica) can be allocated and created. This class is a subclass of
CIM_StoragePool.
5.10.2.9 TPD_ElementSettingData
Association between TPD_StorageSetting and the replica volume.
5.10.2.10 TPD_HostedStoragePool
Association is added between TPD_StorageSystem and each
TPD_DeltaReplicaStoragePool.
5.10.2.11 TPD_MethodResult
This is the class that describes the result of a job. Please refer to TPD_ConcreteJob on page 5.59
for a more detailed discussion.
5.10.2.12 TPD_OwningJobElement
Association between TPD_StorageConfigurationService and TPD_ConcreteJob.
Please refer to section TPD_ConcreteJob on page 5.59 for a more detailed discussion.
5.10.2.13 TPD_ReplicaPoolForStorage
Association between the TPD_DeltaReplicaStoragePool and the source StorageVolume
from which the SA and SD spaces are created.
5.10.2.14 TPD_StorageCapabilities
If TPD_DeltaReplicaStoragePool exists, then a TPD_CapabilitiesOfStoragePool
association is created between it and the TPD_StorageCapabilities. For example, if the
source volume is of RAID-10, then the RAID-10 TPD_StorageCapabilities are associated
to the TPD_DeltaReplicaStoragePool.
5.10.2.15 TPD_StorageConfigurationCapabilities
Relevant properties are:
5.10.2.16 TPD_StorageConfigurationService
The following new SMI-S methods are implemented:
c Detach – Removes the association between the source and replica elements (promote
physical copy)
d Start Copy – Starts a background copy operation for a replica (start copy on an existing
physical copy)
In addition, a new 3PAR-specific method is defined that mirrors the CLI updatesnapspace
command:
5.10.2.17 TPD_StorageReplicationCapabilities
This describes the replication capability of the 3PAR CIM provider. There are 3 fixed instances
of this class, one for each type of SupportedSynchronizationType that we support. Some
of the major properties in this class are:
a UnSyncAssoc-Full - create a full size snapshot (physical copy with ‘Save snapshot for
later resync’ option turned on).
c UnSyncUnAssoc - create a full size, independent replica (physical copy with ‘Save
snapshot for later resync’ option turned off).
a Initialized – Resynchronization or copy task is queued but the copy engine has not
started. This is the initial state for a physical copy.
b Idle - an UnSyncAssoc replica is ready to be managed. This is the initial state for a
virtual copy.
a Not accessible – this applies to physical copy volumes, which cannot be exported. If
a physical copy is promoted to a base volume, then this restriction is lifted.
b No restrictions – any host may access; this applies to virtual copy volumes.
a Any – specialized pool not required for delta replicas. This is not the case for our
snapshots.
b Shared – a single shared pool is required for all delta replicas. This is not the case for
our snapshots.
c Exclusive - one specialized, exclusive pool must be created for each source element
that has associated delta replicas. This is the only supported value for a virtual copy.
PersistentReplicasSupported TRUE
5.10.2.18 TPD_StorageSetting
The provider screens the following properties when a CIM client is creating or modifying a
TPD_StorageSetting object, since only one value is allowed for each. Any other values
passed in by the client results in an Invalid Parameter exception. These properties are
initialized with the allowed value upon creation.
1 PersistentReplica – True indicates the associated replicas persist during power off or
system reset. Only TRUE is accepted since we do not support transient replicas. Applicable
only for those settings that are associated to replica volumes.
2 IntendedUsage – Describes the use of the storage elements associated with this
StorageSetting. This can only be set to “Not Specialized” (0) since we do not support
specifying a StorageSetting as a goal when creating physical or virtual copy.
5.10.2.19 TPD_StorageSynchronized
Association class that associates the replica with the source volume. It contains several
important properties that describe the relationship between the source volume and the
replica.
2 CopyType – the kind of association between source volume and replica; values are:
a Sync – create and maintain a synchronous mirror copy of the source, e.g. synchronized
remote copy.
b Async – create and maintain an async mirror copy of the source e.g., async remote copy.
d UnSyncUnAssoc – create an un-synchronized clone of the source element and does not
maintain the source association after completing the copy operation, e.g., physical copy
with ‘Save snapshot for later resync’ option turned off.
3 SyncState – state of the association between source volume and replica, e.g.,
ResyncInProgress, RestoreInProgress, Idle, CopyInProgress.
5.10.2.20 TPD_SystemVolume
Associations between TPD_StorageSystem and StorageVolumes, including physical
copies and snapshots.
5.10.2.21 TPD_DynamicStoragePool
TPD_DeltaReplicaStoragePool associated to a CPVV is allocated from
DynamicStoragePool.
5.10.3.2 Associations
5.10.3.2.1 TPD_ReplicaPoolForStorage
The TPD_DeltaReplicaStoragePool is associated to the source StorageVolume via
TPD_ReplicaPoolForStorage.
5.10.3.2.2 TPD_AllocatedFromStoragePool
New instances of TPD_AllocatedFromStoragePool are created that associate the
TPD_DeltaReplicaStoragePool to:
the parent StoragePool. For non-CPVV, the parent pool is a concrete pool, and whether
this is “all-FC”, “all-NL”, or “all-SSD” [3.1.1] depends on the device type of the source
volume. For CPVV, the parent pool is a DSP. SpaceConsumed property in either case is
the sum of raw snap volume size and raw admin size. SpaceLimit and
SpaceLimitThresholdWarning are valid only for CPVV.
all virtual copy snapshot volumes that are created from the source volume.
SpaceConsumed property for each association in this case is the space consumed by the
snapshot.
5.10.3.3.1 Non-CPVV
TotalManagedSpace of the TPD_DeltaReplicaStoragePool equals to the raw SD space.
Space used by SA is not included in TotalManagedSpace, but is included in the
TPD_AllocatedFromStoragePool.SpaceConsumed value, so to deduce the raw SA space,
one can deduct Pool.TotalManagedSpace from SpaceConsumed. The
UpdateDeltaSnapshotSpace() method should be called to prevent the value of
RemainingManagedSpace from getting too stale.
SpaceConsumed by Replica Pool from Concrete Pool = raw SD size + raw SA size
5.10.3.3.2 CPVV
When a base volume is created with a StorageSetting in which TSPName is specified, the
resulting TPD_DeltaReplicaStoragePool is allocated from the DSP. A
TPD_AllocatedFromStoragePool association is created between the
TPD_DeltaReplicaStoragePool and the parent DSP.
TPD_AllocatedFromStoragePool.SpaceLimit and
TPD_AllocatedFromStoragePool.SpaceLimitThresholdWarning of this association
corresponds to the allocation limit (-al) and allocation warning (-aw) respectively.
A client wishing to obtain a more accurate picture of the aforementioned capacity values must
first call this method, monitor the returned job for its completion, then finally get at the
properties.
uint32 UpdateDeltaSnapshotSpace(
[In] TPD_StorageVolume ref SnapshotVolume[],
[Out] TPD_ConcreteJob ref Job);
SnapshotVolume: Array of references to the snapshot volume to update. If NULL, then all
snapshots are updated.
Job: A Job is created as a side-effect of the execution of the method, and a reference to
that Job is returned through this parameter.
4 Failed
5.10.3.4 Indications
Job control indications are supported for the job started with the
UpdateDeltaSnapshotSpace() method. These indications are converted from events
generated by the task framework.
2 Modification of Operational Status for a Concrete Job to Complete and Error – update
failed.
3 Modification of Job Status for Concrete Job – is generated if the job is started. For this, the
task framework must be enhanced to support component state change events.
5.10.4.1 StorageSynchronized
A TPD_StorageSynchronized association is instantiated the moment a vv copy process is
started. This associates the target volume with the source volume. The values of this instance
are listed in the following table. For a CopyType of UnSyncUnAssoc, an instance of
TPD_StorageSynchronized is maintained while the copy is taking place, but is relinquished
once the copy is finished.
Property Value
UnsyncUnAssoc (5)
Creates an unsynchronized copy but do not maintain an
association to the source
SyncMaintained False
Synchronization is not maintained between replica and source
volume.
5.10.4.2 StorageReplicationCapabilities
The ability to create a physical copy is described by the following 2 instances of
TPD_StorageReplicationCapabilities (seeTPD_StorageReplicationCapabilities on
page 5.62):
CREATION
CLI EQUIVALENCE
SMI-S METHOD
A physical copy can be created by a CIM client using the
TPD_StorageConfigurationService.AttachOrModifyReplica() method
uint32 AttachOrModifyReplica().
Job: A Job is created as a side-effect of the execution of the method, and a reference to
that Job is returned through this parameter.
ReplicationPipe: The NetworkPipe element that scopes the remote mirror pair. This is
only for remote copy, which is not supported in Phase I, so this can only be NULL.
SMI-S also specifies that providers have to accept the AttachReplica() method, which is
defined in an earlier version of the copy services subprofile, for backward compatibility.
AttachReplica is similar to AttachOrModifyReplica with the omission of the Goal and
ReplicationPipe parameters.
uint32 AttachReplica(
[Out] CIM_ConcreteJob ref Job,
[In, REQ] CIM_ManagedElement ref SourceElement,
[In, REQ] CIM_ManagedElement ref TargetElement,
[In, REQ,
Values {“Async”, “Sync”, “UnSyncAssoc”, “UnSyncUnAssoc”},
ValueMap {“2”, “3”, “4”, “5”}]
Uint16 CopyType);
0 Success
The method execution, if successful, always returns 0x1000, which means that job has started.
A client can either monitor Job.OperationalStatus for job completion or wait for the
arrival of modification of OperationalStatus for a ConcreteJob to indicate ‘Complete’
and ‘OK’ or ‘Complete’ and ‘Error’.
STATE TRANSITIONS
Table 5-35 shows the values for SyncState and WhenSynced during various stages of
physical copy creation. Internal vvol_t volume state flags (v_overall_state) are mapped to each
SyncState.
RESYNCHRONIZATION
CLI EQUIVALENCE
createvvcopy –r <destvol>
SMI-S METHOD
A physical copy can be resynchronized with the source volume by a CIM client using the
TPD_StorageConfigurationService.ModifySynchronization() method with the
Operation parameter set to Resync(4). A target volume that is in a Broken state (copy failed)
cannot be resync-ed.
uint32 ModifySynchronization(
[In, REQ,
Values {“Detach”, “Fracture”, “Resync”, “Restore”,
“Prepare”, “Unprepare”, “Quiesce”, “Unquiesce”,
“Reset to Sync”, “Reset to Async”, “Start Copy”,
“Stop Copy”},
ValueMap {“2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”,
“10”, “11”, “12”, “13”}]
Uint16 Operation,
[Out]CIM_ConcreteJob ref Job,
[In, REQ] CIM_StorageSynchronized ref Synchronization);
Operation: describes the type of modification to be made to the replica:
Detach: 'Forget' the synchronization between two storage objects. Start to treat the
objects independently. This performs the same function as promoting a physical copy.
Fracture: Suspend the synchronization between two storage objects using Sync or
Async replication. Not supported for local copy.
Restore: Copies a snapshot to the source element. This performs the same function as
promoting virtual copy.
Prepare: Get the link ready for a Resync operation to take place. Not supported.
Quiesce: Stops the copy engine for snapshots and the snapshot no longer consume
space. Not supported.
Unquiesce: Take the link out of the quiesce state. Not supported.
Reset to Sync: Changes the CopyType value of a mirror replica from “Async” to
“Sync”. Not supported.
Reset to Async: Changes the CopyType value of a mirror replica from “Sync” to
“Async”. Not supported.
Start Copy: Initiate a full background copy of the source to the UnSyncAssoc replica.
Replica enters a Frozen state when the copy operation is completed. This performs the
same function as issuing a createvvcopy again on an existing physical copy.
Stop Copy: Stop the background copy previously started. This performs the same
function as halting a physical copy.
Job: A Job is created as a side-effect of the execution of the method, and a reference to
that Job is returned through this parameter.
The method execution, if successful, always returns 0x1000, which means that job has started.
A client can either monitor Job.OperationalStatus for job completion or wait for the
modification of OperationalStatus for a ConcreteJob to indicate ‘Complete’ and ‘OK’ or
‘Complete’ and ‘Error’.
STATE TRANSITIONS
Table 5-37 shows the values for SyncState and WhenSynced during various stages of
physical copy resynchronization.
PROMOTION
CLI EQUIVALENCE
promotevvcopy
SMI-S METHOD
A physical copy can be promoted with the source volume by a CIM client using the
TPD_StorageConfigurationService.ModifySynchronization() method with the
Operation parameter set to Detach (2). After the a successful Detach operation, the
StorageSynchronized association between the source and target volume is relinquished
and the target volume becomes an independent base volume. The Detach operation is
synchronous and does not require a job.
STATE TRANSITIONS
Table 5-38 shows the values for SyncState and WhenSynced during various stages of
physical copy promotion.
Operation SyncState
CLI EQUIVALENCE
SMI-S METHOD
Copy can be done on an existing physical copy using the
TPD_StorageConfigurationService.ModifySynchronization() method with the
Operation parameter set to Start Copy (12).
The method execution, if successful, always returns 0x1000, which means that job has started.
Please see Resynchronization on page 5.77 for possible return values.
STATE TRANSITIONS
Table 5-39 shows the values for SyncState and WhenSynced during various stages of start
physical copy.
CLI EQUIVALENCE
createvvcopy –halt
SMI-S METHOD
Copy can be halted using the
TPD_StorageConfigurationService.ModifySynchronization() method with the
Operation parameter set to Stop Copy(13).
This operation is synchronous and does not require a job. The job that is produced as a side-
effect of the physical copy can also be terminated by
TPD_ConcreteJob.RequestStateChange.
STATE TRANSITIONS
Table 5-40 shows the values for SyncState and WhenSynced during various stages of halting
a physical copy.
Modification of Operational Status for a Concrete Job to Complete and Error – copy/resync
failed.
5.10.5.1 StorageSynchronized
A TPD_StorageSynchronized association is instantiated after the virtual copy volume is
created. This associates the target volume with the source volume. A virtual copy volume is also
created as a side-product of creating a physical copy that can be resynchronized at a later time.
Table 5-41 shows the property values of this instance.
Property Value
Property Value
SyncMaintained False
Synchronization is not maintained
between replica and source volume.
5.10.5.2 StorageReplicationCapabilities
The ability to create a virtual copy is described by the following instance of
TPD_StorageReplicationCapabilities:
CREATION
CLI EQUIVALENCE
createsv
SMI-S METHOD
A client can create a physical copy from the source volume by using the
TPD_StorageConfigurationService.CreateReplica() method.
uint32 CreateReplica(
[In] string ElementName,
[Out] CIM_ConcreteJob ref Job,
[In, REQ] CIM_LogicalElement ref SourceElement,
[Out] CIM_LogicalElement ref TargetElement,
[In] CIM_StorageSetting ref TargetSettingGoal,
[In] CIM_StoragePool ref TargetPool,
[In, REQ,
Values {“Async”, “Sync”, “UnSyncAssoc”, “UnSyncUnAssoc”},
ValueMap {“2”, “3”, “4”, “5”}]
Uint16 CopyType);
ElementName: Name of the target snapshot volume.
TargetPool: Reference to the StoragePool from which the virtual copy volume is
allocated. This can either be NULL or the TPD_DeltaReplicaStoragePool associated
with the SourceElement volume. Any other values results in a Invalid Parameter error.
4 Failed
STATE TRANSITIONS
Table 5-43 shows the values for SyncState and WhenSynced during various stages of the
virtual copy creation.
PROMOTION
CLI EQUIVALENCE
promotesv
SMI-S METHOD
Virtual copy promote can be done using the
TPD_StorageConfigurationService.ModifySynchronization() method with the
Operation parameter set to Restore (5).
The method execution, if successful, always returns 0x1000, which means that job has started.
STATE TRANSITIONS
Here are the values for SyncState and WhenSynced during various stages of promoting
virtual copy.
CLI EQUIVALENCE
promotesv -halt
SMI-S METHOD
Virtual copy promote can be halted via the Job Control method
TPD_ConcreteJob.RequestStateChange() method with the RequestedState
parameter set to Terminate(4).
STATE TRANSITIONS
Here are the values for SyncState and WhenSynced during various stages of halting virtual
copy promote.
STATE DIAGRAM
Modification of Job Status for a Concrete Job – promote sv/update snapspace started.
Modification of Operational Status for a Concrete Job to Complete and OK – promote sv/
update snapshot space successful.
Modification of Operational Status for a Concrete Job to Complete and Error – promote sv/
update snapshot space failed.
5.10.6.1 Overview
Only the following tasks are supported
5.10.6.2 TPD_ConcreteJob
This is a new class, and each instance of this class represents a task.
Suspend: stops the job temporarily which can be resumed; not supported.
Terminate: stops the job cleanly and orderly; this is the only supported value.
TimeoutPeriod: A timeout period that specifies the maximum amount of time that the
client expects the transition to the new state to take. This is not supported and must be
NULL.
4 Failed
5 Invalid Parameter
0 Success
5 Invalid Parameter
PerceivedSeverity – describes the severity of the error from the notifier's point of view.
This value is Low (2).
ProbableCause - describes the probable cause of the error. This value is “Configuration/
Customization Error” (8).
CIMStatusCode - The CIM status code that characterizes this instance. This value is
ERR_ACCESS_DENIED (2).
CIMStatusCodeDescription – “CIM_ERR_ACCESS_DENIED”
DELETING JOB
CLI EQUIVALENCE
removetask
DELETEINSTANCE
An instance of TPD_ConcreteJob can be deleted using the intrinsic method
TPD_ConcreteJob.DeleteInstance(). If not deleted, a job exists indefinitely.
TPD_METHODRESULT
This class is used to report the extrinsic method that triggered the job and the parameters
passed to it, so that a third party client can tell what the job is and what it is doing. The class
consists of the following mandatory properties:
InstanceID – this is a key and is identical to that of ConcreteJob this is associated with.
PreCall - Boolean indicating whether the Indication is sent before the method begins
executing (TRUE) or when the method completes (FALSE). In this case this value is TRUE.
PreCall – FALSE
ReturnValueType - the type of the method return value. This is always “uint32” (9)
since all replication methods that we support have a return value type of uint32.
5.10.6.3 TPD_OwningJobElement
Association between TPD_StorageConfigurationService and TPD_ConcreteJob.
5.10.6.4 TPD_AffectedJobElement
Association between TPD_ConcreteJob and one or more TPD_StorageVolume affected by
the job. The affected volumes are the source and target volumes, with the exception of update
snapspace task, where the affected volumes are those snapshots that are being updated.
5.10.6.5 TPD_AssociatedJobMethodResult
Association between TPD_ConcreteJob and TPD_MethodResult.
5.10.6.6 Indications
The following Job Control subprofile indication is supported:
For detailed information regarding the Location subprofile, refer to SMI-S at http://
www.snia.org.
Class Description
Method Description
For detailed information regarding the FC Target Ports subprofile, refer to SMI-S at http://
www.snia.org.
Class Description
TPD_NodePairRedundancySet Members of this set are node pairs that make up the InServ
Storage System cluster.
TPD_RedundancySet Members of this set are Controller Nodes that make up a node
pair within the InServ Storage System.
For detailed information regarding the Software subprofile, refer to SMI-S at http://
www.snia.org.
Class Description
Method Description
modifyInstance() Provides the ability to set owner and contact information for
the StorageSystem.
For detailed information regarding the Masking and Mapping subprofile, refer to SMI-S at
http://www.snia.org.
Class Description
Method Description
Method Description
Method Description
Method Description
A view is a list of logical units exposed through a list of target ports, modeled as
SCSIProtocolController (SPC) with associated StorageVolume, StorageHardwareIDs
(host WWN/iSCSIName), and SCSIProtocolEndPoints (port WWNs/iscsiNames). A path is a
combination of one each: logical unit (volume), initiator port (host port), and target port. An
SPC serves as a collection of paths.
Full path SPC, where an SPC is a collection of paths with each path containing a
combination of logical unit (volume), initiator port (host port), and target port. Use
ExposePaths and HidePaths methods for adding/hiding this kind of path.
Default SPC, where an SPC is a collection of paths with each path containing a
combination of SCSIProtocolEndpoints (target port) and StorageVolume (LU), and
whatever host WWN/iSCSIName (StorageHardwareID) the target port is connected to.
Volumes in this kind of SPCs are exposed to any host that are connected to the target port.
In 3PAR parlance, this is termed a port-present VLUN. Each target port on an InServ node
controller has a default SPC associated with it. Each default SPC is associated to an
AuthorizedPrivilege which is then associated to a StorageHardwareID with a null
StorageID property. There is only one instance of null-StorageID
StorageHardwareID per InServ system. Use the ExposeDefaultLUs and
HideDefaultLUs methods for adding/hiding this kind of path.
SPC with no Target Ports, where an SPC is a collection of paths with each path containing
a combination of host collection (StorageHardwareIDCollection) and
StorageVolume (LU), and whatever target port the host is connected to. Volumes in this
kind of SPCs are exposed to the specified host collection regardless of which target port it is
connected to. This in 3PAR terms is called host-sees VLUN. Use the
ExposeLUsToStorageHardwareIDCollection and
HideLUsFromStorageHardwareIDCollection methods for adding/hiding this kind of
path.
Example 1 shows that there are views from 2 FC hosts with same volumes:
SPC_1: Volume_1 is exported to Server 1 via Port_WWN_1 (target port on InServ) as LUN 1
and Volume_2 as LUN 2. The host HBA is represented as Host_WWN_1.
SPC_2: Volume_2 is exported to Server 2 via Port_WWN_2 (target port on InServ) as LUN 5
and Volume_2 as LUN 6. The host HBA is represented as Host_WWN_2. Different LU
numbers are used in this example, but they can be assigned the same LUNs as in SPC_1.
Figure 5-8. Masking and Mapping Example 2 (one InServ port connecting to fabric)
Figure 5-9. Masking and Mapping Example 3 (two InServ ports connecting to fabric).
5.14.4 ProtocolControllerMaskingCapabilities
This class describes the capabilities of the SPC in an InServ storage system, which describes the
kind of controller configuration and StorageHardwareID management services that are
available to clients. The following settings are fixed and cannot be modified:
PortsPerView:
AttachDeviceSupported: false.
OneHardwareIDPerView:
Release 2.2.4 and before: true; only one StorageHardwareID (host HBA WWN/
iSCSIName) per SPC.
UniqueUnitNumbersPerPort: false.
PrivilegeDeniedSupported: false.
ProtocolControllerRequiresAuthorizedIdentity: false;
CreateProtocolControllerWithPorts method is not supported.
SPCAllowsNoLUs: false; clients cannot create SPC that has no associations to LUs
(volumes). Default SPC is a special case in that it has no association with volumes, but
default SPC is only used as an input to the ExposeDefaultLUs method when adding LUs
to a view, in which case the resulting output SPC from the method, if successful, is not a
default SPC.
SPCAllowsNoTargets: false; clients cannot create SPC that has no associations to target
ports.
SPCAllowsNoInitiators: false; clients cannot create SPC that has no associations to host
HBA WWNs.
5.14.5 ControllerConfigurationService
ControllerConfigurationService (CCS) is the main class of Masking and Mapping (MM)
subprofile. This class enables clients to export and delete VLUNs. A client can get a handle of
CCS by using a HostedService association from ComputerSystem (StorageSystem).
Table 5-57 provides a brief summary of the CSS methods and their corresponding CLI
commands:
This operation is similar to createvlun of matched-set VLUNs. For port-present VLUNs, see
ExportDefaultLUs. For host-sees VLUNs, see
ExposeLUsToStorageHardwareIDCollection. One difference between this method and
the CLI createvlun command is that for this method, the exact host WWN is specified
(InitiatorPortIDs), whereas for the createvlun command, the name of the host is
specified, not the WWN itself.
Job: This is ignored since InServ does not support job control.
LUNames[]: An array of IDs of logical unit instances. The LU instances must already exist.
The members of this array must match the Name property of StorageVolume instances.
TargetPortIDs[]: IDs of target ports (InServ’s front-end FC port). See Table 5-58 on
page 5.111 for conditions where this may be null.
Override: Override existing lower priority VLUNs, if necessary. Can be used only when
exporting to a specific host. This parameter is a vendor-specific extension for 3PAR. The
default value is false.
NoVCN: Do not issue a VLUN (Virtual Logical Unit Number) Change Notification (VCN) after
export. For direct connect or loop configuration, a VCN consists of a fibre channel Loop
Initialization Primitive (LIP). For fabric configuration a VCN consists of Registered State
Change Notification (RSCN) being sent to the fabric controller. This parameter is a vendor-
specific extension for 3PAR. The default value is false.
ResultDescriptions[]: An array of descriptive text of the result of the operation, with each
entry containing the result of each expose path operation. This parameter is a vendor-
specific extension for 3PAR.
Parameters “Override” and “NoVCN” are optional. All other combinations of the parameters
are rejected.
There are two use cases of the ExposePaths() method (See Table 5-58 on page 5.111 for
details).
Creating a new view: export a list of volumes to a list of host HBAs via specific target
port. This creates a “matched-set” VLUN. This case is indicated by NULL input
ProtocolController parameter.
Add InitiatorIDs to view: add another initiator ID (host path) to a view. The new initiator
port must be zoned with the same target port as that used by the view or else the
operation is rejected.
This operation is similar to removevlun of matched-set VLUNs. For port-present VLUNs, see
HideDefaultLUs. For host-sees VLUNs, see
HideLUsFromStorageHardwareIDCollection. One difference between this method and
the CLI removevlun command is that for this method, the exact host WWN/iscsiName is
specified (InitiatorPortIDs), whereas for the removevlun command, the name of the host is
specified, not the WWN/iscsiName itself.
LUNames[]: An array of IDs of logical unit instances. The LU instances must already exist.
The members of this array must match the Name property of the StorageVolume
instances.
DeviceNumbers[]: A list of logical unit numbers corresponding to the logical unit in the
LUNames parameter. This is a 3PAR vendor-specific extension and therefore is optional.
NoVCN: Do not issue a VLUN (Virtual Logical Unit Number) Change Notification (VCN) after
removal. For direct connect or loop configuration, a VCN consists of a fibre channel Loop
Initialization Primitive (LIP). For fabric configuration a VCN consists of Registered State
Change Notification (RSCN) being sent to the fabric controller. This parameter is a vendor-
specific extension for 3PAR. The default value is false.
ResultDescriptions[]: An array of descriptive text of the result of the operation, with each
entry containing the result of each hide path operation. This parameter is a vendor-specific
extension for 3PAR.
Parameters DeviceNumbers and NoVCN are optional. All other combinations of the
parameters are rejected.
Remove volumes from a view: the volume has been exported to an SPC, it’ll be removed
from the SPC (e.g. it won’t be accessible from host HBA anymore).
Hide full paths from a view: similar to Remove LUs from a view, but
InitiatorPortIDs and TargetPortIDs parameters are included.
Remove initiatorID from a view: Remove an initiator port from a view, valid only if
several host paths are zoned with a single target port.
This operation is similar to createvlun of port-present VLUNs. For matched-set VLUNs, see
ExportPaths. For host-sees VLUNs, see ExposeLUsToStorageHardwareIDCollection.
LUNames[]: An array of IDs of logical unit instances. The LU instances must already exist.
The members of this array must match the Name property of StorageVolume instances.
TargetPortIDs[]: IDs of target ports (InServ’s front-end FC port). See for conditions where
this may be null.
elements specified in the other parameters. This is mandatory only because SMI-S requires
it. For InServ, access permissions cannot be specified when creating a VLUN. Rather, each
volume has its own access permission. So the 3PAR ControllerConfigurationService
provider checks the passed in DeviceAccesses value against the permission of the
specified LU (volume), and the operation fails if the two values do not match.
Override: Override existing lower priority VLUNs, if necessary. Can be used only when
exporting to a specific host. This parameter is a vendor-specific extension for 3PAR. The
default value is false.
NoVCN: Do not issue a VLUN (Virtual Logical Unit Number) Change Notification (VCN) after
export. For direct connect or loop configuration, a VCN consists of a fibre channel Loop
Initialization Primitive (LIP). For fabric configuration a VCN consists of Registered State
Change Notification (RSCN) being sent to the fabric controller. This parameter is a vendor-
specific extension for 3PAR. The default value is false.
ResultDescriptions[]: An array of descriptive text of the result of the operation, with each
entry containing the result of each expose path operation. This parameter is a vendor-
specific extension for 3PAR.
ProtocolCon
Use LUNames TargetPortIDs DeviceNumbers DeviceAccesses trollers
Cases (On input)
Parameters “Override” and “NoVCN” are optional. All other combinations of the parameters
are rejected.
There are two use cases of ExposeDefaultLUs() method (See Table 5-60 on page 5.116):
1 Creating a new default view: export a list of volumes to all host HBAs that are
connected to the specified list of target ports. This creates a “port-present” VLUN. This case
is indicated by NULL input ProtocolController parameter.
2 Add LUs to a view: add volumes to an existing SPC view. (This feature is not supported in
version 2.3.1.)
This operation is similar to removevlun of port-present VLUNs. For matched-set VLUNs, see
HidePaths. For host-sees VLUNs, see HideLUsFromStorageHardwareIDCollection.
LUNames[]: An array of IDs of logical unit instances. The LU instances must already exist.
The members of this array must match the Name property of StorageVolume instances.
TargetPortIDs[]: IDs of target ports (InServ’s front-end FC port). This has to be NULL.
DeviceNumbers[]: A list of logical unit numbers corresponding to the logical unit in the
LUNames parameter. This is a 3PAR vendor-specific extension and therefore is optional.
NoVCN: Do not issue a VLUN (Virtual Logical Unit Number) Change Notification (VCN) after
removal. For direct connect or loop configuration, a VCN consists of a fibre channel Loop
Initialization Primitive (LIP). For fabric configuration a VCN consists of Registered State
Change Notification (RSCN) being sent to the fabric controller. This parameter is a vendor-
specific extension for 3PAR. The default value is false.
ResultDescriptions[]: An array of descriptive text of the result of the operation, with each
entry containing the result of each hide path operation. This parameter is a vendor-specific
extension for 3PAR.
Parameters “DeviceNumbers” and “NoVCN” are optional. All other combinations of the
parameters are rejected.
Remove volumes from a view: the volume has been exported to an SPC, it’ll be removed
from the SPC (e.g. it won’t be accessible from host HBA anymore).
5.14.5.5 ExposeLUsToStorageHardwareIDCollection
(Creating Host-Sees VLUNs) (3PAR proprietary method)
ControllerConfigurationService.ExposeLUsToStorageHardware
IDCollection() is similar to ExposePaths, except
ExposeLUsToStorageHardwareIDCollection exposes volumes to all the initiator ports
(StorageHardwareID) on the specified hosts (StorageHardwareIDCollection)
regardless of which target ports they are connected to.
For release 2.2.4 and before, this method can only be used to create host-sees vluns. In release
2.3.1, an extra parameter, TargetPortLIPDs, is added which if specified also allows for
creation of matched-set VLUNs; this allows for more flexibility in creating template VLUNs to
target ports that might not exist yet.
Job: This is ignored since InServ does not support job control.
LUNames[]: An array of IDs of logical unit instances. The LU instances must already exist.
The members of this array must match the Name property of StorageVolume instances.
Override: Override existing lower priority VLUNs, if necessary. Can be used only when
exporting to a specific host. This parameter is a vendor-specific extension for 3PAR. The
default value is false.
NoVCN: Do not issue a VLUN (Virtual Logical Unit Number) Change Notification (VCN) after
export. For direct connect or loop configuration, a VCN consists of a fibre channel Loop
Initialization Primitive (LIP). For fabric configuration a VCN consists of Registered State
Change Notification (RSCN) being sent to the fabric controller. This parameter is a vendor-
specific extension for 3PAR. The default value is false.
ResultDescriptions[]: An array of descriptive text of the result of the operation, with each
entry containing the result of each expose path operation. This parameter is a vendor-
specific extension for 3PAR.
Parameters “Override” and “NoVCN” are optional. All other combinations of the parameters
are rejected.
1 Creating a new default view: export a list of volumes to all host HBAs on a host
regardless of which target ports they are connected to. For release 2.2.4 and before, this
can only create a “host-sees” VLUN. For release 2.3.1, this creates host-sees VLUN if
TargetPortLPIDs is NULL, or matched-set VLUN if TargetPortLPIDs is specified. This
case is indicated by NULL input ProtocolController parameter.
2 Add LUs to a view: add volumes to an existing SPC view. (this feature is not supported in
2.3.1.)
5.15 HideLUsFromStorageHardwareIDCollection
(Removing Host-Sees VLUNs)
HideLUsFromStorageHardwareIDCollection()is a 3PAR proprietary method that is
similar to HidePaths, except that it hides volumes from all host HBA initiator ports on the
specified hosts.
This operation is similar to removevlun of host-sees VLUNs. For matched-set VLUNs, see
HidePaths. For port-present VLUNs, see HideDefaultLUs.
LUNames[]: An array of IDs of logical unit instances. The LU instances must already exist.
The members of this array must match the Name property of StorageVolume instances.
NoVCN: Do not issue a VLUN (Virtual Logical Unit Number) Change Notification (VCN) after
removal. For direct connect or loop configuration, a VCN consists of a fibre channel Loop
Initialization Primitive (LIP). For fabric configuration a VCN consists of Registered State
Change Notification (RSCN) being sent to the fabric controller. This parameter is a vendor-
specific extension for 3PAR. The default value is false.
ResultDescriptions[]: An array of descriptive text of the result of the operation, with each
entry containing the result of each hide path operation. This parameter is a vendor-specific
extension for 3PAR.
Parameters “DeviceNumbers” and “NoVCN” are optional. All other combinations of the
parameters are rejected.
Remove volumes from a view: the volume has been exported to an SPC, it’ll be removed
from the SPC (e.g., it won’t be accessible from host HBA anymore).
5.15.0.1 StorageHardwareIDManagementService
StorageHardwareIDManagementService provides methods for manipulating instances of
StorageHardwareIDs and manipulating the trust of these IDs in the underlying storage
system. This class enables clients to create and delete StorageHardwareID, create
StorageHardwareIDCollection and add StorageHardwareID to a collection. A client
can get a handle of StorageHardwareIDManagementService by using a HostedService
association from ComputerSystem (StorageSystem).
Here is a brief summary of the methods and their corresponding CLI commands:
CreateStorageHardwareIDCollection createhost
hostname [WWN …]
ElementName: This is the name of the host to create the host HBA WWN on. The host
must not have existed. This corresponds to the ElementName property of the
StorageHardwareID instance. If the host already exist, use
AddHardwareIDsToCollection instead. This is mandatory.
StorageID: WWN of the FC host HBA or iscsiName of the iSCSI host HBA to create. This is
mandatory.
IDType: Type of StorageID property. This must be 2 (Port WWN for FC target port) or 5
(iscsiName for iSCSI target port); all other values are rejected. This is mandatory.
HardwareIDs: A list of WWN’s/iscsiNames to assign to the host. If this is null, only the host
(without WWN/iscsiName assigned) is created.
5.15.1 ConcreteDependency
There are 3 ConcreteDependency classes in MM subprofile:
5.15.2 SAPAvailableForElement
This class replaces PrococolControllerForPort in SMI-S 1.0.2.
TPD_SAPAvailableForElement associates TPD_SCSIPrococolController to
TPD_SCSIPrococolEndPoint (FC target port). When a host is directly attached to InServ,
5.15.3 iSCSISAPAvailableForElement
This class replaces PrococolControllerForPort in SMI-S 1.0.2.
TPD_iSCSISAPAvailableForElement associates TPD_iSCSIPrococolController to
TPD_iSCSIPrococolEndPoint (iSCSI target port). When a host is directly attached to InServ,
iSCSISAPAvailableForElement represents a one-to-one relationship between SPC and
iSCSIPrococolEndPoint because only one host can connect to one target port. When one
InServ port is connected to a switch in a fabric, there can be multiple hosts connecting to InServ
via the same target port (1-to-many association). When more than one InServ port are
connecting to the fabric with multiple hosts in the same zone, this association becomes n-to-n
relationship.
5.15.4 SCSIPrococolController
SCSIPrococolController (SPC) represents the view described in SMI-S View and Paths on
page 5.101 for a Fiber-channel host.
5.15.5 iSCSIPrococolController
iSCSIPrococolController (SPC) represents the view described in SMI-S View and Paths on
page 5.101 for an iSCSI host.
5.15.6 SCSIPrococolEndpoint
SCSIPrococolEndpoint (subclass of LogicalPort) models SCSI aspect of an FC port. It is
associated with one or more FCPorts. One instance of this class must be created for each
target port (connecting to host or fabric).
Properties Values
5.15.7 iSCSIPrococolEndpoint
iSCSIPrococolEndpoint (subclass of LogicalPort) models SCSI aspects of an iSCSI port.
Unlike TPD_SCSIPrococolEndpoint, however, this class is not associated to any
CIM_LogicalPort class since one does not exist for iSCSI port. One instance of this class must
be created for each target port (connecting to host or fabric).
Properties Values
5.15.8 ControllerForUnit
TPD_ControllerForUnit associates TPD_SCSIController for an FC host with
StorageVolumes. The LUN is modeled as the DeviceNumber property of
ProtocolControllerForUnit. The access permission is represented as DeviceAccess
property.
Properties Values
5.15.9 iSCSIControllerForUnit
Similar to TPD_SCSIControllerForUnit, except that TPD_iSCSIControllerForUnit
associates TPD_iSCSIController for an iSCSI host with StorageVolumes.
5.15.10 StorageClientSettingData
An array has several fixed instances of this class, each corresponding to a host persona. Each
instance of StorageHardwareID and StorageHardwareIDCollection has an
ElementSettingData association with an instance of StorageClientSettingData that
corresponds to the persona of the host.
5.15.11 StorageHardwareID
StorageHardwareID (subclass of Identity) represents the host HBA WWN/iscsiName.
5.15.12 TPD_StorageHardwareIDCollection
This is sub-classed from SystemSpecificCollection is used to hold a set of
StorageHardwareID objects which can access storage volumes.
5.15.13.1 AuthorizedPrivilege
AuthorizedPrivilege represents access permission (read-write) that a
StorageHardwareID (host HBA) is allowed on a SCSIProtocolController. This
permission is associated with StorageHardwareID via AuthorizedSubject.
Properties Values
5.15.13.2 AuthorizedSubject
AuthorizedSubject associates StorageHardwareID to its access permission
(AuthorizedPrivilege).
5.15.13.3 AuthorizedTarget
AuthorizedTarget is an association that ties AuthorizedPrivilege with
SCSIProtocolController.
5.15.13.4 ConcreteDependency
ConcreteDependency links the SCSIProtocolController to
ControllerConfigurationService.
5.15.13.6 ElementCapabilities
ElementCapabilities is an association between ComputerSystem and
ProtocolControllerMaskingCapabilities.
5.15.13.7 ElementSettingData
There are 2 kinds of ElementSettingData associations:
5.15.13.8 MemberOfCollection
MemberOfCollection is an association between StorageHardwareID and
SystemSpecificCollection. It indicates that a specific StorageHardwareID (host hba
wwn/iscsiName) is a member of SystemSpecificCollection/
StorageHardwareIDCollection (host).
5.15.13.9 ProtocolControllerMaskingCapabilities
See ProtocolControllerMaskingCapabilities on page 5.105.
For detailed information regarding the FC Target Ports subprofile, refer to SMI-S at http://
www.snia.org.
Class Description
For detailed information regarding the FC Target Ports subprofile, refer to SMI-S at http://
www.snia.org.
Class Description
Method Description
modifyInstance() Provides the ability to set owner and contact information for
the StorageSystem.
The Multiple Computer System subprofile models the underlying systems or controllers that
cooperate to present a single, top-level system (Cluster) which provides for added redundancy
or increased functionality.
For detailed information regarding the FC Target Ports subprofile, refer to SMI-S at http://
www.snia.org.
The 3PAR CIM Server supports the Multiple Computer System subprofile as defined in SMI-S
v1.1.0. This subprofile provides information about the Controller Nodes that comprise the
InServ Storage Server cluster. The cluster is modeled as multiple tiers with each tier
representing a pair of Controller Nodes.
Class Description
Method Description
modifyInstance() Provides the ability to set owner and contact information for
the StorageSystem.
For detailed information regarding the Disk Drive Lite subprofile, refer to SMI-S at http://
www.snia.org.
Class Description
Class Description
Method Description
modifyInstance() Provides the ability to set owner and contact information for
the StorageSystem.
For detailed information regarding the Block Server Performance subprofile, refer to SMI-S at
http://www.snia.org.
Class Description
6
CIM Indications
In this chapter
6.1 Overview 6.1
6.1 Overview
SMI-S provides for asynchronous notification of events that indicate changes in the CIM server
or the managed elements controlled by the CIM server. CIM Indications are the mechanism for
delivery of such events. A CIM client must subscribe to indications it wants to receive event
notifications from the CIM server. For detailed information regarding Indications, refer to
SMI S at http://www.snia.org.
As an alternative, the client can send any of the following to choose the specific indication(s)
to receive:
7
3PAR CIM-API Extensions
In this chapter
7.1 Health Management 7.2
The 3PAR CIM Server supports additional classes that provide management for InServ Storage
Server specific features not covered by SMI-S.
Class Description
TPD_NodeSystem Provides information about the Controller Nodes that make up the
InServ Storage Server.
Class Description
TPD_IDEDrive Provides information about the onboard IDE drive contained within
each Controller Node.
Property Description
OperationalStatus Overall status of the storage system. Refer to SMI-S for possible values
of this property.
Property Description
Position The position of the controller node in the storage system (i.e., node
number).
Property Description
OperationalStatus Overall status of the controller node. Refer to SMI-S for possible
values of this property.
Property Description
OperationalStatus Overall status of the PCI Card. Refer to SMI-S for possible values of
this property.
Property Description
OperationalStatus Overall status of the CPU. Refer to SMI-S for possible values of this
property.
Property Description
OperationalStatus Overall status of the memory card. Refer to SMI-S for possible values
of this property.
Property Description
OperationalStatus Overall status of the IDE Drive. Refer to SMI-S for possible values of
this property.
Method Description
modifyInstance() Provides the ability to set owner and contact information for the
StorageSystem.
Class Description
Class Description
Property Description
OperationalStatus Overall status of the storage system. Refer to the SMI-S for possible
values of this property.
Property Description
Position The position of the drive cage in the storage system (i.e., cage
number).
Property Description
OperationalStatus Overall status of the drive cage. Refer to SMI-S for possible values for
this property.
Property Description
Property Description
OperationalStatus Overall status of the drive magazine. Refer to SMI-S for possible
values of this property.
Property Description
ElementName User-friendly name of the disk drive. The format varies depending on
the type of the drive cage.
OperationalStatus Overall status of the disk drive. Refer to SMI-S for possible values of
this property.
Method Description
modifyInstance() Provides the ability to set owner and contact information for the
StorageSystem.
Class Description
TPD_NodeSystem Provides information about the controller nodes that make up the InServ
Storage Server.
Class Description
TPD_PowerSupply Provides information about power supplies for both controller nodes and
disk cages.
TPD_Fan Provides information about fans, including fans within each power supply
and external fans connected to controller nodes.
Property Description
Property Description
Position The position of the Controller Node in the storage system (such as
the node number).
Property Description
OperationalStatus Overall status of the Controller Node. Please refer to SMI-S for
possible values of this property.
Property Description
Position The position of the DriveCage in the storage system (such as the
cage number).
OperationalStatus Overall status of the DriveCage. Please refer to SMI-S for possible
values of this property.
Property Description
Position The position of the PowerSupply in the storage system (such as the
PS number).
OperationalStatus Overall status of the PowerSupply. Please refer to SMI-S for possible
values of this property.
Property Description
Property Description
Position The position of the Battery in the storage system (such as the battery
number).
OperationalStatus Overall status of the Battery. Please refer to SMI-S for possible values
of this property.
Property Description
Position The position of the Fan in the PowerSupply or Storage System (such
as the fan number).
OperationalStatus Overall status of the Fan. Please refer to SMI-S for possible values of
this property.
Method Description
modifyInstance() Provides the ability to set owner and contact information for the
StorageSystem.
Class Description
TPD_NodeSystem Provides information about the Controller Nodes that make up the
InServ Storage Server.
Class Description
TPD_IDEDrive Provides information about the onboard IDE drive contained within
each Controller Node.
Property Description
Property Description
Property Description
Position The position of the Controller Node in the storage system (such as
the node number).
Property Description
Property Description
Property Description
Property Description
Property Description
Property Description
Method Description
modifyInstance() Provides the ability to set owner and contact information for the
StorageSystem.
Class Description
Property Description
Property Description
Position The position of the drive cage in the storage system (such as the cage
number).
Property Description
Property Description
Property Description
Property Description
Property Description
Property Description
Method Description
modifyInstance() Provides the ability to set owner and contact information for the
StorageSystem.
Class Description
TPD_NodeSystem Provides information about the controller nodes that make up the InServ
Storage Server.
TPD_PowerSupply Provides information about power supplies for both controller nodes and
disk cages.
TPD_Fan Provides information about fans, including fans within each power supply
and external fans connected to controller nodes.
Property Description
Property Description
Position The position of the Controller Node in the storage system (such as
the node number).
Property Description
Position The position of the DriveCage in the storage system (such as the
cage number).
Property Description
Position The position of the PowerSupply in the storage system (such as the
PS number).
Property Description
Property Description
Position The position of the Battery in the storage system (such as the battery
number).
Property Description
Position The position of the Fan in the PowerSupply or Storage System (such
as the fan number).
Method Description
modifyInstance() Provides the ability to set owner and contact information for the
StorageSystem.
A
Managed Object Format
Files
In this appendix
A.1 3PAR_InterOp.mof A.2
This appendix provides the contents of the Managed Object Format (MOF) files for the InServ
Storage Server. These MOF files derive from the standard MOF files contained in CIM, version
2.11. For information regarding standard MOF files, please refer to DMTF at http://
www.dmtf.org.
NOTE: The MOF's in this chapter might not be current; for the up-to-date MOFs,
please copy and paste from the files in the /net/toolchest/export/bk/swiss_2.3.1/
tpdsrc/umod/api/pegasus/Schemas/TPD directory.
A.1 3PAR_InterOp.mof
This MOF contains 3PAR classes that loaded into the root/PG_InterOp namespace.
// ==================================================================
// RegisteredProfile
// ==================================================================
[Description (
"RegisteredProfile tells clients what profiles 3PAR InServ Storage "
"Server supports. ")]
class TPD_RegisteredProfile : CIM_RegisteredProfile {
};
// ==================================================================
// RegisteredSubProfile
// ==================================================================
[Description (
"A RegisteredSubProfile subclasses RegisteredProfile to "
"indicate that a scoping profile is required to provide "
"context. The latter is specified by the mandatory association, "
"SubProfileRequiresProfile.")]
class TPD_RegisteredSubProfile : CIM_RegisteredSubProfile {
};
// ==================================================================
// SubProfileRequiresProfile - association between RegisteredProfile and
// RegisteredSubProfile
// ==================================================================
[Association,
Description (
"A subprofile requires another RegisteredProfile for context. "
"This association mandates the scoping relationship between a "
"subprofile and its scoping profile.")]
class TPD_SubProfileRequiresProfile : CIM_SubProfileRequiresProfile {
A.2 3PAR_InterOp.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// RegisteredProfile and ComputerSystem association
// ==================================================================
[Association, Description (
"The CIM_ElementConformsToProfile association defines the "
"RegisteredProfiles to which the referenced ManagedElement is "
"conformant. This association specifically ties RegisteredProfile "
"with 3PAR InServ Storage Server (TPD_StorageSystem, subclass of "
"CIM_ComputerSystem) if the profile is Array, and with the "
"Object Manager if the profile is Server.")]
class TPD_ElementConformsToProfile : CIM_ElementConformsToProfile {
// ==================================================================
// ObjectManager
// ==================================================================
[Description (
"TPD_ObjectManager defines the capabilities of the 3PAR InServ "
"Storage System CIM Server in which this ObjectManager class "
"resides. Details related to communicating with the ObjectManager, "
"and the Manager's basic capabilities, are stored in instances of the "
"associated TPD_CIMXMLCommunicationMechanism class available through "
"the TPD_CommMechanismForManager association. ")]
class TPD_ObjectManager : CIM_ObjectManager {
};
// ==================================================================
// TPD_HostedOMService: Association between CIM_System and TPD_ObjectManager
// ==================================================================
[Association,
3PAR_InterOp.mof A.3
CIM API Programming Reference InForm OS Version 2.3.1
Description (
"TPD_HostedOMService is an association between TPD_ObjectManager and the
"
"System on which the functionality resides. The cardinality of "
"this association is 1-to-many. A System may host many "
"Services. Services are weak with respect to their hosting "
"System. Heuristic: A Service is hosted on the System where the "
"LogicalDevices or SoftwareFeatures that implement the Service "
"are located. The model does not represent Services hosted "
"across multiple systems. This is modeled as an "
"ApplicationSystem that acts as an aggregation point for "
"Services, that are each located on a single host.")]
class TPD_HostedOMService : CIM_HostedService {
// ==================================================================
// Namespace
// ==================================================================
[Description (
"Namespace provides a domain (in other words, a container), in "
"which the instances [of a class] are guaranteed to be unique "
"per the KEY qualifier definitions. It is named relative to the "
"TPD_ObjectManager implementation that provides such a domain.")]
class TPD_Namespace : CIM_Namespace {
};
// ==================================================================
// NamespaceInManager - association between Namespace and Object Mgr
// ==================================================================
[Association,
Description (
"NamespaceInManager is an association describing the Namespaces "
"hosted by the TPD_ObjectManager.")]
class TPD_NamespaceInManager: CIM_NamespaceInManager {
A.4 3PAR_InterOp.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// CIMXMLCommunicationMechanism
// ==================================================================
[Description (
"This class specializes ObjectManagerCommunicationMechanism, "
"adding properties specific to the CIM-XML protocol (XML "
"encoding and CIM Operations) supported by the 3PAR CIM "
"server Object Manager.")]
class TPD_CIMXMLCommunicationMechanism : CIM_CIMXMLCommunicationMechanism {
[Description ( "Is this link encrypted or not. http or https. ")]
String namespaceType;
[Description ( "IP Address for this comm mechanism. This MUST "
"BE the complete address so that the CIM Server can be "
"addressed from the network. It must include the port "
"number unless the DMTF defined default ports are used." )]
String IPAddress;
};
// ==================================================================
// TPD_CommMechanismForManager - Association between TPD_ObjectManager
// and TPD_CIMXMLCommunicationMechanism
// ==================================================================
[Association,
Description (
"CommMechanismForManager is an association between an "
"ObjectManager and an TPD_CIMXMLCommunicationMechanism "
"class. The latter describes a possible encoding/protocol/ set "
"of operations for accessing the referenced ObjectManager.")]
class TPD_CommMechanismForManager : CIM_CommMechanismForManager {
3PAR_InterOp.mof A.5
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// TPD_HostedCIMXMLCommMechanism - Association between TPD_StorageSystem
// and TPD_CIMXMLCommunicationMechanism
// ==================================================================
[Association,
Description (
"HostedCIMXMLCommMechanism is an association between a Service "
"AccessPoint and the System on which it is provided. The "
"cardinality of this association is 1-to-many and is weak with "
"respect to the System. Each System may host many "
"ServiceAccessPoints. Heuristic: If the implementation of the "
"ServiceAccessPoint is modeled, it must be implemented by a "
"Device or SoftwareFeature that is part of the System hosting "
"the ServiceAccessPoint.")]
class TPD_HostedCIMXMLCommMechanism : CIM_HostedAccessPoint {
// ==================================================================
// 3PAR ObjMgrSoftwareIdentity
// ==================================================================
[Description (
"3PAR ObjMgrSoftwareIdentity describes the Object Manager"
"software used to instrument the various profiles and subprofiles.")]
class TPD_ObjMgrSoftwareIdentity : CIM_SoftwareIdentity
{
A.6 3PAR_InterOp.mof
InForm OS Version 2.3.1 CIM API Programming Reference
};
// ==================================================================
// 3PAR Profiles and Subprofiles software identity
// ==================================================================
[Association,
Description (
"3PAR ObjMgrSoftwareIdentity and RegisteredProfile"
" and RegisteredSubProfile mapping")]
class TPD_ProfileSoftwareIdentity : CIM_ElementSoftwareIdentity {
A.2 3PAR_TPD.mof
This MOF contains 3PAR classes that loaded into the root/tpd namespace.
// ==================================================================
// 3PAR SCSIController
// ==================================================================
[Description (
"3PAR Data SCSI ProtocolController ")]
class TPD_SCSIController: CIM_SCSIProtocolController
{
};
// ==================================================================
// 3PAR StoragePool
// ==================================================================
[Description (
"3PAR Data StoragePool ")]
class TPD_StoragePool: CIM_StoragePool
{
[Description (
"Type of disk drives that are in this pool. Not applicable "
3PAR_TPD.mof A.7
CIM API Programming Reference InForm OS Version 2.3.1
};
// ==================================================================
// 3PAR StorageVolume
// ==================================================================
[Description (
"3PAR Data StorageVolume ")]
class TPD_StorageVolume: CIM_StorageVolume
{
[Description (
"Describe the RAID type of the volume. This value makes it easy"
" for traversing ElementSettingData association."),
ValueMap {"0", "10", "50"},
Values {"RAID0", "RAID10", "RAID50"} ]
uint16 RaidType;
[Description (
"Volume overall state. Possible value is a combination of following
states: "
"0x00000000, 0x00000001, 0x00000002, 0x00000004, 0x00000008, 0x00000010,
"
"0x00000020, 0x00000040, 0x00000080, 0x00000100, 0x00000200, 0x00000400,
"
"0x00000800"),
BitMap { "0","1","2","3","4","5","6","7","8","9","10","11","12" },
BitValues {"Unknown", "Started", "Not Started", "Auto-Check",
"Checking", "Need Check", "Need Disk", "Promoting",
"Copy Failed", "Stale", "Copying", "Admin Failed", "Preserved"} ]
uint32 OtherOperationalStatus;
[Description (
"Describe the type of the volume."),
ValueMap {"0", "1", "2", "3", "4"},
Values {"Unknown", "Base", "Physical Copy", "Virtual Copy", "Remote Copy"}
]
uint16 VolumeType;
[Description (
"Total number of logically contiguous blocks, of size Block "
"Size, which form Raw Size Admin. The total size "
A.8 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
[Description (
"The maximum number of blocks, of size BlockSize, which are "
"available for consumption in Admin space. The total size "
"can be calculated by multiplying BlockSize by ConsumableAdminBlocks.")]
uint64 ConsumableAdminBlocks;
[Description (
"Total number of logically contiguous blocks, of size Block "
"Size, which form Free Size Admin. The total size "
"can be calculated by multiplying BlockSize by FreeAdminBlocks.")]
uint64 FreeAdminBlocks;
[Description (
"Total number of logically contiguous blocks, of size Block "
"Size, which form Raw Size Copy. The total size "
"can be calculated by multiplying BlockSize by RawCopyBlocks.")]
uint64 RawCopyBlocks;
[Description (
"The maximum number of blocks, of size BlockSize, which are "
"available for consumption in Copy space. The total size "
"can be calculated by multiplying BlockSize by ConsumableCopyBlocks.")]
uint64 ConsumableCopyBlocks;
[Description (
"Total number of logically contiguous blocks, of size Block "
"Size, which form Free Size Copy. The total size "
"can be calculated by multiplying BlockSize by FreeCopyBlocks.")]
uint64 FreeCopyBlocks;
[Description (
"Total number of zones in the Admin space.")]
uint64 TotalAdminZones;
[Description (
"Total number of zones in the Copy space.")]
uint64 TotalCopyZones;
[Description (
"Number of free zones in the Admin space.")]
uint64 FreeAdminZones;
3PAR_TPD.mof A.9
CIM API Programming Reference InForm OS Version 2.3.1
[Description (
"Number of free zones in the Copy space.")]
uint64 FreeCopyZones;
[Description (
"The date this volume was created.")]
datetime DateCreated;
[Description (
"Master node ID.") ]
uint16 MasterNode;
[Description (
"Backup 1 node ID.") ]
uint16 BackupNode1;
[Description (
"Backup 2 node ID.") ]
uint16 BackupNode2;
[Description (
"Parent volume ID.") ]
uint32 ParentID;
[Description (
"Volume policy bits used to store policies information. "
"The available policies are: "
"DisallowStaleSnapshot - When copy-on-write fails, don't write to r/w "
" base so that r/o snapshots remain valid/consistent with r/w "
" base. This means failures to update snapshot will be "
" considered a failure to write to the base volume as well. "
"AllowStaleSnapshot - When copy-on-write fails, allow write to r/w base "
" to succeed, but snapshot becomes invalid or stale. This means "
" failures to update snapshot will not affect the write to the "
" base volume, but the snapshot will then be considered invalid. "
" This is the default setting. "
"System - Volume is intended to be used for internal system purposes."
"NoSystem - Volume is not intended to be used for internal system "
" purposes."
"TPZeroFill - For Thin Provisioned volumes, if a host write results in "
" allocation of a new data page that is only partially "
" filled by the host write, then do a zero-fill on the "
" unwritten portion of the page to ensure that the host can "
" never read old data from deleted volumes or snapshots. "
" Current allocation page size is 16kb. This is the "
A.10 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
[Description (
"Describes the preferred availability of the volume. "
"This value might be different from CurrentAvailability."),
ValueMap {"0", "1", "2", "3", "4", "5"},
Values {"Unknown", "Cage", "Magazine", "Port", "Disk", "Chunklet"} ]
uint16 PreferredAvailability;
[Description (
"Describes the current availability of the volume. "
"This value might be different from PreferredAvailability."),
ValueMap {"0", "1", "2", "3", "4", "5"},
Values {"Unknown", "Cage", "Magazine", "Port", "Disk", "Chunklet"} ]
uint16 CurrentAvailability;
3PAR_TPD.mof A.11
CIM API Programming Reference InForm OS Version 2.3.1
[Description (
"Describes the export state of the volume."),
ValueMap {"0", "1", "2"},
Values {"None", "Active", "Template"} ]
uint16 ExportState;
[Description (
"Type of disk drives that are used to create this volume."),
ValueMap {"0", "1", "2"},
Values {"Unknown", "FC", "Nearline"} ]
uint16 DiskDeviceType;
[Description (
"Allocation warning. Generate a warning alert when SD space "
"of the volume exceeds the specified percentage of the volume "
"size."),
Units ( "Percent" )]
uint32 SnapSpaceAllocationWarning;
[Description (
"Allocation limit. The SD space of the volume is prevented "
"from growing beyond the specified percentage of the volume "
"size."),
Units ( "Percent" )]
uint32 SnapSpaceAllocationLimit;
[Description (
"Allocation warning. Generate a warning alert when user space "
"of the volume exceeds the specified percentage of the volume "
"size. Applicable only to a thin-provisioned volume."),
Units ( "Percent" )]
uint32 UserSpaceAllocationWarning;
[Description (
"Allocation limit. The user space of the volume is prevented "
"from growing beyong the specified percentage of the volume "
"size. Applicable only to a thin-provisioned volume."),
Units ( "Percent" )]
uint32 UserSpaceAllocationLimit;
[Description (
"The DynamicStoragePool (DSP) the snapshot data (SD) "
"are provisioned from.\n")]
String SnapDSPName;
A.12 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
[Description (
"The DynamicStoragePool (DSP) the user space "
"is provisioned from.\n")]
String UserDSPName;
[Description (
"The number of user blocks that are actually allocated to a "
"thin-provisioned volume. "
"This is applicable only for a thin-provisioned volume.")]
uint64 ProvisionedConsumableBlocks;
[Description (
"Name of the administrative domain that this volume belongs "
"to.\n")]
String Domain;
[Description (
"Number of chunklets in a set. "
"For RAID 0 volume, this is always 1. "
"For RAID 10 volume, this is equal to StorageSetting.DataRedundancy. "
"Minimum value for RAID 10 volume is 2, maximum value is 4. "
"For RAID 50 volume, this is also known as the parity "
"set size."),
MinValue ( 1 ) ]
uint16 SetSize;
[Description (
"Number of chunklets in a set that contains data. "
"Meaningful for RAID 60 volume only."),
MinValue ( 3 ) ]
uint16 SetData;
[Description ("The time specifies when the volume will expire and "
"can be deleted.") ]
datetime ExpirationTime;
[Description ("The time specifies the volume needs to be retained and "
"can not remove until the retention time is expired.") ]
datetime RetentionTime;
};
// ==================================================================
// 3PAR HostedStoragePool
// ==================================================================
3PAR_TPD.mof A.13
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// 3PAR AllocatedFromStoragePool
// ==================================================================
[Association,
Description (
"TPD_AllocatedFromStoragePool is an association describing how "
"StorageVolume are allocated from underlying StoragePools."
"This association is used to figure out the remaining space "
"and the consumed space in the pool.") ]
class TPD_AllocatedFromStoragePool: CIM_AllocatedFromStoragePool
{
[Override ( "Antecedent" ), Description (
"The StoragePool.")]
TPD_StoragePool REF Antecedent;
};
// ==================================================================
// 3PAR StorageSetting
// ==================================================================
[Description (
"3PAR Data StorageSetting ")]
class TPD_StorageSetting: CIM_StorageSetting
{
[Write, Description (
"The number of data chunklets in a RAID 50 parity set. "
"The system default is 4 chunklets: 3 for data and 1 for "
"parity (3+1).\n"
"This is meaningless for RAID 0 or RAID 10 volumes."),
MinValue ( 3 ), MaxValue ( 9 ) ]
A.14 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
uint16 ParitySetSize;
[Write, Description (
"Base ID of the volume. If NULL, the next available "
"id used."),
MinValue ( 1 ) ]
uint32 BaseID;
[Write, Description (
"Whether a RAID 10 or RAID 50 volume supports a failure "
"of one port pair, one cage or one magazine. For RAID 10 "
"and RAID 50, the default for user, snap admin and snap "
"data areas are cage. For RAID 0, the default for the "
"snap admin area is cage.\n"),
ValueMap { "1", "2", "3" },
Values { "Cage", "Magazine", "Port" }]
uint16 HighAvailability;
[Write, Description (
"Chunklet location preference. Allows chunklets to "
"be placed physically close to other chunklets with "
"the same location preference.\n"
" First - attempt to use the lowest numbered\n"
" available chunklets.\n"
" Last - attempt to use the highest numbered\n"
" available chunklets.\n"
"The default value is First.\n"),
ValueMap { "1", "2" },
Values { "First", "Last" }]
uint16 ChunkletLocationPreference;
[Write, Description (
"Size for the snap volume in bytes (maximum 1073741568). "
"The default value is not set.\n"
"If CPGName is specified, this value should be 0.\n"
"Only one of DeltaReservationGoal and SnapVolumeSize "
"can be set.\n"),
Units ( "Bytes" )]
uint64 SnapVolumeSize;
[Write, Description (
"Size for the admin volume in bytes (maximum 1073741568). "
"The default value is not set.\n"
"This property is valid only in a grow volume operation."),
Units ( "Bytes" )]
3PAR_TPD.mof A.15
CIM API Programming Reference InForm OS Version 2.3.1
uint64 AdminVolumeSize;
[Write, Description (
"Provision snapshot data (SD) and snapshot admin (SA) "
"space from the Common Provisioning Group CPGName.\n")]
String CPGName;
[Write, Description (
"If TRUE, the volume or pool is thinly provisioned.") ]
boolean ThinlyProvisioned;
[Write, Description (
"Define volume policy. The available policies are: "
"DisallowStaleSnapshot - When copy-on-write fails, don't write to r/w "
" base so that r/o snapshots remain valid/consistent with r/w "
" base. This means failures to update snapshot will be "
" considered a failure to write to the base volume as well. "
"AllowStaleSnapshot - When copy-on-write fails, allow write to r/w base "
" to succeed, but snapshot becomes invalid or stale. This means "
" failures to update snapshot will not affect the write to the "
" base volume, but the snapshot will then be considered invalid. "
" This is the default setting. "
"System - Volume is intended to be used for internal system purposes."
"NoSystem - The volume is not intended to be used for internal system "
" purposes."
"TPZeroFill - For Thin Provisioned volumes, if a host write results in "
" allocation of a new data page that is only partially "
" filled by the host write, then do a zero-fill on the "
" unwritten portion of the page to ensure that the host can "
" never read old data from deleted volumes or snapshots. "
" Current allocation page size is 16kb. This is the "
" default setting. "
"TPNoZeroFill - Bypass the zero-fill stage on allocation of partially "
" written data pages. This is a performance improvement "
" setting for Thin Provisioned volumes. "
"OneHost - This constrains the export of a volume to one host or "
" one host cluster (when cluster names may be used as a "
" host name). Unless the volume is under the complete "
" control of a cluster aware application, multiple hosts "
" (with NoOneHost policy) will corrupt each other's data. "
"NoOneHost - This policy should only be used when exporting a volume to "
" multiple hosts for use by a cluster-aware application, "
" or if your shop uses 'port presents' VLUNs. "
" This is the default policy setting."
"ZeroDetect - Check If incoming data is zero. If so, reclaim the space."
A.16 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
[Write, Description (
"Specifies the node number, the list of node numbers or "
"the range of node numbers the disks must have their "
"primary path on.\n"
"Each element in this array represents one instance of "
"pattern for candidate disks; multiple array element adds "
"additional candidate disks that match the pattern.\n"
"Empty string means that the value is not specified for "
"this particular set of patterns. \n"
"The string must be in one of the following formats:\n"
" <nb> - nb is an integer\n"
" <nb>,<nb> - a list of integers\n"
" <nb>-<nb> - a range of integers\n"),
ArrayType ( "Indexed" ),
ModelCorrespondence {
"DiskPrimPathPCISlots",
"DiskPrimPathPorts",
"DiskCages",
"DiskMagazines",
"DiskMagPositions",
"DiskIDs",
"DiskTotalChunkletGT",
"DiskTotalChunkletLT",
"DiskFreeChunkletGT",
"DiskFreeChunkletLT",
"DiskPackageModels" }]
3PAR_TPD.mof A.17
CIM API Programming Reference InForm OS Version 2.3.1
String DiskPrimPathNodes[];
[Write, Description (
"Specifies the PCI slot, the list of PCI slots or "
"the range of PCI slots the disks must have their "
"primary path on.\n"
"Each element in this array represents one instance of "
"pattern for candidate disks; multiple array element adds "
"additional candidate disks that match the pattern.\n"
"Empty string means that the value is not specified for "
"this particular set of patterns. \n"
"The string must be in one of the following formats:\n"
" <nb> - nb is an integer\n"
" <nb>,<nb> - a list of integers\n"
" <nb>-<nb> - a range of integers\n"),
ArrayType ( "Indexed" ),
ModelCorrespondence {
"DiskPrimPathNodes",
"DiskPrimPathPorts",
"DiskCages",
"DiskMagazines",
"DiskMagPositions",
"DiskIDs",
"DiskTotalChunkletGT",
"DiskTotalChunkletLT",
"DiskFreeChunkletGT",
"DiskFreeChunkletLT",
"DiskPackageModels" }]
String DiskPrimPathPCISlots[];
[Write, Description (
"Specifies the port number, the list of port numbers or "
"the range of port numbers the disks must have their "
"primary path on.\n"
"Each element in this array represents one instance of "
"pattern for candidate disks; multiple array element adds "
"additional candidate disks that match the pattern.\n"
"Empty string means that the value is not specified for "
"this particular set of patterns. \n"
"The string must be in one of the following formats:\n"
" <nb> - nb is an integer\n"
" <nb>,<nb> - a list of integers\n"
" <nb>-<nb> - a range of integers\n"),
ArrayType ( "Indexed" ),
ModelCorrespondence {
A.18 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
"DiskPrimPathPCISlots",
"DiskPrimPathNodes",
"DiskCages",
"DiskMagazines",
"DiskMagPositions",
"DiskIDs",
"DiskTotalChunkletGT",
"DiskTotalChunkletLT",
"DiskFreeChunkletGT",
"DiskFreeChunkletLT",
"DiskPackageModels" }]
String DiskPrimPathPorts[];
[Write, Description (
"Specifies the cage number, the list of cage numbers or "
"the range of cage numbers the disks must be in.\n"
"Each element in this array represents one instance of "
"pattern for candidate disks; multiple array element adds "
"additional candidate disks that match the pattern.\n"
"Empty string means that the value is not specified for "
"this particular set of patterns. \n"
"The string must be in one of the following formats:\n"
" <nb> - nb is an integer\n"
" <nb>,<nb> - a list of integers\n"
" <nb>-<nb> - a range of integers\n"),
ArrayType ( "Indexed" ),
ModelCorrespondence {
"DiskPrimPathPCISlots",
"DiskPrimPathPorts",
"DiskPrimPathNodes",
"DiskMagazines",
"DiskMagPositions",
"DiskIDs",
"DiskTotalChunkletGT",
"DiskTotalChunkletLT",
"DiskFreeChunkletGT",
"DiskFreeChunkletLT",
"DiskPackageModels" }]
String DiskCages[];
[Write, Description (
"Specifies the magazine number, the list of magazine numbers or "
"the range of magazine numbers the disks must be in. The '1.' "
"or '0.' that indicates the side of the cage is omitted.\n"
"Each element in this array represents one instance of "
3PAR_TPD.mof A.19
CIM API Programming Reference InForm OS Version 2.3.1
[Write, Description (
"Specifies the magazine position, the list of magazine positions or "
"the range of magazine positions the disks must be in.\n"
"Each element in this array represents one instance of "
"pattern for candidate disks; multiple array element adds "
"additional candidate disks that match the pattern.\n"
"Empty string means that the value is not specified for "
"this particular set of patterns. \n"
"The string must be in one of the following formats:\n"
" <nb> - nb is an integer\n"
" <nb>,<nb> - a list of integers\n"
" <nb>-<nb> - a range of integers\n"),
ArrayType ( "Indexed" ),
ModelCorrespondence {
"DiskPrimPathPCISlots",
"DiskPrimPathPorts",
"DiskPrimPathNodes",
"DiskMagazines",
"DiskCages",
"DiskIDs",
"DiskTotalChunkletGT",
"DiskTotalChunkletLT",
A.20 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
"DiskFreeChunkletGT",
"DiskFreeChunkletLT",
"DiskPackageModels" }]
String DiskMagPositions[];
[Write, Description (
"Specifies the ID, the list of IDs or the range of IDs "
"the disks must have.\n"
"Each element in this array represents one instance of "
"pattern for candidate disks; multiple array element adds "
"additional candidate disks that match the pattern.\n"
"Empty string means that the value is not specified for "
"this particular set of patterns. \n"
"The string must be in one of the following formats:\n"
" <nb> - nb is an integer\n"
" <nb>,<nb> - a list of integers\n"
" <nb>-<nb> - a range of integers\n"),
ArrayType ( "Indexed" ),
ModelCorrespondence {
"DiskPrimPathPCISlots",
"DiskPrimPathPorts",
"DiskPrimPathNodes",
"DiskMagazines",
"DiskMagPositions",
"DiskCages",
"DiskTotalChunkletGT",
"DiskTotalChunkletLT",
"DiskFreeChunkletGT",
"DiskFreeChunkletLT",
"DiskPackageModels" }]
String DiskIDs[];
[Write, Description (
"The total number of chunklets in the disk must be "
"greater than this value.\n"
"Each element in this array represents one instance of "
"pattern for candidate disks; multiple array element adds "
"additional candidate disks that match the pattern.\n"
"A value of -1 means that the value is not specified for "
"this particular set of patterns. All other negative integers "
"are invalid.\n"),
ArrayType ( "Indexed" ),
ModelCorrespondence {
"DiskPrimPathPCISlots",
"DiskPrimPathPorts",
3PAR_TPD.mof A.21
CIM API Programming Reference InForm OS Version 2.3.1
"DiskPrimPathNodes",
"DiskMagazines",
"DiskMagPositions",
"DiskIDs",
"DiskCages",
"DiskTotalChunkletLT",
"DiskFreeChunkletGT",
"DiskFreeChunkletLT",
"DiskPackageModels" }]
sint32 DiskTotalChunkletGT[];
[Write, Description (
"The total number of chunklets in the disk must be "
"less than this value.\n"
"Each element in this array represents one instance of "
"pattern for candidate disks; multiple array element adds "
"additional candidate disks that match the pattern.\n"
"A value of -1 means that the value is not specified for "
"this particular set of patterns. All other negative integers "
"are invalid.\n"),
ArrayType ( "Indexed" ),
ModelCorrespondence {
"DiskPrimPathPCISlots",
"DiskPrimPathPorts",
"DiskPrimPathNodes",
"DiskMagazines",
"DiskMagPositions",
"DiskIDs",
"DiskTotalChunkletGT",
"DiskCages",
"DiskFreeChunkletGT",
"DiskFreeChunkletLT",
"DiskPackageModels" }]
sint32 DiskTotalChunkletLT[];
[Write, Description (
"The total number of free or initializing chunklets in "
"the disk must be greater than this value.\n"
"Each element in this array represents one instance of "
"pattern for candidate disks; multiple array element adds "
"additional candidate disks that match the pattern.\n"
"A value of -1 means that the value is not specified for "
"this particular set of patterns. All other negative integers "
"are invalid.\n"),
ArrayType ( "Indexed" ),
A.22 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
ModelCorrespondence {
"DiskPrimPathPCISlots",
"DiskPrimPathPorts",
"DiskPrimPathNodes",
"DiskMagazines",
"DiskMagPositions",
"DiskIDs",
"DiskTotalChunkletGT",
"DiskTotalChunkletLT",
"DiskCages",
"DiskFreeChunkletLT",
"DiskPackageModels" }]
sint32 DiskFreeChunkletGT[];
[Write, Description (
"The total number of free or initializing chunklets in "
"the disk must be less than this value.\n"
"Each element in this array represents one instance of "
"pattern for candidate disks; multiple array element adds "
"additional candidate disks that match the pattern.\n"
"A value of -1 means that the value is not specified for "
"this particular set of patterns. All other negative integers "
"are invalid.\n"),
ArrayType ( "Indexed" ),
ModelCorrespondence {
"DiskPrimPathPCISlots",
"DiskPrimPathPorts",
"DiskPrimPathNodes",
"DiskMagazines",
"DiskMagPositions",
"DiskIDs",
"DiskTotalChunkletGT",
"DiskTotalChunkletLT",
"DiskFreeChunkletGT",
"DiskCages",
"DiskPackageModels" }]
sint32 DiskFreeChunkletLT[];
[Write, Description (
"Disks must have package models that match one of the "
"specified list of models.\n"
"Each element in this array represents one instance of "
"pattern for candidate disks; multiple array element adds "
"additional candidate disks that match the pattern.\n"
"Empty string means that the value is not specified for "
3PAR_TPD.mof A.23
CIM API Programming Reference InForm OS Version 2.3.1
[Description ("The time specifies when the volume will expire and "
"can be deleted.") ]
datetime ExpirationTime;
[Description ("The time specifies the volume needs to be retained and "
"can not remove until the retention time is expired.") ]
datetime RetentionTime;
};
// ==================================================================
// 3PAR ElementSettingData
// ==================================================================
[Association,
Description (
"TPD_ElementSettingData is an association between "
"StorageVolume and StorageSetting."
"This association is used to figure out the desired setting "
"data is used when the volume is created.") ]
class TPD_ElementSettingData: CIM_ElementSettingData
{
[Override ( "ManagedElement" ), Description (
"The StorageVolume.")]
TPD_StorageVolume REF ManagedElement;
A.24 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// 3PAR StorageConfigurationService
// ==================================================================
[Description
("The StorageConfigurationService provides methods that allow "
"a client to create, modify and delete storage pools and "
"volumes.")]
class TPD_StorageConfigurationService : CIM_StorageConfigurationService
{
[Override ("CreateOrModifyStoragePool"), Description (
"Starts a job to create (or modify) a StoragePool. The "
"StoragePool (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 "
"taken, the Return Value 4097/0x1001, and the output "
"value of Size 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 take "
"some time to complete, a ConcreteJob created and "
"its reference returned in the output parameter Job. "
"For 3PAR InServ provider, only a pool with ElementName of "
"'all' can be created from the primordial pool, thus, all "
"other ElementName rejected. The parameter 'pool' "
"can either be NULL or contain only reference to the 'all' "
"pool; all other references rejected. "
"3PAR provider does not support creating a pool that "
"matches an input Size; it create a pool either out "
"of the specified InExtents parameter, or out of all "
"available extents in the system if the no input "
"InExtents are specified. In either case, Size requirement is "
"ignored. However, the resulting pool size still be "
"returned in the Size parameter."),
ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096",
"4097", "4098..32767", "32768..65535" },
Values { "Job Completed with No Error", "Not Supported",
3PAR_TPD.mof A.25
CIM API Programming Reference InForm OS Version 2.3.1
A.26 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
"For 3PAR provider, this can only contain string reference "
"to the primordial pool, as creation of pool from another "
"pool is not supported.")]
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. "
"For 3PAR provider, if this is NULL, then all available "
"extents in the system used to create the pool.")]
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. "
"For 3PAR provider, this can either be NULL or a reference "
"to the 'all' pool.")]
CIM_StoragePool REF Pool);
};
// ==================================================================
// 3PAR StorageConfigurationCapabilities
// ==================================================================
[Description
("3PAR StorageConfigurationCapabilities describes the storage "
"elements and methods supported by StorageConfigurationService.")]
class TPD_StorageConfigurationCapabilities :
CIM_StorageConfigurationCapabilities
{
};
// ==================================================================
// 3PAR CapabilitiesOfStorageConfigurationService
// ==================================================================
[Association,
Description (
"TPD_CapabilitiesOfStorageConfigurationService is an association "
"between StorageConfigurationCapabilities and "
"StorageConfigurationService. This association is used to query "
"the features and functions supported by "
"StorageConfigurationService.") ]
class TPD_CapabilitiesOfStorageConfigurationService: CIM_ElementCapabilities
{
3PAR_TPD.mof A.27
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// 3PAR System and ControllerConfigurationService association.
// ==================================================================
[Association,
Description (
"TPD_HostedStorageConfigurationService is an association "
"between TPD_StorageSystem and TPD_StorageConfigurationService. "
"The cardinality of this association is 1-to-1. A System may "
"host only one StorageConfigurationService. ")]
class TPD_HostedStorageConfigurationService : CIM_HostedService {
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The InServ StorageSystem.")]
TPD_StorageSystem REF Antecedent;
// ==================================================================
// 3PAR Frontend FC Port
// ==================================================================
[Description ("3PAR Data InServ FC front end Port ")]
class TPD_FCPort : CIM_FCPort
{
[Description (" "),
ValueMap {"0", "1", "2", "3", "4", "7", "8",
"9", "10", "11", "12", "13"},
Values {"Config Wait", "Alpa Wait", "Login Wait", "OK", "Loss Sync",
"Nonparticipate", "Core Dump", "Offline", "FW Dead",
"Link Idle For Reset", "DHCP In Progress", "Pending Reset"} ]
uint16 OtherOperationalStatus;
A.28 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
"Fabric"} ]
uint16 Topology;
3PAR_TPD.mof A.29
CIM API Programming Reference InForm OS Version 2.3.1
// =========================================
// Operations
// =========================================
[Description (
"This method sets port Offline."
"The method should return 0 if successful, 1 if the request is not "
"supported, and some other value if any other error occurred. "),
ValueMap {"0", "1", "2"},
Values {"OK", "Not Supported", "Error"} ]
uint32 SetOffline(
);
[Description (
"This method resets the port. If the port was set offline, it "
"be set back to online state."
"The method should return 0 if successful, 1 if the request is not "
"supported, and some other value if any other error occurred. "),
ValueMap {"0", "1", "2"},
Values {"OK", "Not Supported", "Error"} ]
uint32 Reset(
);
[Description (
"This method reloads firmware of the port."
"The method should return 0 if successful, 1 if the request is not "
"supported, and some other value if any other error occurred. "),
ValueMap {"0", "1", "2"},
Values {"OK", "Not Supported", "Error"} ]
uint32 ReloadFirmware(
);
[Description (
"If private loop topology, a Loop Initialization (LIP) "
"be issued from the port. If point-to-point topology, the link "
" reset. If public loop or fabric topology, a Registered "
"State Change Notification (RSCN) message issued to the "
"fabric controller."
"The method should return 0 if successful, 1 if the request is not "
"supported, and some other value if any other error occurred. "),
ValueMap {"0", "1", "2"},
A.30 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
[Description (
"Verify current port database with Name Server when fabric attached. "
"Devices in database but not in Name Server removed. "
"If RSCN messages are suppressed or lost in the fabric then such "
"devices shown until removed with this command."
"The method should return 0 if successful, 1 if the request is not "
"supported, and some other value if any other error occurred. "),
ValueMap {"0", "1", "2"},
Values {"OK", "Not Supported", "Error"} ]
uint32 SyncDatabase(
);
};
// ==================================================================
// 3PAR FCAL Port
// ==================================================================
// [Description ("3PAR Data InServ FCAL Port ")]
// class TPD_FCALPort : CIM_FCPort
//{
// [Description (" "),
// ValueMap {"0", "1", "2", "4", "7", "8",
// "9", "10", "11"},
// Values {"config wait", "alpa wait", "login wait", "loss sync",
// "nonparticipate", "core dump", "offline",
// "fw dead", "link idle for reset"} ]
// uint16 OtherOperationalStatus;
// ==================================================================
// 3PAR SCSI Protocol Controller And FCPort association
// ==================================================================
[Association,
Description (
"3PAR Data InServ SCSI protocol controller and FC port"
3PAR_TPD.mof A.31
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// 3PAR SCSI Protocol Controller And StorageVolume association
// ==================================================================
[Association,
Description (
"3PAR Data InServ SCSI protocol controller and storage volume "
"association. ")]
class TPD_ControllerForUnit : CIM_ProtocolControllerForUnit
{
[Override ("Antecedent"),
Description ("The SCSI Protocol Controller.") ]
TPD_SCSIController REF Antecedent;
// ==================================================================
// 3PAR SCSIProtocolEndpoint (front-end FC port)
// ==================================================================
[Description
("3PAR Data InServ SCSIProtocolEndpoint (front-end FC port). "
"This class represent FC ports that are connecting to hosts or "
"fabric. ")]
class TPD_SCSIProtocolFCEndpoint : CIM_SCSIProtocolEndpoint
{
};
// ==================================================================
A.32 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// 3PAR SCSIProtocolController And SCSIProtocolEndpoint association.
// NOTE: In SMI-S 1.1, this association replaces ControllerForPort
// association (SMI-S 1.02).
// ==================================================================
[Association,
Description (
"3PAR Data InServ SCSI protocol controller and the front end "
"target SCSIProtocolEndpoint association. ")]
class TPD_SAPAvailableForElement : CIM_SAPAvailableForElement
{
[Override ("AvailableSAP"), Description (
"The SCSIProtocolEndpoint (front end port).") ]
TPD_SCSIProtocolFCEndpoint REF AvailableSAP;
// ===================================================================
// DeviceSAPImplementation - association between SCSIEndpoint and
// FCPort
// ===================================================================
[Association,
Description (
"An association between a 3PAR SCSI protocol endpoint and its "
"implementation on FC port.")]
class TPD_FCPortSCSIEndpointImplementation: CIM_DeviceSAPImplementation {
3PAR_TPD.mof A.33
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// ControllerConfigurationService
// ==================================================================
[Description
("The ControllerConfigurationService provides methods that allow "
"a client to export and delete VLUNs in an InServ.")]
class TPD_ControllerConfigurationService : CIM_ControllerConfigurationService
{
[Override ("ExposePaths"), Description (
"3PAR version of the ExposePaths operation, adding an extra "
"property ResultDescription to better describe the result "
"of the expose path operation. \n"
"\n"
"Expose a list of SCSI logical units (such as RAID volumes "
"or tape drives) to a list of initiators through a list of "
"target ports, through one or more SCSIProtocolControllers "
"(SPCs). \n"
"\n"
"The parameters for this method are: Job - null if no job "
"created, otherwise this is a reference to the job. LUNames "
"- the list of names of the logical units to use. "
"InitiatorPortIDs - the names of the initiator ports to use. "
"TargetPortIDs - the names of the target ports to use. "
"DeviceNumbers - the device numbers (LUNs) to use. "
"DeviceAccesses - permissions for the logical units. "
"ProtocolControllers - SPCs involved in this operation. \n"
"\n"
"There are two modes of operation, create and modify. If a "
"NULL value is passed in for the SPC, then the "
"instrumentation create at least one SPC that satisfies "
"the request. Since "
"CIM_ProtocolControllerMaskingCapabilities.OneHardwareIDPerView "
"for the 3PAR InServ is true, more than one SPC could be created "
"if more than one initiatorID was passed in. If an SPC is "
"passed in, then the instrumentation attempts to add the new "
A.34 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
3PAR_TPD.mof A.35
CIM API Programming Reference InForm OS Version 2.3.1
[IN, Description (
"A list of logical unit numbers to assign to the "
"corresponding logical unit in the LUNames parameter. "
"(within the context of the elements specified in the "
"other parameters). If the LUNames parameter is null, "
"then this parameter MUST be null. Otherwise, if this "
"parameter is null, all LU numbers are assigned by the "
"hardware or instrumentation."),
ModelCorrespondence {
"CIM_ProtocolControllerForUnit.DeviceNumber"}]
string DeviceNumbers[],
[IN, Description (
A.36 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
[IN, Description (
"Override existing lower priority VLUNs, if necessary. "
"Can be used only when exporting to a specific host. "
"This parameter is a vendor-specific extension for 3PAR. "
"The default value is false.")]
boolean Override,
[IN, Description (
"Do not issue a VLUN (Virtual Logical Unit Number) Change "
"Notification (VCN) after export. For direct connect or "
"loop configuration, a VCN consists of a Fibre Channel "
"Loop Initialization Primitive (LIP). For fabric "
"configuration a VCN consists of Registered State Change "
3PAR_TPD.mof A.37
CIM API Programming Reference InForm OS Version 2.3.1
[OUT, Description (
"An array of descriptive text of the result of the operation, "
"with each entry containing the result of each "
"expose path operation.")]
string ResultDescriptions[]);
A.38 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
"\n"
"The SPC is automatically deleted when the last logical unit "
"is removed since SPCAllowsNoLUs is false."),
ValueMap { "0", "1", "2", "3", "4", "5", "6..4095", "4096",
"4097", "4098", "4099", "4100", "4101..32767",
"32768..65535" },
Values { "Success", "Not Supported", "Unspecified Error",
"Timeout", "Failed", "Invalid Parameter", "DMTF Reserved",
"Method Parameters Checked - Job Started",
"Invalid logical unit ID", "Invalid initiator port ID",
"Invalid target port ID",
"Target/initiator combination not exposed",
"Method Reserved", "Vendor Specific" }]
uint32 HidePaths (
[IN ( false ), OUT, Description (
"Reference to the job if 'Method Parameters Checked - Job "
"Started' is returned (MAY be null if job completed).")]
CIM_ConcreteJob REF Job,
[IN, Description (
"IDs of initiator ports. See the method description for "
"conditions where this MAY be null."),
ModelCorrespondence { "CIM_StorageHardwareID.StorageID" }]
string InitiatorPortIDs[],
[IN, Description (
"IDs of target ports. See the method description for "
"conditions where this MAY be null."),
ModelCorrespondence { "CIM_SCSIProtocolEndpoint.Name" }]
string TargetPortIDs[],
[IN, Description (
"A list of logical unit numbers that corresponds to "
"logical unit in the LUNames parameter. "
"(within the context of the elements specified in the "
"other parameters). This parameter is a vendor-specific "
"extension for 3PAR. Use of this parameter is optional, "
3PAR_TPD.mof A.39
CIM API Programming Reference InForm OS Version 2.3.1
[IN, Description (
"Do not issue a VLUN (Virtual Logical Unit Number) Change "
"Notification (VCN) after removal. For direct connect or "
"loop configuration, a VCN consists of a Fibre Channel "
"Loop Initialization Primitive (LIP). For fabric "
"configuration a VCN consists of Registered State Change "
"Notification (RSCN) being sent to the fabric controller. "
"This parameter is a vendor-specific extension for 3PAR. "
"The default value is false.")]
boolean NoVCN,
[OUT, Description (
"An array of descriptive text of the result of the operation, "
"with each entry containing the result of the "
"hide path operation.")]
string ResultDescriptions[]);
A.40 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
3PAR_TPD.mof A.41
CIM API Programming Reference InForm OS Version 2.3.1
[IN, Description (
"A list of logical unit numbers to assign to the "
"corresponding logical unit in the LUNames parameter. "
"(within the context of the elements specified in the "
"other parameters). If the LUNames parameter is null, "
A.42 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
[IN, Description (
"A list of permissions to assign to the corresponding "
"logical unit in the LUNames parameter. This specifies "
"the permission to assign within the context of the "
"elements specified in the other parameters. Setting this "
"to 'No Access' assigns the DeviceNumber for all "
"initiators, but does not grant read or write access. If "
"the LUNames parameter is not null then this parameter "
"MUST be specified."),
ValueMap { "0", "2", "3", "4", "5..15999", "16000.." },
Values { "Unknown", "Read Write", "Read-Only", "No Access",
"DMTF Reserved", "Vendor Reserved" },
ModelCorrespondence {
"CIM_ProtocolControllerForUnit.DeviceAccess" }]
uint16 DeviceAccesses[],
[IN, Description (
"Override existing lower priority VLUNs, if necessary. "
"Can be used only when exporting to a specific host. "
"This parameter is a vendor-specific extension for 3PAR. "
"The default value is false.")]
3PAR_TPD.mof A.43
CIM API Programming Reference InForm OS Version 2.3.1
boolean Override,
[IN, Description (
"Do not issue a VLUN (Virtual Logical Unit Number) Change "
"Notification (VCN) after export. For direct connect or "
"loop configuration, a VCN consists of a Fibre Channel "
"Loop Initialization Primitive (LIP). For fabric "
"configuration a VCN consists of Registered State Change "
"Notification (RSCN) being sent to the fabric controller. "
"This parameter is a vendor-specific extension for 3PAR. "
"The default value is false.")]
boolean NoVCN,
[OUT, Description (
"An array of descriptive text of the result of the operation, "
"with each entry containing the result of the "
"expose Default LU operation.")]
string ResultDescriptions[]);
A.44 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
"\n"
"When hiding logical units, 3PAR InServ array supports only "
"the Remove LUs from a default view use case. "
"Remove LUs from a default view requires that the "
"LUNames parameter not be null and that the TargetPortIDs "
"parameters be null. \n"
"\n"
"The SPC is automatically deleted when the last logical unit "
"is removed since SPCAllowsNoLUs is false."),
ValueMap { "0", "1", "2", "3", "4", "5", "6..4095", "4096",
"4097", "4098", "4099", "4100..32767", "32768..65535" },
Values { "Success", "Not Supported", "Unspecified Error",
"Timeout", "Failed", "Invalid Parameter", "DMTF Reserved",
"Method Parameters Checked - Job Started",
"Invalid logical unit ID", "Invalid target port ID",
"Maximum Map Count Error", "Method Reserved",
"Vendor Specific" }]
uint32 HideDefaultLUs (
[IN ( false ), OUT, Description (
"Reference to the job if 'Method Parameters Checked - Job "
"Started' is returned (MAY be null if job completed).")]
CIM_ConcreteJob REF Job,
[IN, Description (
"IDs of target ports. See the method description for "
"conditions where this MAY be null."),
ModelCorrespondence { "CIM_SCSIProtocolEndpoint.Name" }]
string TargetPortIDs[],
[IN, Description (
"A list of logical unit numbers that corresponds to "
"logical unit in the LUNames parameter. "
"(within the context of the elements specified in the "
"other parameters). This parameter is a vendor-specific "
"extension for 3PAR. Use of this parameter is optional, "
"but its use enhance efficiency of the HideDefaultLUs "
"operation."),
3PAR_TPD.mof A.45
CIM API Programming Reference InForm OS Version 2.3.1
ModelCorrespondence {
"CIM_ProtocolControllerForUnit.DeviceNumber" }]
string DeviceNumbers[],
[IN, Description (
"Do not issue a VLUN (Virtual Logical Unit Number) Change "
"Notification (VCN) after removal. For direct connect or "
"loop configuration, a VCN consists of a Fibre Channel "
"Loop Initialization Primitive (LIP). For fabric "
"configuration a VCN consists of Registered State Change "
"Notification (RSCN) being sent to the fabric controller. "
"This parameter is a vendor-specific extension for 3PAR. "
"The default value is false.")]
boolean NoVCN,
[OUT, Description (
"An array of descriptive text of the result of the operation, "
"with each entry containing the result of the "
"hide default LU operation.")]
string ResultDescriptions[]);
[Description (
"Expose a list of SCSI logical units (such as RAID volumes "
"or tape drives) to a list of StorageHardwareIDCollections "
"(host names). "
"The logical units visible to all InitiatorPortIDs "
"that are member of the StorageHardwareIDCollections. \n"
"\n"
"The parameters for this method are: Job - null if no job "
"created, otherwise this is a reference to the job. LUNames "
"- the list of names of the logical units to use. "
"HostNames - the names of the StorageHardwareIDCollection to use. "
A.46 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
3PAR_TPD.mof A.47
CIM API Programming Reference InForm OS Version 2.3.1
A.48 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
ModelCorrespondence { "TPD_StorageHardwareIDCollection.ElementName"
}]
string HostNames[],
[IN, Description (
"A list of logical unit numbers to assign to the "
"corresponding logical unit in the LUNames parameter. "
"(within the context of the elements specified in the "
"other parameters). If the LUNames parameter is null, "
"then this parameter MUST be null. Otherwise, if this "
"parameter is null, all LU numbers are assigned by the "
"hardware or instrumentation."),
ModelCorrespondence {
"CIM_ProtocolControllerForUnit.DeviceNumber"}]
string DeviceNumbers[],
[IN, Description (
"A list of permissions to assign to the corresponding "
"logical unit in the LUNames parameter. This specifies "
"the permission to assign within the context of the "
"elements specified in the other parameters. Setting this "
"to 'No Access' assigns the DeviceNumber for all "
"initiators, but does not grant read or write access. If "
"the LUNames parameter is not null then this parameter "
"MUST be specified."),
ValueMap { "0", "2", "3", "4", "5..15999", "16000.." },
Values { "Unknown", "Read Write", "Read-Only", "No Access",
"DMTF Reserved", "Vendor Reserved" },
ModelCorrespondence {
"CIM_ProtocolControllerForUnit.DeviceAccess" }]
uint16 DeviceAccesses[],
3PAR_TPD.mof A.49
CIM API Programming Reference InForm OS Version 2.3.1
[IN, Description (
"Override existing lower priority VLUNs, if necessary. "
"Can be used only when exporting to a specific host. "
"This parameter is a vendor-specific extension for 3PAR. "
"The default value is false.")]
boolean Override,
[IN, Description (
"Do not issue a VLUN (Virtual Logical Unit Number) Change "
"Notification (VCN) after export. For direct connect or "
"loop configuration, a VCN consists of a Fibre Channel "
"Loop Initialization Primitive (LIP). For fabric "
"configuration a VCN consists of Registered State Change "
"Notification (RSCN) being sent to the fabric controller. "
"This parameter is a vendor-specific extension for 3PAR. "
"The default value is false.")]
boolean NoVCN,
[OUT, Description (
"An array of descriptive text of the result of the operation, "
"with each entry containing the result of the "
"expose LUs to StorageHardwareIDCollection operation.")]
string ResultDescriptions[]);
[Description (
"Hide a list of SCSI logical units (such as RAID volumes or "
"tape drives) through a list of StorageHardwareIDCollections. \n"
"\n"
"The parameters for this method are: Job - null if no job "
"created, otherwise this is a reference to the job. LUNames "
"- the list of names of the logical units to use. "
"DeviceNumbers (optional) - the device numbers (LUNs) to use. "
"ProtocolControllers - SPCs involved in this operation. \n"
"\n"
"The LUNames and the optional DeviceNumbers parameters "
"are mutually indexed arrays - any element in DeviceNumbers "
" set a property relative to the "
"LogicalDevice instance named in the corresponding element "
"of LUNames. DeviceNumbers MUST be null (the provider "
"hide all LU's in LUNames on the SPC) or have the same number "
"of elements as LUNames. If these conditions are not met, "
A.50 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
[IN, Description (
"A list of logical unit numbers that corresponds to "
"logical unit in the LUNames parameter. "
"(within the context of the elements specified in the "
"other parameters). This parameter is a vendor-specific "
"extension for 3PAR. Use of this parameter is optional, "
"but its use enhance efficiency of the HideDefaultLUs "
"operation."),
ModelCorrespondence {
"CIM_ProtocolControllerForUnit.DeviceNumber"}]
string DeviceNumbers[],
3PAR_TPD.mof A.51
CIM API Programming Reference InForm OS Version 2.3.1
[IN, Description (
"Do not issue a VLUN (Virtual Logical Unit Number) Change "
"Notification (VCN) after removal. For direct connect or "
"loop configuration, a VCN consists of a Fibre Channel "
"Loop Initialization Primitive (LIP). For fabric "
"configuration a VCN consists of Registered State Change "
"Notification (RSCN) being sent to the fabric controller. "
"This parameter is a vendor-specific extension for 3PAR. "
"The default value is false.")]
boolean NoVCN,
[OUT, Description (
"An array of descriptive text of the result of the operation, "
"with each entry containing the result of the "
"hide default LU operation.")]
string ResultDescriptions[]);
};
// ==================================================================
// ProtocolControllerMaskingCapabilities
// ==================================================================
[Description
("A subclass of Capabilities that defines the Masking-related "
"capabilities of the 3PAR InServ storage system.")]
class TPD_ProtocolControllerMaskingCapabilities :
CIM_ProtocolControllerMaskingCapabilities
{
};
// ==================================================================
// SystemControllerMaskingCapabilities
A.52 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
[Association,
Description (
"TPD_SystemControllerMaskingCapabilities is an association between "
"StorageSystem and ProtocolControllerMaskingCapabilities.") ]
class TPD_SystemControllerMaskingCapabilities : CIM_ElementCapabilities
{
[Override ( "ManagedElement" ), Description (
"The StorageSystem.")]
TPD_StorageSystem REF ManagedElement;
// ==================================================================
// ConfigServicesForSCSIController Association
// ==================================================================
[Association,
Description (
"TPD_ConfigServicesForSCSIController is an association between "
"TPD_SCSIController and ControllerConfigurationService.") ]
class TPD_ConfigServicesForSCSIController : CIM_ConcreteDependency
{
[Override ( "Antecedent" ), Description (
"The controller configuration service which the protocol "
"controller depends on for configuration.")]
TPD_ControllerConfigurationService REF Antecedent;
// ==================================================================
// 3PAR Storage System and Storage Volume association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"3PAR Data InServ Storage System and Storage Volume Association ") ]
class TPD_SystemVolume : CIM_SystemDevice
{
[Override ("GroupComponent"), Aggregate, Max (1), Min (1),
3PAR_TPD.mof A.53
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// 3PAR SoftwareIdentity
// ==================================================================
[Description (
"3PAR SoftwareIdentity describes Inform OS version loaded "
"on InServ")]
class TPD_SoftwareIdentity : CIM_SoftwareIdentity
{
};
// ==================================================================
// 3PAR InstalledSoftwareIdentity
// ==================================================================
[Association,
Description (
"3PAR InstalledSoftwareIdentity is an association between "
"the system and Inform OS identity.")]
class TPD_InstalledSoftwareIdentity : CIM_InstalledSoftwareIdentity
{
[Override ("System"), Description (
"The system on which the Inform software is "
"installed. ") ]
TPD_StorageSystem REF System;
// ==================================================================
// 3PAR's system package describes InServ's system packaging attributes
// including model, serial number and OS version
// ==================================================================
[Description (
A.54 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// 3PAR Storage System and System Package association
// ==================================================================
[Association,
Description (
"3PAR Data InServ Storage System and System Package Association.") ]
class TPD_ComputerSystemPackage : CIM_ComputerSystemPackage
{
[Override ("Antecedent"),
Description ("The InServ's physical package.") ]
TPD_SystemPackage REF Antecedent;
// ==================================================================
// 3PAR StorageCapabilities
// ==================================================================
[Description (
"3PAR Data StorageCapabilities. This class defines the capabilities "
"of a StoragePool. An instance of StorageCapabilities could be "
"associated with a StoragePool by using ElementCapabilities.")]
class TPD_StorageCapabilities: CIM_StorageCapabilities
{
};
// ==================================================================
// 3PAR CapabilitiesOfStoragePool
// ==================================================================
[Association,
Description (
"TPD_CapabilitiesOfStoragePool is an association between "
"StoragePool and StorageCapabilities."
"This association is used to figure out the service quality (RAID
types)"
" that a StoragePool can support.") ]
3PAR_TPD.mof A.55
CIM API Programming Reference InForm OS Version 2.3.1
// ===================================================================
// 3PAR StorageSettingsAssociatedToCapabilities
// ===================================================================
[Association, Description (
"This association define StorageSettings that reflect the "
"capabilities of the associated StorageCapabilities. The "
"associated StorageSetting MAY NOT define the operational "
"characteristics (through settings properties) of any storage "
"element. Certain StorageSetting instances can be defined as "
"\"Fixed = Not Changeable\" by using the \"ChangeableType\" "
"attribute. \"Fixed\" settings have this special association. "
"This association SHALL be defined between \"Fixed - Not "
"Changeable\" instances of StorageSetting with the "
"StorageCapabilities instances that are associated with the "
"StoragePools which support the storage characteristics "
"described by the StorageSetting instance. \n"
"Fixed settings MAY be associated to many StorageCapabilities.")]
class TPD_StorageSettingsAssociatedToCapabilities :
CIM_StorageSettingsAssociatedToCapabilities
{
[Override ( "Antecedent" ), Description (
"3PAR StorageCapabilities.")]
TPD_StorageCapabilities REF Antecedent;
// ===================================================================
// 3PAR StorageSettingsGeneratedFromCapabilities
// ===================================================================
[Association, Description (
A.56 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// 3PAR's product package describes InServ's product attributes
// including vendor name, product name, serial number and OS version
// ==================================================================
[Description (
"3PAR product package describes InServ's product attributes"
" including vendor name, product name, serial number and OS version. ")]
class TPD_Product : CIM_Product
{
3PAR_TPD.mof A.57
CIM API Programming Reference InForm OS Version 2.3.1
};
// ==================================================================
// 3PAR Product and System Package association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"3PAR Data InServ Product and System Package Association.") ]
class TPD_ProductPhysicalComponent : CIM_ProductPhysicalComponent
{
[Override ("GroupComponent"), Aggregate, Max (1), Min (1),
Description ("The InServ product.") ]
TPD_Product REF GroupComponent;
};
// ==================================================================
// StorageHardwareID
// ==================================================================
[Description (
"StorageHardwareID represents the host HBA.")]
class TPD_StorageHardwareID : CIM_StorageHardwareID {
};
// ==================================================================
// AuthorizedPrivilege
// ==================================================================
[Description (
"AuthorizedPrivilege represents the access permission "
"that a StorageHardwareID is allowed on a "
"SCSIProtocolController.")]
class TPD_AuthorizedPrivilege : CIM_AuthorizedPrivilege {
};
// ==================================================================
// PrivilegeForStorageHardwareID
// ==================================================================
[Association,
Description (
"PrivilegeForStorageHardwareID associates StorageHardwareID "
A.58 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// PrivilegeForSCSIController
// ==================================================================
[Association, Description (
"PrivilegeForSCSIController is an association used to tie the "
"AuthorizedPrivileges to SCSIProtocolController resources.")]
class TPD_PrivilegeForSCSIController : CIM_AuthorizedTarget {
// ==================================================================
// StorageHardwareIDCollection
// ==================================================================
[Description (
"A collection of StorageHardwareIDs (host WWN) within a host.")]
class TPD_StorageHardwareIDCollection : CIM_SystemSpecificCollection {
[Description (
"Number of StorageHardwareID's (WWN's) for this host.")]
uint16 StorageHardwareIDCount;
};
3PAR_TPD.mof A.59
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// MemberOfStorageHardwareIDCollection
// ==================================================================
[Association, Aggregation, Description (
"MemberOfStorageHardwareIDCollection is an aggregation used "
"to establish membership of StorageHardIDs (host WWNs) in a "
"host.")]
class TPD_MemberOfStorageHardwareIDCollection : CIM_MemberOfCollection {
[Key, Description (
"The aggregated member of the "
"MemberOfStorageHardwareIDCollection.")]
TPD_StorageHardwareID REF Member;
};
// ==================================================================
// StorageHardwareIDManagementService
// ==================================================================
[Description (
"StorageHardwareIDManagementService provides methods for "
"manipulating instances of StorageHardwareIDs and manipulating "
"the trust of these IDs in the underlying storage system.")]
class TPD_StorageHardwareIDManagementService :
CIM_StorageHardwareIDManagementService {
};
// ==================================================================
// HostedStorageHWIDManagementService
// ==================================================================
[Association, Description (
"TPD_HostedStorageHWIDManagementService is an association "
"between TPD_StorageSystem and "
"TPD_StorageHardwareIDManagementService. The cardinality of "
"this association is 1-to-1. A System may host only one "
"StorageHardwareIDManagementService. ")]
class TPD_HostedStorageHWIDManagementService : CIM_HostedService {
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The InServ StorageSystem.")]
TPD_StorageSystem REF Antecedent;
A.60 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// HostedStorageHardwareIDCollection
// ==================================================================
[Association, Description (
"HostedStorageHardwareIDCollection defines a "
"TPD_StorageHardwareIDCollection in a context of a scoping "
"TPD_StorageSystem.")]
class TPD_HostedStorageHardwareIDCollection : CIM_HostedCollection {
// ==================================================================
// MgmtServicesForStorageHWIDCollection Association
// ==================================================================
[Association,
Description (
"TPD_MgmtServicesForStorageHWIDCollection is an association between "
"TPD_StorageHardwareID or TPD_StorageHardwareIDCollection and "
"TPD_StorageHardwareIDManagementService.") ]
class TPD_MgmtServicesForStorageHWIDCollection : CIM_ConcreteDependency
{
[Override ( "Antecedent" ), Description (
"The storage hardware ID management service which the "
"StorageHardwareIDCollection depends on for configuration.")]
TPD_StorageHardwareIDManagementService REF Antecedent;
};
// ==================================================================
// PrivilegeManagementService
3PAR_TPD.mof A.61
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
[Description (
"3PAR PrivilegeManagementService is responsible for creating, "
"deleting, and associating AuthorizedPrivilege instances. "
"References to 'subject' and 'target' define the entities that "
"are associated with an AuthorizedPrivilege instance via the "
"relationships, AuthorizedSubject and AuthorizedTarget, "
"respectively. When created, an AuthorizedPrivilege instance is "
"related to this (PrivilegeManagement)Service via the "
"association, ConcreteDependency. Note: 3PAR does not support"
"changing or removing AuthorizedPrivilege.")]
class TPD_PrivilegeManagementService : CIM_PrivilegeManagementService
{
};
// ==================================================================
// 3PAR StorageSystem and PrivilegeManagementService association.
// ==================================================================
[Association,
Description (
"TPD_HostedPrivilegeManagementService is an association "
"between TPD_StorageSystem and TPD_PrivilegeManagementService. "
"The cardinality of this association is 1-to-1. A System may "
"host only one PrivilegeManagementService. ")]
class TPD_HostedPrivilegeManagementService : CIM_HostedService {
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The InServ StorageSystem.")]
TPD_StorageSystem REF Antecedent;
// ==================================================================
// ManagementServicesForAuthorizedPrivilege association
// ==================================================================
[Association,
Description (
"TPD_ManagementServiceForAuthorizedPrivilege is an association "
"between TPD_PrivilegeManagementService and "
"TPD_AuthorizedPrivilege.") ]
class TPD_ManagementServiceForAuthorizedPrivilege : CIM_ConcreteDependency
{
A.62 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// Indication
// ==================================================================
[Indication,
Description (
"Indication specifying that the operational status of an FC "
"port has changed.")
]
class TPD_FCPortInstModification : CIM_InstModification
{
};
// ==================================================================
// 3PAR System and ControllerConfigurationService association.
// ==================================================================
[Association,
Description (
"TPD_SystemHostedCCS is an association between TPD_StorageSystem "
"and TPD_ControllerConfigurationService. The cardinality of "
"this association is 1-to-1. A System may host only one "
"ControllerConfigurationService. ")]
class TPD_SystemHostedCCS : CIM_HostedService {
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The InServ StorageSystem.")]
TPD_StorageSystem REF Antecedent;
// ==================================================================
// 3PAR SFP
3PAR_TPD.mof A.63
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
[Description (
"3PAR SFP for Node FC ports.")]
class TPD_SFP : CIM_PhysicalConnector {
[Description (
"The current bandwidth of the SFP in Bits per Second."),
Units ( "Bits per Second" )]
uint64 Speed;
// ==================================================================
// 3PAR Port SFP
// ==================================================================
[Association, Description (
A.64 3PAR_TPD.mof
InForm OS Version 2.3.1 CIM API Programming Reference
A.3 3PAR_TPDCage.mof
This MOF contains 3PAR Cage classes that loaded into the root/tpd namespace.
// ==================================================================
// Base TPD Drive Cage
// ==================================================================
[Description (
"Base 3PAR Drive Cage")]
class TPD_DriveCage : CIM_Chassis
{
[Description ("Type of the cage."), Read,
ValueMap {"0", "1", "2", "3", "4"},
Values {"Unknown", "DC0", "DC1", "DC2", "DC3"} ]
uint16 CageType;
3PAR_TPDCage.mof A.65
CIM API Programming Reference InForm OS Version 2.3.1
// =========================================
// Operations
// =========================================
[Description (
"This method causes LEDs on the cage to blink, or turn amber."),
ValueMap {"0", "1", "2"},
Values {"OK", "Not Supported", "Error"} ]
uint32 Locate(
[IN, Description (
"Number of seconds to have locate cage turned on. "
"Default 60, maximum 255.")]
uint16 LocateTimer
);
[Description (
"This method upgrades firmware on the cage."),
ValueMap {"0", "1", "2"},
Values {"OK", "Not Supported", "Error"} ]
uint32 Upgrade(
[IN, Required, Description (
"The name of the file to download for firmware upgrade.")]
string FileName,
[IN, Required, Description (
"If TRUE, download A port, otherwise B port.")]
A.66 3PAR_TPDCage.mof
InForm OS Version 2.3.1 CIM API Programming Reference
boolean IsPortA
);
};
// ==================================================================
// DC0 and DC1 TPD Drive Cage
// ==================================================================
[Description (
"DC0 and DC1 3PAR Drive Cage")]
class TPD_DriveCageDC1 : TPD_DriveCage
{
[Description ("Side of the cage."), Read,
ValueMap {"0", "1", "2", "3"},
Values {"Unknown", "Left", "Right", "Left and Right"} ]
uint16 CageSide;
};
// ==================================================================
// DC2 TPD Drive Cage
// ==================================================================
[Description (
"DC2 3PAR Drive Cage")]
class TPD_DriveCageDC2 : TPD_DriveCage
{
[Description ("Side of the cage."), Read,
ValueMap {"0", "1", "2", "3"},
Values {"Unknown", "Left", "Right", "Left and Right"} ]
uint16 CageSide;
3PAR_TPDCage.mof A.67
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// DC3 TPD Drive Cage
// ==================================================================
[Description (
"DC3 3PAR Drive Cage")]
class TPD_DriveCageDC3 : TPD_DriveCage
{
[Description ("Status of the temperature sensor."), Read,
ValueMap {"0", "1", "2", "3", "4", "5", "6", "7"},
Values {"Unknown", "OK", "Over Threshold", "Over/Under Threshold",
"Communication Error", "Not Present", "IM Sync failed",
"Not Available"} ]
uint16 TempSensorState;
// ==================================================================
// Base TPD Cage Interface Card
// ==================================================================
[Description (
"Base 3PAR Cage Interface Card ")]
class TPD_CageInterfaceCard : CIM_Card
A.68 3PAR_TPDCage.mof
InForm OS Version 2.3.1 CIM API Programming Reference
{
[Description ("Position of the Interface Card in the cage.") ]
uint16 Position;
[Description ("WWN of the Loop A ports in Interface Card. Array index 0"
" represents Loop A0, array index 1 represents"
" Loop A1, etc.") ]
uint64 LoopAPortWWNs[];
[Description ("WWN of the Loop B ports in Interface Card. Array index 0"
" represents Loop B0, array index 1 represents"
" Loop B1, etc.") ]
uint64 LoopBPortWWNs[];
[Description ("WWN of the Node FC Port connected to B Loops. Array index 0"
" represents Loop B0, array index 1 represents"
" Loop B1, etc.") ]
uint64 NodePortsLoopB[];
3PAR_TPDCage.mof A.69
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// TPD Cage Interface Card for DC0 and DC1 cage
// ==================================================================
[Description (
"3PAR Cage Interface Card for DC0 and DC1 cage")]
class TPD_CageInterfaceCardDC1 : TPD_CageInterfaceCard
{
[Description ("Split LED status."),
ValueMap {"0", "1", "2"},
Values {"Off", "Amber", "Green"} ]
uint16 SplitLED;
A.70 3PAR_TPDCage.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// =========================================
// Operations
// =========================================
[Description (
"This method causes the FC connection LED on the cage to blink. "),
ValueMap {"0", "1", "2"},
Values {"OK", "Not Supported", "Error"} ]
uint32 Locate(
[IN, Required, Description (
"The port of the FC-AL card in the cage to locate."),
ValueMap {"1", "2", "3", "4"},
Values {"A0", "A1", "B0", "B1" }]
uint16 Port,
[IN, Description (
"Number of seconds to have locate cage turned on. "
"Default 60, maximum 255.")]
uint16 LocateTimer
);
};
// ==================================================================
3PAR_TPDCage.mof A.71
CIM API Programming Reference InForm OS Version 2.3.1
A.72 3PAR_TPDCage.mof
InForm OS Version 2.3.1 CIM API Programming Reference
3PAR_TPDCage.mof A.73
CIM API Programming Reference InForm OS Version 2.3.1
// =========================================
// Operations
// =========================================
[Description (
"This method causes the FC connection LED on the cage to blink. "),
ValueMap {"0", "1", "2"},
Values {"OK", "Not Supported", "Error"} ]
uint32 Locate(
[IN, Required, Description (
"The port of the FC-AL card in the cage to locate."),
ValueMap {"1", "2", "3", "4"},
Values {"A0", "A1", "B0", "B1" }]
uint16 Port,
[IN, Description (
"Number of seconds to have locate cage turned on. "
"Default 60, maximum 255.")]
uint16 LocateTimer
);
};
// ==================================================================
// TPD Cage Interface Card for DC3 cage
// ==================================================================
[Description (
"3PAR Cage Interface Card for DC3 cage. DC3 cage has 2 FC-ALs, with one "
"having four A loops, and the other four B loops."
"Check LoopPosition to see if Cage Interface instance for A or B.")]
class TPD_CageInterfaceCardDC3 : TPD_CageInterfaceCard
{
[Description ("If master set to TRUE.") ]
boolean IsMaster;
A.74 3PAR_TPDCage.mof
InForm OS Version 2.3.1 CIM API Programming Reference
"10", "11", "12", "13", "14", "15", "16", "17", "18", "19",
"20", "21", "22", "23", "24", "25", "26", "27", "28", "29",
"30", "31", "32", "33"},
Values {"Unknown", "OK", "Warning,High LIP",
"Warning,Burst Word Errors", "Warning,High Word Errors",
"Warning,High CRC Errors", "Warning,High Clock Delta",
"Bypass", "No SFP Present", "Bypass,Tx Fault", "Bypass,LIP",
"Bypass,Data Timeout", "Bypass,RX Loss", "Bypass,Sync Loss",
"Bypass,PTFI", "Manual Bypass, System Manager",
"Manual Bypass,Redundant Port Connection",
"Manual Bypass,Stall Threshold",
"Manual Bypass,Burst Word Error Threshold",
"Manual Bypass,High Word Error Threshold",
"Manual Bypass,Burst CRC Error Threshold",
"Manual Bypass,High CRC Error Threshold",
"Manual Bypass,High Clock Delta Threshold",
"Manual Bypass,Mirror Configuration",
"Manual Bypass,Host Management Rules",
"Manual Bypass,Trunked Cabling Errors",
"Manual Bypass,TBD", "Manual Bypass,Looped Back",
"Manual Bypass,Insert Oscillation",
"Manual Bypass,Burst LIP Threshold",
"Manual Bypass,High LIP Threshold",
"Manual Bypass, Diagnostic Transmit",
"Manual Bypass,Drive Bypass", "Manual Bypass,Drive Fault"} ]
uint16 LoopState[];
3PAR_TPDCage.mof A.75
CIM API Programming Reference InForm OS Version 2.3.1
uint16 ESHState;
[Description ("Extended State of Interface Card ESH. Use this when ESHState"
"is set to 2"),
ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"},
Values {"Unknown", "OK", "Microcontroller Failed POST",
"Microcontroller FATAL Error", "ASIC Not Functioning",
"ASIC Failed POST", "ASIC Port Failed POST",
"ASIC Clock Delta Beyond Threshold", "Unavailable"} ]
uint16 ExtendedESHState;
};
// ==================================================================
// 3PAR Drive Cage and Cage Interface Card association
// ==================================================================
[Association, Aggregation,
Description (
"3PAR Data Drive Cage and Interface Card association")]
class TPD_InterfaceCardInDriveCage : CIM_PackageInChassis {
// ===================================================================
// Base 3PAR Magazine
// ===================================================================
[Description (
"Base 3PAR Disk Magazine ")]
class TPD_Magazine : CIM_Magazine {
A.76 3PAR_TPDCage.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// =========================================
// Operations
// =========================================
[Description (
"This method causes LEDs on the magazine to blink, or turn amber. "),
ValueMap {"0", "1", "2"},
Values {"OK", "Not Supported", "Error"} ]
uint32 Locate(
[IN, Description (
"Number of seconds to have locate cage turned on. "
"Default 60, maximum 255.")]
uint16 LocateTimer
);
[Description (
"This method causes magazine to go on or off loop. "),
ValueMap {"0", "1", "2"},
Values {"OK", "Not Supported", "Error"} ]
uint32 SetLoopState(
[IN, Required, Description (
"If true, magazine set on-loop, if false "
"magazine set off-loop.")]
3PAR_TPDCage.mof A.77
CIM API Programming Reference InForm OS Version 2.3.1
boolean IsOnloop,
[IN, Description (
"If true, operation performed on Port A, "
"if false, operation performed on Port B. "
"If not passed, operation performed on both.")]
boolean IsPortA
);
};
// ===================================================================
// 3PAR Magazine for DC0, DC1 cages
// ===================================================================
[Description (
"3PAR Disk Magazine for DC0, DC1 cages")]
class TPD_MagazineDC1 : TPD_Magazine {
// ===================================================================
// 3PAR Magazine for DC2 cages
// ===================================================================
[Description (
"3PAR Disk Magazine for DC2 cages")]
class TPD_MagazineDC2 : TPD_MagazineDC1 {
};
// ===================================================================
// 3PAR Magazine for DC3 cage
// ===================================================================
[Description (
"3PAR Disk Magazine for DC3 cage")]
class TPD_MagazineDC3 : TPD_Magazine {
A.78 3PAR_TPDCage.mof
InForm OS Version 2.3.1 CIM API Programming Reference
uint16 OverallLoopState;
};
// ==================================================================
// 3PAR Drive Cage and Magazine association
// ==================================================================
[Association, Aggregation,
Description (
"3PAR Data Drive Cage and Magazine association")]
class TPD_MagazineInDriveCage : CIM_PackageInChassis {
// ==================================================================
// TPD_SystemPackage and TPD_DriveCage association
// ==================================================================
[Association, Aggregation, Description (
"The SysCageContainer association represents the relationship between "
"a TPD_SystemPackage and TPD_DriveCage.")]
class TPD_SysCageContainer : CIM_Container {
// ==================================================================
// TPD Cage Sensor
// ==================================================================
[Description (
"TPD Cage Sensor information")]
class TPD_CageSensor : CIM_Sensor
3PAR_TPDCage.mof A.79
CIM API Programming Reference InForm OS Version 2.3.1
{
[Description ("Position of the Sensor in the cage.") ]
uint16 Position;
// ==================================================================
// TPD DriveCage Sensor
// ==================================================================
[Association, Description (
"Many Devices include Sensors or have Sensors installed nearby, "
"in order to measure critical input and output properties. This "
"association indicates that relationship.")]
class TPD_SensorInDriveCage : CIM_PackageDependency {
A.80 3PAR_TPDCage.mof
InForm OS Version 2.3.1 CIM API Programming Reference
A.4 PAR_TPDDisk.mof
This MOF contains 3PAR Disk Classes that loaded into the root/tpd namespace. (Disk Drive
Lite).
[Description (
"3PAR Disk Drive ")]
class TPD_DiskDrive : CIM_DiskDrive {
PAR_TPDDisk.mof A.81
CIM API Programming Reference InForm OS Version 2.3.1
ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12", "13", "14", "15", "16"},
Values {"Unknown", "Not Present", "Offloop", "New Onloop", "Spinning Up",
"OK", "Spin Up Failed", "Loop Failed", "Drive Error Bit On",
"Manual Bypass, System Manager", "Manual Bypass, Port",
"Not Ready", "Spundown, System Manager", "Spundown, Port",
"Spundown, Over Temperature", "Spinning Down Fail",
"I2C Transaction Failed"} ]
uint16 StateOnLoopB;
A.82 PAR_TPDDisk.mof
InForm OS Version 2.3.1 CIM API Programming Reference
[Description (
"3PAR Disk Drive for DC0 and DC1 cage")]
class TPD_DiskDriveDC1 : TPD_DiskDrive {
[Description ("System LED status."),
ValueMap {"0", "1", "2"},
Values {"Off", "Amber", "Green"} ]
uint16 SystemLED;
};
[Description (
"3PAR Disk Drive for DC2 cage")]
class TPD_DiskDriveDC2 : TPD_DiskDrive {
[Description ("System LED status."),
ValueMap {"0", "1", "2"},
Values {"Off", "Amber", "Green"} ]
uint16 SystemLED;
PAR_TPDDisk.mof A.83
CIM API Programming Reference InForm OS Version 2.3.1
[Description (
"3PAR Disk Drive for DC3 cage")]
class TPD_DiskDriveDC3 : TPD_DiskDrive {
[Override ( "StateOnLoopA" ), Description ("State of Disk on Loop A."),
ValueMap {"0", "1", "5", "9", "0x0411", "0x0414", "0x0415", "0x0417",
"0x0418", "0x0421", "0x0423", "0x0424", "0x0425", "0x0426", "0x0427",
"0x0428", "0x0432", "0x0433", "0x0434", "0x0435", "0x0436", "0x0437",
"0x0438", "0x0439", "0x043B", "0x043C", "0x043E", "0x043F", "0x0440",
"0x0441", "0x0442", "0x044F", "0x0450", "0x0451"},
Values {"Unknown", "Not Present", "OK", "Bypass, System Manager",
"Warning,High LIP", "Warning,Word Error Burst", "Warning,Word Error
High",
"Warning,High CRC", "Warning,High Clock Delta", "Bypass",
"Bypass,TX Fault", "Bypass,LIP", "Bypass,DTMOUT", "Bypass,RX Loss",
"Bypass,Sync Loss", "Bypass,PTFI", "Manual Bypass,Redundant Port",
"Manual Bypass,Stall Threshold", "Manual Bypass,Word Error Burst",
"Manual Bypass,Word Error High", "Manual Bypass,Burst CRC",
"Manual Bypass,High CRC", "Manual Bypass,High Clock Delta",
"Manual Bypass,Mirror", "Manual Bypass,Host", "Manual Bypass,Trunked
Cable",
"Manual Bypass,TBD", "Loopback", "Manual Bypass,Ins_Osc",
"Manual Bypass,Burst LIP", "Manual Bypass,High LIP",
"Manual Bypass,Diag Transmit",
"Manual Bypass,Drive Bypass", "Manual Bypass,Drive Fault"} ]
uint16 StateOnLoopA;
A.84 PAR_TPDDisk.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// 3PAR DiskDrivePackage
// ==================================================================
[Description (
"3PAR Disk Drive Package for Vendor, Model, and Serial Number")]
class TPD_DiskDrivePackage : CIM_PhysicalPackage {
};
// ==================================================================
// 3PAR DiskDrive and DiskDrivePackage mapping
// ==================================================================
[Association,
Description (
"3PAR Data DiskDrivePackage and DiskDrive mapping")]
class TPD_DiskPackageRealizes : CIM_Realizes {
PAR_TPDDisk.mof A.85
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// 3PAR Disk StorageExtent
// ==================================================================
[Description (
"3PAR Disk Drive Storage Extent")]
class TPD_DiskStorageExtent : CIM_StorageExtent {
};
// ==================================================================
// 3PAR Disk StorageExtent
// ==================================================================
[Association,
Description (
"3PAR Disk Drive and Disk Storage Extent association")]
class TPD_DiskPresent : CIM_MediaPresent {
[Override ( "Antecedent" ), Description (
"The Disk Drive.")]
TPD_DiskDrive REF Antecedent;
// ==================================================================
// 3PAR DiskDrive Software Identity
// ==================================================================
[Description (
"3PAR Disk Drive Software Identity")]
class TPD_DiskSoftwareIdentity : CIM_SoftwareIdentity {
[Description ("Status of the firmware on the disk drive."),
ValueMap {"0", "1", "2"},
Values {"Unknown", "Old", "Current"} ]
uint16 FirmwareStatus;
};
// ==================================================================
// 3PAR DiskDrive and DiskSoftwareIdentity association
A.86 PAR_TPDDisk.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
[Association,
Description (
"3PAR Data DiskSoftwareIdentity and DiskDrive mapping")]
class TPD_DiskSoftware : CIM_ElementSoftwareIdentity {
// ==================================================================
// TPD_DiskDrivePackage and TPD_Magazine association
// ==================================================================
[Association, Aggregation, Description (
"The MagazineContainer association represents the relationship between "
"a TPD_Magazine and TPD_DiskDrivePackage.")]
class TPD_MagazineContainer : CIM_Container {
// ==================================================================
// TPD_DiskDrive and TPD_StorageSystem association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"The SystemDisk association represents a relationship between "
"a TPD_DiskDrive and TPD_StorageSystem.")]
class TPD_SystemDisk : CIM_SystemDevice {
PAR_TPDDisk.mof A.87
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// StoragePoolComponent
// ==================================================================
[Association, Aggregation, Description (
"TPD_StoragePoolComponent is an association used to "
"establish 'part of' relationships between StoragePool and "
"Disk StorageExtent.")]
class TPD_StoragePoolComponent : CIM_ConcreteComponent {
// ===================================================================
// SCSIInitiatorTargetLogicalUnitPath
// Comment this class out as it is still experimental
// ===================================================================
// [Association, Description (
// "An association that models a host driver path to a SCSI "
// "logical unit. Each permutation of initiator and target "
// "ProtocolEndpoints and logical units is considered a separate "
// "path. This class describes end-to-end path behavior such as "
// "properties and operations commonly used in multipath "
// "management.")]
//class TPD_SCSIInitTargetLUPath : CIM_SCSIInitiatorTargetLogicalUnitPath
//{
// [Override ("Initiator"), Description (
// "An initiator endpoint on a node that connects to the "
// "target endpoint on a cage.")]
// TPD_SCSIProtocolFCEndpoint REF Initiator;
A.88 PAR_TPDDisk.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// TPD_DiskStorageExtent and TPD_StorageSystem association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"The SystemExtent association represents a relationship between "
"a TPD_DiskStorageExtent and TPD_StorageSystem.")]
class TPD_SystemExtent : CIM_SystemDevice {
// ==================================================================
// TPD_DiskStorageExtent and TPD_StorageVolume association
// ==================================================================
[Association, Description (
"BasedOn is an association describing how StorageExtents can be "
"assembled from lower level Extents.")]
class TPD_VolumeBasedOnDiskExtent : CIM_BasedOn {
PAR_TPDDisk.mof A.89
CIM API Programming Reference InForm OS Version 2.3.1
A.5 3PAR_TPDNode.mof
This MOF contains 3PAR Node (MCS) classes that loaded into the root/tpd namespace.
//
//
//%////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
//
// File : 3PAR_TPDNode.mof
//
// Purpose :
//
// Date created: 8/10/2005
//
///////////////////////////////////////////////////////////////////////////
// ==================================================================
// 3PAR NodeSystem
// ==================================================================
[Description (
"3PAR Controller Node ")]
class TPD_NodeSystem : CIM_ComputerSystem
{
[Description ("Position of the Node.") ]
uint16 Position;
A.90 3PAR_TPDNode.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// 3PAR NodePackage
// ==================================================================
3PAR_TPDNode.mof A.91
CIM API Programming Reference InForm OS Version 2.3.1
[Description (
"3PAR Controller Node Package for Vendor, Model, and Serial Number")]
class TPD_NodePackage : CIM_PhysicalPackage {
};
// ==================================================================
// 3PAR NodeSystem and NodePackage association
// ==================================================================
[Association,
Description (
"3PAR Data InServ NodeSystem and NodePackage Association.") ]
class TPD_NodeSystemPackage : CIM_ComputerSystemPackage
{
[Override ("Antecedent"),
Description ("The InServ's Node physical package.") ]
TPD_NodePackage REF Antecedent;
// ==================================================================
// 3PAR NodeRedundancySet
// ==================================================================
[Description (
"3PAR Controller Node redundancy set. It is associated with a max of "
"2 NodeSystem objects")]
class TPD_NodeRedundancySet : CIM_RedundancySet {
};
// ==================================================================
// 3PAR NodePairSystem
// ==================================================================
[Description (
"3PAR Controller Node Pair computer system. One for each of the "
"NodeRedundancySet object.")]
class TPD_NodePairSystem : CIM_ComputerSystem {
};
// ==================================================================
// 3PAR NodePairRedundancySet
// ==================================================================
[Description (
"3PAR Controller Node Pair redundancy set. This object is associated "
A.92 3PAR_TPDNode.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// 3PAR NodeMemberOfSet
// ==================================================================
[Association, Aggregation, Description (
"TPD_NodeMemberOfSet is an aggregation used to establish "
"membership of TPD_NodeSystem in a TPD_NodeRedundancySet.")]
class TPD_NodeMemberOfSet : CIM_MemberOfCollection {
// ==================================================================
// 3PAR NodePairMemberOfSet
// ==================================================================
[Association, Aggregation, Description (
"TPD_NodePairMemberOfSet is an aggregation used to establish "
"membership of TPD_NodePairSystem in a TPD_NodePairRedundancySet.")]
class TPD_NodePairMemberOfSet : CIM_MemberOfCollection {
// ==================================================================
// 3PAR NodeSetIdentity
// ==================================================================
[Association, Description (
"TPD_NodeSetIdentity associates two elements representing "
"different aspects of the same underlying entity: TPD_NodePairSystem"
3PAR_TPDNode.mof A.93
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// 3PAR NodePairSetIdentity
// ==================================================================
[Association, Description (
"TPD_NodePairSetIdentity associates two elements representing "
"different aspects of the same underlying entity: TPD_StorageSystem"
" and TPD_NodePairRedundancySet.")]
class TPD_NodePairSetIdentity : CIM_ConcreteIdentity {
// ===================================================================
// NodePairComponentCS
// ===================================================================
[Association, Aggregation, Composition,
Description (
"A ComputerSystem can aggregate another ComputerSystem. This"
"class groups together TPD_StorageSystem and TPD_NodePairSystem.")]
class TPD_NodePairComponentCS : CIM_ComponentCS {
A.94 3PAR_TPDNode.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ===================================================================
// NodeComponentCS
// ===================================================================
[Association, Aggregation, Composition,
Description (
"A ComputerSystem can aggregate another ComputerSystem. This"
"class groups together TPD_StorageSystem and TPD_NodeSystem.")]
class TPD_NodeComponentCS : CIM_ComponentCS {
// =================================================================
// Node CPU
// =================================================================
class TPD_NodeCPU : CIM_Processor
{
[Description ("Position of the CPU in the node.") ]
uint16 Position;
// ==================================================================
3PAR_TPDNode.mof A.95
CIM API Programming Reference InForm OS Version 2.3.1
// ProcessorForNode
// ==================================================================
[Association, Aggregation, Composition,
Description (
"NodeCPU aggregated by a NodeSystem.")]
class TPD_ProcessorForNode : CIM_SystemDevice {
// ==================================================================
// TPD Physical Memory (DIMM)
// ==================================================================
[Description (
"3PAR DIMM in Controller Node.")]
class TPD_PhysicalMemory : CIM_PhysicalMemory
{
[Description ("Slot number, memory is inserted in.") ]
uint16 Slot;
A.96 3PAR_TPDNode.mof
InForm OS Version 2.3.1 CIM API Programming Reference
3PAR_TPDNode.mof A.97
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// TPD NodePackagedMemory
// ==================================================================
[Association, Aggregation, Description (
"A Physical Memory contained by a Node PhysicalPackage.")]
class TPD_NodePackagedMemory : CIM_PackagedComponent {
// ==================================================================
// TPD IDE Drive
// ==================================================================
[Description (
"3PAR IDE Drive in Controller Node.")]
class TPD_IDEDrive : CIM_PhysicalComponent
{
[Description ("Position of the IDE Drive in the Node.") ]
uint16 Position;
// ==================================================================
// TPD NodePackagedIDE
// ==================================================================
[Association, Aggregation, Description (
"An IDE Drive contained by a Node PhysicalPackage.")]
class TPD_NodePackagedIDE : CIM_PackagedComponent {
A.98 3PAR_TPDNode.mof
InForm OS Version 2.3.1 CIM API Programming Reference
Description (
"The NodePackage that contains IDE Drive(s).")]
TPD_NodePackage REF GroupComponent;
// ==================================================================
// TPD PCI Card
// ==================================================================
[Description (
"3PAR PCI Card.")]
class TPD_PCICard : CIM_Card
{
[Description ("Node slot the card is in.") ]
uint16 Slot;
// ==================================================================
// 3PAR Node Package and PCI Card association
// ==================================================================
[Association, Aggregation,
Description (
"3PAR Node Package and PCI Card association")]
class TPD_PCICardInNode : CIM_Container {
3PAR_TPDNode.mof A.99
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// 3PAR SystemEndpoint: association between NodeSystem and
// SCSIProtocolEndpoint
// ==================================================================
[Association,
Description
("3PAR Data InServ NodeSystem and SCSIProtocolEndpoint association."
"This is a subclass of CIM_HostedAccessPoint. There are many "
"subclasses of CIM_HostedAcessPoint in the system. This class is "
" named TPD_SystemEndpoint to distinguish with other subclasses. ")]
class TPD_SystemEndpoint : CIM_HostedAccessPoint
{
// Indicate that this is one-to-many association
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The InServ node controller that hosted the protocol endpoint.")]
TPD_NodeSystem REF Antecedent;
// ==================================================================
// 3PAR NodeSystem and FCPort association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"3PAR Data InServ Node System and FC Port Association ") ]
class TPD_SystemFCPort : CIM_SystemDevice
{
[Override ("GroupComponent"), Aggregate, Max (1), Min (1),
Description("The InServ node controller that hosted the FC port.")]
TPD_NodeSystem REF GroupComponent;
A.100 3PAR_TPDNode.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// 3PAR Storage System and SCSI Controller association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"3PAR Data InServ Node System and SCSI Controller Association ") ]
class TPD_SystemController : CIM_SystemDevice
{
[Override ("GroupComponent"), Aggregate, Max (1), Min (1),
Description("The InServ node controller that associates with "
"the SCSI Protocol controller.")]
TPD_NodeSystem REF GroupComponent;
A.6 3PAR_TPDEnv.mof
This MOF contains 3PAR Environment classes that loaded into the root/tpd namespace.
// ==================================================================
// TPD Power Supply
// ==================================================================
[Description (
"Capabilities and management of the 3PAR PowerSupply.")]
class TPD_PowerSupply : CIM_PowerSupply
{
[Description ("Manufacturer name of the PS.") ]
string Manufacturer;
3PAR_TPDEnv.mof A.101
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// TPD Cage Power Supply
// ==================================================================
[Description (
"Capabilities and management of the 3PAR Node PowerSupply.")]
class TPD_CagePowerSupply : TPD_PowerSupply
{
[Description ("Type of the cage this Power Supply is in."),
ValueMap {"0", "1", "2", "3", "4"},
Values {"Unknown", "DC0", "DC1", "DC2", "DC3"} ]
uint16 CageType;
// ==================================================================
// TPD Node Power Supply
// ==================================================================
[Description (
"Capabilities and management of the 3PAR Node PowerSupply.")]
class TPD_NodePowerSupply : TPD_PowerSupply
{
[Description ("State of the DC for the power supply."),
ValueMap {"0", "1", "2"},
Values {"Unknown", "OK", "Error"} ]
uint16 DCStatus[];
};
// ==================================================================
A.102 3PAR_TPDEnv.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// CagePSDependency
// ==================================================================
[Association, Description (
"A PowerSupply is installed in a DriveCage, not for a specific Device,
but "
"to function with the DriveCage in general. This relationship is "
"described by the TPD_CagePSDependency association.")]
class TPD_CagePSDependency : CIM_PackageDependency {
// ==================================================================
// TPD Fan
// Based on the CIM schema, we need to use CIM_NumericSensor (Tachometer)
// to show the current speed of the fan. This is way too much for what
// we need, so I am going to add a new variable for speed. If
// we ever need to comply with the requirements, I will change it.
// ==================================================================
[Description (
"3PAR Fan ")]
class TPD_Fan : CIM_Fan
{
[Description ("Position of the Fan.") ]
uint16 Position;
[Description ("Fan LED status. This is ONLY available for system fans."),
ValueMap {"0", "1", "2", "3", "4"},
3PAR_TPDEnv.mof A.103
CIM API Programming Reference InForm OS Version 2.3.1
// ===================================================================
// PowerSupply Cooling
// ===================================================================
[Association, Description (
"Many Devices, such as processors or power supplies, require "
"their own cooling devices. This association indicates where "
"fans or other CoolingDevices are specific to a Device, versus "
"providing enclosure or cabinet cooling.")]
class TPD_PowerSupplyCooling : CIM_AssociatedCooling {
// ===================================================================
// Node Cooling
// ===================================================================
[Association, Description (
"Describes association between SystemFan and "
"the Node Package it is cooling.")]
class TPD_NodePkgCooling : CIM_PackageDependency {
// ==================================================================
// TPD Battery
// ==================================================================
[Description (
"3PAR Battery connected to the PowerSupply in Node.")]
A.104 3PAR_TPDEnv.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ===================================================================
// The next 3 attributes describe log data for tests. Each index in the
// arrays represents single test log. All 3 attributes must be of the
// same length.
// ===================================================================
[Description ("The date the test has started."), ArrayType ( "Indexed" ),
ModelCorrespondence {"TPD_Battery.TestDuration",
"TPD_Battery.TestPassed"}]
3PAR_TPDEnv.mof A.105
CIM API Programming Reference InForm OS Version 2.3.1
datetime TestStartDate[];
// =========================================
// Operations
// =========================================
[Description (
"Resets the test log of the battery."
"The method should return 0 if successful, 1 if the request is not "
"supported, and some other value if any other error occurred. "),
ValueMap {"0", "1", "2"},
Values {"OK", "Not Supported", "Error"} ]
uint32 ResetLog(
);
[Description (
"Recharges battery."
"The method should return 0 if successful, 1 if the request is not "
"supported, and some other value if any other error occurred. "),
ValueMap {"0", "1", "2"},
Values {"OK", "Not Supported", "Error"} ]
uint32 Recharge(
);
};
// ===================================================================
// TPD_PowerSupplyBattery
// ===================================================================
[Association, Description (
"A Node PowerSupply may use or require one or more Batteries. This "
"relationship is described by the PowerSupplyBattery dependency.")]
class TPD_PowerSupplyBattery : CIM_AssociatedBattery
{
[Override ( "Antecedent" ), Description (
A.106 3PAR_TPDEnv.mof
InForm OS Version 2.3.1 CIM API Programming Reference
"The Battery.")]
TPD_Battery REF Antecedent;
// ==================================================================
// NodePkgPSDependency
// ==================================================================
[Association, Description (
"A PowerSupply is installed in a NodePackage, not for a specific "
"Device, but to function with the NodePackage in general. This "
"relationship is described by the TPD_NodePkgPSDependency "
"association.")]
class TPD_NodePkgPSDependency : CIM_PackageDependency {
// ==================================================================
// TPD_Battery and TPD_NodeSystem association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"The NodeBattery association represents a relationship between "
"a TPD_Battery and TPD_NodeSystem.")]
class TPD_NodeBattery : CIM_SystemDevice {
3PAR_TPDEnv.mof A.107
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// TPD_PowerSupply and CIM_ComputerSystem association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"The SystemPowerSupply association represents a relationship between "
"a TPD_PowerSupply and CIM_ComputerSystem (TPD_NodeSystem or "
"TPD_StorageSystem).")]
class TPD_SystemPowerSupply : CIM_SystemDevice {
// ==================================================================
// TPD_Fan and CIM_ComputerSystem association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"The SystemPowerSupply association represents a relationship between "
"a TPD_Fan and CIM_ComputerSystem (TPD_NodeSystem or "
"TPD_StorageSystem).")]
class TPD_SystemFan : CIM_SystemDevice {
A.108 3PAR_TPDEnv.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// TPD Cage PowerSupply Sensor
// ==================================================================
[Association, Description (
"Many Devices include Sensors or have Sensors installed nearby, "
"in order to measure critical input and output properties. This "
"association indicates that relationship.")]
class TPD_SensorInCagePS : CIM_AssociatedSensor {
A.7 3PAR_TPDLocation.mof
This MOF contains 3PAR Location classes that loaded into the root/tpd namespace.
// ==================================================================
// TPD System location
// ==================================================================
[Description (
"Location of the InServ array.")]
class TPD_SystemLocation : CIM_Location
{
};
// ==================================================================
// TPD System Package and Location association
// ==================================================================
[Association, Description (
"SystemPackageLocation associates a SystemPackage with a "
"Location object for inventory or replacement purposes.")]
class TPD_SystemPackageLocation : CIM_PhysicalElementLocation {
3PAR_TPDLocation.mof A.109
CIM API Programming Reference InForm OS Version 2.3.1
A.8 3PAR_TPDEthPort.mof
This MOF contains 3PAR Ethernet Port classes that loaded into the root/tpd namespace.
// ===================================================================
// 3PAR EthernetPort
// ===================================================================
[Description (
"Capabilities and management of an EthernetPort.")]
class TPD_EthernetPort : CIM_EthernetPort {
// ==================================================================
// 3PAR IPProtocolEndpoint
// ==================================================================
[Description (
"A ProtocolEndpoint that is dedicated to running IP.")]
class TPD_IPProtocolEndpoint : CIM_IPProtocolEndpoint {
[Description (
"The Gateway address for this ProtocolEndpoint.")]
string Gateway;
};
// ===================================================================
// 3PAR EthPortSAPImplementation
// ===================================================================
[Association, Description (
"An association between a ServiceAccessPoint and how it is "
A.110 3PAR_TPDEthPort.mof
InForm OS Version 2.3.1 CIM API Programming Reference
"implemented.")]
class TPD_EthPortSAPImplementation : CIM_DeviceSAPImplementation {
// ==================================================================
// 3PAR SystemIPEndpoint: association between NodeSystem and
// IPProtocolEndpoint
// ==================================================================
[Association,
Description
("3PAR Data InServ NodeSystem and IPProtocolEndpoint association."
"This is a subclass of CIM_HostedAccessPoint. There are many "
"subclasses of CIM_HostedAcessPoint in the system. This class is "
" named TPD_SystemIPEndpoint to distinguish with other subclasses. ")]
class TPD_SystemIPEndpoint : CIM_HostedAccessPoint
{
// Indicate that this is one-to-many association
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The InServ node controller that hosted the protocol endpoint.")]
TPD_NodeSystem REF Antecedent;
// ==================================================================
// 3PAR NodeSystem and EthernetPort association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"3PAR Data InServ Storage System and Ethernet Port Association ") ]
class TPD_SystemEthPort : CIM_SystemDevice
{
[Override ("GroupComponent"), Aggregate, Max (1), Min (1),
Description("The InServ node controller that hosted the Ethernet port.")]
3PAR_TPDEthPort.mof A.111
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// 3PAR TCPProtocolEndpoint
// ==================================================================
[Description (
"A TPD protocol endpoint that is dedicated to running TCP.")]
class TPD_TCPProtocolEndpoint : CIM_TCPProtocolEndpoint {
};
// ==================================================================
// 3PAR BindsToIPEndpoint
// ==================================================================
[Association, Description (
"This association makes explicit the dependency of a "
"TCPProtocolEndpoint on an underlying IPProtocolEndpoint, on the same "
"system.")]
class TPD_BindsToIPEndpoint : CIM_BindsTo {
// ==================================================================
// 3PAR SystemTCPEndpoint: association between NodeSystem and
// TCPProtocolEndpoint
// ==================================================================
[Association,
Description
("3PAR Data InServ NodeSystem and IPProtocolEndpoint association."
"This is a subclass of CIM_HostedAccessPoint. There are many "
"subclasses of CIM_HostedAcessPoint in the system. This class is "
" named TPD_SystemIPEndpoint to distinguish with other subclasses. ")]
class TPD_SystemTCPEndpoint : CIM_HostedAccessPoint
A.112 3PAR_TPDEthPort.mof
InForm OS Version 2.3.1 CIM API Programming Reference
{
// Indicate that this is one-to-many association
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The InServ node controller that hosted the protocol endpoint.")]
TPD_NodeSystem REF Antecedent;
A.9 3PAR_TPDiSCSI.mof
This MOF contains 3PAR iSCSI classes that loaded into the root/tpd namespace.
// ==================================================================
// 3PAR iSCSIController
// ==================================================================
[Description (
"iSCSIController is a type of SCSIProtocolController, "
"managing an iSCSI interface.")]
class TPD_iSCSIController : CIM_SCSIProtocolController {
};
// ==================================================================
// 3PAR iSCSIProtocolEndpoint
// ==================================================================
class TPD_iSCSIProtocolEndpoint : CIM_iSCSIProtocolEndpoint {
};
// ==================================================================
// 3PAR BindsToTCPEndpoint
// ==================================================================
[Association, Description (
"This association makes explicit the dependency of a "
"iSCSIProtocolEndpoint on an underlying TCPProtocolEndpoint, on the same "
"system.")]
class TPD_BindsToTCPEndpoint : CIM_BindsTo {
3PAR_TPDiSCSI.mof A.113
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// 3PAR SystemiSCSIEndpoint: association between NodeSystem and
// iSCSIProtocolEndpoint
// ==================================================================
[Association, Description (
"3PAR Data InServ NodeSystem and IPProtocolEndpoint association."
"This is a subclass of CIM_HostedAccessPoint. There are many "
"subclasses of CIM_HostedAcessPoint in the system. This class is "
" named TPD_SystemIPEndpoint to distinguish with other subclasses. ")]
class TPD_SystemiSCSIEndpoint : CIM_HostedAccessPoint
{
// Indicate that this is one-to-many association
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The InServ node controller that hosted the protocol endpoint.")]
TPD_NodeSystem REF Antecedent;
// ===================================================================
// 3PAR iSCSISAPImplementation
// ===================================================================
[Association, Description (
"An association between a ServiceAccessPoint and how it is "
"implemented.")]
class TPD_iSCSISAPImplementation : CIM_DeviceSAPImplementation {
A.114 3PAR_TPDiSCSI.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// 3PAR PrivilegeForiSCSIController
// ==================================================================
[Association, Description (
"PrivilegeForiSCSIController is an association used to tie the "
"AuthorizedPrivileges to iSCSIController resources.")]
class TPD_PrivilegeForiSCSIController : CIM_AuthorizedTarget {
// ==================================================================
// 3PAR ConfigServicesForiSCSIController Association
// ==================================================================
[Association,
Description (
"TPD_ConfigServicesForiSCSIController is an association between "
"TPD_iSCSIController and ControllerConfigurationService.") ]
class TPD_ConfigServicesForiSCSIController : CIM_ConcreteDependency
{
[Override ( "Antecedent" ), Description (
"The controller configuration service which the protocol "
"controller depends on for configuration.")]
TPD_ControllerConfigurationService REF Antecedent;
3PAR_TPDiSCSI.mof A.115
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// 3PAR iSCSI Protocol Controller And StorageVolume association
// ==================================================================
[Association,
Description (
"3PAR Data InServ iSCSI protocol controller and storage volume "
"association. ")]
class TPD_iSCSIControllerForUnit : CIM_ProtocolControllerForUnit
{
[Override ("Antecedent"),
Description ("The iSCSI Protocol Controller.") ]
TPD_iSCSIController REF Antecedent;
// ==================================================================
// 3PAR iSCSISessionSettings
// ==================================================================
[Description (
"The default negotiation settings for an iSCSI Session. These "
"properties are used as the starting position for login "
"negotiations between initiator and target nodes. The "
"properties describing the resulting outcome of the login "
"negotiation are in the iSCSISession class.")]
class TPD_iSCSISessionSettings : CIM_iSCSISessionSettings {
};
// ==================================================================
// 3PAR iSCSISessionSystemSetting
// ==================================================================
[Association, Description (
"ElementSettingData represents the association between "
"ManagedElements and applicable setting data. This association "
"also describes whether this is a default or current setting.")]
class TPD_iSCSISessionSystemSetting : CIM_ElementSettingData {
A.116 3PAR_TPDiSCSI.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// 3PAR iSCSIConnectionSettings
// ==================================================================
[Description (
"The settings for the usage of an iSCSI NetworkPortal by an "
"iSCSIProtcolEndpoint. These settings are the starting point "
"for negotiation for connection establishment. "
"The properties that reflect the actual outcome "
"of the negotiation are found in the iSCSIConnection class.")]
class TPD_iSCSIConnectionSettings : CIM_iSCSIConnectionSettings {
};
// ==================================================================
// 3PAR iSCSIConnectionTCPSetting
// ==================================================================
[Association, Description (
"ElementSettingData represents the association between "
"ManagedElements and applicable setting data. This association "
"also describes whether this is a default or current setting.")]
class TPD_iSCSIConnectionTCPSetting : CIM_ElementSettingData {
// ==================================================================
// 3PAR iSCSISession
// ==================================================================
[Description (
"iSCSISession is a network pipe between an initiator and target "
"SCSIProtocolEndpoints. An iSCSISession is composed of one or "
"more TCP connections which MUST be selected from a "
"SystemSpecificCollection representing an iSCSI Portal Group. "
"NetworkPipeComposition aggregates NetworkPipe instances "
3PAR_TPDiSCSI.mof A.117
CIM API Programming Reference InForm OS Version 2.3.1
};
// ==================================================================
// 3PAR EndpointOfiSCSISession
// ==================================================================
[Association, Description (
"EndpointOfNetworkPipe describes the endpoints between which a "
"pipe transfers information. Whether an endpoint is a source or "
"sink is indicated by a property of the association, "
"SourceOrSink.")]
class TPD_EndpointOfiSCSISession : CIM_EndpointOfNetworkPipe {
};
// ==================================================================
// 3PAR EndpointOfiSCSIConnection
// ==================================================================
[Association, Description (
A.118 3PAR_TPDiSCSI.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
// 3PAR iSCSIPipeComposition
// ==================================================================
[Association, Aggregation, Composition, Description (
"NetworkPipeComposition describes the makeup a pipe, based on "
"lower-level ones. If the pipe is not composed of lower-level "
"entities (i.e., its AggregationBehavior property is set to 2), "
"then no instances of this association should be defined where "
"the pipe has the role of GroupComponent.")]
class TPD_iSCSIPipeComposition : CIM_NetworkPipeComposition {
3PAR_TPDiSCSI.mof A.119
CIM API Programming Reference InForm OS Version 2.3.1
};
// ==================================================================
// 3PAR iSCSISessionStatisticalData
// ==================================================================
[Association, Description (
"CIM_ElementStatisticalData is an association that relates a "
"ManagedElement to its StatisticalData. Note that the "
"cardinality of the ManagedElement reference is Min(1), Max(1). "
"This cardinality mandates the instantiation of the "
"ElementStatisticalData association for the referenced instance "
"of CIM_StatisticalData. ElementStatisticalData describes the "
"existence requirements and context for the "
"CIM_StatisticalData, relative to a specific ManagedElement.")]
class TPD_iSCSISessionStatisticalData : CIM_ElementStatisticalData {
[Key, Description (
"The statistic information/object.")]
TPD_iSCSISessionStatistics REF Stats;
};
// ==================================================================
// 3PAR iSCSICapabilities
// ==================================================================
[Description (
"The capabilites for an iSCSI Network Entity. An instance of "
"this class associated by ElementCapabilities to a "
"instance of ComputerSystem that represents the Network Entity. "
"These capability properties are associated to a Network "
"Entity/ComputerSystem since they affect all login negotiations "
"on all iSCSI ProtocolEndpoints aggregated to the system.")]
class TPD_iSCSICapabilities : CIM_iSCSICapabilities {
};
// ==================================================================
// 3PAR iSCSIElementCapabilities
// ==================================================================
[Association, Description (
"ElementCapabilities represents the association between "
A.120 3PAR_TPDiSCSI.mof
InForm OS Version 2.3.1 CIM API Programming Reference
[Key, Description (
"The Capabilities object associated with the element.")]
TPD_iSCSICapabilities REF Capabilities;
};
// ==================================================================
// 3PAR iSCSISAPAvailableForElement
// ==================================================================
[Association, Description (
"CIM_SAPAvailableForElement conveys the semantics of a Service "
"Access Point that is available for a ManagedElement. When "
"CIM_SAPAvailableForElement is not instantiated, then the SAP "
"is assumed to be generally available. If instantiated, the SAP "
"is available only for the associated ManagedElements. For "
"example, a device might provide management access through a "
"URL. This association allows the URL to be advertised for the "
"device.")]
class TPD_iSCSISAPAvailableForElement : CIM_SAPAvailableForElement {
[Key, Description (
"The Service Access Point that is available.")]
TPD_iSCSIProtocolEndpoint REF AvailableSAP;
[Key, Description (
"The ManagedElement for which the SAP is available.")]
TPD_iSCSIController REF ManagedElement;
};
// ==================================================================
// 3PAR NodeSystem and iSCSIController association
// ==================================================================
3PAR_TPDiSCSI.mof A.121
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// 3PAR iSCSISessionFailures
// ==================================================================
[Description (
"Failure Statistics for Sessions associated with a iSCSI Node. "
"An instance of this class associated by "
"ElementStatisticalData to an instance of "
"SCSIProtocolController representing an iSCSI Node. These "
"statistics are associated to a Node since they describe the "
"aggregated Session data for all failed Sessions associated to "
"iSCSI protocol endpoints used by the Node.")]
class TPD_iSCSISessionFailures : CIM_iSCSISessionFailures {
};
// ==================================================================
// 3PAR iSCSILoginStatistics
// ==================================================================
[Description (
"Statistics for Logins and Logouts to or from an iSCSI Node. An "
"instance of this class associated by "
"ElementStatisticalData to an instance of "
"SCSIProtocolController that represents the Node. The Node can "
"be either an Initiator or Target and so the interpretation of "
"the properties in this class varies accordingly.")]
class TPD_iSCSILoginStatistics : CIM_iSCSILoginStatistics {
};
// ==================================================================
// 3PAR iSCSISessionFailuresData
A.122 3PAR_TPDiSCSI.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
[Association, Description (
"CIM_ElementStatisticalData is an association that relates a "
"ManagedElement to its StatisticalData. Note that the "
"cardinality of the ManagedElement reference is Min(1), Max(1). "
"This cardinality mandates the instantiation of the "
"ElementStatisticalData association for the referenced instance "
"of CIM_StatisticalData. ElementStatisticalData describes the "
"existence requirements and context for the "
"CIM_StatisticalData, relative to a specific ManagedElement.")]
class TPD_iSCSISessionFailuresData : CIM_ElementStatisticalData {
[Key, Description (
"The statistic information/object.")]
TPD_iSCSISessionFailures REF Stats;
};
// ==================================================================
// 3PAR iSCSILoginStatisticsData
// ==================================================================
[Association, Description (
"CIM_ElementStatisticalData is an association that relates a "
"ManagedElement to its StatisticalData. Note that the "
"cardinality of the ManagedElement reference is Min(1), Max(1). "
"This cardinality mandates the instantiation of the "
"ElementStatisticalData association for the referenced instance "
"of CIM_StatisticalData. ElementStatisticalData describes the "
"existence requirements and context for the "
"CIM_StatisticalData, relative to a specific ManagedElement.")]
class TPD_iSCSILoginStatisticsData : CIM_ElementStatisticalData {
[Key, Description (
"The statistic information/object.")]
TPD_iSCSILoginStatistics REF Stats;
};
3PAR_TPDiSCSI.mof A.123
CIM API Programming Reference InForm OS Version 2.3.1
A.10 3PAR_TPDStats.mof
This MOF contains 3PAR Statistical (Block Server Performance Subprofile) classes that loaded
into the root/tpd namespace.
// ==================================================================
// Statistics Collection
// ==================================================================
[Description (
"Statistics collection")]
class TPD_StatisticsCollection : CIM_StatisticsCollection
{
};
// ==================================================================
// Hosted Statistics Collection
// ==================================================================
[Association, Description (
"HostedCollection defines a SystemSpecificCollection in the "
"context of a scoping System. It represents a Collection that "
"has meaning only in the context of a System, a Collection "
"whose elements are restricted by the definition of the System, "
"or both of these types of Collections.")]
class TPD_HostedStatisticsCollection : CIM_HostedCollection
{
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The scoping system.")]
TPD_StorageSystem REF Antecedent;
// ==================================================================
// Block Statistics Statistics Collection
// ==================================================================
[Description (
"Block Statistics Statistics collection")]
class TPD_BlockStatisticsManifestCollection :
CIM_BlockStatisticsManifestCollection
A.124 3PAR_TPDStats.mof
InForm OS Version 2.3.1 CIM API Programming Reference
{
};
// ==================================================================
// Associated Block Statistics Manifest Collection
// ==================================================================
[Association, Description (
"Instances of this class associate a "
"BlockStatisticsManifestCollection to the StatisticsCollection "
"to which is is applied. The ManifestCollection contains the "
"Manifests that are used to filter requests for the retrieval "
"of statistics.")]
class TPD_AssociatedBlockStatisticsManifestCollection :
CIM_AssociatedBlockStatisticsManifestCollection
{
[Key, Min ( 1 ), Max ( 1 ), Description (
"The collection of statistics filtered by the "
"BlockStatisticsManifestCollection.")]
TPD_StatisticsCollection REF Statistics;
[Key, Description (
"The collection of Manifests applied to the "
"StatisticsCollection.")]
TPD_BlockStatisticsManifestCollection REF ManifestCollection;
};
// ==================================================================
// Block Statistics Manifest
// ==================================================================
[Description (
"Block Statistics manifest")]
class TPD_BlockStatisticsManifest : CIM_BlockStatisticsManifest
{
};
3PAR_TPDStats.mof A.125
CIM API Programming Reference InForm OS Version 2.3.1
// ==================================================================
// Member Of Block Statistics Manifest Collection
// ==================================================================
[Association, Aggregation, Description (
"Aggregation used to establish "
"membership of ManagedElements in a Collection.")]
class TPD_MemberOfBlockStatisticsManifestCollection : CIM_MemberOfCollection {
[Key, Description (
"The aggregated member of the Collection.")]
TPD_BlockStatisticsManifest REF Member;
};
// ==================================================================
// Member Of Statistics Collection
// ==================================================================
[Association, Aggregation, Description (
"Aggregation used to establish "
"membership of ManagedElements in a Collection.")]
class TPD_MemberOfStatisticsCollection : CIM_MemberOfCollection {
[Key, Description (
"The aggregated member of the Collection.")]
CIM_BlockStorageStatisticalData REF Member;
};
// ==================================================================
// Disk Drive Statistical Data
// ==================================================================
[Description (
"Statistical data for the Disk Drive")]
class TPD_DiskStatisticalData : CIM_BlockStorageStatisticalData
{
};
// ==================================================================
// Disk Element Statistical Data
A.126 3PAR_TPDStats.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
[Association, Description (
"An association that relates a "
"ManagedElement to its StatisticalData. Note that the "
"cardinality of the ManagedElement reference is Min(1), Max(1). "
"This cardinality mandates the instantiation of the "
"ElementStatisticalData association for the referenced instance "
"of CIM_StatisticalData. ElementStatisticalData describes the "
"existence requirements and context for the "
"CIM_StatisticalData, relative to a specific ManagedElement.")]
class TPD_DiskElementStatisticalData : CIM_ElementStatisticalData
{
[Key, Min ( 1 ), Max ( 1 ), Description (
"The ManagedElement for which statistical or metric data is "
"defined.")]
TPD_DiskDrive REF ManagedElement;
[Key, Description (
"The statistic information/object.")]
TPD_DiskStatisticalData REF Stats;
};
// ==================================================================
// Port Statistical Data
// ==================================================================
[Description (
"Statistical data for the Port")]
class TPD_PortStatisticalData : CIM_BlockStorageStatisticalData
{
};
// ==================================================================
// Port Element Statistical Data
// ==================================================================
[Association, Description (
"An association that relates a "
"ManagedElement to its StatisticalData. Note that the "
"cardinality of the ManagedElement reference is Min(1), Max(1). "
"This cardinality mandates the instantiation of the "
"ElementStatisticalData association for the referenced instance "
"of CIM_StatisticalData. ElementStatisticalData describes the "
"existence requirements and context for the "
"CIM_StatisticalData, relative to a specific ManagedElement.")]
class TPD_PortElementStatisticalData : CIM_ElementStatisticalData
{
3PAR_TPDStats.mof A.127
CIM API Programming Reference InForm OS Version 2.3.1
[Key, Description (
"The statistic information/object.")]
TPD_PortStatisticalData REF Stats;
};
// ==================================================================
// Volume Statistical Data
// ==================================================================
[Description (
"Statistical data for the Volume")]
class TPD_VolumeStatisticalData : CIM_BlockStorageStatisticalData
{
};
// ==================================================================
// Storage Volume Element Statistical Data
// ==================================================================
[Association, Description (
"An association that relates a "
"ManagedElement to its StatisticalData. Note that the "
"cardinality of the ManagedElement reference is Min(1), Max(1). "
"This cardinality mandates the instantiation of the "
"ElementStatisticalData association for the referenced instance "
"of CIM_StatisticalData. ElementStatisticalData describes the "
"existence requirements and context for the "
"CIM_StatisticalData, relative to a specific ManagedElement.")]
class TPD_VolumeElementStatisticalData : CIM_ElementStatisticalData
{
[Key, Min ( 1 ), Max ( 1 ), Description (
"The ManagedElement for which statistical or metric data is "
"defined.")]
TPD_StorageVolume REF ManagedElement;
[Key, Description (
"The statistic information/object.")]
TPD_VolumeStatisticalData REF Stats;
};
// ==================================================================
// Block Statistics Service
A.128 3PAR_TPDStats.mof
InForm OS Version 2.3.1 CIM API Programming Reference
// ==================================================================
class TPD_BlockStatisticsService : CIM_BlockStatisticsService
{
};
// ==================================================================
// Hosted Statistics Service
// ==================================================================
[Association, Description (
"An association between a Service and the "
"System on which the functionality is located. The cardinality "
"of this association is one-to-many. A System can host many "
"Services. Services are weak with respect to their hosting "
"System. Heuristic: A Service is hosted on the System where the "
"LogicalDevices or SoftwareFeatures that implement the Service "
"are located. The model does not represent Services hosted "
"across multiple systems. The model is as an ApplicationSystem "
"that acts as an aggregation point for Services that are each "
"located on a single host.")]
class TPD_HostedStatisticsService : CIM_HostedService
{
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The scoping system.")]
TPD_StorageSystem REF Antecedent;
// ==================================================================
// Block Statistics Capabilities
// ==================================================================
class TPD_BlockStatisticsCapabilities : CIM_BlockStatisticsCapabilities
{
};
// ==================================================================
// Statistics Element Capabilities
// ==================================================================
[Association, Description (
"ElementCapabilities represents the association between "
"ManagedElements and their Capabilities. Note that the "
"cardinality of the ManagedElement reference is Min(1), Max(1). "
"This cardinality mandates the instantiation of the "
3PAR_TPDStats.mof A.129
CIM API Programming Reference InForm OS Version 2.3.1
[Key, Description (
"The Capabilities object associated with the element.")]
TPD_BlockStatisticsCapabilities REF Capabilities;
};
// ==================================================================
// LUNs Statistical Data
// ==================================================================
[Description (
"Statistical data for the LUNs")]
class TPD_LUNStatisticalData : CIM_BlockStorageStatisticalData
{
};
A.130 3PAR_TPDStats.mof
InForm OS Version 2.3.1 CIM API Programming Reference
Index
3PAR InForm operating environment 1.2
3PAR InServ Storage Servers 1.2
D
developers 1.1
dialog elements 1.3
A disabling
advisories, conventions 1.4 CIM server 4.3
audience 1.1 disk array 2.1
displaying
CIM server status 4.3
C Distributed Management Task Force
cautions and notes 1.4 DMTF 2.2
chapter summaries 1.2 DMTF
CIM namespaces 4.7 Distributed Management Task Force 2.2
CIM server documentation, related 1.2
disabling 4.3
enabling 4.2 E
CIM server status
displaying 4.3 enabling
CIMNavigator 4.5 CIM server 4.2
CIM-XML 2.2
commands
setcim 4.2
F
showcim 4.2, 4.3, 4.4 Fibre Channel switches 2.1
showversion 4.4
startcim 4.2
stopcim 4.2, 4.3
N
conventions notes and cautions 1.4
advisories 1.4 notes, about 1.4
typographical 1.3
Index IX.1
CIM API Programming Reference InForm OS Version 2.3.1
R
related documentation 1.2
revision history RH.1
S
Service Location Protocol version 2
SLPv2 2.1, 5.3
setcim command 4.2
showcim command 4.2, 4.3, 4.4
showversion command 4.4
SLPV2
Service Location Protocol version 2 2.1, 5.3
SMI-S 2.1, 2.2
startcim command 4.2
stopcim command 4.2, 4.3
T
typographical conventions 1.3
W
WBEM 2.2
Distributed Management Task Force
Initiative 2.2
Web-Based Enterprise Management Initiative
WBEM 2.2
IX.2 Index
InForm OS Version 2.3.1 CIM API Programming Reference
Revision History
Release Level Revision Summary
320-200164 Rev A First release of this manual to support 3PAR InForm OS release 2.3.1.
October 2009
320-200164 Rev B Added new volume options for 2.3.1, expiration and retention time.
February 2010 Added support for SSD storage pool for 3.1.1, which manifests itself
as an instance of StoragePool with InstanceID of “3PAR:all-SSD”.
RH.2