Package org.metricshub.ipmi.client
package org.metricshub.ipmi.client
The client of a BMC. Build an
IpmiClient with
IpmiClient.builder(String), then call its operations: capabilities(),
deviceId(), chassisStatus(), chassisControl(), chassisIdentify(),
chassisIdentifyForever(), sensors(), frus(), sel() and sol(), or
send() and raw() for any other command. They return typed results
(Sensor, Fru,
SelEntry...) and report the failures of the BMC and of the network as unchecked
IpmiClientExceptions, whose subclasses say what to act on.
User guide: https://metricshub.org/ipmi-java/
-
ClassDescriptionWhat the BMC supports before any login (Get Channel Cipher Suites and Get Channel Authentication Capabilities, IPMI 2.0 sections 22.15 and 22.13): the cipher suites it offers and its authentication options.The state of the chassis: power, faults, intrusion, identify LED (Get Chassis Status, IPMI 2.0 table 28-3).A function the BMC provides, from the additional device support byte of Get Device ID (IPMI 2.0 table 20-2).The identity of the BMC: its manufacturer and product IDs, its firmware revision, the IPMI version it implements and the functions it provides (Get Device ID, IPMI 2.0 section 20.1).A Field Replaceable Unit of the system: the board, chassis, product and multirecord areas of its FRU inventory (IPMI Platform Management FRU Information Storage Definition), or the SPD data of a memory module, or the Processor Information ROM of a processor, located by an SDR record.The FRUs read by
IpmiClient.frus(): an unmodifiable list, with the SDR records the repository walk skipped.Reads the FRU inventories of the BMC: those that the FRU Device Locator records of the SDR repository point at, and the one of the system board.The BMC refused the login: unknown user name, wrong password or BMC key, role or privilege refused.A client of one BMC over IPMI 2.0 (RMCP+).Builds anIpmiClient: the BMC, the credentials and the session settings.A failure of anIpmiClientoperation.The BMC answered a command with an error completion code (IPMI 2.0 table 5-2).The connection to the BMC failed for a network reason: unknown host, socket error, no reply to the session setup after all the tries (wrong host, UDP port filtered, IPMI over LAN disabled, an IPMI 1.5-only BMC withIpmiClient.Builder.cipherSuite(int)), or the connection closed while an operation ran, which loses the session.The overall deadline of the operation expired, or a message of an established session got no reply after all the tries.What caused the last power down or power on of the system (Get Chassis Status, IPMI 2.0 table 28-3).Sends any request, likeipmitool raw:bmc.raw(0x2C, 0x01).data(0xDC, 0x01).execute()is Get DCMI Capabilities Info.The reply to a raw request (IpmiClient.raw(int, int)): its completion code and its data as the BMC sent them, whatever the completion code.The descriptions of theReadingTypestates and events, in the wording ofipmiutil(ofipmitoolfor the few thatipmiutildoes not name), used bySensor.states()andSelEntry.description().One entry of the System Event Log, read byIpmiClient.sel().The entries read from the System Event Log bySelRequest.execute(), in the order of the log, with what Get SEL Info says of the whole log: how many entries it holds, and when it was last written and erased.Reads the System Event Log:bmc.sel().execute()for every entry,bmc.sel().since(entry).execute()for the entries added after one already read, andbmc.sel().stream()to get each entry as soon as it is read.A sensor of the BMC, with its SDR record and its reading.The sensors read byIpmiClient.sensors(): an unmodifiable list, with the SDR records the repository walk skipped.Reads the sensors of the BMC: the Full and Compact sensor records of the SDR repository, each with its Get Sensor Reading.The status of a sensor: for a threshold sensor, the worst threshold its reading is at or beyond (IPMI 2.0 table 35-15); for a discrete sensor, whether it answers.An SDR record the repository walk could not use: the BMC returned it truncated, or the library cannot decode it.A Serial over LAN console, as streams: what the system writes on its serial port is read fromSolConsole.input(), what is written toSolConsole.output()reaches its serial port.Opens a Serial over LAN console (IPMI 2.0 section 15) in the session of the client or, when the BMC serves SOL on another UDP port, in a session the client opens there with the same credentials, cipher suite and privilege.