Module: Ntswf::Base

Included in:
Client, Utils, Worker
Defined in:
lib/ntswf/base.rb

Instance Method Summary collapse

Instance Method Details

#activity_task_listObject



46
47
48
# File 'lib/ntswf/base.rb', line 46

def activity_task_list
  activity_task_lists[default_unit] or raise "Missing activity task list configuration"
end

#activity_task_listsObject



38
39
40
# File 'lib/ntswf/base.rb', line 38

def activity_task_lists
  @config.activity_task_lists
end

#activity_typeObject



78
79
80
# File 'lib/ntswf/base.rb', line 78

def activity_type
  @activity_type ||= domain.activity_types[activity_name, workflow_version]
end

#decision_task_listObject



42
43
44
# File 'lib/ntswf/base.rb', line 42

def decision_task_list
  @config.decision_task_list or raise "Missing decision task list configuration"
end

#default_unitObject



50
51
52
# File 'lib/ntswf/base.rb', line 50

def default_unit
  @default_unit ||= @config.unit.to_s
end

#domainObject



34
35
36
# File 'lib/ntswf/base.rb', line 34

def domain
  @domain ||= swf.domains[@config.domain]
end

#execution_versionObject



54
55
56
# File 'lib/ntswf/base.rb', line 54

def execution_version
  @config.execution_version
end

#initialize(config) ⇒ Object

Options Hash (config):

  • :access_key_id (String)

    AWS credential

  • :activity_task_lists (Hash)

    The task list names for activities as hash (see also :unit)

  • :decision_task_list (String)

    The task list name for decisions

  • :domain (String)

    The SWF domain name

  • :execution_version (Numeric)

    Value allowing clients to reject future execution versions

  • :subprocess_retries (Numeric) — default: 0
  • :secret_access_key (String)

    AWS credential

  • :unit (String)

    This worker/client’s activity task list key



15
16
17
18
# File 'lib/ntswf/base.rb', line 15

def initialize(config)
  @config = OpenStruct.new(config)
  raise_if_invalid_task_list
end

#notify(message, params) ⇒ Object



69
70
71
# File 'lib/ntswf/base.rb', line 69

def notify(message, params)
  log("#{message.message}\n  #{message.backtrace.join("\n  ")}") if message.kind_of? Exception
end

#parse_input(input) ⇒ Hash

Parse the options stored in a task’s input value



62
63
64
65
66
67
# File 'lib/ntswf/base.rb', line 62

def parse_input(input)
  options, legacy_params = JSON.parse(input)
  options = {"name" => options} unless options.kind_of? Hash
  options.merge!("params" => legacy_params) if legacy_params
  options
end

#separatorString



74
75
76
# File 'lib/ntswf/base.rb', line 74

def separator
  ";"
end

#swfAWS::SimpleWorkflow



21
22
23
24
# File 'lib/ntswf/base.rb', line 21

def swf
  @swf ||= AWS::SimpleWorkflow.new(access_key_id: @config.access_key_id,
      secret_access_key: @config.secret_access_key, use_ssl: true)
end

#workflow_nameObject



26
27
28
# File 'lib/ntswf/base.rb', line 26

def workflow_name
  "#{default_unit}-workflow"
end

#workflow_versionObject



30
31
32
# File 'lib/ntswf/base.rb', line 30

def workflow_version
  "v1"
end