Class: S3Secure::Lifecycle::Add

Inherits:
Base show all
Defined in:
lib/s3_secure/lifecycle/add.rb

Constant Summary collapse

RULE_ID =
Base::RULE_ID

Instance Method Summary collapse

Methods inherited from CLI::Base

#buckets, #initialize

Methods included from CLI::Say

#say

Methods included from AwsServices

#sts

Methods included from AwsServices::S3

#check_bucket!, #new_s3_regional_client, #region, #region_map, #s3, #s3_client, #s3_regional_client

Constructor Details

This class inherits a constructor from S3Secure::CLI::Base

Instance Method Details

#runObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/s3_secure/lifecycle/add.rb', line 5

def run
  show = Show.new(@options)
  if @options[:additive]
    current_rules = show.get_lifecycle_rules(@bucket)
    builder = Builder.new(current_rules)
    rules = builder.rules_with_addition(@options[:prefix])
    if current_rules.size == rules.size
      say "WARN: rule wasnt added because a #{RULE_ID} already exists".color(:yellow)
    else
      s3.put_bucket_lifecycle_configuration(
        bucket: @bucket, # required
        lifecycle_configuration: {rules: rules}
      )
    end
  elsif show.any?
    say "Bucket #{@bucket} is has a lifecycle policy already."
    return
  else
    options = {
      bucket: @bucket, # required
      lifecycle_configuration: {rules: [Builder::DEFAULT_RULE]}
    }
    s3.put_bucket_lifecycle_configuration(options)
  end

  say "Added lifecycle policy to bucket #{@bucket}"
end