Internal Design

Key classes

  • Manager
    • Top level class created in main().
    • Loads the JSON configuration file.
    • Implements the D-Bus configure and monitor methods.
    • Contains a System object.
  • System
    • Represents the computer system being controlled and monitored by the BMC.
    • Contains one or more Chassis objects.
  • Chassis
    • Represents a physical enclosure that can be powered on and off by the BMC.
    • Small and mid-sized systems may contain a single Chassis.
    • In a large rack-mounted system, each drawer may correspond to a Chassis.
    • Contains one or more Device objects.
  • Device
    • Represents a hardware device, such as a voltage regulator or I/O expander.
    • Contains zero or more Rail objects.
  • Rail
    • Represents a voltage rail produced by a voltage regulator, such as 1.1V.
  • Services
    • Abstract base class that provides access to a collection of system services like error logging, journal, vpd, and hardware presence.
    • The BMCServices child class provides the real implementation.
    • The MockServices child class provides a mock implementation that can be used in gtest test cases.