[openstack-dev] [Ironic] [Agent] Breaking HardwareManager API Change proposed

Jay Faulkner jay at jvf.cc
Wed Dec 31 19:54:35 UTC 2014

Hi all,

I proposed https://review.openstack.org/#/c/143193 to ironic-python-agent, in an attempt to make Hardware Manager loading more sane. As it works today, the most specific hardware manager is the only one chosen. This means in order to use a mix of hardware managers, you have to compose a custom interface. This is not the way I originally thought it worked, and not the way Josh and I presented it at the summit[1].

This change makes it so we will try each method, in priority order (from most specific to least specific hardware manager). If the method exists and doesn’t throw NotImplementedError, it will be allowed to complete and errors bubble up. If an AttributeError or NotImplementedError is thrown, the next most generic method is called until all methods have been attempted (in which case we fail) or a method does not raise the exceptions above.

The downside to this is that it will change behavior for anyone using hardware managers downstream. As of today, the only hardware manager that I know of external to Ironic is the one we use at Rackspace for OnMetal[2]. I’m sending this email to check and see if anyone has objection to this interface changing in this way, and generally asking for comment.

Jay Faulkner

1: https://www.youtube.com/watch?v=2Oi2T2pSGDU
2: https://github.com/rackerlabs/onmetal-ironic-hardware-manager
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20141231/2d97bd8d/attachment.html>

More information about the OpenStack-dev mailing list