clu_get_info man page on Tru64

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
Tru64 logo
[printable version]

clu_info(3)							   clu_info(3)

NAME
       clu_info,     clu_get_info,     clu_free_info,	 clu_get_memb_by_name,
       clu_get_memb_by_id, clu_free_memb - Gets information  about  a  cluster
       and its members

SYNOPSIS
       #include <sys/clu.h>

       int clu_info(
	       int clu_info_type,
	       ...  ); int clu_info(
	       CLU_INFO_MEMBSTATE,
	       size_t memb_array_size,
	       char *member_array ); int clu_info(
	       CLU_INFO_LIMITS,
	       struct clu_limits *limits ); int clu_info(
	       CLU_INFO_CLU_NAME,
	       char *name,
	       size_t size ); int clu_info(
	       CLU_INFO_INTERNAME_BY_ID,
	       memberid_t memberid,
	       char *intername,
	       size_t size ); int clu_info(
	       CLU_INFO_INTERNAME_BY_NAME,
	       char *hostname,
	       char *intername,
	       size_t size ); int clu_info(
	       CLU_INFO_HOSTNAME_BY_ID,
	       memberid_t memberid,
	       char *hostname_out,
	       size_t size ); int clu_info(
	       CLU_INFO_NODENAME_BY_ID,
	       memberid_t memberid,
	       char *nodename,
	       size_t size ); int clu_info(
	       CLU_INFO_NODENAME_BY_NAME,
	       char *hostname,
	       char *nodename,
	       size_t size ); int clu_info(
	       CLU_INFO_MEMBERID_BY_NAME,
	       char *hostname,
	       memberid_t *memberid_out ); int clu_info(
	       CLU_INFO_MEMBLIST,
	       char **namelist,
	       size_t *array_size,
	       size_t name_length ); int clu_info(
	       CLU_INFO_MY_ID,
	       memberid_t *my_memberid ); int clu_get_info(
	       struct clu_gen_info **clu_gen_ptr ); void clu_free_info(
	       struct clu_gen_info **clu_gen_ptr ); int clu_get_memb_by_name(
	       char *hostname,
	       struct	   clu_member_info	**clu_memb_ptr	    );	   int
       clu_get_memb_by_id(
	       memberid_t memberid,
	       struct clu_member_info **clu_memb_ptr ); int clu_free_memb(
	       struct clu_member_info **clu_memb_ptr );

LIBRARY
       Cluster Library (libclu)

PARAMETERS
       One of the information constants defined in <sys/clu.h>: CLU_INFO_MEMB‐
       STATE,  CLU_INFO_LIMITS,	 CLU_INFO_CLU_NAME,  CLU_INFO_INTERNAME_BY_ID,
       CLU_INFO_INTERNAME_BY_NAME,   CLU_INFO_HOSTNAME_BY_ID,	CLU_INFO_NODE‐
       NAME_BY_ID,    CLU_INFO_NODENAME_BY_NAME,    CLU_INFO_MEMBERID_BY_NAME,
       CLU_INFO_MEMBLIST, CLU_INFO_MY_ID. These constants specify the type  of
       cluster	query  being  made.  Number of elements in the namelist array.
       String containing the host name used to specify the cluster member  for
       which  to  retrieve  information.  Pointer to a caller-allocated buffer
       that holds a string, which clu_info() fills with the host name  of  the
       specified  member.   Pointer  to a caller-allocated buffer that holds a
       string, which clu_info() fills with  the	 interconnect  host  name.   A
       caller-allocated	 structure of type struct clu_limits, which clu_info()
       will fill with the minimum supported member ID, the  maximum  supported
       member  ID,  and	 the maximum supported number of members in a cluster.
       Number of elements in the member_array array.   Pointer	to  a  caller-
       allocated  character  array  that will hold information about each mem‐
       ber's state. The size of the array should be CLU_MAX_MEMBERID + 1.  The
       element	of  the array that matches the member ID of a member will con‐
       tain   that   member's	current	  state:    CLU_MEMB_NOT_CONF	 (-1),
       CLU_MEMB_CONF_DOWN  (0),	 or  CLU_MEMB_CONF_UP  (1).  For example, mem‐
       ber_array[2] will contain the state of member  2.   Member  ID  of  the
       cluster	member	for which to retrieve information.  Pointer to a vari‐
       able of type memberid_t which will be set to the member ID of the spec‐
       ified  member.	Pointer to a variable of type memberid_t which will be
       set to the member ID of the running cluster member.  Pointer to a call‐
       er-allocated  buffer  that  holds  a string, which clu_info() will fill
       with the cluster name.  Pointer to a caller-allocated array  that  will
       hold  the  host	names of all members in the cluster.  The caller-allo‐
       cated size of each string element of namelist.  Pointer	to  a  caller-
       allocated  buffer  that holds a string, which clu_info() fills with the
       Connection Manager (CNX) node name of the specified member.   The  size
       of the member array, member_array.  Address of a pointer to a structure
       of type struct clu_gen_info, which clu_get_info() will load with	 clus‐
       ter  information. (Use clu_free_info() to free the memory allocated for
       the structure.)	Address of a pointer to a  structure  of  type	struct
       clu_member_info,	 which clu_get_memb_by_name() and clu_get_memb_by_id()
       will load with specific member  information.  (Use  clu_free_memb()  to
       free the memory allocated for the structure.)

