Sha256: 2fca3064947c676bf4c2f031d577f359178d0003d40955f89e578beb4204eee5

Contents?: true

Size: 976 Bytes

Versions: 26

Compression:

Stored size: 976 Bytes

Contents

module Ufo
  class Scale
    include Defaults
    include AwsServices

    def initialize(service, count, options={})
      @service = service
      @count = count
      @options = options
      @cluster = @options[:cluster] || default_cluster
    end

    def update
      unless service_exists?
        puts "Unable to find the #{@service} service on #{@cluster} cluster."
        puts "Are you sure you are trying to scale the right service on the right cluster?"
        exit
      end
      ecs.update_service(
        service: @service,
        cluster: @cluster,
        desired_count: @count
      )
      puts "Scale #{@service} service in #{@cluster} cluster to #{@count}" unless @options[:mute]
    end

    def service_exists?
      cluster = ecs.describe_clusters(clusters: [@cluster]).clusters.first
      return false unless cluster
      service = ecs.describe_services(services: [@service], cluster: @cluster).services.first
      !!service
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
ufo-2.2.2 lib/ufo/scale.rb
ufo-2.2.1 lib/ufo/scale.rb
ufo-2.2.0 lib/ufo/scale.rb
ufo-2.1.0 lib/ufo/scale.rb
ufo-2.0.3 lib/ufo/scale.rb
ufo-2.0.2 lib/ufo/scale.rb
ufo-2.0.1 lib/ufo/scale.rb
ufo-2.0.0 lib/ufo/scale.rb
ufo-1.7.1 lib/ufo/scale.rb
ufo-1.7.0 lib/ufo/scale.rb
ufo-1.6.2 lib/ufo/scale.rb
ufo-1.6.1 lib/ufo/scale.rb
ufo-1.6.0 lib/ufo/scale.rb
ufo-1.5.0 lib/ufo/scale.rb
ufo-1.2.0 lib/ufo/scale.rb
ufo-1.1.0 lib/ufo/scale.rb
ufo-1.0.1 lib/ufo/scale.rb
ufo-1.0.0 lib/ufo/scale.rb
ufo-0.1.6 lib/ufo/scale.rb
ufo-0.1.5 lib/ufo/scale.rb