# OpenHPI (Service Availability)

OpenHPI is an open-source software system providing an abstracted interface to managing computer hardware, typically for chassis and rack based servers. It is production ready implementation of the Hardware Platform Interface specification from Service Availability Forum, complimenting existing hardware management standards. Founded in 2003, OpenHPI is maintained by the OpenHPI Project.
OpenHPI provides resource modeling, sensor management, control, watchdog, inventory data associated with resources, abstracted system event log, hardware events/alarms, and a managed hot-swap interface. It aims for Service Availability beyond High Availability (HA) expectations.

## History

The OpenHPI project was conceived by Carrier Grade Linux hardware experts, and announced on the Linux kernel mailing list on 19 March 2003, by Andrea Brugger. OpenHPI was described as "a universal interface for creating resource system models, such as chassis and rack-based servers, but extendable for other domains such as clustering, virtualization, and simulation". It had modular hardware support implemented using a plugin architecture, the top-level OpenHPI implementation being independent of the underlying hardware. Supporters include IBM, Intel, Samsung, HPE, and others technical equipment manufacturers.

## Features

The following features are supported by OpenHPI software:
* 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
OpenHPI also provides a set of client programs as examples for typical HPI usage, for testing, or invocation from scripts. The hpi_shell is a command shell for calling HPI functions interactively.

## Releases

The following table summarizes the main OpenHPI releases:
Main Releases history :
| Version | Release date | Notes |
| Old version, no longer maintained: 1.00 | 30 June 2004 | Support for IPMI based servers and blades (via OpenIPMI or IPMIDirect plugins), IBM Blade Center (via SNMP Blade Center plugin), IBM xSeries servers (via SNMP RSA plugin), Linux 2.4 & 2.6 watchdog devices (via watchdog plugin), Linux 2.6 systems (via sysfs plugin), A Dummy Plugin designed for testing and writing HPI applications; Sample commands: hpisensor, hpiinv, hipsel, hpipower/hpireset. Along with the release there is a companion SNMP subagent. SuSE/Fedora/RedHat packages. |
| Old version, no longer maintained: 2.0.2 | 24 February 2005 | Threading bug fixes. |
| Old version, no longer maintained: 2.6.0 | 31 July 2006 | Highlights: Hotswap management enhancements; Daemon/Plugin enhancements; Persistence of Domain Alarm Table; Features: Blade Center Telco H support, IPMI ATCA support, Blade Center topology is now ATCA topology friendly, More blade sensors supported, PowerPC support, Unicode text buffer validation added. Extras: PyOpenHPI python module, SNMP sub-agent, HPIView. |
| Old version, no longer maintained: 2.15.0 | 2009 | Features: Build, Clients, Dynamic Simulator; Bug fixes; Accumulated features: Support for Windows, FreeBSD, IPv6; Improved HPI support. Plugins for oa_soap, HP ProLiant Rack (iLO2), HP BladeSystem c-Class; HPI-B.03.01; Bugfixes; Refactoring. Base libraries for C#/Java/Python. |
| Old version, yet still maintained: 3.0.0 | 27 September | Features: Documentation; HP c-Class, OpenHPI Daemon. Bug fixes. Accumulated features. |
| Old version, yet still maintained: 3.6.0 | 26 August 2015 | Stable release. |
| Current stable version: 3.8.0 | 9 March 2018 | Stable release. Changes to many plugins, build, utils, clients and daemon; Bug fixes. |
| Legend:Old version, not maintainedOld version, still maintainedLatest versionLatest preview versionFuture release |||