Revision e6bba30c snf-common/synnefo/lib/commissioning/exception.py

b/snf-common/synnefo/lib/commissioning/exception.py
46 46
        return self
47 47

  
48 48
    def __init__(self, *args, **kw):
49
        self.call_error = kw.get('call_error', self.__class__.__name__)
49
        self.call_error = kw.pop('call_error', self.__class__.__name__)
50 50
        self.args = args
51
        self.kwargs = kw
51 52

  
52 53
    def __str__(self):
53 54
        return '\n--------\n'.join(str(x) for x in self.args)
......
71 72

  
72 73
    def to_dict(self):
73 74
        return {'call_error': self.call_error,
74
                'error_args': self.args}
75
                'error_args': (self.args, self.kwargs)}
75 76

  
76 77
    @classmethod
77 78
    def from_dict(cls, dictobj):
......
86 87
        if args is None:
87 88
            args = (str(dictobj),)
88 89
            call_error = 'UnknownError'
90
            kw = {}
91
        else:
92
            args, kw = args
89 93

  
90
        self = cls(*args, call_error=call_error)
94
        self = cls(*args, call_error=call_error, **kw)
91 95
        return self
92 96

  
93 97
def register_exceptions(*exceptions):

Also available in: Unified diff