Sha256: 9da085c691b9e73546fcebe2cb7c4b4d446ee9d9784444ea8f7a95aaa1cb9ce4

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

#!/usr/bin/env ruby
$:.unshift(File.dirname(__FILE__) + "/../lib")
require "poolparty"
# require "poolpartycl"
require 'git-style-binary/command'

GitStyleBinary.command do  
  version "PoolParty #{$0} command"  
  banner <<-EOS
Usage: #{$0} #{all_options_string}

  contracts the cloud by a single instance
EOS

  short_desc "contracts the cloud by a single instance"

  run do |command|    
    @loaded_clouds.each do |cld|

      puts header("Contracting cloud #{cld.name}")
      puts "#{cld.nodes(:status => "running").size} running instances (#{cld.minimum_instances} minimum instances)"
      puts testing ? "Not contracting (test mode)" : "Contracting the cloud if possible"
      
      if cld.minimum_instances < cld.nodes(:status => "running").size
        last_instance_id = cld.nodes(:status => "running").last[:instance_id]
        cld.remote_base.terminate_instance! cld.dsl_options.merge(:instance_id => last_instance_id)
      else
        puts "The cloud #{cld.name} is running minimum instances (#{cld.nodes(:status => "running").size})"
      end

    end    
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
auser-poolparty-1.2.7 bin/cloud-contract