This is an implementation of the Service Availability Forum's Hardware Platform Interface B.03 specification. The following components are supported: * OpenHPI base library * OpenHPI utility functions * OpenHPI Daemon * HPI Client programs and HPI shell * Simulator Plugin * Dynamic Simulator Plugin * Slave Plugin * Test Agent Plugin * IMPI Direct Plugin * SNMP BladeCenter/RSA Plugin * iLO2 RIBCL Plugin * SOAP/XML BladeSystem c-Class Plugin * Oneview/REST Synergy Plugin * rtas Plugin * sysfs Plugin * watchdog Plugin Feedback, as always, is welcome and encouraged: openhpi-devel@lists.sourceforge.net --------------------------------------------------------- PREREQUISITES --------------------------------------------------------- The following software is required to build openhpi autoconf >= 2.57 automake >= 1.8 gcc >= 3.2.0 glib2 >= 2.12 gcrypt >= 1.4 pkgconfig (may be called pkg-config depending on distro) The follow libraries are needed to build certain plugins sysfs plugin libsysfs =< 1.3 snmp_bc plugin net-snmp >= 5.07 libuuid (may be found in e2fsprogs or libuuid depending on distro) oa_soap plugin libssl >= 0.9.7 libxml2 ov_rest plugin librabbitmq >= 0.8.0 json-c-devel libcurl-devel ipmi plugin OpenIPMI >= 1.4.20 (http://openipmi.sf.net) --------------------------------------------------------- RPM BUILD NOTE --------------------------------------------------------- The library libuuid.so can be provided with e2fsprogs RPM or with libuuid RPM. And the header file uuid.h can be provided with e2fsprogs-devel RPM or with libuuid-devel RPM correspondingly. The default RPM spec for openhpi is configured for the first case libuuid/libuuid-devel. If your distribution falls into the second case just change uuid_provider in openhpi.spec.in before running ./configure script. --------------------------------------------------------- BUILD / INSTALLATION --------------------------------------------------------- FOR RELEASED TARBALLS Use standard UNIX mechanisms: ./configure && make && make install Note: by default all plugins that *can* be built, will be built, all other plugins will be silently disabled. If you wish to disable a plugin, any flags you pass to configure will be passed to the configure program. ("./configure --help" for more info on the options) i.e. ./configure --disable-simulator will disable the simulator plugin Note that for a production-type installation you will want to pass the following options at the least: ./configure --prefix=/usr --sysconfdir=/etc --with-varpath=/var/lib/openhpi then make (or make rpm, but you will need to be root on some distros.) and then (as root or with proper system install permissions) make install (or install from the rpm). It will install the openhpi library, enabled plug-ins and sample applications that uses the library and plug-ins. NOTE: Modify the configuration file, openhpi.conf, for your needs. This will be in ${sysconfdir}/openhpi/openhpi.conf, where $sysconfdir is ${prefix}/etc by default (and ${prefix} is /usr/local by default) unless you set $sysconfdir when you ran ./configure as shown above. FOR SUBVERSION EXTRACTS svn export https://svn.code.sf.net/p/openhpi/code/openhpi/trunk mydir It will extract OpenHPI trunk to mydir. First time after extracting the code: run ./bootstrap This will generate the configure script and all files needed by it. Then, use the instructions provided for RELEASED TARBALLS --------------------------------------------------------- CLEANUP --------------------------------------------------------- To remove the temporary build files, type: make clean If you are a maintainer, and need to remove all autogenerated files, type: make clean make maintainer-clean (will neeed to run bootstrap and configure again after that) If bootstrap is not present (tarball does not contain it), download it using svn export http://svn.code.sf.net/p/openhpi/code/openhpi/tags/$rtag/bootstrap . ($rtag is release version, for example 3.6.0) --------------------------------------------------------- Active Plug-ins --------------------------------------------------------- simulator - plugin for simple testing. It uses a static database for hardware configuration. dynamic_simulator - plugin for advanced testing. It uses a configuration file to simulate any hardware. slave - allows to aggregate resources from different domains (slave domains) and to provide aggregated resources as part of the one domain (master domain). test_agent - plugin for advanced testing. Provides console for runtime configuration. ipmidirect - IPMI plugin that directly uses ipmi protocol to ipmi infrastructure, e.g. chassis managers. snmp_bc - IBM BladeCenter/RSA plugin (uses snmp) ilo2_ribcl - HP ProLiant Rack Mount Server plug-in oa_soap - HP BladeSystem c-Class plugin ov_rest - HPE Synergy plugin rtas - Run-Time Abstraction Services (RTAS) plug-in sysfs - Linux sysfs plugin (LM sensors and I2C devices exported in sysfs requires kernel 2.6 or >= 2.5.72) watchdog - Linux watchdog device interface For information on recent changes, see the changelogs at http://openhpi.org http://openhpi.sf.net --------------------------------------------------------- CLIENT PROGRAMS --------------------------------------------------------- Openhpi provides a set of client programs, that can be use as examples for typical HPI usage. They also help testing when invoked from a command line, or could even be called by applications. The hpi_shell provides are command shell for calling HPI functions interactively. The following client programs are provided: hpialarms - show Alarm Control management instruments. hpicrypt - Encrypt or decrypt a file. Back up the file to a secure location before encrypting the file. hpidomain - show information about domains or set the domain tag. hpiel - displays HPI event log entries hpievents - polls for events hpifan - show Fan Control management instruments hpigensimdata - generate data file for dynamic simulator plugin hpiinv - show inventory records for hardware resources hpionIBMblade - display and manage resources of an IBM Blade with Basedboard Management Controller (BMC) hpipower - Invoke HPI Power Management APIs hpireset - Invoke HPI Reset Management APIs hpisensor - display sensor info for all resources with Sensor Capability hpisettime - Invoke Event Log clock APIs. hpithres - display sensor thresholds and sensor info. hpitop - display highlevel topology for a managed openHPI complex. hpitree - show in details the resources (rpt's) and resources' management instruments (rdr's) data structures hpiwdt - read and enables the watchdog timer. hpixml - display system view in XML ohdomainlist - show information about domains on the level of the openhpi base library ohhandler - uses the openhpi additional interfaces to control openhpi configuration. That is plugins can be loaded, plugin instances (handlers) created, unloaded or their configuration displayed. ohparam - control openhpi configuration parameters hpi_shell - allows a user to interactively perform a number of HPI operations in a command shell with prompting. --------------------------------------------------------- HPI EXTENSIONS --------------------------------------------------------- OpenHPI provides a small set of functions in addition to the SAF standard. Mainly they are needed because of the OpenHPI architecture: - manage plugins - manage OpenHPI configuration dynamically * oHpiVersionGet * oHpiHandlerCreate * oHpiHandlerDestroy * oHpiHandlerInfo * oHpiHandlerGetNext * oHpiHandlerFind * oHpiHandlerRetry * oHpiGlobalParamGet * oHpiGlobalParamSet * oHpiInjectEvent * oHpiDomainAdd * oHpiDomainAddById * oHpiDomainEntryGet * oHpiDomainEntryGetByDomainId Please find more information in the inline documentation in files: include/oHpi.h - function declarations baselib/ohpi.c - function implementation in Base Library openhpid/ohpi.c - function implementation in OpenHPI Daemon --------------------------------------------------------- FOR MORE INFO --------------------------------------------------------- Please refer also to README.daemon and README.windows. Please find more documentation in the docs subdirectory and in the man pages (openhpi, openhpid, clients). For more information please see the project webiste at: http://openhpi.org http://openhpi.sourceforge.net Also visit SAForum's website at http://www.saforum.org