Skip Navigation Links
Exit Print View
| Oracle Solaris Cluster Reference Manual Oracle Solaris Cluster 4.1

Search Scope:

- This Document
- Entire Library

### 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*`.

## 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\
    ", 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`(5) for descriptions of the following attributes:

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

## See Also

`clnode`(1CL), `scha_resourcegroup_get`(1HA) , `scha_calls`(3HA), `attributes`(5)

Copyright © 2000, 2012, Oracle and/or its affiliates. All rights reserved. Legal Notices |