blob: 307a9dfa0a7d5c936d0422e5b7263310a7104190 [file] [log] [blame]
Title: Image Capture Sequence
## Modularization Example
The following diagram shows how the image capture sequence
differs if different provisioning modules are used -- xCAT and
VMWare.
Take note of the following:
* The calls made by image.pm to the xCAT and VMWare capture()
subroutines are **identical**. The image.pm state module does not
care which provisioning engine is being used. All it knows is that a
provisioning engine object has been created before image.pm::process() was
called, the object can be accessed via $self->provisioner, and the
name of the subroutine to call is capture().
* The calls made by xCAT and VMWare's capture() subroutine to the
Windows.pm pre_capture() subroutine are **identical**. All a
provisioning engine module needs to know is that an OS object has been
created, the object can be accessed via $self->os, and the name of the
subroutine to call is pre_capture().
* Provisioning engine modules do not not need to know any of the operating
system details. They assume the OS module's pre_capture()
subroutine will perform all the steps necessary for the particular OS to be
captured and that the computer will be shut down (or left in the state
specified by the end_state argument) when pre_capture() returns.
* The OS module's pre_capture() subroutine does not care which
provisioning engine is being used. The steps it performs are
identical.
* A very similar example could be made using the same provisioning engine
module and different OS modules.
<img src="image_capture_sequence_xcat.png">