Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

gendlib (3)

Name

gendlib - perl library for querying genders file

Synopsis

require ``/usr/lib/genders/gendlib.pl'';

Description

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)