Class: Logical::Naf::Machine

Inherits:
Object
  • Object
show all
Includes:
ActionView::Helpers::DateHelper
Defined in:
app/models/logical/naf/machine.rb

Constant Summary collapse

COLUMNS =
[:id,
:server_name,
:server_address,
:server_note,
:enabled,
:process_pool_size,
:last_checked_schedules_at,
:last_seen_alive_at,
:log_level,
:affinities,
:marked_down]

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(naf_machine) ⇒ Machine

Returns a new instance of Machine.



21
22
23
# File 'app/models/logical/naf/machine.rb', line 21

def initialize(naf_machine)
  @machine = naf_machine
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, *arguments, &block) ⇒ Object



25
26
27
28
29
30
31
# File 'app/models/logical/naf/machine.rb', line 25

def method_missing(method_name, *arguments, &block)
  if @machine.respond_to?(method_name)
    @machine.send(method_name, *arguments, &block)
  else
    super
  end
end

Class Method Details

.all(filter = false) ⇒ Object



33
34
35
# File 'app/models/logical/naf/machine.rb', line 33

def self.all(filter = false)
  ::Naf::Machine.include_deleted(filter).all.map{ |machine| new(machine) }
end

Instance Method Details

#affinitiesObject



61
62
63
64
65
66
67
68
69
70
71
# File 'app/models/logical/naf/machine.rb', line 61

def affinities
  @machine.machine_affinity_slots.map do |slot|
    if slot.affinity_short_name
      slot.affinity_short_name
    else
      name = slot.affinity_classification_name + '_' + slot.affinity_name
      name = name + '_required' if slot.required
      name
    end
  end.join(", \n")
end

#last_checked_schedules_atObject



41
42
43
44
45
46
47
# File 'app/models/logical/naf/machine.rb', line 41

def last_checked_schedules_at
  if value = @machine.last_checked_schedules_at
    "#{time_ago_in_words(value, true)} ago, #{value.localtime.strftime("%Y-%m-%d %r")}"
  else
    ""
  end
end

#last_seen_alive_atObject



49
50
51
52
53
54
55
# File 'app/models/logical/naf/machine.rb', line 49

def last_seen_alive_at
  if value = @machine.last_seen_alive_at
    "#{time_ago_in_words(value, true)} ago, #{value.localtime.strftime("%Y-%m-%d %r")}"
  else
    ""
  end
end

#nameObject



73
74
75
76
77
78
79
80
81
# File 'app/models/logical/naf/machine.rb', line 73

def name
  if @machine.short_name
    @machine.short_name
  elsif @machine.server_name
    @machine.server_name
  else
    @machine.server_address
  end
end

#process_pool_sizeObject



37
38
39
# File 'app/models/logical/naf/machine.rb', line 37

def process_pool_size
  thread_pool_size
end

#to_hashObject



57
58
59
# File 'app/models/logical/naf/machine.rb', line 57

def to_hash
  Hash[COLUMNS.map{ |m| [m, send(m)] }]
end