Man Linux: Main Page and Category List

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)