Class: Capistrano::ASG::Rolling::Instances
- Inherits:
-
Object
- Object
- Capistrano::ASG::Rolling::Instances
- Includes:
- Enumerable
- Defined in:
- lib/capistrano/asg/rolling/instances.rb
Overview
Collection of Instances. Runs commands on instances in parallel.
Instance Method Summary collapse
- #<<(instance) ⇒ Object
- #auto_terminatable ⇒ Object
- #create_ami(name: nil, description: nil, tags: nil) ⇒ Object
- #each ⇒ Object
- #empty? ⇒ Boolean
-
#initialize(instances = []) ⇒ Instances
constructor
A new instance of Instances.
- #stop ⇒ Object
- #terminate ⇒ Object
- #with_image(image_id) ⇒ Object
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_terminatable ⇒ Object
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: ) end end |
#each ⇒ Object
20 21 22 |
# File 'lib/capistrano/asg/rolling/instances.rb', line 20 def each(&) instances.each(&) end |
#empty? ⇒ Boolean
24 25 26 |
# File 'lib/capistrano/asg/rolling/instances.rb', line 24 def empty? instances.empty? end |
#stop ⇒ Object
36 37 38 |
# File 'lib/capistrano/asg/rolling/instances.rb', line 36 def stop Parallel.run(instances, &:stop) end |
#terminate ⇒ Object
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 |