diskimage-builder/diskimage_builder
Ian Wienand 1d1e4ccb3e Move rollback into NodeBase object
Currently we pass a reference to a global "rollback" list to create()
to keep rollback functions.  Other nodes don't need to know about
global rollback state, and by passing by reference we're giving them
the chance to mess it up for everyone else.

Add a "add_rollback()" function in NodeBase for create() calls to
register rollback calls within themselves.  As they hit rollback
points they can add a new entry.  lambda v arguments is much of a
muchness -- but this is similar to the standard atexit() call so with
go with that pattern.  A new "rollback()" call is added that the
driver will invoke on each node as it works its way backwards in case
of failure.

On error, nodes will have rollback() called in reverse order (which
then calls registered rollbacks in reverse order).

A unit test is added to test rollback behaviour

Change-Id: I65214e72c7ef607dd08f750a6d32a0b10fe97ac3
2017-06-08 17:14:20 +10:00
..
block_device Move rollback into NodeBase object 2017-06-08 17:14:20 +10:00
elements Move ppc block-device default to right $ARCH 2017-06-07 13:30:38 +10:00
lib Update tracing in block_device_create_config_file 2017-06-07 13:30:38 +10:00
tests Move "functional" unit tests under block-device 2017-06-05 12:22:52 +10:00
__init__.py Bump hacking to 0.9.x series 2014-07-21 10:15:41 +02:00
disk_image_create.py squash-package-install to use the correct python 2017-03-13 20:24:39 +11:00
element_dependencies.py Trivial fix typos 2017-05-31 11:17:05 +07:00
logging_config.py Add python logger configuration 2016-06-16 13:54:50 +10:00
paths.py Move diskimage-image-create to an entry point 2016-11-02 05:12:11 +00:00
version.py Create docs site containing element READMEs 2015-02-10 11:45:35 -08:00