lib/dynflow/dispatcher/client_dispatcher.rb in dynflow-0.8.30 vs lib/dynflow/dispatcher/client_dispatcher.rb in dynflow-0.8.31

- old
+ new

@@ -56,11 +56,11 @@ AnyExecutor end), (on ~Event do |event| find_executor(event.execution_plan_id) end), - (on Ping.(~any) do |receiver_id| + (on Ping.(~any) | Status.(~any, ~any) do |receiver_id, _| receiver_id end) envelope = Envelope[request_id, client_world_id, executor_id, request] if Dispatcher::UnknownWorld === envelope.receiver_id raise Dynflow::Error, "Could not find an executor for #{envelope}" @@ -80,9 +80,12 @@ (on ~Failed do |msg| resolve_tracked_request(envelope.request_id, Dynflow::Error.new(msg.error)) end), (on Done | Pong do resolve_tracked_request(envelope.request_id) + end), + (on ExecutionStatus.(~any) do |steps| + @tracked_requests.delete(envelope.request_id).success! steps end) end private