Class: Capistrano::ASG::Rolling::Instances

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/capistrano/asg/rolling/instances.rb

Overview

Collection of Instances. Runs commands on instances in parallel.

Instance Method Summary collapse

Constructor Details

#initialize(instances = []) ⇒ Instances

Returns a new instance of Instances.



12
13
14
# File 'lib/capistrano/asg/rolling/instances.rb', line 12

def initialize(instances = [])
  @instances = Concurrent::Array.new(instances)
end

Instance Method Details

#<<(instance) ⇒ Object



16
17
18
# File 'lib/capistrano/asg/rolling/instances.rb', line 16

def <<(instance)
  @instances << instance
end

#auto_terminatableObject



28
29
30
# File 'lib/capistrano/asg/rolling/instances.rb', line 28

def auto_terminatable
  self.class.new(select(&:auto_terminate?))
end

#create_ami(name: nil, description: nil, tags: nil) ⇒ Object



44
45
46
47
48
# File 'lib/capistrano/asg/rolling/instances.rb', line 44

def create_ami(name: nil, description: nil, tags: nil)
  Parallel.run(instances) do |instance|
    instance.create_ami(name: name, description: description, tags: tags)
  end
end

#eachObject



20
21
22
# File 'lib/capistrano/asg/rolling/instances.rb', line 20

def each(&)
  instances.each(&)
end

#empty?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/capistrano/asg/rolling/instances.rb', line 24

def empty?
  instances.empty?
end

#stopObject



36
37
38
# File 'lib/capistrano/asg/rolling/instances.rb', line 36

def stop
  Parallel.run(instances, &:stop)
end

#terminateObject



40
41
42
# File 'lib/capistrano/asg/rolling/instances.rb', line 40

def terminate
  Parallel.run(instances, &:terminate)
end

#with_image(image_id) ⇒ Object



32
33
34
# File 'lib/capistrano/asg/rolling/instances.rb', line 32

def with_image(image_id)
  self.class.new(select { |instance| instance.image_id == image_id })
end