Class: DruidConfig::Entities::Worker

Inherits:
Object
  • Object
show all
Defined in:
lib/druid_config/entities/worker.rb

Overview

Worker class

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(metadata) ⇒ Worker

Initialize it with received info

Parameters:

metadata

Hash with returned metadata from Druid



18
19
20
21
22
23
24
25
26
# File 'lib/druid_config/entities/worker.rb', line 18

def initialize()
  @host, @port = ['worker']['host'].split(':')
  @ip = ['worker']['ip']
  @capacity = ['worker']['capacity']
  @version = ['worker']['version']
  @last_completed_task_time = ['lastCompletedTaskTime']
  @running_tasks = ['runningTasks']
  @capacity_used = ['currCapacityUsed']
end

Instance Attribute Details

#capacityObject (readonly)

Readers



8
9
10
# File 'lib/druid_config/entities/worker.rb', line 8

def capacity
  @capacity
end

#current_capacity_usedObject (readonly)

Readers



8
9
10
# File 'lib/druid_config/entities/worker.rb', line 8

def current_capacity_used
  @current_capacity_used
end

#hostObject (readonly)

Readers



8
9
10
# File 'lib/druid_config/entities/worker.rb', line 8

def host
  @host
end

#ipObject (readonly)

Readers



8
9
10
# File 'lib/druid_config/entities/worker.rb', line 8

def ip
  @ip
end

#last_completed_task_timeObject (readonly)

Readers



8
9
10
# File 'lib/druid_config/entities/worker.rb', line 8

def last_completed_task_time
  @last_completed_task_time
end

#portObject (readonly)

Readers



8
9
10
# File 'lib/druid_config/entities/worker.rb', line 8

def port
  @port
end

#running_tasksObject (readonly)

Readers



8
9
10
# File 'lib/druid_config/entities/worker.rb', line 8

def running_tasks
  @running_tasks
end

#versionObject (readonly)

Readers



8
9
10
# File 'lib/druid_config/entities/worker.rb', line 8

def version
  @version
end

Instance Method Details

#freeObject

Return free capacity



31
32
33
# File 'lib/druid_config/entities/worker.rb', line 31

def free
  @free ||= (capacity - current_capacity_used)
end

#uriObject

Return the uri of the worker



46
47
48
# File 'lib/druid_config/entities/worker.rb', line 46

def uri
  "#{@host}:#{@port}"
end

#usedObject

Return capacity used



38
39
40
41
# File 'lib/druid_config/entities/worker.rb', line 38

def used
  return 0 unless @capacity && @capacity != 0
  ((@capacity_used.to_f / @capacity) * 100).round(2)
end