+ def wrapper(method):
+ method.sysprep = True
+ method.enabled = enabled
+ method.executed = False
+
+ for key, val in kwargs.items():
+ setattr(method, key, val)
+
+ @wraps(method)
+ def inner(self, print_message=True):
+ if print_message:
+ self.out.output(message)
+ return method(self)
+
+ return inner
+ return wrapper
+
+
+def add_sysprep_param(name, type, default, descr, validate=lambda x: True):
+ """Decorator for __init__ that adds the definition for a system preparation
+ parameter in an instance of a os_type class
+ """
+ def wrapper(init):
+ @wraps(init)
+ def inner(self, *args, **kwargs):
+ init(self, *args, **kwargs)
+ self.needed_sysprep_params[name] = \
+ self.SysprepParam(type, default, descr, validate)
+ if default is not None:
+ self.sysprep_params[name] = default
+ return inner
+ return wrapper
+
+
+def del_sysprep_param(name):
+ """Decorator for __init__ that deletes a previously added sysprep parameter
+ definition from an instance of a os_type class.
+ """