Useful examples of HardwareManager plugins for ironic-python-agent
Go to file
Jay Faulkner 8fc36d5a6a Merge pull request #1 from jayofdoom/jay/ExampleBusinessLogicManager
Add example business logic hardware manager
2016-06-10 17:02:33 -07:00
example_hardware_managers Add example business logic hardware manager 2016-06-10 15:57:06 -07:00
LICENSE Add example_device hwm and test harnesses 2016-06-10 14:21:26 -07:00
README.rst Add basic information on using these examples 2016-06-10 17:00:00 -07:00
requirements.txt Add example_device hwm and test harnesses 2016-06-10 14:21:26 -07:00
setup.cfg Add example business logic hardware manager 2016-06-10 15:57:06 -07:00
setup.py Add example_device hwm and test harnesses 2016-06-10 14:21:26 -07:00
test-requirements.txt Add example_device hwm and test harnesses 2016-06-10 14:21:26 -07:00
tox.ini Make dir name more clear 2016-06-10 15:16:11 -07:00

ipa-example-hardware-managers

Example hardware managers for use with the ironic python agent.

Examples and Use Cases Provided

Example Device Hardware Manager

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.

Example Business Logic Hardware Manager

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().

Make your own Manager based on these

To make your own hardware manager based on these examples, copy or fork the relevant examples out of this repository. Modify classnames 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.