Previous  |  Next  >  
Product: Storage Foundation Guides   
Manual: Storage Foundation 4.1 Intelligent Storage Provisioning Administrator's Guide   

Capabilities

A capability, as expressed in the ISP language, is a description of what a volume is capable of doing. Each template is associated with one or more capabilities so that ISP can choose those templates that are suitable for use in allocating storage to volumes. A capability is interpreted by ISP as a tag.

The format of a typical capability definition is shown here:


capability cap_name {
  extends capname1,capname2, ...
  description text
  descriptionid id
  display_name name
  display_name_id catalogidindex
  var varname1:type {
   defaultvalue value
   description description
   descriptionid catalogidindex
  }
  var varname2:type {
   defaultvalue value
   description text
   descriptionid catalogidindex
  }
  ...
};

This definition has the following important components:

cap_name Indicates the nature of the capability, for example, Reliable, Performant, Snapshot and EMCSnapshot.

extends Indicates that the capability is derived from other named capabilities. See Inheritance of Capabilities for more information.

description Describes a capability or one of its variable parameters in English.

descriptionid References the message catalog where localized versions of the description may be found, and provides an index number for the description in the catalog.

display_name Defines the English name of the capability that is displayed in the VEA.

display_name_id References the message catalog where localized versions of the display name may be found, and provides an index number for the display name in the catalog.

var Defines a variable that may be specified as a parameter and its value to a capability. A template can use the variables in its rules section to provide the requested capability. Permitted variable types are int or string.

defaultvalue Defines the default value of a capability's parameter if no value is specified.

For a formal definition of capability in the ISP language, see Capability.

The following is a sample capability definition:


capability DataMirroring {
    display_name "Data Mirroring"
    display_name_id "{b84f1c64-1dd1-11b2-8b42-080020feef8b}", 3

    description "Volume has multiple copies of data."
    descriptionid "{b84f1c64-1dd1-11b2-8b42-080020feef8b}", 4

    extends DataRedundancy
    var nmirs:int {
        display_name "Number of data copies"
        display_name_id "{b84f1c64-1dd1-11b2-8b42-080020feef8b}", 5

        description "Specify the number of copies of data."
        descriptionid "{b84f1c64-1dd1-11b2-8b42-080020feef8b}", 6

        defaultvalue 2
    }
};

Inheritance of Capabilities

The extends keyword in a capability definition allows a capability to inherit some of the properties of one or more base capabilities. This implies that such a derived capability has an "is a" relationship with these base capabilities. The following rules are applied by the inheritance mechanism:

  • A derived capability inherits variables from all its base capabilities.
  • A derived capability cannot define variables with the same name as any of the variables in any of its base capabilities.
  • If a capability is derived from more than one base capability, none of the variable names in any of its base capabilities should be the same as a variable name in any other base capability.

The following sample capability definitions show how the DataMirrorStripe capability is derived from the more general DataMirroring and Striping capabilities:


capability DataMirrorStripe {
    extends DataMirroring, Striping
};

DataMirrorStripe also inherits the variables nmirs and ncols from the two capabilities that it extends.

 ^ Return to Top Previous  |  Next  >  
Product: Storage Foundation Guides  
Manual: Storage Foundation 4.1 Intelligent Storage Provisioning Administrator's Guide  
VERITAS Software Corporation
www.veritas.com