3.1.4.1.70 ApiPauseNode (Opnum 69)

(Protocol Version 2) The ApiPauseNode method instructs the server to suspend group ownership and failover activity on the designated node. The persistent state of the node is set to paused, as specified in section 3.1.1.6.

The server MUST NOT move a group to a node in the ClusterNodePaused state in response to a client request, such as ApiMoveGroup or ApiMoveGroupToNode. If a node hosting one or more groups fails, then the server MUST NOT move those groups to a node in the ClusterNodePaused state if there are any other nodes in the ClusterNodeUp state. If a node hosting one or more groups fails, and there are no remaining nodes in the ClusterNodeUp state but there are nodes in the ClusterNodePaused state, then the server MUST move those groups to a node in the ClusterNodePaused state; however, the server MUST NOT bring those groups online. If there are groups hosted on a node in the ClusterNodePaused state, the server MUST NOT allow those groups or any resources in those groups to transition to the online state, such as in response to an ApiOnlineGroup or ApiOnlineResource request from a client. However, the server MUST permit the quorum resource, as designated by a previous call to ApiSetQuorumResource, to come online on a node, even if that node is in the ClusterNodePaused state.

The cluster takes necessary and appropriate actions, by using implementation-specific mechanisms between servers, in order to bring all nodes into their persistent state.

The server MUST complete this method with ERROR_SUCCESS (0x00000000) if the designated node is already in the ClusterNodePaused state. Otherwise, the server MUST fail this method using error ERROR_CLUSTER_NODE_DOWN (0x000013BA) if the designated node is not in the ClusterNodeUp state. If the designated node is in the ClusterNodeUp state, the server MUST transition the node to the ClusterNodePaused state and return ERROR_SUCCESS.

The server MUST accept an ApiPauseNode request only if its protocol server state is read/write, as specified in section 3.1.1.

 error_status_t ApiPauseNode(
   [in] HNODE_RPC hNode
 );

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

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

Return value/code

Description

0x00000000

ERROR_SUCCESS

Success.

0x00000006

ERROR_INVALID_HANDLE

The data that is pointed to by the hNode parameter does not represent a valid HNODE_RPC context handle.

0x000013BA

ERROR_CLUSTER_NODE_DOWN

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

For any other condition, this method MUST return a value that is not one of the values listed in the preceding table. The client MUST behave in one consistent, identical manner for all values that are not listed in the preceding table. The client SHOULD treat errors specified in 3.2.4.6 as recoverable errors and initiate the reconnect procedure as specified in section 3.2.4.6.