DESCRIPTION
       When called from a member of a cluster, the clu_info() function returns
       specific cluster status information  when  the  following  options  are
       specified: CLU_INFO_MEMBSTATE - returns the following information about
       each  cluster  member's	 state:	  up,	down,	or   not   configured.
       CLU_INFO_LIMITS	-  returns the following information on member IDs and
       supported members: Minimum supported member ID Maximum supported member
       ID Maximum supported number of members in a cluster CLU_INFO_CLU_NAME -
       returns the cluster name.  CLU_INFO_INTERNAME_BY_ID - returns the clus‐
       ter interconnect host name given a specific member ID.  CLU_INFO_INTER‐
       NAME_BY_NAME - returns the cluster interconnect host name given a  spe‐
       cific  host  name.   CLU_INFO_MEMBERID_BY_NAME  - returns the member ID
       given a specific host name.  CLU_INFO_HOSTNAME_BY_ID - returns the mem‐
       ber  host  name	given a specific member ID.  CLU_INFO_NODENAME_BY_ID -
       returns the Connection Manager (CNX) node name given a specific	member
       ID.  CLU_INFO_NODENAME_BY_NAME - returns the CNX node name given a spe‐
       cific host name.	 CLU_INFO_MEMBLIST - returns a list of host names  for
       all members in the cluster.  CLU_INFO_MY_ID - returns the member ID for
       the member on which it is run.

       When called from a member of a  cluster,	 the  clu_get_info()  function
       returns	a  structure  containing general information about the cluster
       and its members. The information includes: The name of the cluster  and
       the  number  of members configured in the cluster.  The device name and
       number of votes of the quorum disk, if configured.   For	 each  member,
       its  member  ID,	 host  name, cluster interconnect IP name, and current
       state (UP or DOWN).

       When  called  from  a  system  that  is	not  a	cluster	 member,   the
       clu_get_info() function returns -1 (CLU_NOT_CONFIGURED).

       If  a  member of the cluster is down, or a member's /etc/rc.config file
       contains illegal values, the values returned by string pointers can  be
       NULL.

       Note  that  the clu_get_info function does not require allocated struc‐
       tures. While the clu_info function accepts pointers to caller-allocated
       structures, the clu_get_info function accepts a pointer to a structure.

       The   clu_free_info()   function	 frees	the  memory  allocated	for  a
       clu_gen_info  structure.	 The  clu_gen_info  structure  is  defined  in
       <sys/clu.h>.

       Use  the	 clu_get_memb_by_name()	 and clu_get_memb_by_id() functions to
       return information about a cluster member.  The	clu_get_memb_by_name()
       function returns a structure containing the host name of a cluster mem‐
       ber, while the clu_get_memb_by_id() function returns a  structure  con‐
       taining the member ID of a cluster member.

       The  clu_free_memb() function frees the memory allocated for a clu_mem‐
       ber_info	 structure.  The  clu_member_info  structure  is  defined   in
       <sys/clu.h>.

RETURN VALUES
       The clu_get_info() and clu_free_info() functions return one of the fol‐
       lowing values: Successful completion.  System is not configured	to  be
       in  a  cluster.	 Called	 from  a  system that is not a cluster member.
       There is no memory for the interface.  Cannot determine	the  value  of
       the  sysconfigtab  memberid attribute.  Cannot query Connection Manager
       (CNX) subsystem.	 The input to member_array is not large enough.

       The  clu_info(),	 clu_get_memb_by_name(),   clu_get_memb_by_id(),   and
       clu_free_memb()	functions return one of the following values: Success‐
       ful completion.	The operation was unsuccessful.	 Check errno to deter‐
       mine the error.

