docs/migration: Clarify pre_load in subsections

Clarify that the pre_load function in a subsection is only called if
the subsection is found; to handle a missing subsection you may
set values in the pre_load of the parent vmsd.

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
Dr. David Alan Gilbert 2018-08-06 13:13:04 +01:00 committed by Juan Quintela
parent 6f4923fcad
commit 3eb21fe9e5

View file

@ -240,10 +240,13 @@ should succeed even with the data missing. To support this the
subsection can be connected to a device property and from there subsection can be connected to a device property and from there
to a versioned machine type. to a versioned machine type.
One important note is that the post_load() function is called "after" The 'pre_load' and 'post_load' functions on subsections are only
loading all subsections, because a newer subsection could change same called if the subsection is loaded.
value that it uses. A flag, and the combination of pre_load and post_load
can be used to detect whether a subsection was loaded, and to One important note is that the outer post_load() function is called "after"
loading all subsections, because a newer subsection could change the same
value that it uses. A flag, and the combination of outer pre_load and
post_load can be used to detect whether a subsection was loaded, and to
fall back on default behaviour when the subsection isn't present. fall back on default behaviour when the subsection isn't present.
Example: Example:
@ -315,8 +318,8 @@ For example:
the property to false. the property to false.
c) Add a static bool support_foo function that tests the property. c) Add a static bool support_foo function that tests the property.
d) Add a subsection with a .needed set to the support_foo function d) Add a subsection with a .needed set to the support_foo function
e) (potentially) Add a pre_load that sets up a default value for 'foo' e) (potentially) Add an outer pre_load that sets up a default value
to be used if the subsection isn't loaded. for 'foo' to be used if the subsection isn't loaded.
Now that subsection will not be generated when using an older Now that subsection will not be generated when using an older
machine type and the migration stream will be accepted by older machine type and the migration stream will be accepted by older