Go to main content

Reference for Oracle Solaris Cluster 4.4

Exit Print View

Updated: August 2018
 
 

scha_resource_get (8HA)

Name

scha_resource_get - access resource information

Synopsis

scha_resource_get [-Q] -O optag -R resource [-Z zone-cluster-name] [args]

Description

The scha_resource_get command accesses information about a resource that is under the control of the Resource Group Manager (RGM). You can use this command to query the properties of the resource's type, as described in rt_properties(7), as well as the properties of the resource, as described in r_properties(7).

Use the scha_resource_get command in shell script implementations of the callback methods for resource types that represent services that are controlled by the cluster's RGM. This command provides the same information as the scha_resource_get() C function. For more information about the scha_resource_get() function, see the scha_resource_open(3HA) man page.

Information is generated by the command to stdout in formatted strings on separate lines, as described in scha_cmds(8HA). The output can be stored in shell variables and parsed by using shell facilities or awk(1) for further use by the script.

You need solaris.cluster.resource.read authorization to use this command. See rbac(7).

You must also be able to assume a role to which the Oracle Solaris Cluster Commands rights profile has been assigned to use this command. Authorized users can issue privileged Oracle Solaris Cluster commands on the command line from the pfsh(1), pfcsh(1), or pfksh(1) profile shell. A profile shell is a special kind of shell that enables you to access privileged Oracle Solaris Cluster commands that are assigned to the Oracle Solaris Cluster Commands rights profile. A profile shell is launched when you run su(8) to assume a role. You can also use pfexec(1) to issue privileged Oracle Solaris Cluster commands.

Options

The following options are supported:

–O optag

Indicates the information to be accessed. Depending on the optag value that you specify, you might need to include an additional value to indicate the cluster node for which information is to be retrieved.


Note -  optag values, such as AFFINITY_TIMEOUT and BOOT_TIMEOUT, are not case sensitive. You can use any combination of uppercase and lowercase letters when you specify optag values.

The following optag values retrieve the corresponding resource properties. The value of the named property of the resource is generated. The NUM_RG_RESTARTS, NUM_RESOURCE_RESTARTS, MONITORED_SWITCH, ON_OFF_SWITCH, RESOURCE_STATE, and STATUS properties refer to the value on the node where the command is executed. See the r_properties(7) man page for descriptions of the resource properties that correspond to the following optag values. Note that some optag values in the following list are described after the list rather than in the r_properties(7) man page.

AFFINITY_TIMEOUT
ALL_EXTENSIONS
APPLICATION_USER
BOOT_TIMEOUT
CHEAP_PROBE_INTERVAL
EXTENSION
EXTENSION_NODE
FAILOVER_MODE
FINI_TIMEOUT
GLOBAL_ZONE_OVERRIDE
GROUP
INIT_TIMEOUT
LOAD_BALANCING_POLICY
LOAD_BALANCING_WEIGHT
SMONITORED_SWITCH
MONITORED_SWITCH_NODE
MONITOR_CHECK_TIMEOUT
MONITOR_START_TIMEOUT
MONITOR_STOP_TIMEOUT
NETWORK_RESOURCES_USED
NUM_RESOURCE_RESTARTS
NUM_RESOURCE_RESTARTS_ZONE
NUM_RG_RESTARTS
NUM_RG_RESTARTS_ZONE
ON_OFF_SWITCH
ON_OFF_SWITCH_NODE
PORT_LIST
POSTNET_STOP_TIMEOUT
PRE_EVICT
PRENET_START_TIMEOUT
RESOURCE_DEPENDENCIES
RESOURCE_DEPENDENCIES_OFFLINE_RESTART
RESOURCE_DEPENDENCIES_RESTART
RESOURCE_DEPENDENCIES_WEAK
RESOURCE_PROJECT_NAME
RESOURCE_STATE
RESOURCE_STATE_NODE
RETRY_COUNT
RETRY_INTERVAL
R_DESCRIPTION
SCALABLE
START_TIMEOUT
STATUS
STATUS_NODE
STOP_TIMEOUT
THOROUGH_PROBE_INTERVAL
TYPE
TYPE_VERSION
UDP_AFFINITY
UPDATE_TIMEOUT
VALIDATE_TIMEOUT
WEAK_AFFINITY

