Library to abstract Baseboard Management Controller interaction
Go to file
2022-07-26 10:52:57 +02:00
.github mergify: rename config file, purge invalid parameter 2022-05-06 15:54:34 +02:00
bmc bmc: clearer comments on methods and unexport internal methods 2022-07-26 10:50:04 +02:00
cfgresources We already have the data structures to accommodate these items. Let's make them configurable. 2021-12-20 19:12:33 +01:00
constants Add constants 2022-07-26 10:52:57 +02:00
devices consts, errors: firmware install status returned when a BMC needs a reset 2022-04-26 12:20:51 +02:00
discover Add initial secure TLS options 2022-04-21 18:34:39 -04:00
errors errors: less verbose compatibility check errors 2022-05-09 12:53:57 +02:00
examples Updated examples with docs 2022-05-10 14:41:30 +00:00
internal Pass http.Client to providers in client 2022-04-22 13:16:09 -04:00
logging Update dependencies; registrar, logr, logrusr 2021-11-24 20:59:51 -07:00
providers Merge pull request #276 from bmc-toolbox/redfish-state-downloaded 2022-06-09 10:27:52 +02:00
sshmock Update dependencies; registrar, logr, logrusr 2021-11-24 20:59:51 -07:00
v2 bmclib version 2 2022-06-17 18:24:07 +02:00
.gitignore Generic logging interface (#135) 2020-09-30 09:00:14 -06:00
.golangci.yml linter: add golangci config and lint; update GH actions 2021-10-14 12:25:02 +02:00
CHANGELOG.md Add changelog 2018-10-25 12:16:12 +02:00
client_test.go Add dell idrac9 implementation for new interfaces: 2021-04-28 14:39:25 -06:00
client.go bmc/firmware: update FirmwareInstallStatus() method signature 2022-04-26 17:27:56 +02:00
doc.go godoc: Add some docs for go docs and add godoc badge 2019-02-10 13:06:17 +01:00
go.mod Updated examples with docs 2022-05-10 14:41:30 +00:00
go.sum Updated examples with docs 2022-05-10 14:41:30 +00:00
LICENSE Refactoring to open source 2018-05-23 14:13:42 +02:00
Makefile Added mergify and code coverage 2022-04-25 12:56:44 -04:00
README.md Update gofish dep to v0.12.0; update README 2021-10-14 14:47:07 +02:00
TODO Add TODO 2018-06-06 12:14:18 +02:00

bmclib - board management controller library

Status Go Report Card GoDoc Development/Support

A library to interact with BMCs of different vendors

Data collection support

Hardware Supported Partially Supported
Dell M1000e ✔️
Dell iDRAC8 ✔️
Dell iDRAC9 ✔️
HP c7000 ✔️
HP iLO3 ✔️
HP iLO4 ✔️
HP iLO5 ✔️
Supermicro X10 ✔️
Supermicro X11 ✔️

Firmware update support

Hardware Supported
Dell M1000e ✔️
Dell iDRAC8 ✔️
Dell iDRAC9 ✔️
HP c7000 ✔️
HP iLO2 ✔️
HP iLO3 ✔️
HP iLO4 ✔️
HP iLO5 ✔️
Supermicro X9
Supermicro X10
Supermicro X11

Configuration support

Hardware User accounts Syslog NTP Ldap Ldap groups BIOS HTTPS Cert
Dell M1000e ✔️ ✔️ ✔️ ✔️ ✔️ -
Dell iDRAC8 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Dell iDRAC9 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
HP c7000 ✔️ ✔️ ✔️ ✔️ ✔️ -
HP iLO4 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
HP iLO5 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Supermicro X10 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Supermicro X11 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Debugging

export BMCLIB_LOG_LEVEL=debug for bmclib to debug log

export BMCLIB_LOG_LEVEL=trace for bmclib to trace log

export BMCLIB_TEST=1 to run on a dummy bmc (dry run).

bmc-toolbox

All of the tooling that uses bmclib is part of the bmc-toolbox

Inventory collection

dora uses bmclib to identify and inventorize assets.

Configuration

bmcbutler uses bmclib to manage configuration on BMCs.

Web API

actor uses bmclib to abstract away various BMCs and expose a consistent web API to interact with them.

Acknowledgment

bmclib was originally developed for Booking.com. With approval from Booking.com, the code and specification were generalized and published as Open Source on github, for which the authors would like to express their gratitude.

bmclib interfaces with Redfish with https://github.com/stmcginnis/gofish

Authors

  • Juliano Martinez
  • Joel Rebello
  • Guilherme M. Schroeder
  • Mariano Guezuraga