gendlib - perl library for querying genders file
require ``/usr/lib/genders/gendlib.pl'';
GENDLIB(3) GENDLIB GENDLIB(3)
NAME
gendlib - perl library for querying genders file
SYNOPSIS
require ``/usr/lib/genders/gendlib.pl'';
DESCRIPTION
This package contains common functions for manipulating the genders
file. Previously this code existed only in the nodeattr command, but
applications that must repeatedly call nodeattr would spend a great
deal of time reading and parsing the genders file. These functions
create an in-memory cache of genders on the first call; subsequent
calls need only reference the in-memory copy and are thus speeded up.
Initialization:
Genders::init([$path_genders])
Function normally called internally for initialization. It can
be called externally with a non-default genders file path and
subsequent operations will use this non-default data. May be
called more than once to change genders file.
Simple Queries:
Genders::hasattr($attribute, [$node])
Return 1 if node has attribute, 0 if not. If node is not speci-
fied, use local node.
Genders::getattrval($attribute, [$node])
Return value of attribute held by node, or empty string if no
value or node does not have attribute. If node is not speci-
fied, use local node.
Genders::getnode([$attribute])
Return a list of nodes having the specified attribute. If a
value is also specified ("attr=val"), only nodes with the speci-
fied attribute and value are returned. If no attribute is spec-
ified, getnode returns all the nodes listed in the genders file.
Genders::getattr([$node])
Return a list of attributes held by node. If node is not speci-
fied, use local node.
Complex Queries:
Genders::getallattr()
Return a list of all attributes in the genders file (one cluster
only).
Genders::get_node_hash(\%node)
Get a copy of hash of attributes to node lists for the current
cluster (a "hash of lists"). Ensure that keys exist for all
possible attributes across clusters (though they may point to
empty lists).
Genders::get_clusters()
Return a list with the local cluster name as the first and only
element. get_clusters() returns a list instead of a scalar for
backwards compatability. If the local cluster name is not
known, null is returned.
Genders::gendexp($exp, [$node])
Evaluate expression involving genders attributes and return the
result of the evaluation. Any legal perl expresion using
numeric constants, genders attributes (which are converted into
$variables), and the following operators is valid: !, ||, &&,
*, +, -, /. If $node is not specified, assume the local host.
Conversion:
Genders::to_altnames()
Given a list of hostnames as they appear in the genders file,
return a list of alternate names. On the SP, genders names are
assumed to be the initial_hostnames, and we use the SDR to con-
vert to reliable_hostnames. On other systems, we look for the
value of the altname attribute in the genders file. If the
input hostname cannot be converted, it is preserved in the out-
put.
Genders::to_gendnames()
Performs the inverse of the to_altnames() function. Just like
to_altnames(), an input hostname is preserved in the output if
it cannot be converted.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+---------------+-----------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-----------------------+
|Availability | library/libgenders |
+---------------+-----------------------+
|Stability | Pass-through volatile |
+---------------+-----------------------+
SEE ALSO
nodeattr(1), libgenders(3), Libgenders(3)
NOTES
Source code for open source software components in Oracle Solaris can
be found at https://www.oracle.com/downloads/opensource/solaris-source-
code-downloads.html.
This software was built from source available at
https://github.com/oracle/solaris-userland. The original community
source was downloaded from https://github.com/chaos/genders/ar-
chive/refs/tags/genders-1-28-1.tar.gz.
Further information about this software can be found on the open source
community website at https://github.com/chaos/genders.
LLNL 10/10/97 GENDLIB(3)