125 lines
4.6 KiB
Plaintext
Executable File
125 lines
4.6 KiB
Plaintext
Executable File
.\"############################################################################
|
|
.\" $Id: genders_query.3,v 1.14 2010-02-02 00:04:34 chu11 Exp $
|
|
.\"############################################################################
|
|
.\" Copyright (C) 2007-2019 Lawrence Livermore National Security, LLC.
|
|
.\" Copyright (C) 2001-2007 The Regents of the University of California.
|
|
.\" Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
|
.\" Written by Jim Garlick <garlick@llnl.gov> and Albert Chu <chu11@llnl.gov>.
|
|
.\" UCRL-CODE-2003-004.
|
|
.\"
|
|
.\" This file is part of Genders, a cluster configuration database.
|
|
.\" For details, see <http://www.llnl.gov/linux/genders/>.
|
|
.\"
|
|
.\" Genders is free software; you can redistribute it and/or modify it under
|
|
.\" the terms of the GNU General Public License as published by the Free
|
|
.\" Software Foundation; either version 2 of the License, or (at your option)
|
|
.\" any later version.
|
|
.\"
|
|
.\" Genders is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
.\" WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
.\" FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
.\" details.
|
|
.\"
|
|
.\" You should have received a copy of the GNU General Public License along
|
|
.\" with Genders. If not, see <http://www.gnu.org/licenses/>.
|
|
.\"############################################################################
|
|
.TH GENDERS_QUERY 3 "June 2004" "LLNL" "LIBGENDERS"
|
|
.SH NAME
|
|
genders_query \- query genders database for a set of nodes
|
|
.SH SYNOPSIS
|
|
.B #include <genders.h>
|
|
.sp
|
|
.BI "int genders_query(genders_t handle, char *nodes[], int len, const char *query);"
|
|
.br
|
|
.SH DESCRIPTION
|
|
\fBgenders_query()\fR queries the genders database for a set of nodes
|
|
based on the union, intersection, difference, or complement of genders
|
|
attributes and values. The query for a set of nodes is passed as a
|
|
string through the \fIquery\fR parameter. The set operation union is
|
|
represented by two pipe symbols ('||'), intersection by two ampersand
|
|
symbols ('&&'), difference by two minus symbols ('--'), and complement
|
|
by a tilde ('~'). Set operations are performed left to right.
|
|
Parentheses may be used to change the order of operations. A list of
|
|
query examples are listed below. A NULL query retrieves all nodes
|
|
from the genders database.
|
|
|
|
The nodes from the query are stored in the list pointed to
|
|
by \fInodes\fR. \fIlen\fR indicates the number of nodes that can be
|
|
stored in the list.
|
|
|
|
To avoid passing in a list that is not large enough to store all the
|
|
nodes,
|
|
.BR genders_getnumnodes (3)
|
|
should be used to determine the minimum number of elements \fInodes\fR
|
|
should be able to store.
|
|
.BR genders_nodelist_create (3)
|
|
could be used to create a list that is guaranteed to be large enough
|
|
to store all of the nodes.
|
|
.br
|
|
.SH EXAMPLES
|
|
The following are example queries that can be
|
|
passed to \fBgenders_query()\fR.
|
|
.LP
|
|
Determine the set of nodes with the mgmt or login attribute:
|
|
"mgmt||login"
|
|
.LP
|
|
Determine the set of nodes that are not login nodes:
|
|
"all--login"
|
|
.LP
|
|
Determine the set of nodes that both login nodes and ntp servers:
|
|
"login&&ntpserv"
|
|
.LP
|
|
Determine the set of nodes that are not mgmt or login nodes:
|
|
"~(mgmt||login)"
|
|
.SH RETURN VALUES
|
|
On success, the number of nodes stored in \fInodes\fR is returned. On
|
|
error, -1 is returned, and an error code is returned in \fIhandle\fR.
|
|
The error code can be retrieved via
|
|
.BR genders_errnum (3)
|
|
, and a description of the error code can be retrieved via
|
|
.BR genders_strerror (3).
|
|
Error codes are defined in genders.h.
|
|
.br
|
|
.SH ERRORS
|
|
.TP
|
|
.B GENDERS_ERR_NULLHANDLE
|
|
The \fIhandle\fR parameter is NULL. The genders handle must be
|
|
created with
|
|
.BR genders_handle_create (3).
|
|
.TP
|
|
.B GENDERS_ERR_NOTLOADED
|
|
.BR genders_load_data (3)
|
|
has not been called to load genders data.
|
|
.TP
|
|
.B GENDERS_ERR_OVERFLOW
|
|
The list pointed to by \fInodes\fR is not large enough to store all
|
|
the nodes.
|
|
.TP
|
|
.B GENDERS_ERR_PARAMETERS
|
|
An incorrect parameter has been passed in.
|
|
.TP
|
|
.B GENDERS_ERR_SYNTAX
|
|
There is a syntax error in the query.
|
|
.TP
|
|
.B GENDERS_ERR_OUTMEM
|
|
.BR malloc (3)
|
|
has failed internally, system is out of memory.
|
|
.TP
|
|
.B GENDERS_ERR_NULLPTR
|
|
A null pointer has been found in the list passed in.
|
|
.TP
|
|
.B GENDERS_ERR_MAGIC
|
|
\fIhandle\fR has an incorrect magic number. \fIhandle\fR does not
|
|
point to a genders handle or \fIhandle\fR has been destroyed by
|
|
.BR genders_handle_destroy (3).
|
|
.TP
|
|
.B GENDERS_ERR_INTERNAL
|
|
An internal system error has occurred.
|
|
.br
|
|
.SH FILES
|
|
/usr/include/genders.h
|
|
.SH SEE ALSO
|
|
libgenders(3), genders_handle_create(3), genders_load_data(3),
|
|
genders_getnumnodes(3), genders_nodelist_create(3), genders_errnum(3),
|
|
genders_strerror(3)
|