The following optag values are not described in the r_properties(7) man page.

ALL_EXTENSIONS

Generates, on successive lines, the names of all extension properties of the resource.

EXTENSION

Generates the type of property followed by its value, on successive lines. If the property is a per-node extension property, the value that is returned is the value of the property on the node on which scha_resource_get is executed. Requires an unflagged argument that names an extension property of the resource. Shell scripts might need to discard the type to obtain the value, as shown in EXAMPLES.

When a user requests the value of this property on a node for which an explicit value has not been assigned, the default value that is declared in the Resource Type Registration (RTR) file is returned. See the rt_reg(5) man page.

EXTENSION_NODE

Generates the type of property followed by its value, on successive lines, for the named node. This value requires two unflagged arguments, in the following order, that name an extension of the resource on a particular node:

  • Extension property name

  • Node name

Shell scripts might need to discard the type to obtain the value.

When a user requests the value of this property on a node for which an explicit value has not been assigned, the default value that is declared in the RTR file is returned. See the rt_reg(5) man page.

GROUP

Generates the name of the resource group in which the resource is configured.

RESOURCE_DEPENDENCIES_NODE

Generates the value of the resource's RESOURCE_DEPENDENCIES property for the named node. Requires an unflagged argument that names a node.

RESOURCE_DEPENDENCIES_OFFLINE_RESTART_NODE

Generates the value of the resource's RESOURCE_DEPENDENCIES_OFFLINE_RESTART property for the named node. Requires an unflagged argument that names a node.

RESOURCE_DEPENDENCIES_RESTART_NODE

Generates the value of the resource's RESOURCE_DEPENDENCIES_RESTART property for the named node. Requires an unflagged argument that names a node.

RESOURCE_DEPENDENCIES_WEAK_NODE

Generates the value of the resource's RESOURCE_DEPENDENCIES_WEAK property for the named node. Requires an unflagged argument that names a node.

RESOURCE_STATE_NODE

Generates the value of the resource's RESOURCE_STATE property for the named node. Requires an unflagged argument that names a node.

STATUS_NODE

Generates the value of the resource's STATUS property for the named node. Requires an unflagged argument that names a node.

The following optag values retrieve the corresponding resource type properties. The value of the named property of the resource's type is generated.


Note -  optag values, such as API_VERSION and BOOT, are not case sensitive. You can use any combination of uppercase and lowercase letters when you specify optag values.

For descriptions of resource type properties, see rt_properties(7).

API_VERSION
BOOT
FAILOVER
FINI
GLOBAL_ZONE
INIT
INIT_NODES
INSTALLED_NODES
IS_LOGICAL_HOSTNAME
IS_SHARED_ADDRESS
MONITOR_CHECK
MONITOR_START
MONITOR_STOP
PKGLIST
POSTNET_STOP
PRENET_START
PROXY
RT_BASEDIR
RT_DESCRIPTION
RT_SYSTEM
RT_VERSION
SINGLE_INSTANCE
START
STOP
UPDATE
VALIDATE

If this resource's type declares the GLOBAL_ZONE_OVERRIDE resource property, the value that is retrieved by the GLOBAL_ZONE optag is the current value of the GLOBAL_ZONE_OVERRIDE property, rather than the value of the GLOBAL_ZONE property. For more information, see the description of the Global_zone property in the rt_properties(7) man page and the Global_zone_override property in the r_properties(7) man page.

–Q

Include any specified qualifiers in resource dependency lists. The {LOCAL_NODE}, {ANY_NODE}, @nodename, and {FROM_RG_AFFINITIES} qualifiers are described in the r_properties(7) man page. If you omit the –Q option, the returned value of a resource dependency list contains only the resource names for dependencies that are applicable on the local node, without any declared qualifiers.

–R resource

The name of a resource that is being managed by the RGM cluster facility.

–Z zone-cluster-name

Specifies the cluster in which the resource group exists and on which you want to operate. This option is applicable when the command is executed in the global zone but needs to operate on a specified zone cluster. It cannot be used within a zone cluster to access a different zone cluster.

zone-cluster-name

Specifies that the query is to be performed in the zone cluster named zone-cluster-name.

