Sha256: 7a430f640555e8c8d625bd07cbb731b8a2db301f6adf239f56cc3e8890179d45

Contents?: true

Size: 966 Bytes

Versions: 9

Compression:

Stored size: 966 Bytes

Contents

require 'pathname'
require_relative 'aws_resources'

module Smash
  module CloudPowers
    module Storage
      include Smash::CloudPowers::AwsResources

      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

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

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

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
cloud_powers-0.2.7.1 lib/cloud_powers/storage.rb
cloud_powers-0.2.7 lib/cloud_powers/storage.rb
cloud_powers-0.2.6 lib/cloud_powers/storage.rb
cloud_powers-0.2.5 lib/cloud_powers/storage.rb
cloud_powers-0.2.4 lib/cloud_powers/storage.rb
cloud_powers-0.2.3 lib/cloud_powers/storage.rb
cloud_powers-0.2.2 lib/cloud_powers/storage.rb
cloud_powers-0.2.1 lib/cloud_powers/storage.rb
cloud_powers-0.2 lib/cloud_powers/storage.rb