3.1.4.2.165 ApiAddGroupToGroupSetEx (Opnum 183)

The ApiAddGroupToGroupSetEx method<153> adds the existing group to the cluster group set which is created successfully earlier using the ApiCreateGroupSet (section 3.1.4.2.146) or ApiOpenGroupSet (section 3.1.4.2.147) method. Additionally, this method adds the group to the specified FaultDomain and UpdateDomain.

The server MUST handle this method in the same manner as ApiAddGroupToGroupSet (section 3.1.4.2.150) except as specified below for UseDomains parameter.

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

The server SHOULD accept an ApiAddGroupToGroupSetEx request if the access level associated with the GroupSet context handle is at least "Read" (section 3.1.4).

 error_status_t
 ApiAddGroupToGroupSetEx (
   [ in ] HGROUPSET_RPC GroupSet,
   [ in ] HGROUP_RPC Group,
   [ in ] Dword FaultDomain,
   [ in ] Dword UpdateDomain,
   [ in ] Bool UseDomains,
   [ in ] Dword *Reserved,
   [ out ] error_status_t *rpc_status
 );

GroupSet: An HGROUPSET_RPC (section 2.2.1.11) context handle that was obtained in a previous ApiOpenGroupSet or ApiCreateGroupSet method call.

Group: An HGROUP_RPC (section 2.2.1.3) context handle that was obtained in a previous ApiOpenGroup (section 3.1.4.1.42) or ApiCreateGroup (section 3.1.4.1.43) method call.

FaultDomain: The fault domain under which the Group MUST be placed.

UpdateDomain: The update domain under which the Group MUST be placed.

UseDomains: A Boolean value where TRUE indicates to add the Group to FaultDomain and UpdateDomain.

Reserved: This field is reserved. The client MUST set this value to 0 and MUST be ignored by the server.

rpc_status: A 32-bit integer that indicates success or failure. The RPC runtime MUST indicate by writing to this parameter whether the runtime 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

Description

0x00000000

ERROR_SUCCESS

Success.

0x00000006

ERROR_INVALID_HANDLE

The GroupSet parameter does not represent a valid HGROUPSET_RPC context handle.

0x00000032

ERROR_NOT_SUPPORTED

The request is not supported.

0x00000091

ERROR_DIR_NOT_EMPTY

One or more resources are contained in the group set represented by GroupSet.

0x000000B7

ERROR_ALREADY_EXISTS

The group cannot be added because it already exists in the GroupSet.

0x00000428

ERROR_EXCEPTION_IN_SERVICE

An exception occurred in the service when handling the control request.

0x0000139F

ERROR_INVALID_STATE

The group or resource is not in the correct state to perform the requested operation.

0x000013D1

ERROR_CLUSTER_NODE_SHUTTING_DOWN

The cluster node is shutting down in cluster group set represented by GroupSet.

0x00001767

ERROR_GROUPSET_NOT_AVAILABLE

The group represented in the GroupSet parameter is not part of the nonvolatile cluster state.

0x00001768

ERROR_GROUPSET_NOT_FOUND

The cluster group set represented by the GroupSet parameter is not available for any further requests.

For any other condition, the server MUST set rpc_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 3.2.4.6.

If at the time the server receives the request from the client, the group set represented by the GroupSet parameter is not part of the nonvolatile cluster state, the server MUST return ERROR_GROUPSET_NOT_AVAILABLE.

If the server determines that the group set represented by the GroupSet parameter has already been deleted, the server MUST return ERROR_GROUPSET_NOT_FOUND. This is determined while communicating with other servers to delete the group from the nonvolatile cluster state. The manner of determination is implementation-specific.

If UseDomains is TRUE, the server MUST add the Group to UpdateDomain and FaultDomain.