VERITAS Storage Foundation 4.1 Intelligent Storage Provisioning Administrator's Guide

Chapter 8, Using Capabilities, Templates and Rules
Capabilities
115
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” on page 140.
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 {