Class: Chef::Provider::AwsS3Bucket

Inherits:
Chef::Provisioning::AWSDriver::AWSProvider show all
Defined in:
lib/chef/provider/aws_s3_bucket.rb

Constant Summary

Constants inherited from Chef::Provisioning::AWSDriver::AWSProvider

Chef::Provisioning::AWSDriver::AWSProvider::AWSResource

Instance Attribute Summary

Attributes inherited from Chef::Provisioning::AWSDriver::AWSProvider

#purging

Instance Method Summary collapse

Methods inherited from Chef::Provisioning::AWSDriver::AWSProvider

#action_handler, #converge_by, #region, #whyrun_supported?

Instance Method Details

#action_createObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/chef/provider/aws_s3_bucket.rb', line 24

def action_create
  bucket = super

  if new_resource.enable_website_hosting
    if !website_exist?(new_resource, bucket)
      converge_by "enable website configuration for bucket #{new_resource.name}" do
        create_website(bucket, new_resource)
      end
    elsif modifies_website_configuration?(bucket)
      converge_by "reconfigure website configuration for bucket #{new_resource.name} to #{new_resource.website_options}" do
        create_website(bucket, new_resource)
      end
     end
  else
    if website_exist?(new_resource, bucket)
      converge_by "disable website configuration for bucket #{new_resource.name}" do
        new_resource.driver.s3_client.delete_bucket_website(bucket: new_resource.name)
      end
    end
  end
end

#aws_taggerObject



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/chef/provider/aws_s3_bucket.rb', line 6

def aws_tagger
  @aws_tagger ||= begin
    s3_strategy = Chef::Provisioning::AWSDriver::TaggingStrategy::S3.new(
      # I'm using the V2 client here because it has much better support for tags
      new_resource.driver.s3_client,
      new_resource.name,
      new_resource.aws_tags
    )
    Chef::Provisioning::AWSDriver::AWSTagger.new(s3_strategy, action_handler)
  end
end

#converge_tagsObject



18
19
20
# File 'lib/chef/provider/aws_s3_bucket.rb', line 18

def converge_tags
  aws_tagger.converge_tags
end