Sha256: 94365ab413d3a9a844d828199902c5e3f55cf43ffbd6ccdd683ff45701f533e0

Contents?: true

Size: 1.1 KB

Versions: 4

Compression:

Stored size: 1.1 KB

Contents

require File.expand_path(File.dirname(__FILE__) + '/base')


module KnifeJoyent
  class JoyentServerList < Chef::Knife

    include KnifeJoyent::Base

    banner "knife joyent server list <options>"

    def run
      servers = [
        ui.color('ID', :bold),
        ui.color('Name', :bold),
        ui.color('State', :bold),
        ui.color('Type', :bold),
        ui.color('Image', :bold),
        ui.color('IPs', :bold),
        ui.color('RAM', :bold),
        ui.color('Disk', :bold),
      ]

      self.connection.servers.sort_by(&:name).each do |s|
        servers << s.id.to_s
        servers << s.name

        servers << case s.state
        when 'running'
          ui.color(s.state, :green)
        when 'stopping'
        when 'provisioning'
          ui.color(s.state, :yellow)
        when 'stopped'
          ui.color(s.state, :red)
        end

        servers << s.type
        servers << s.dataset
        servers << s.ips.join(" ")
        servers << "#{s.memory/1024} GB".to_s
        servers << "#{s.disk/1024} GB".to_s
      end

      puts ui.list(servers, :uneven_columns_across, 8)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
knife-joyent-0.0.5 lib/chef/knife/joyent_server_list.rb
knife-joyent-0.0.4 lib/chef/knife/joyent_server_list.rb
knife-joyent-0.0.3 lib/chef/knife/joyent_server_list.rb
knife-joyent-0.0.2 lib/knife-joyent/joyent_server_list.rb