ApiAddResourceNode (Opnum 23)

(Protocol Version 3) The ApiAddResourceNode method instructs the server to add the designated node to the set of nodes that can host the designated resource, as specified in section The non-volatile cluster state associated with this resource is updated.

The server MUST enforce that the resource will only be hosted on a node that is a member of the set. If none of the nodes in the set is active, then the resource SHOULD be hosted on a node that is not a member of the set, but the resource MUST remain in the ClusterResourceOffline state.

The server MUST fail this method using ERROR_OBJECT_ALREADY_EXISTS if the set is not empty and the node is already a member of the set.

The server MUST accept an ApiAddResourceNode request for processing only if it is in the read/write state, as specified in section 3.1.1.

The server MUST require that the access level associated with the hResource context handle is "All" and that the access level associated with the hNode context handle is "All" (section 3.1.4).

 error_status_t ApiAddResourceNode(
   [in] HRES_RPC hResource,
   [in] HNODE_RPC hNode,
   [out] error_status_t *rpc_status

hResource: An HRES_RPC context handle that was obtained in a previous ApiOpenResource, ApiOpenResourceEx, or ApiCreateResource method call.

hNode: An HNODE_RPC context handle that was obtained in a previous ApiOpenNode or ApiOpenNodeEx method call.

rpc_status: A 32-bit integer used to indicate success or failure. The RPC runtime MUST indicate, by writing to this parameter, whether it succeeded in executing this method on the server. The encoding of the value passed in this parameter MUST conform to encoding for  comm_status and fault_status, as specified in Appendix E of [C706].

Return Values: The method MUST return the following error codes for the specified conditions.

Return value/code







Either the hResource parameter does not represent a valid HRES_RPC context handle or the hNode parameter does not represent a valid HNODE_RPC context handle.



The resource represented by the hResource parameter no longer exists in the non-volatile cluster state.



See the preceding text for details of when this error can occur.



The node represented by hNode is not capable of hosting any resource of this type.

For any other condition, the server MUST set Status to a value that is not one of the values listed in the preceding table. The client MUST treat all values that are not listed in the preceding table the same, except as specified in section