Class: Opsicle::Monitor::Panels::Instances

Inherits:
Opsicle::Monitor::Panel show all
Defined in:
lib/opsicle/monitor/panels/instances.rb

Instance Attribute Summary

Attributes inherited from Opsicle::Monitor::Panel

#divider_length, #dividers, #height, #left, #top, #width

Instance Method Summary collapse

Methods inherited from Opsicle::Monitor::Panel

#close, #refresh, #refresh_spies

Methods included from Translatable

#translate

Constructor Details

#initialize(height, width, top, left) ⇒ Instances

Returns a new instance of Instances.



6
7
8
9
10
# File 'lib/opsicle/monitor/panels/instances.rb', line 6

def initialize(height, width, top, left)
  super(height, width, top, left, structure(height), :divider_r => " ")

  @spies[:instances] = Monitor::Spy::Instances.new
end

Instance Method Details

#structure(height) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/opsicle/monitor/panels/instances.rb', line 12

def structure(height)
  # [
  #   [relative_column_width, data_left, data_right]
  # ]
  s = [
    [ # table header slots
      [1, translate[:heading][:ec2_instance_id], nil],
      [1, translate[:heading][:hostname], nil],
      [1, translate[:heading][:status], nil],
      [1, translate[:heading][:zone], nil],
      [1, translate[:heading][:ip], nil]
    ],
  ]

  (0...(height - 1)).each do |i|
    s << [ # table row slots
      [1, -> { @spies[:instances][i][:ec2_instance_id] }, nil],
      [1, -> { @spies[:instances][i][:hostname] }, nil],
      [1, -> { @spies[:instances][i][:status] }, nil],
      [1, -> { @spies[:instances][i][:zone] }, nil],
      [1, -> { @spies[:instances][i][:ip] }, nil]
    ]
  end

  s
end