Sha256: d5d9bd632c49c6f4d29b864799096a24003ab9f97adb5ec5d67767a3b11d612c

Contents?: true

Size: 1.45 KB

Versions: 4

Compression:

Stored size: 1.45 KB

Contents

desc 'Show detailed server info'
arg_name 'server-id...'
command [:show] do |c|

  c.action do |global_options,options,args|
    
    servers = Server.find(args).compact
    rows = []
    servers.each do |s|
      if s.is_a? String
        error "Could not find server #{s}"
        next
      end
      o = s.to_row
      if s.server_type.exists?
        o[:type] = s.server_type.id
        o[:type_handle] = s.server_type.handle
        o[:type_name] = s.server_type.name
        o[:ram] = s.server_type.ram
        o[:cores] = s.server_type.cores
        o[:disk] = s.server_type.disk.to_i
      end

      if s.image.exists? and false
        o[:image_name] = s.image.name
        o[:arch] = s.image.arch
      end
      o[:private_ips] = s.interfaces.collect { |i| i['ipv4_address'] }.join(", ")
      o[:cloud_ip_ids] = s.cloud_ips.collect { |i| i['id'] }.join(", ")
      o[:cloud_ips] = s.cloud_ips.collect { |i| i['public_ip'] }.join(", ")
      o[:snapshots] = s.snapshots.collect { |i| i['id'] }.join(", ")
      rows << o
    end

    table_opts = global_options.merge({
      :vertical => true,
      :fields => [:id, :status, :name, :description, :created_at, :deleted_at, 
                  :zone, :type, :type_name, :type_handle, :ram, :cores, 
                  :disk, :image, :image_name, :private_ips, :cloud_ips, 
                  :cloud_ip_ids, :hostname, :public_hostname, :snapshots
                 ]
    })

    render_table(rows, table_opts)

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
bbcloud-0.8.2 lib/bbcloud/commands/servers-show.rb
bbcloud-0.8.1 lib/bbcloud/commands/servers-show.rb
bbcloud-0.8 lib/bbcloud/commands/servers-show.rb
bbcloud-0.7 lib/bbcloud/commands/servers-show.rb