Sha256: 96b8c3b1b12c6bb718dc19c33a63c3a41a081a15de6e69faebeef5697d220b47

Contents?: true

Size: 974 Bytes

Versions: 12

Compression:

Stored size: 974 Bytes

Contents

module Ufo
  class Scale
    include Default
    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

12 entries across 12 versions & 1 rubygems

Version Path
ufo-3.3.2 lib/ufo/scale.rb
ufo-3.3.1 lib/ufo/scale.rb
ufo-3.3.0 lib/ufo/scale.rb
ufo-3.2.2 lib/ufo/scale.rb
ufo-3.2.1 lib/ufo/scale.rb
ufo-3.2.0 lib/ufo/scale.rb
ufo-3.1.2 lib/ufo/scale.rb
ufo-3.1.1 lib/ufo/scale.rb
ufo-3.1.0 lib/ufo/scale.rb
ufo-3.0.1 lib/ufo/scale.rb
ufo-3.0.0 lib/ufo/scale.rb
ufo-2.3.0 lib/ufo/scale.rb