7fb098aa0b
They're not easily discoverable there, let's keep them in tree. The examples have been restructured to have two different projects ready to be copied and adjusted. PEP8 failures have been fixed. Change-Id: I2af04f4b7f9a2109fe83ec517e716159331a48bb Co-Authored-By: Jay Faulkner <jay@jvf.cc>
44 lines
1.4 KiB
ReStructuredText
44 lines
1.4 KiB
ReStructuredText
Example Hardware Managers
|
|
=========================
|
|
|
|
``vendor-device``
|
|
-----------------
|
|
|
|
This example manager is meant to demonstrate good patterns for developing a
|
|
device-specific hardware manager, such as for a specific version of NIC or
|
|
disk.
|
|
|
|
Use Cases include:
|
|
|
|
* Adding device-specific clean-steps, such as to flash firmware or
|
|
verify it's still properly working after being provisioned.
|
|
* Implementing erase_device() using a vendor-provided utility for a given
|
|
disk model.
|
|
|
|
``business-logic``
|
|
------------------
|
|
|
|
This example manager is meant to demonstrate how cleaning and the agent can
|
|
use the node object and the node itself to enforce business logic and node
|
|
consistency.
|
|
|
|
Use Cases include:
|
|
|
|
* Quality control on hardware by ensuring no component is beyond its useful
|
|
life.
|
|
* Asserting truths about the node; such as number of disks or total RAM.
|
|
* Reporting metrics about the node's hardware state.
|
|
* Overriding logic of get_os_install_device().
|
|
* Inserting additional deploy steps.
|
|
|
|
Make your own Manager based on these
|
|
------------------------------------
|
|
|
|
To make your own hardware manager based on these examples, copy a relevant
|
|
example out of this directory. Modify class names and entrypoints in setup.cfg
|
|
to be not-examples.
|
|
|
|
Since the entrypoints are defined in setup.cfg, simply installing your new
|
|
python package alongside IPA in a custom ramdisk should be enough to enable
|
|
the new hardware manager.
|