Sha256: 4fcc6af5147876c57ce9cce0cd2be04a87feeeb55ea4e8612328bf12639e4836

Contents?: true

Size: 900 Bytes

Versions: 27

Compression:

Stored size: 900 Bytes

Contents

require 'terminal-table'

module Opsicle
  class ListInstances
    attr_reader :client

    def initialize(environment)
      @client = Client.new(environment)
      @stack = Stack.new(@client)
    end

    def execute(options={})
      print(get_instances)
    end

    def get_instances
      Opsicle::Instances.new(client).data
    end

    def print(instances)
      puts Terminal::Table.new headings: ['Hostname', 'Layers', 'Status', 'IP', 'Instance ID'], rows: instance_data(instances)
    end

    def instance_data(instances)
      instances.sort { |a,b| a[:hostname] <=> b[:hostname] }.map { |instance|
        [instance[:hostname], layer_names(instance), instance[:status], Opsicle::Instances::pretty_ip(instance), instance[:instance_id]]
      }
    end

    def layer_names(instance)
      instance[:layer_ids].map{ |layer_id| @stack.layer_name(layer_id) }.join(" | ")
    end

  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
opsicle-2.9.3 lib/opsicle/commands/list_instances.rb
opsicle-2.9.2 lib/opsicle/commands/list_instances.rb
opsicle-2.9.0 lib/opsicle/commands/list_instances.rb
opsicle-2.8.0 lib/opsicle/commands/list_instances.rb
opsicle-2.6.0 lib/opsicle/commands/list_instances.rb
opsicle-2.5.0 lib/opsicle/commands/list_instances.rb
opsicle-2.4.1 lib/opsicle/commands/list_instances.rb
opsicle-2.4.0 lib/opsicle/commands/list_instances.rb
opsicle-2.3.1 lib/opsicle/commands/list_instances.rb
opsicle-2.3.0 lib/opsicle/commands/list_instances.rb
opsicle-2.2.1 lib/opsicle/commands/list_instances.rb
opsicle-2.2.0 lib/opsicle/commands/list_instances.rb
opsicle-2.1.0 lib/opsicle/commands/list_instances.rb
opsicle-2.0.2 lib/opsicle/commands/list_instances.rb
opsicle-2.0.1 lib/opsicle/commands/list_instances.rb
opsicle-2.0.0 lib/opsicle/commands/list_instances.rb
opsicle-1.1.1 lib/opsicle/commands/list_instances.rb
opsicle-1.1.0 lib/opsicle/commands/list_instances.rb
opsicle-1.0.1 lib/opsicle/commands/list_instances.rb
opsicle-0.18.1 lib/opsicle/commands/list_instances.rb