This is an implementation of the Service Availability Forum's Hardware Platform Interface B.03.02 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
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)
ilo2_ribcl plugin libssl >= 0.9.7 libxml2
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)
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.
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
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)
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
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.
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
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
Adding one line to create first pull request
Done the following to create the second pull request. git clone https://github.com/mohandev2/openhpi_old openhpi_old_master4 cd openhpi_old_master4 git remote add new_pull_request_with_remote_add https://github.com/mohandev2/openhpi_old git pull new_pull_request_with_remote_add master git checkout -b local_for_new_pull_request_with_remote_add vi README # to add these lines. The following are yet to be done. Adding anyway. git commit -a # Give Comments. If there are new files do git add first git push origin local_for_new_pull_request_with_remote_add
This is a new branch called same_name