Sha256: 42e05097f92b198e4a6f31a0204a25cfa6f8cad29e6c26b4b6a82c839cd02360

Contents?: true

Size: 1.52 KB

Versions: 3

Compression:

Stored size: 1.52 KB

Contents

#!/usr/bin/env ruby
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
require "poolparty"
require "poolpartycl"
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
  opts.on('-f [remote|local]', '--from [remote|local]', 'Remote or local (default: local)')    { |o| optioner.location o }
  opts.on('-r', '--remote', 'Remote listing')    { optioner.location "remote" }
  opts.on('-l', '--local', 'Local listing')    { optioner.location "local" }
  opts.on('-n name', '--name name', 'Listing for cloud name')    { |c| optioner.cloudname c }
end
load_pool(o.spec || Binary.get_existing_spec_location)

@location = o.location ? o.location : "remote"

include Remote

@clouds = o.cloudname ? [cloud(o.cloudname.downcase.to_sym)] : clouds

@clouds.each do |name, cloud|

  with_cloud(cloud, {:location => @location, :testing => o.testing, :verbose => o.verbose}) do
    vputs header("Maintaining cloud #{name}")
    logger.warn "Maintaining cloud"
    logger.warn rules_values
    if !minimum_number_of_instances_are_running?
      vputs "#{list_of_running_instances.size} running instances of between #{minimum_instances} and #{maximum_instances}"
      vputs "Launching new instance"
      launch_minimum_number_of_instances
    elsif !maximum_number_of_instances_are_not_running?
      vputs "#{list_of_running_instances.size} running instances of between #{minimum_instances} and #{maximum_instances}"
      vputs "Shutting down non-master instance"
      contract_cloud_if_necessary( !testing )
    end    
    vputs "Cloud is maintained"
  end  

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
auser-poolparty-0.2.40 bin/cloud-maintain
auser-poolparty-0.2.41 bin/cloud-maintain
auser-poolparty-0.2.42 bin/cloud-maintain