class DruidConfig::Entities::Worker

Worker class

Attributes

capacity[R]

Readers

capacity_used[R]

Readers

host[R]

Readers

ip[R]

Readers

last_completed_task_time[R]

Readers

port[R]

Readers

running_tasks[R]

Readers

used[R]

Readers

version[R]

Readers

Public Class Methods

new(metadata) click to toggle source

Initialize it with received info

Parameters:

metadata

Hash with returned metadata from Druid

# File lib/druid_config/entities/worker.rb, line 18
def initialize(metadata)
  @host, @port = metadata['worker']['host'].split(':')
  @ip = metadata['worker']['ip']
  @capacity = metadata['worker']['capacity']
  @version = metadata['worker']['version']
  @last_completed_task_time = metadata['lastCompletedTaskTime']
  @running_tasks = metadata['runningTasks'].map do |task|
    DruidConfig::Entities::Task.new(
      task,
      DruidConfig::Entities::Task::STATUS[:running],
      created_time: task['createdTime'],
      query_insertion_time: task['queueInsertionTime'])
  end
  @capacity_used = metadata['currCapacityUsed']
end

Public Instance Methods

free() click to toggle source

Return free capacity

# File lib/druid_config/entities/worker.rb, line 39
def free
  return @free if @free
  @free = (capacity - capacity_used) > 0 ? (capacity - capacity_used) : 0
end
uri() click to toggle source

Return the uri of the worker

# File lib/druid_config/entities/worker.rb, line 55
def uri
  "#{@host}:#{@port}"
end
used_percent() click to toggle source

Return capacity used

# File lib/druid_config/entities/worker.rb, line 47
def used_percent
  return 0 unless @capacity && @capacity != 0
  ((@capacity_used.to_f / @capacity) * 100).round(2)
end