Inductor

The Inductor consumes WorkOrders (rfc / configuration change) or ActionOrders
(start, stop, etc) from a queue by zone, executes them and posts a result
message back to the controller.

A WorkOrder is a request for change (RFC) of a configuration item (CI). An ActionOrder is request to perform an action that
is typically not associated to a configuration item. Example action are reboot, repair, snapshot, restore, etc.

The account.Cloud.location is used by the controller to publish the order into a queue. The inductors consume,
does the work and publish the result back to the controller.response queue.

Here is the logical flow from CMS:

Inductor Details

The inductor is Java core with Ruby for control. The Java side is standard maven + spring,basically a Spring DefaultMessageListenerContainer using Apache Commons DefaultExecutor
to spawn either local chef-solo (for IaaS or non-managed via orders) or a remote
via SSH chef-solo execution.

The image below shows a logical view of the classes in com.oneops.inductor.