modules/mu/providers/aws/bucket.rb in cloud-mu-3.4.0 vs modules/mu/providers/aws/bucket.rb in cloud-mu-3.5.0

- old
+ new

@@ -37,24 +37,24 @@ # Called automatically by {MU::Deploy#createResources} def create bucket_name = @deploy.getResourceName(@config["name"], max_length: 63).downcase MU.log "Creating S3 bucket #{bucket_name}" - MU::Cloud::AWS.s3(credentials: @config['credentials'], region: @config['region']).create_bucket( + MU::Cloud::AWS.s3(credentials: @credentials, region: @region).create_bucket( acl: @config['acl'], bucket: bucket_name ) @cloud_id = bucket_name - is_live = MU::Cloud::AWS::Bucket.find(cloud_id: @cloud_id, region: @config['region'], credentials: @credentials).values.first + is_live = MU::Cloud::AWS::Bucket.find(cloud_id: @cloud_id, region: @region, credentials: @credentials).values.first begin - is_live = MU::Cloud::AWS::Bucket.find(cloud_id: @cloud_id, region: @config['region'], credentials: @credentials).values.first + is_live = MU::Cloud::AWS::Bucket.find(cloud_id: @cloud_id, region: @region, credentials: @credentials).values.first sleep 3 end while !is_live @@region_cache_semaphore.synchronize { - @@region_cache[@cloud_id] ||= @config['region'] + @@region_cache[@cloud_id] ||= @region } tagBucket if !@config['scrub_mu_isms'] end @@ -76,11 +76,11 @@ MU::MommaCat.listOptionalTags.each { |key, value| tagset << { :key => key, :value => value } } end - MU::Cloud::AWS.s3(credentials: @config['credentials'], region: @config['region']).put_bucket_tagging( + MU::Cloud::AWS.s3(credentials: @credentials, region: @region).put_bucket_tagging( bucket: @cloud_id, tagging: { tag_set: tagset } ) @@ -118,29 +118,29 @@ # Called automatically by {MU::Deploy#createResources} def groom @@region_cache_semaphore.synchronize { - @@region_cache[@cloud_id] ||= @config['region'] + @@region_cache[@cloud_id] ||= @region } tagBucket if !@config['scrub_mu_isms'] current = cloud_desc applyPolicies if @config['policies'] if @config['versioning'] and current["versioning"].status != "Enabled" MU.log "Enabling versioning on S3 bucket #{@cloud_id}", MU::NOTICE - MU::Cloud::AWS.s3(credentials: @config['credentials'], region: @config['region']).put_bucket_versioning( + MU::Cloud::AWS.s3(credentials: @credentials, region: @region).put_bucket_versioning( bucket: @cloud_id, versioning_configuration: { mfa_delete: "Disabled", status: "Enabled" } ) elsif !@config['versioning'] and current["versioning"].status == "Enabled" MU.log "Suspending versioning on S3 bucket #{@cloud_id}", MU::NOTICE - MU::Cloud::AWS.s3(credentials: @config['credentials'], region: @config['region']).put_bucket_versioning( + MU::Cloud::AWS.s3(credentials: @credentials, region: @region).put_bucket_versioning( bucket: @cloud_id, versioning_configuration: { mfa_delete: "Disabled", status: "Suspended" } @@ -161,18 +161,18 @@ batch['source'].match(/([^\/]+)$/) [ [batch['source'], urlbase+Regexp.last_match[1]] ] end Hash[upload_me].each_pair { |file, url| - self.class.upload(url, file: file, credentials: @credentials, region: @config['region'], acl: batch['acl']) + self.class.upload(url, file: file, credentials: @credentials, region: @region, acl: batch['acl']) } } end if @config['web'] and current["website"].nil? MU.log "Enabling web service on S3 bucket #{@cloud_id}", MU::NOTICE - MU::Cloud::AWS.s3(credentials: @config['credentials'], region: @config['region']).put_bucket_website( + MU::Cloud::AWS.s3(credentials: @credentials, region: @region).put_bucket_website( bucket: @cloud_id, website_configuration: { error_document: { key: @config['web_error_object'] }, @@ -181,28 +181,28 @@ } } ) ['web_error_object', 'web_index_object'].each { |key| begin - MU::Cloud::AWS.s3(credentials: @config['credentials'], region: @config['region']).head_object( + MU::Cloud::AWS.s3(credentials: @credentials, region: @region).head_object( bucket: @cloud_id, key: @config[key] ) rescue Aws::S3::Errors::NotFound MU.log "Uploading placeholder #{@config[key]} to bucket #{@cloud_id}" - MU::Cloud::AWS.s3(credentials: @config['credentials'], region: @config['region']).put_object( + MU::Cloud::AWS.s3(credentials: @credentials, region: @region).put_object( acl: "public-read", bucket: @cloud_id, key: @config[key], body: "" ) end } # XXX check if error and index objs exist, and if not provide placeholders elsif !@config['web'] and !current["website"].nil? MU.log "Disabling web service on S3 bucket #{@cloud_id}", MU::NOTICE - MU::Cloud::AWS.s3(credentials: @config['credentials'], region: @config['region']).delete_bucket_website( + MU::Cloud::AWS.s3(credentials: @credentials, region: @region).delete_bucket_website( bucket: @cloud_id ) end symbolify_keys = Proc.new { |parent| @@ -223,21 +223,21 @@ end } if @config['cors'] MU.log "Setting CORS rules on #{@cloud_id}", details: @config['cors'] - MU::Cloud::AWS.s3(credentials: @config['credentials'], region: @config['region']).put_bucket_cors( + MU::Cloud::AWS.s3(credentials: @credentials, region: @region).put_bucket_cors( bucket: @cloud_id, cors_configuration: { cors_rules: symbolify_keys.call(@config['cors']) } ) end MU.log "Bucket #{@config['name']}: s3://#{@cloud_id}", MU::SUMMARY if @config['web'] - MU.log "Bucket #{@config['name']} web access: http://#{@cloud_id}.s3-website-#{@config['region']}.amazonaws.com/", MU::SUMMARY + MU.log "Bucket #{@config['name']} web access: http://#{@cloud_id}.s3-website-#{@region}.amazonaws.com/", MU::SUMMARY end end # Upload a file to a bucket. # @param url [String]: Target URL, of the form s3://bucket/folder/file @@ -375,17 +375,17 @@ end # Canonical Amazon Resource Number for this resource # @return [String] def arn - "arn:"+(MU::Cloud::AWS.isGovCloud?(@config["region"]) ? "aws-us-gov" : "aws")+":s3:::"+@cloud_id + "arn:"+(MU::Cloud::AWS.isGovCloud?(@region) ? "aws-us-gov" : "aws")+":s3:::"+@cloud_id end # Return the metadata for this user cofiguration # @return [Hash] def notify - desc = MU::Cloud::AWS::Bucket.describe_bucket(@cloud_id, credentials: @config['credentials'], region: @config['region']) + desc = MU::Cloud::AWS::Bucket.describe_bucket(@cloud_id, credentials: @credentials, region: @region) MU.structToHash(desc) end # Locate an existing bucket. # @return [Hash<String,OpenStruct>]: The cloud provider's complete descriptions of matching bucket. @@ -446,11 +446,11 @@ # We assume that any values we have in +@config+ are placeholders, and # calculate our own accordingly based on what's live in the cloud. def toKitten(**_args) bok = { "cloud" => "AWS", - "credentials" => @config['credentials'], + "credentials" => @credentials, "cloud_id" => @cloud_id } if @cloud_id =~ /espier/i MU.log @cloud_id, MU::WARN, details: cloud_desc @@ -609,10 +609,10 @@ } policy_docs = MU::Cloud.resourceClass("AWS", "Role").genPolicyDocument(@config['policies'], deploy_obj: @deploy, bucket_style: true, version: "2008-10-17", doc_id: doc_id) policy_docs.each { |doc| MU.log "Applying S3 bucket policy #{doc.keys.first} to bucket #{@cloud_id}", MU::NOTICE, details: JSON.pretty_generate(doc.values.first) - MU::Cloud::AWS.s3(credentials: @config['credentials'], region: @config['region']).put_bucket_policy( + MU::Cloud::AWS.s3(credentials: @credentials, region: @region).put_bucket_policy( bucket: @cloud_id, policy: JSON.generate(doc.values.first) ) } end