Module: Smith::Workflow::SplitStepPersistence::ExecutionAuthorization

Included in:
Smith::Workflow::SplitStepPersistence
Defined in:
lib/smith/workflow/split_step_persistence/execution_authorization.rb

Instance Method Summary collapse

Instance Method Details

#authorize_prepared_step_execution!Object



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/smith/workflow/split_step_persistence/execution_authorization.rb', line 7

def authorize_prepared_step_execution!
  verification_token = claim_split_step_execution_verification!
  authorized = false
  verify_claimed_split_step_execution!(verification_token)
  authorization = build_split_step_execution_authorization
  activate_split_step_execution_authorization!(authorization, verification_token)
  authorized = true
  authorization
ensure
  restore_unverified_execution!(verification_token) if verification_token && !authorized
end

#release_prepared_step_execution!(authorization) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/smith/workflow/split_step_persistence/execution_authorization.rb', line 19

def release_prepared_step_execution!(authorization)
  authorization = validate_split_step_execution_authorization!(authorization)
  @split_step_mutex.synchronize do
    unless active_split_step_execution_authorization?(authorization)
      raise WorkflowError, "the prepared-step execution authorization is no longer active"
    end

    @split_step_phase = @split_step_execution_previous_phase
    clear_split_step_execution_authorization!
  end
  PreparedStepExecutionAuthorization
    .instance_method(:close_execution!)
    .bind_call(authorization)
  self
end