class S3Secure::Lifecycle::Add

Constants

RULE_ID

Public Instance Methods

run() click to toggle source
# 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