Provided by: libgenders-perl_1.20-1build1_amd64 bug

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 specified, 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 specified, 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  specified  attribute  and  value  are
              returned.   If  no  attribute is specified, 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  specified,  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 convert 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 output.

       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.

SEE ALSO

       nodeattr(1), libgenders(3), Libgenders(3)