Go to main content

Reference for Oracle Solaris Cluster 4.4

Exit Print View

Updated: August 2018
 
 

scha_resourcegroup_close (3HA)

Name

scha_resourcegroup_open, scha_resourcegroup_open_zone, scha_resourcegroup_get, scha_resourcegroup_get_zone, scha_resourcegroup_close - resource information access functions

Synopsis

cc [flags…] –I /usr/cluster/include file –L /usr/cluster/lib 
     –l scha#include <scha.h>scha_err_t scha_resourcegroup_open(
     const char *rgname, scha_resourcegroup_t *handle);
scha_err_t scha_resourcegroup_open_zone(
     const char *cluster, const char *rg_name, scha_resourcegroup_t *
     handlep);
scha_err_t scha_resourcegroup_close(scha_resourcegroup_t handle);
scha_err_t scha_resourcegroup_get(scha_resourcegroup_t handle, const char *tag...);
scha_err_t scha_resourcegroup_get_zone(const char *cluster, 
     scha_resourcegroup_t handlep, const char *rg_tag, ...);

Description

The scha_resourcegroup_open(), scha_resourcegroup_get (), and scha_resourcegroup_close() functions are used together to access information about a resource group that is managed by the Resource Group Manager (RGM) cluster facility.

scha_resourcegroup_open() initializes access of the resource group and returns a handle to be used by scha_resourcegroup_get().

The rgname argument names the resource group to be accessed.

The handle argument is the address of a variable to hold the value that is returned by the function.

scha_resourcegroup_get() accesses resource group information as indicated by the tag argument. The tag should be a string value that is defined by a macro in the scha_tags.h header file. Arguments following the tag depend on the value of tag. An additional argument following the tag might be needed to indicate a cluster node from which the information is to be retrieved.

The last argument in the argument list is to be of a type suitable to hold the information indicated by tag. This parameter is the output argument for the resource group information that is to be retrieved. No value is returned for the output argument if the function fails. Memory that is allocated to hold information that is returned by scha_resourcegroup_get() remains intact until scha_resourcegroup_close() is called on the handle that is used for scha_resourcegroup_get().

scha_resourcegroup_close() takes a handle argument that is returned from a previous call to scha_resourcegroup_open(). It invalidates the handle and frees memory that is allocated to return values to scha_resourcegroup_get()calls that were made with the handle. Note that memory, if needed to return a value, is allocated for each get call. Space that is allocated to return a value in one call is not overwritten or reused by subsequent calls.

The scha_resourcegroup_open_zone()and scha_resourcegroup_get_zone() functions serve the same purpose as scha_resourcegroup_open() and scha_resourcegroup_get() respectively, with an additional cluster argument specifying the name of a zone cluster in which the resource groups exist and on which you want to operate. These functions are useful when code is executed in the global zone but needs to operate on a specified zone cluster. They cannot be used within a zone cluster to access a different zone cluster.

If the cluster argument to scha_resourcegroup_open_zone () or scha_resourcegroup_get_zone() is NULL, the query is performed on the cluster within which the call is executed; in other words, the call with NULL argument is equivalent to scha_resourcegroup_open() or scha_resourcegroup_get (), respectively.

To close the handle returned by scha_resourcegroup_open_zone(), use scha_resourcegroup_close(). No cluster argument is required.

Macros That You Can Use for tag Arguments

You can use the following macros that are defined in scha_tags.h as tag arguments to the scha_resourcegroup_get() function. These macros name resource group properties. The value of the property of the resource group is generated. The RG_STATE property refers to the value on the node where the function is called.

The type of the output argument and any additional arguments are indicated. Structure and enum types are described in the scha_calls(3HA) man page.

SCHA_ALL_LOAD_FACTORS

The output argument type is scha_str_array_t**.

SCHA_ALL_LOAD_FACTOR_NAMES

The output argument type is scha_str_array_t**.

SCHA_DESIRED_PRIMARIES

The output argument type is int*.

SCHA_FAILBACK

The output argument type is boolean_t*.

SCHA_LOAD_FACTOR

The output argument type is int*.

SCHA_GLOBAL_RESOURCES_USED

The output argument type is scha_str_array_t**.

SCHA_IMPL_NET_DEPEND

The output argument type is boolean_t*.

SCHA_MAXIMUM_PRIMARIES

The output argument type is int*.

SCHA_NODELIST

The output argument type is scha_str_array_t**.

SCHA_PATHPREFIX

The output argument type is char**.

SCHA_PINGPONG_INTERVAL

The output argument type is int*.

SCHA_PREEMPTION_MODE

The output argument type is scha_rg_preemption_mode_t*.

SCHA_PRIORITY

The output argument type is int*.

SCHA_RESOURCE_LIST

The output argument type is scha_str_array_t**.

SCHA_RG_AFFINITIES

The output argument type is char**.

SCHA_RG_AUTO_START

The output argument type is boolean_t*.

SCHA_RG_DEPENDENCIES

The output argument type is scha_str_array_t**.

SCHA_RG_DESCRIPTION

The output argument type is char**.

SCHA_RG_IS_FROZEN

The output argument type is boolean_t*.

SCHA_RG_MODE

The output argument type is scha_rgmode_t*.

SCHA_RG_PROJECT_NAME

The output argument type is char**.

SCHA_RG_SLM_CPU

The output argument type is char**.

SCHA_RG_SLM_CPU_MIN

The output argument type is char**.

SCHA_RG_SLM_PSET_TYPE

The output argument type is char**.

SCHA_RG_SLM_TYPE

The output argument type is char**.

SCHA_RG_STATE

The output argument type is scha_rgstate_t*.

SCHA_RG_STATE_NODE

The output argument type is scha_rgstate_t*. An additional argument type is char*. The additional argument names a cluster node and returns the state of the resource group on that node.

SCHA_RG_SUSP_AUTO_RECOVERY

The output argument type is boolean_t*.

SCHA_RG_SYSTEM

The output argument type is boolean_t*.

SCHA_TARGET_NODES

The output argument type is scha_str_array_t**.

Return Values

These functions return the following:

0

The function succeeded.

nonzero

The function failed.

Errors

SCHA_ERR_NOERR

The function succeeded.

See scha_calls(3HA) for a description of other error codes.

Examples

Example 1 Using the scha_resourcegroup_get() Function

The following example uses scha_resourcegroup_get() to get the list of resources in the resource group example_RG.

main() {
   #include <scha.h>

   scha_err_t err;
   scha_str_array_t *resource_list;
   scha_resourcegroup_t handle;
   int ix;

   char * rgname = "example_RG";	

   err = scha_resourcegroup_open(rgname, &handle);

   err = scha_resourcegroup_get(handle, SCHA_RESOURCE_LIST, \
         &resource_list);

   if (err == SCHA_ERR_NOERR) {
    for (ix = 0; ix < resource_list->array_cnt; ix++) {
        printf("Group: %s contains resource %s\n", rgname,
                resource_list->str_array[ix]);
        }
    }

/* resource_list memory freed */
 err = scha_resourcegroup_close(handle);	
}

Files

/usr/cluster/include/scha.h

Include file

/usr/cluster/lib/libscha.so

Library

Attributes

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
ha-cluster/developer/api
Interface Stability
Evolving

See Also

scha_calls(3HA), attributes(7) , clnode(8CL), scha_resourcegroup_get(8HA)