If the –Z option is omitted, the query is performed in the cluster in which the command is executed.

Examples

Example 1 Sample Script That Uses the scha_resource_get Command

The following script is passed the –R argument, which provides the required resource name. Next, the scha_resource_get command accesses the Retry_count property of the resource and the enum-type LogLevel extension property of the resource.

#!/bin/sh

while getopts R: opt
do
     case $opt in
           R)      resource="$OPTARG";;
     esac
done

retry_count=$(scha_resource_get -O Retry_count -R $resource)
printf "retry count for resource %s is %d\n" $resource $retry_count

LogLevel_info=$(scha_resource_get -O Extension -R $resource LogLevel)

# Get the enum value that follows the type information
# of the extension property.  Note that the preceding
# assignment has already changed the newlines separating
# the type and the value to spaces for parsing by awk.

loglevel=$(echo $LogLevel_info | awk '{print $2}')
Example 2 Using the scha_resource_get Command With and Without the –Q Option to Query Resource Dependencies

This example shows how to use the clresource command to create a resource named myres, with several resource dependencies that have a {LOCAL_NODE} scope qualifier, a {ANY_NODE} scope qualifier, or no scope qualifier. This example then shows how to use the scha_resource_get command to query the Resource_dependencies property. Without the –Q option, only resource names are returned. With the –Q option, the declared scope qualifiers are returned as well.

# clresource create -g mygrp -t myrestype \
-p Resource_dependencies=myres2{LOCAL_NODE},myres3{ANY_NODE},myres4 \
myres
# scha_resource_get -O Resource_dependencies -R myres
myres2
myres3
myres4
# scha_resource_get -Q -O Resource_dependencies -R myres
myres2{LOCAL_NODE}
myres3{ANY_NODE}
myres4
# 
Example 3 Viewing Resource Dependency Properties

The following example shows how to use the scha_resource_get command to retrieve a per-node resource dependency that is dependent on two different logical hostname resources. To set a per-node resource dependency, you must use the clresource set command. The example uses a scalable resource called gds-rs and sets the dependency of gds-rs on schost-3-rs on phys-schost-1 and schost-4-rs on phys-schost-2.

From the phys-schost-1 node:

phys-schost-1(/root)$ scha_resource_get -O RESOURCE_DEPENDENCIES -R gds-rs

schost-3-rs
phys-schost-1(/root)$ scha_resource_get -O RESOURCE_DEPENDENCIES_NODE -R gds-rs phys-schost-1

schost-3-rs
phys-schost-1(/root)$ scha_resource_get -O RESOURCE_DEPENDENCIES_NODE -R gds-rs phys-schost-2

schost-4-rs
phys-schost-1(/root)$ scha_resource_get -Q -O RESOURCE_DEPENDENCIES -R gds-rs

schost-3-rs@phys-schost-1
schost-4-rs@phys-schost-2
phys-schost-1(/root)$ scha_resource_get -O NETWORK_RESOURCES_USED -R gds-rs

schost-3-rs

From the phys-schost-1 node:

phys-schost-2(/root)$ scha_resource_get -O RESOURCE_DEPENDENCIES -R gds-rs

schost-4-rs
phys-schost-2(/root)$ scha_resource_get -O RESOURCE_DEPENDENCIES_NODE -R gds-rs phys-schost-1

schost-3-rs
phys-schost-2(/root)$ scha_resource_get -O RESOURCE_DEPENDENCIES_NODE -R gds-rs phys-schost-2

schost-4-rs
phys-schost-2(/root)$ scha_resource_get -Q -O RESOURCE_DEPENDENCIES -R gds-rs

schost-3-rs@phys-schost-1
schost-4-rs@phys-schost-2
phys-schost-2(/root)$ scha_resource_get -O NETWORK_RESOURCES_USED -R gds-rs

schost-4-rs

Exit Status

The following exit status codes are returned:

0

The command completed successfully.

nonzero

An error occurred.

Failure error codes are described in scha_calls(3HA).

Attributes

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

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

See Also

awk(1), scha_calls(3HA), scha_resource_open(3HA), rt_reg(5), attributes(7), property_attributes(7), r_properties(7), rt_properties(7), scha_cmds(8HA)