Sha256: 1133ebf4f48aabe0362172d0aae4e819b38060bfa99f13223e679e2b20f6cda6

Contents?: true

Size: 971 Bytes

Versions: 13

Compression:

Stored size: 971 Bytes

Contents

module Ufo
  class Scale
    include Util
    include AwsService

    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

13 entries across 13 versions & 1 rubygems

Version Path
ufo-3.5.7 lib/ufo/scale.rb
ufo-3.5.6 lib/ufo/scale.rb
ufo-3.5.5 lib/ufo/scale.rb
ufo-3.5.4 lib/ufo/scale.rb
ufo-3.5.3 lib/ufo/scale.rb
ufo-3.5.2 lib/ufo/scale.rb
ufo-3.5.1 lib/ufo/scale.rb
ufo-3.5.0 lib/ufo/scale.rb
ufo-3.4.4 lib/ufo/scale.rb
ufo-3.4.3 lib/ufo/scale.rb
ufo-3.4.2 lib/ufo/scale.rb
ufo-3.4.1 lib/ufo/scale.rb
ufo-3.4.0 lib/ufo/scale.rb