Sha256: c8452ec74dde357dc030c2331b0b089abb26d7ab9e6eea2a3612260a7d56b55c

Contents?: true

Size: 1.59 KB

Versions: 3

Compression:

Stored size: 1.59 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}

  List the clouds and their nodes
  e.g. show a list of the current instances on the cloud
EOS

  opt :instance_id, "Describe a specific instance", :type => String, :default => nil
  opt :short, "show a short description rather than a long one", :default => false

  short_desc "show a list of the current instances on the clouds"

  run do |command|
    @loaded_clouds.each do |cld|
      if command[:instance_id]
        require 'pp'
        pp result = cld.nodes(:instance_id=>command[:instance_id])
      else
        if command[:short]
          %w{running pending}.each do |status|
            nodes = cld.nodes(:status => status)
            if nodes.size > 0
              puts nodes.map{|a| 
                "%-15s [%s]: #{a[:instance_id] || a[:id]}\t#{a[:ip] ||a[:public_ip] }" % [cld.name, status] 
              }.join("\n")
            end
          end
        else
          puts "Listing cloud #{cld.name}"
          puts "Active instances"
          puts cld.nodes(:status => "running").map{|a| "#{a[:instance_id] || a[:id]}\t#{a[:ip] ||a[:public_ip] }" }.join("\n")
          
          if cld.nodes(:status => "pending").size > 0
            puts "Pending instances"
            puts cld.nodes(:status => "pending").map{|a| "#{a[:instance_id] || a[:id]}\t#{a[:ip] ||a[:public_ip] }" }.join("\n")
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
auser-poolparty-1.2.11 bin/cloud-list
auser-poolparty-1.2.12 bin/cloud-list
fairchild-poolparty-1.2.12 bin/cloud-list