Revision af01e887 image_creator/os_type/__init__.py

b/image_creator/os_type/__init__.py
70 70

  
71 71
def sysprep(message, enabled=True, **kwargs):
72 72
    """Decorator for system preparation tasks"""
73
    def wrapper1(func):
73
    def wrapper(func):
74 74
        func.sysprep = True
75 75
        func.enabled = enabled
76 76
        func.executed = False
......
79 79
            setattr(func, key, val)
80 80

  
81 81
        @wraps(func)
82
        def wrapper2(self, print_message=True):
82
        def inner(self, print_message=True):
83 83
            if print_message:
84 84
                self.out.output(message)
85 85
            return func(self)
86 86

  
87
        return wrapper2
87
        return inner
88 88

  
89
    return wrapper1
89
    return wrapper
90

  
91

  
92
def add_sysprep_param(name, descr, maxlen, default=None,
93
                      validator=lambda x: True):
94
    """Decorator for init that adds the definition for a system preparation
95
    parameter
96
    """
97
    def wrapper(func):
98

  
99
        @wraps(func)
100
        def inner(self, *args, **kwargs):
101

  
102
            func(self, *args, **kwargs)
103

  
104
            if not hasattr(self, 'needed_sysprep_params'):
105
                self.needed_sysprep_params = {}
106
            getattr(self, 'needed_sysprep_params')[name] = \
107
                self.SysprepParam(descr, maxlen, validator)
108
        return inner
109

  
110
    return wrapper
111

  
112

  
113
def del_sysprep_param(name):
114
    """Decorator for init that deletes a previously added sysprep parameter
115
    definition .
116
    """
117
    def wrapper(func):
118

  
119
        @wraps(func)
120
        def inner(self, *args, **kwargs):
121
            del self.needed_sysprep_params[nam]
122
            func(self, *args, **kwargs)
123

  
124
        return inner
125

  
126
    return wrapper
90 127

  
91 128

  
92 129
class OSBase(object):
93 130
    """Basic operating system class"""
94 131

  
95
    SysprepParam = namedtuple('SysprepParam',
96
                              'name description length validator')
132
    SysprepParam = namedtuple('SysprepParam', 'description maxlen validator')
97 133

  
98 134
    def __init__(self, image, **kargs):
99 135
        self.image = image
......
121 157

  
122 158
        self.out.output()
123 159

  
124
    def needed_sysprep_params(self):
125
        """Returns a list of needed sysprep parameters. Each element in the
126
        list is a SysprepParam object.
127
        """
128
        return []
129

  
130 160
    def list_syspreps(self):
131 161
        """Returns a list of sysprep objects"""
132 162
        objs = [getattr(self, name) for name in dir(self)

Also available in: Unified diff