a6cade5e2d90db7b42027b714cbe682b903eb894
[packages/precise/mcollective.git] / lib / mcollective / exception.rb
1 module MCollective
2   class CodedError<RuntimeError
3     attr_reader :code, :args, :log_level, :default
4
5     def initialize(msgid, default, level=:debug, args={})
6       @code = msgid
7       @log_level = level
8       @args = args
9       @default = default
10
11       msg = Util.t(@code, {:default => default}.merge(@args))
12
13       super(msg)
14     end
15
16     def set_backtrace(trace)
17       super
18       log(@log_level)
19     end
20
21     def log(level, log_backtrace=false)
22       Log.logexception(@code, level, self, log_backtrace)
23     end
24   end
25
26   # Exceptions for the RPC system
27   class DDLValidationError<CodedError;end
28   class ValidatorError<RuntimeError; end
29   class MsgDoesNotMatchRequestID < RuntimeError; end
30   class MsgTTLExpired<RuntimeError;end
31   class NotTargettedAtUs<RuntimeError;end
32   class RPCError<StandardError;end
33   class SecurityValidationFailed<RuntimeError;end
34
35   class InvalidRPCData<RPCError;end
36   class MissingRPCData<RPCError;end
37   class RPCAborted<RPCError;end
38   class UnknownRPCAction<RPCError;end
39   class UnknownRPCError<RPCError;end
40 end