Packing data into a namedtuple is good for keeping the API even if we need to add some more parameters (fields) in the future. It also serves as a documentation.
Also improve the documentation of the callbacks that are expected to be used.
Related: rhbz#1073679 Signed-off-by: Vratislav Podzimek vpodzime@redhat.com --- blivet/callbacks.py | 11 +++++++++++ blivet/deviceaction.py | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/blivet/callbacks.py b/blivet/callbacks.py index b2e8c3a..742b768 100644 --- a/blivet/callbacks.py +++ b/blivet/callbacks.py @@ -48,6 +48,15 @@ def create_new_callbacks_register(create_format_pre=None, object and to provide default values for non-specified fields (e.g. newly added callbacks).
+ :type create_format_pre: :class:`.CreateFormatPreData` -> NoneType + :type create_format_post: :class:`.CreateFormatPostData` -> NoneType + :type resize_format_pre: :class:`.ResizeFormatPreData` -> NoneType + :type resize_format_post: :class:`.ResizeFormatPostData` -> NoneType + :param wait_for_entropy: callback for waiting for enough entropy whose return + value indicates whether continuing regardless of + available entropy should be forced (True) or not (False) + :type wait_for_entropy: :class:`.WaitForEntropyData` -> bool + """
return _CallbacksRegister(create_format_pre, create_format_post, @@ -62,3 +71,5 @@ ResizeFormatPreData = namedtuple("ResizeFormatPreData", ["msg"]) ResizeFormatPostData = namedtuple("ResizeFormatPostData", ["msg"]) +WaitForEntropyData = namedtuple("WaitForEntropyData", + ["msg", "min_entropy"]) diff --git a/blivet/deviceaction.py b/blivet/deviceaction.py index 0aee993..b2229d3 100644 --- a/blivet/deviceaction.py +++ b/blivet/deviceaction.py @@ -33,6 +33,7 @@ from parted import partitionFlag, PARTITION_LBA from .i18n import _, N_ from .callbacks import CreateFormatPreData, CreateFormatPostData from .callbacks import ResizeFormatPreData, ResizeFormatPostData +from .callbacks import WaitForEntropyData
import logging log = logging.getLogger("blivet") @@ -555,7 +556,7 @@ class ActionCreateFormat(DeviceAction): if callbacks and callbacks.wait_for_entropy: msg = _("Not enough entropy to create LUKS format. " "%d bits are needed.") % min_required_entropy - force_cont = callbacks.wait_for_entropy(msg, min_required_entropy) + force_cont = callbacks.wait_for_entropy(WaitForEntropyData(msg, min_required_entropy))
if force_cont: # log warning and set format's required entropy to 0