Sha256: bdf74749aee6c620467ff8a9ae31c8f9340cf31f898f9a32b6401a5f29f8c627

Contents?: true

Size: 941 Bytes

Versions: 75

Compression:

Stored size: 941 Bytes

Contents

class Jets::Cfn::Builders::ParentBuilder
  module Stagger
    def add_stagger(resource)
      batch_size = stagger_batch_size # shorter convenience variable
      return if !stagger_enabled || batch_size.nil? || batch_size == 0

      # initialize all here to keep logic together
      @previous_stacks ||= []
      @added_count ||= 0

      if @previous_stacks.size >= batch_size
        at_boundary = @added_count % batch_size == 0
        if at_boundary
          @left = @added_count - batch_size
          @right = @left + batch_size - 1
        end
        previous_stack_batch = @previous_stacks[@left..@right]
        resource.add_stagger_depends_on(previous_stack_batch)
      end

      @added_count += 1
      @previous_stacks << resource
    end

    def stagger_batch_size
      Jets.config.deploy.stagger.batch_size
    end

    # for spec-ing
    def stagger_enabled
      Jets.config.deploy.stagger.enabled
    end
  end
end

Version data entries

75 entries across 75 versions & 2 rubygems

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