Revision be27f17e
Added by Marc Dequènes over 13 years ago
- ID be27f17e729f333bb133c4e7138e25a2e9ea12f4
lib/cyborghood/cyborg/interface.rb | ||
---|---|---|
# preliminary incoming message handling
|
||
def call(session, cmd, data = nil)
|
||
action = find_node_action(session, cmd)
|
||
raise "unknown node" if action.nil?
|
||
raise CyberError.new(:unrecoverable, 'api/cyborghood', "unknown node") if action.nil?
|
||
|
||
data ||= []
|
||
raise "wrong format for arguments" unless data.is_a? Array
|
||
raise CyberError.new(:unrecoverable, 'api/cyborghood', "wrong format for arguments") unless data.is_a? Array
|
||
|
||
begin
|
||
action.call(*data)
|
||
rescue
|
||
logger.debug "node action error message: " + $!
|
||
logger.debug "node action error backtrace: " + $!.backtrace.join("\n")
|
||
raise "method call failed: " + $!
|
||
raise CyberError.new(:unrecoverable, 'api/cyborghood', "method call failed: " + $!)
|
||
end
|
||
end
|
||
end
|
Also available in: Unified diff
[evol] improve a bit how interface errors are transmitted