All,
The heart of the image building process in imagefactory is FedoraBuilder.
This file contains the code that knows all of the magic for transforming a
disk image into something that a backend provider can then launch as an
instance.
Unfortunately the current FedoraBuilder code is hard to follow because
all of the logic for all providers is smashed together into one file. This
patch series aims to change that by splitting FedoraBuilder up. At the top
level, BuildJob is changed to look for <OS>_<backend>_Builder classes. Then
the pieces of the backends are split into separate files, and FedoraBuilder
itself is removed. While this increases the boilerplate code somewhat, it
makes it much easier to reason about what is going to happen for a particular
OS on a particular provider.
I've tested this on EC2 (upload and snapshot style), RHEV-M (which made
it all the way to push_image before a local problem failed), and vsphere
(ditto). The unittests also pass.
Please review and ACK.
Chris Lalancette