3.1.1.1.2 Dependencies

Resource dependencies govern the order and circumstances in which resources transition between resource states.

A resource can depend on zero or more resources, a resource can have zero or more resources depend on it, and a resource can depend on a resource that in turn depends on one or more other resources. However, dependency relations cannot be circular. A resource is in a circular dependency relation if any chain of dependencies leads from the resource back to itself. There can be at most only one dependency relation between two resources. A dependency is uniquely identified in a cluster by the resources in the dependency relation.

In ClusAPI Protocol version 3.0, the maximum depth for a resource's dependency tree is 100. There is no specified maximum depth in protocol version 2.0 servers.

A resource that no resource depends on is a top-level resource. The resource that depends on another resource is also called the dependent resource, and the resource that is depended on is also called the provider resource (for complex dependencies, there can be multiple provider resources).

A protocol client can perform the following management operations on a dependency relation (see section 4.4 for an example). Note that complex dependencies are supported only in ClusAPI Protocol version 3.

  • Add a dependency: Add a simple or complex dependency to a resource. For more information, see section 3.1.4.1.20 (ClusAPI Protocol version 2), and sections 3.1.4.2.20 and 3.1.4.2.109 (ClusAPI Protocol version 3).

  • Remove a dependency: Remove a simple or complex dependency to a resource. For more information, see section 3.1.4.1.21 (ClusAPI Protocol version 2), and sections 3.1.4.2.21 and 3.1.4.2.109 (ClusAPI Protocol version 3).

  • Validate: Determine whether a simple or complex dependency is valid. For more information, see section 3.1.4.1.22 (ClusAPI Protocol version 2) and section 3.1.4.2.22 (ClusAPI Protocol version 3).

  • Query Configuration: Query the configuration data for a resource's dependency tree. For more information, see section 3.1.4.1.23 (ClusAPI Protocol version 2), and sections 3.1.4.2.23 and 3.1.4.2.110 (ClusAPI Protocol version 3).