Module: Smash::CloudPowers::Storage

Includes:
AwsResources
Included in:
Smash::CloudPowers, Delegator
Defined in:
lib/cloud_powers/storage.rb

Instance Method Summary collapse

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?

Methods included from Auth

creds

Instance Method Details

#search(bucket, pattern) ⇒ Object



22
23
24
25
26
# File 'lib/cloud_powers/storage.rb', line 22

def search(bucket, pattern)
  s3.list_objects(bucket: bucket).contents.select do |o|
    o.key =~ pattern
  end
end

#send_logs_to_s3Object



28
29
30
31
32
33
34
35
36
# File 'lib/cloud_powers/storage.rb', line 28

def send_logs_to_s3
  File.open(log_file) do |file|
    s3.put_object(
      bucket: log_bucket,
      key: @instance_id,
      body: file
    )
  end
end

#source_task(file) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/cloud_powers/storage.rb', line 9

def source_task(file)
  # TODO: better path management
  bucket = zfind('task storage')
  unless task_path(file).exist?
    objects = s3.list_objects(bucket: bucket).contents.select do |f|
      /#{Regexp.escape file}/i =~ f.key
    end
    objects.each do |obj|
      s3.get_object(bucket: bucket, key: obj.key, response_target: task_path(file))
    end
  end
end