ironic/ironic/conductor
Jim Rollenhagen 7f46a03fca Refactor driver loading to load a driver instance per node
This paves the way for composable drivers. It:

Creates a BareDriver class, which is a minimal subclass of BaseDriver,
with no interfaces attached.

Adds a method driver_factory.build_driver_for_task, that accepts a
task argument and builds an instance of BareDriver that does have
interfaces attached. These interfaces come from loading the driver in
node.driver, and attaching each of the core, standard, and vendor
interfaces to the BareDriver created. This also accepts a driver_name
argument, for loading a driver that is not the one specified in
node.driver (for example, when updating the driver for a node).
This method will eventually need to take arguments for each interface
that is broken out of the main driver singleton.

By doing this, we create a driver instance per node, instead of using
the monolithic driver singletons shared across nodes. Note that the
attached interfaces are references to the interfaces in the driver
singleton, and thus themselves still singletons. It is *which* interface
implementations are referenced that will vary by node.

This means that in the future, we can dynamically load and attach these
interfaces, with the implementation chosen being defined by a property
of the node.

This patch also does a small refactoring as to how the list of
interfaces attached to a driver are referenced, for cleanliness.

Change-Id: Ic2b2525f2abd0d252f36442097e68f73aeaec9f7
2016-03-01 23:41:06 +00:00
..
__init__.py Remove copyright from empty files 2014-01-07 21:05:01 +08:00
base_manager.py Refactor driver loading to load a driver instance per node 2016-03-01 23:41:06 +00:00
manager.py Refactor driver loading to load a driver instance per node 2016-03-01 23:41:06 +00:00
rpcapi.py Add portgroups to support LAG interfaces - RPC 2016-02-04 22:40:54 +02:00
task_manager.py Refactor driver loading to load a driver instance per node 2016-03-01 23:41:06 +00:00
utils.py During cleaning, store clean step index 2016-02-15 09:59:25 -08:00