bionic (3) gendlib.3.gz

Provided by: libgenders-perl_1.21-1build5_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)