Sha256: c6a52729fe68732be34f87f258dd4fd46fdeb481fe8194994e8c093a34e0105c
Contents?: true
Size: 1.49 KB
Versions: 3
Compression:
Stored size: 1.49 KB
Contents
class Lono::SetInstances class Deploy < Changeable def run # computes whether create or update should be ran for stack instances within each account updates, creates = Hash.new([]), Hash.new([]) accounts.each do |account| regions.each do |region| if stack_instance_exists?(account, region) updates[account] += [region] # += [item] works, << item doesnt seem to work else creates[account] += [region] # += [item] works, << item doesnt seem to work end end end deploy(:create, creates) deploy(:update, updates) end def deploy(type, changes) changes.each do |account, regions| run_action(type, account, regions) end end def run_action(type, account, regions) klass = "Lono::SetInstances::#{type.to_s.camelize}" klass = klass.constantize command = lono_command(klass) puts "Running #{command.color(:green)} on account: #{account} regions: #{regions.join(',')}" options = @options.dup options[:accounts] = [account] options[:regions] = regions klass.new(options).run end def lono_command(klass) klass = klass.to_s klass.split('::').map(&:underscore).join(' ') end def stack_instance_exists?(account, region) existing = stack_instances.map do |summary| [summary.account, summary.region] end intersect = existing & [[account, region]] !intersect.empty? end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
lono-7.5.2 | lib/lono/set_instances/deploy.rb |
lono-7.5.1 | lib/lono/set_instances/deploy.rb |
lono-7.5.0 | lib/lono/set_instances/deploy.rb |