Sha256: 1a38f0fb9c3ece21d80900a07568b0917be8965f300d3020b65da24f1d4b47fe

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

class TerraspacePluginAws::Interfaces::Backend
  class Bucket < Base
    include Secure

    def create
      bucket = @info["bucket"]
      unless bucket # not bucket provided
        puts "ERROR: no bucket value provided in your terraform backend config".color(:red)
        exit 1
      end
      if exist?(bucket)
        # puts "Bucket already exist: #{bucket}"
        c = TerraspacePluginAws::Interfaces::Config.instance.config.s3
        secure(bucket) if c.secure_existing
      else
        puts "Creating bucket: #{bucket}"
        s3.create_bucket(bucket: bucket)
        secure(bucket)
      end
    end

    def exist?(name)
      s3.head_bucket(bucket: name, use_accelerate_endpoint: false)
      true  # Bucket exist
    rescue Aws::S3::Errors::NotFound
      false # Bucket does not exist
    rescue Aws::S3::Errors::Forbidden => e
      puts "#{e.class}: #{e.message}"
      puts "ERROR: Bucket is not available: #{name}".color(:red)
      puts "Bucket might be owned by someone else or is on another one of your AWS accounts."
      exit 1
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
terraspace_plugin_aws-0.0.0 lib/terraspace_plugin_aws/interfaces/backend/bucket.rb