libpowerman man page on DragonFly

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

libpowerman(3)			   powerman			libpowerman(3)

NAME
       libpowerman - PowerMan Client API

SYNOPSIS
       #include <libpowerman.h>

       pm_err_t pm_connect (char *server, void *arg, pm_handle_t *hp,
			    int flags);

       void pm_disconnect (pm_handle_t h);

       pm_err_t pm_node_on (pm_handle_t h, char *node);

       pm_err_t pm_node_off (pm_handle_t h, char *node);

       pm_err_t pm_node_cycle (pm_handle_t h, char *node);

       pm_err_t pm_node_status (pm_handle_t h, char *node,
				pm_node_state_t sp);

       pm_err_t pm_node_iterator_create (pm_handle_t h,
					 pm_node_iterator_t *ip);

       void pm_node_iterator_destroy (pm_node_iterator_t i);

       char * pm_node_next (pm_node_iterator_t i);

       void pm_node_iterator_reset (pm_node_iterator_t i);

       char * pm_strerror (pm_err_t err, char * str, int len);

       cc ... -lpowerman


DESCRIPTION
       The  pm_connect()  function  establishes	 a  connection	with server, a
       string containing host[:port] or NULL for defaults; and returns a  han‐
       dle  in hp.  The arg parameter is currently unused. The flags parameter
       should be zero or one or more logically-OR'ed flags:

       PM_CONN_INET6
	      Establish connection to the powerman server  using  (only)  IPv6
	      protocol.	  Without this flag, any available address family will
	      be used.

       The pm_disconnect() function tears down the server connection and frees
       storage associated with handle h.

       The  pm_node_on(),  pm_node_off(),  and pm_node_cycle() functions issue
       on, off, and cycle commands acting on node to the server on handle h.

       The pm_node_status() function issues a status query acting on  node  to
       the  server  on	handle h.  The result is resturned in sp which will be
       one of the values:

       PM_ON  Node is powered on.

       PM_OFF Node is powered off.

       PM_UNKNOWN
	      Node state is unknown.  Some devices may return this  even  when
	      the  query  is successful, for example X10 devices controlled by
	      plmpower.

       To use the above functions you must know the name of the node you  wish
       to  control.   Calling pm_node_iterator_create() on handle h returns an
       iterator ip which can be used to walk the list  of  valid  node	names.
       pm_node_next()  returns the next node in the list, or NULL when the end
       of the list is reached.	pm_node_iterator_reset() rewinds iterator i to
       the   beginning	 of  the  list.	  Finally,  pm_node_iterator_destroy()
       destroys an iterator and reclaims its storage.

RETURN VALUE
       Most functions have a return type of pm_err_t.  pm_strerror() is avail‐
       able  to	 convert  an  error  code err to a human-readable string using
       storage str of length len passed in by the caller.

ERRORS
       PM_ESUCCESS
	      Success.

       PM_ERRNOVALID
	      System call failed, see system errno.

       PM_ENOADDR
	      Failed to get address info for server.

       PM_ECONNECT
	      Connect failed.

       PM_ENOMEM
	      Out of memory.

       PM_EBADHAND
	      Bad server handle.

       PM_EBADARG
	      Bad argument.

       PM_ESERVEREOF
	      Received unexpected EOF from server.

       PM_ESERVERPARSE
	      Received unexpected response from server.

       PM_EUNKNOWN
	      Server responded with ``unknown command''.

       PM_EPARSE
	      Server responded with ``parse error''.

       PM_ETOOLONG
	      Server responded with ``command too long''.

       PM_EINTERNAL
	      Server responed with ``internal error''.

       PM_EHOSTLIST
	      Server responded with ``hostlist error''.

       PM_EINPROGRESS
	      Server responded with ``command in progress''.

       PM_ENOSUCHNODES
	      Server responded with ``no such nodes''.

       PM_ECOMMAND
	      Server responded with ``command completed with errors''.

       PM_EQUERY
	      Server responded with ``query completed with errors''.

       PM_EUNIMPL
	      Server responded with ``not implemented by device''.

EXAMPLE
       This example program queries the list of valid nodes and turns them all
       on.

       #include <stdio.h>
       #include <stdlib.h>
       #include <libpowerman.h>

       int
       main(int argc, char *argv[])
       {
	   pm_err_t err;
	   pm_node_state_t s;
	   pm_handle_t h;
	   pm_node_iterator_t i;
	   char ebuf[64], *node;

	   if ((err = pm_connect (NULL, NULL, &h, 0)) != PM_ESUCCESS) {
	       fprintf (stderr, "pm_connect: %s\n",
		       pm_strerror (err, ebuf, sizeof (ebuf)));
	       exit(1);
	   }

	   if ((err = pm_node_iterator_create (h, &i)) != PM_ESUCCESS) {
	       fprintf (stderr, "pm_node_iterator_create: %s\n",
		       pm_strerror (err, ebuf, sizeof (ebuf)));
	       exit(1);
	   }
	   while ((node = pm_node_next (i))) {
	       if ((err = pm_node_on (h, node)) != PM_ESUCCESS) {
		   fprintf (stderr, "pm_node_on: %s\n",
			   pm_strerror (err, ebuf, sizeof(ebuf)));
		   exit (1);
	       }
	   }
	   pm_node_iterator_destroy (i);

	   pm_disconnect (h);
	   exit (0);
       }

FILES
       /usr/local/lib/libpowerman.*
       /usr/local/include/libpowerman.h

ORIGIN
       PowerMan	 was  originally  developed  by Andrew Uselton on LLNL's Linux
       clusters.  This software is open source and distributed under the terms
       of the GNU GPL.

SEE ALSO
       powerman(1),  powermand(8),  httppower(8), plmpower(8), vpcd(8), power‐
       man.conf(5), powerman.dev(5).

       http://code.google.com/p/powerman

powerman-2.3.20			  2014-08-26			libpowerman(3)
[top]

List of man pages available for DragonFly

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