EXAMPLES
       The  following  code  fragments	show typical calling sequences for the
       clu_info() options:

       CLU_INFO_MEMBSTATE:

       size_t size = 256; char marray[256]; clu_info(CLU_INFO_MEMBSTATE, size,
       marray);

       CLU_INFO_LIMITS:

       struct clu_limits limits; clu_info(CLU_INFO_LIMITS, &limits);

       CLU_INFO_CLU_NAME:

       char	name[MAXHOSTNAMELEN];	  clu_info(CLU_INFO_CLU_NAME,	 name,
       sizeof(name));

       CLU_INFO_INTERNAME_BY_ID:

       memberid_t    memberid	 =    2;    char    intername[MAXHOSTNAMELEN];
       clu_info(CLU_INFO_INTERNAME_BY_ID,  memberid,  intername, sizeof(inter‐
       name));

       CLU_INFO_INTERNAME_BY_NAME:

       char   *hostname	  =   "my_member";   char   intername[MAXHOSTNAMELEN];
       clu_info(CLU_INFO_INTERNAME_BY_NAME, hostname, intername, sizeof(inter‐
       name));

       CLU_INFO_MEMBERID_BY_NAME:

       char    *hostname    =	 "my_member";	  memberid_t	 memberid_out;
       clu_info(CLU_INFO_MEMBERID_BY_NAME, hostname, &memberid_out);

       CLU_INFO_HOSTNAME_BY_ID:

       memberid_t    memberid	 =   2;	  char	 hostname_out[MAXHOSTNAMELEN];
       clu_info(CLU_INFO_HOSTNAME_BY_ID, memberid, hostname_out,  sizeof(host‐
       name_out));

       CLU_INFO_NODENAME_BY_ID:

       memberid_t     memberid	  =    2;    char    nodename[MAXHOSTNAMELEN];
       clu_info(CLU_INFO_NODENAME_BY_ID,  memberid,   nodename,	  sizeof(node‐
       name));

       CLU_INFO_NODENAME_BY_NAME:

       char    *hostname   =   "my_member";   char   nodename[MAXHOSTNAMELEN];
       clu_info(CLU_INFO_NODENAME_BY_NAME,  hostname,  nodename,  sizeof(node‐
       name));

       CLU_INFO_MEMBLIST:

       struct	clu_limits  limits;  char  **namelist;	size_t	size;  int  i;
       clu_info(CLU_INFO_LIMITS, &limits); size = limits.max_membid;  namelist
       = (char **)calloc(size,sizeof(char *)); for(i=0;i<size;i++) {
	   namelist[i] = (char *)calloc(MAXHOSTNAMELEN,sizeof(char));
	   namelist[i][0]   =  ' ';  }	clu_info(CLU_INFO_MEMBLIST,  namelist,
       &size, MAXHOSTNAMELEN);

       CLU_INFO_MY_ID:

       memberid_t my_memberid; clu_info(CLU_INFO_MY_ID, &my_memberid);

       The following code fragment shows a typical calling  sequence  for  the
       clu_get_info() function:

       #include <sys/clu.h>

       int retval = 0; int i = 0; struct clu_gen_info *clugenptr;

       clugenptr = NULL;

       retval = clu_get_info(&clugenptr);

       switch (retval) {
	   case 0: break;
	   case CLU_NOT_MEMBER:
	   case CLU_NO_CLUSTER_NAME:
	   case CLU_NO_MEMBERID:
	   case CLU_CNX_ERROR:
	     fprintf(stderr, "clu_get_info error0);
	     exit(1);
	   default:
	     exit(1);
	   }

       if (clugenptr == NULL)
	   exit(1);

       for (i = 0; i <= clugenptr->clu_num_of_members -1; i++) {
	   /* print or use the returned info; for example: */
	   printf("member hostname is %s0, clugenptr->memblist[i].hostname);
	   }

       clu_free_info(&clugenptr);

       The  following  code  fragment shows a typical calling sequence for the
       clu_get_memb_by_id() function (clu_get_memb_by_name() is similar):

       #include <sys/clu.h> #include <errno.h>

       memberid_t memberid = 2; struct clu_member_info *membinfo  =  NULL;  if
       (clu_get_memb_by_id(2, &membinfo)) {
	   fprintf(stderr, "Error! Return code of %d0, errno);
	   exit(1);   }	  printf("Member   cluster   version   is   %s0,  mem‐
       binfo->clu_version); clu_free_memb(&membinfo);

FILES
       Run-time configuration file for each cluster member.

SEE ALSO
       Commands: clu_get_info(8)

       Files: rc.config(8)

								   clu_info(3)
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server Tru64

List of man pages available for Tru64

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net