Class: Falcore::Node::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/falcore/nodes/base.rb

Direct Known Subclasses

Master, Slave

Instance Method Summary collapse

Constructor Details

#initialize(data = {}) ⇒ Base

Returns a new instance of Base.



21
22
23
# File 'lib/falcore/nodes/base.rb', line 21

def initialize(data = {})
  @data = data.dup
end

Instance Method Details

#disk_spaceInteger

Returns:

  • (Integer)


74
75
76
77
# File 'lib/falcore/nodes/base.rb', line 74

def disk_space
  Util.deep_fetch(@data, 'monitorData',
    'hudson.node_monitors.DiskSpaceMonitor', 'size').to_i
end

#display_nameString

Returns:

  • (String)


37
38
39
# File 'lib/falcore/nodes/base.rb', line 37

def display_name
  @data['displayName']
end

#executorsInteger

Returns:

  • (Integer)


47
48
49
# File 'lib/falcore/nodes/base.rb', line 47

def executors
  @data['numExecutors'].to_i
end

#free_memoryInteger

Returns:

  • (Integer)


80
81
82
83
# File 'lib/falcore/nodes/base.rb', line 80

def free_memory
  Util.deep_fetch(@data, 'monitorData',
    'hudson.node_monitors.SwapSpaceMonitor', 'availablePhysicalMemory').to_i
end

#free_swapInteger

Returns:

  • (Integer)


92
93
94
95
# File 'lib/falcore/nodes/base.rb', line 92

def free_swap
  Util.deep_fetch(@data, 'monitorData',
    'hudson.node_monitors.SwapSpaceMonitor', 'availableSwapSpace').to_i
end

#idString

The unique ID for this node. This is the #display_name, but any dots (.) are substituted with dashes (-), because dots are the delimiters for StatsD and other common dumpers.

Returns:

  • (String)


32
33
34
# File 'lib/falcore/nodes/base.rb', line 32

def id
  "jenkins.#{display_name.gsub(/\./, '-')}"
end

#idle?true, false

Returns:

  • (true, false)


42
43
44
# File 'lib/falcore/nodes/base.rb', line 42

def idle?
  !!@data['idle']
end

#inspectObject



109
110
111
112
113
114
115
116
# File 'lib/falcore/nodes/base.rb', line 109

def inspect
  list = Node::Base.public_instance_methods(false)
    .reject { |name| [:to_s, :inspect].include?(name) }
    .sort
    .map { |name| "#{name}: #{public_send(name).inspect}" }

  "#<#{self.class} #{list.join(', ')}>"
end

#offline?true, false

Returns:

  • (true, false)


52
53
54
# File 'lib/falcore/nodes/base.rb', line 52

def offline?
  !!@data['offline']
end

#response_timeInteger

Returns:

  • (Integer)


62
63
64
65
# File 'lib/falcore/nodes/base.rb', line 62

def response_time
  Util.deep_fetch(@data, 'monitorData',
    'hudson.node_monitors.ResponseTimeMonitor', 'average').to_f
end

#temporarily_offline?true, false

Returns:

  • (true, false)


57
58
59
# File 'lib/falcore/nodes/base.rb', line 57

def temporarily_offline?
  !!@data['temporarilyOffline']
end

#temporary_spaceInteger

Returns:

  • (Integer)


68
69
70
71
# File 'lib/falcore/nodes/base.rb', line 68

def temporary_space
  Util.deep_fetch(@data, 'monitorData',
    'hudson.node_monitors.TemporarySpaceMonitor', 'size').to_i
end

#to_sObject



104
105
106
# File 'lib/falcore/nodes/base.rb', line 104

def to_s
  "#<#{self.class}>"
end

#total_memoryInteger

Returns:

  • (Integer)


86
87
88
89
# File 'lib/falcore/nodes/base.rb', line 86

def total_memory
  Util.deep_fetch(@data, 'monitorData',
    'hudson.node_monitors.SwapSpaceMonitor', 'totalPhysicalMemory').to_i
end

#total_swapInteger

Returns:

  • (Integer)


98
99
100
101
# File 'lib/falcore/nodes/base.rb', line 98

def total_swap
  Util.deep_fetch(@data, 'monitorData',
    'hudson.node_monitors.SwapSpaceMonitor', 'totalSwapSpace').to_i
end