mirror of
https://github.com/OpenNebula/one.git
synced 2025-02-09 09:57:23 +03:00
Added support for variable message length to ActionManager
git-svn-id: http://svn.opennebula.org/one/trunk@440 3034c82b-c49b-4eb3-8279-a7acafdc01c0
This commit is contained in:
parent
eb38f51eb6
commit
2497bb9ff2
@ -110,8 +110,21 @@ class ActionManager
|
||||
return
|
||||
end
|
||||
|
||||
if @actions[aname][:method].arity != aargs.length
|
||||
return
|
||||
arity=@actions[aname][:method].arity
|
||||
|
||||
if arity < 0
|
||||
# Last parameter is an array
|
||||
arity = -arity - 1
|
||||
if arity > aargs.length
|
||||
# Message has not enough parameters
|
||||
return
|
||||
end
|
||||
# Converts last parameters to an array
|
||||
aargs[arity..-1]=[aargs[arity..-1]]
|
||||
else
|
||||
if arity != aargs.length
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
@action_queue << @actions[aname].merge(:args => aargs)
|
||||
|
Loading…
x
Reference in New Issue
Block a user