What is PowerAPI?
This project contains several distinct but related things:
PowerAPI – A proposed RedFish-inspired API for power control of distributed systems. PowerAPI is OpenAPI 3.0 compliant. It differs with current RedFish standards in at least two important ways:
- It allows for a light-weight API without the overhead of the full RedFish schema set.
- It provides easier ways to query/set the states of many nodes with a single API call.
pkg/powerman – The package
pkg/powermanprovides golang bindings for libpowerman, allowing Go programs to directly call the API for the popular powerman cluster power control software.
pkg/powerapi-client – Provides a Go client API for using the OpenAPI 3 PowerAPI specification.
- cmd/powermanapi – Provides gateway between Powerman and PowerAPI, creating a REST-ful interface for Powerman cluster node power control. This utility is intended to provide an easily reached API for cluster management and automation systems, like Kraken
- cmd/pmshell – Provides a CLI for interacting with Powerman through the
pkg/powermanGo bindings. This exists largely as a way to test the
libpowermanbindings, but may prove useful as a utility.
- cmd/powerctl – Provides a CLI (very similar to
cmd/pmshellin interface) to control power through the PowerAPI. This can be used, e.g. in conjunction with
cmd/powermanapito use and test REST-ful API control of node power states.
More details on each of these can be found in their respective directories.
The PowerAPI specification can be found at openapi.yaml.
Related: [ layercake ]