Module: Smash::CloudPowers::Delegator

Extended by:
Auth
Includes:
AwsResources, Helper, Storage
Included in:
Smash::CloudPowers
Defined in:
lib/cloud_powers/delegator.rb

Instance Method Summary collapse

Methods included from Auth

creds

Methods included from Storage

#search, #send_logs_to_s3, #source_task

Methods included from AwsResources

#ec2, #image, #kinesis, #region, #s3, #sqs

Methods included from Zenv

#env_vars, #file_tree_search, #i_vars, #project_root, #project_root=, #system_vars, #zfind

Methods included from Helper

#attr_map!, #called_from, #create_logger, #errors, #format_error_message, #log_file, #logger, #smart_retry, #task_path, #task_require_path, #to_camel, #to_i_var, #to_pascal, #to_ruby_file_name, #to_snake, #update_message_body, #valid_json?

Instance Method Details

#approved_task?(name = nil) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
36
# File 'lib/cloud_powers/delegator.rb', line 33

def approved_task?(name = nil)
  # TODO: improve this
  ['demo', 'testinz'].include? to_snake(name)
end

#build(id, msg) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/cloud_powers/delegator.rb', line 15

def build(id, msg)
  body = JSON.parse(msg.body)
  begin
    task = body.delete('task')
    if approved_task? task
      source_task(task)
      require_relative task_require_path(task)
      Smash.const_get(to_pascal(task)).new(id, msg)
    else
      Smash::Task.new(id, msg) # returns a default Task
    end
  rescue JSON::ParserError => e
    message = [msg.body, format_error_message(e)].join("\n")
    logger.info "Message in backlog is ill-formatted: #{message}"
    pipe_to(:status_stream) { sitrep(extraInfo: { message: message }) }
  end
end