Sha256: 7ec07bed89c7d9d1c77f47672895e7e797d9c5862d342e10a740a6d2782d37af

Contents?: true

Size: 1.33 KB

Versions: 136

Compression:

Stored size: 1.33 KB

Contents

module Jets::Job::Dsl
  module S3Event
    def s3_event(bucket_name, props={})
      stack_name = declare_s3_bucket_resources(bucket_name) # only set up once per bucket
      declare_sns_subscription(topic_arn: "!Ref #{stack_name}SnsTopic") # set up subscription every time
    end

    # Returns stack_name
    def declare_s3_bucket_resources(bucket_name)
      # If shared s3 bucket resources have already been declared.
      # We will not generate them again. However, we still need to always
      # add the depends_on declaration to ensure that the shared stack parameters
      # are properly passed to the nested child stack.
      stack_name = s3_events[bucket_name] # already registered
      if stack_name
        depends_on stack_name.underscore.to_sym, class_prefix: true # always add this
        return stack_name
      end

      # Create shared resources - one time
      stack_name = declare_shared_s3_event_resources(bucket_name)
      depends_on stack_name.underscore.to_sym, class_prefix: true # always add this
      self.s3_events[bucket_name] = stack_name # tracks buckets already set up
    end

    def declare_shared_s3_event_resources(bucket_name)
      s3_stack = Jets::Stack::S3Event.new(bucket_name)
      s3_stack.build_stack
      s3_stack.stack_name
    end

    def s3_events
      Jets::Job::Base.s3_events
    end
  end
end

Version data entries

136 entries across 136 versions & 3 rubygems

Version Path
jets-4.0.12 lib/jets/job/dsl/s3_event.rb
jets-4.0.11 lib/jets/job/dsl/s3_event.rb
jets-4.0.10 lib/jets/job/dsl/s3_event.rb
jets-4.0.9 lib/jets/job/dsl/s3_event.rb
jets-4.0.8 lib/jets/job/dsl/s3_event.rb
jets-4.0.7 lib/jets/job/dsl/s3_event.rb
jets-4.0.6 lib/jets/job/dsl/s3_event.rb
jets-4.0.5 lib/jets/job/dsl/s3_event.rb
jets-4.0.4 lib/jets/job/dsl/s3_event.rb
jets-4.0.3 lib/jets/job/dsl/s3_event.rb
jets-4.0.2 lib/jets/job/dsl/s3_event.rb
jets-4.0.1 lib/jets/job/dsl/s3_event.rb
jets-4.0.0 lib/jets/job/dsl/s3_event.rb
jets-3.2.2 lib/jets/job/dsl/s3_event.rb
jets-3.2.1 lib/jets/job/dsl/s3_event.rb
jets.benforeva-3.0.17.pre.mount.pre.fix lib/jets/job/dsl/s3_event.rb
jets-3.2.0 lib/jets/job/dsl/s3_event.rb
jets-3.1.5 lib/jets/job/dsl/s3_event.rb
jets-3.1.4 lib/jets/job/dsl/s3_event.rb
jets-3.1.3 lib/jets/job/dsl/s3_event.rb