class RRRSpec::WorkerLog

Attributes

key[R]

Public Class Methods

create(worker, taskset) click to toggle source

Public: Create a new worker_log. This method will call Taskset#add_worker_log

# File lib/rrrspec/redis_models.rb, line 482
def self.create(worker, taskset)
  worker_log_key = RRRSpec.make_key(taskset.key, worker.key)
  RRRSpec.redis.hmset(
    worker_log_key,
    'worker', worker.key,
    'taskset', taskset.key,
    'started_at', Time.zone.now.to_s,
  )
  worker_log = new(worker_log_key)
  taskset.add_worker_log(worker_log)
  return worker_log
end
new(worker_log_key) click to toggle source
# File lib/rrrspec/redis_models.rb, line 476
def initialize(worker_log_key)
  @key = worker_log_key
end

Public Instance Methods

append_log(string) click to toggle source

Public: Append a line to the log

# File lib/rrrspec/redis_models.rb, line 546
def append_log(string)
  RRRSpec.redis.append(RRRSpec.make_key(key, 'log'), string)
end
expire(sec) click to toggle source

Persistence

# File lib/rrrspec/redis_models.rb, line 573
def expire(sec)
  RRRSpec.redis.expire(key, sec)
  RRRSpec.redis.expire(RRRSpec.make_key(key, 'log'), sec)
end
finished_at() click to toggle source

Public: Returns the finished_at

# File lib/rrrspec/redis_models.rb, line 530
def finished_at
  v = RRRSpec.redis.hget(key, 'finished_at')
  v.present? ? Time.zone.parse(v) : nil
end
log() click to toggle source

Public: Logs happend in worker

# File lib/rrrspec/redis_models.rb, line 541
def log
  RRRSpec.redis.get(RRRSpec.make_key(key, 'log')) || ""
end
rsync_finished_at() click to toggle source

Public: Returns the rsync_finished_at

# File lib/rrrspec/redis_models.rb, line 508
def rsync_finished_at
  v = RRRSpec.redis.hget(key, 'rsync_finished_at')
  v.present? ? Time.zone.parse(v) : nil
end
set_finished_time() click to toggle source

Public: Set finished_at time if it is empty

# File lib/rrrspec/redis_models.rb, line 536
def set_finished_time
  RRRSpec.redis.hsetnx(key, 'finished_at', Time.zone.now.to_s)
end
set_rsync_finished_time() click to toggle source

Public: Set rsync_finished_at time

# File lib/rrrspec/redis_models.rb, line 514
def set_rsync_finished_time
  RRRSpec.redis.hset(key, 'rsync_finished_at', Time.zone.now.to_s)
end
set_setup_finished_time() click to toggle source

Public: Set setup_finished_at time

# File lib/rrrspec/redis_models.rb, line 525
def set_setup_finished_time
  RRRSpec.redis.hset(key, 'setup_finished_at', Time.zone.now.to_s)
end
setup_finished_at() click to toggle source

Public: Returns the setup_finished_at

# File lib/rrrspec/redis_models.rb, line 519
def setup_finished_at
  v = RRRSpec.redis.hget(key, 'setup_finished_at')
  v.present? ? Time.zone.parse(v) : nil
end
started_at() click to toggle source

Public: Returns the started_at

# File lib/rrrspec/redis_models.rb, line 499
def started_at
  v = RRRSpec.redis.hget(key, 'started_at')
  v.present? ? Time.zone.parse(v) : nil
end
to_h() click to toggle source

Serialize

# File lib/rrrspec/redis_models.rb, line 553
def to_h
  h = RRRSpec.redis.hgetall(key)
  h['key'] = key
  h['log'] = log
  h['worker'] = { 'key' => h['worker'] }
  h['taskset'] = { 'key' => h['taskset'] }
  RRRSpec.convert_if_present(h, 'started_at') { |v| Time.zone.parse(v) }
  RRRSpec.convert_if_present(h, 'rsync_finished_at') { |v| Time.zone.parse(v) }
  RRRSpec.convert_if_present(h, 'setup_finished_at') { |v| Time.zone.parse(v) }
  RRRSpec.convert_if_present(h, 'finished_at') { |v| Time.zone.parse(v) }
  h
end
to_json(options=nil) click to toggle source
# File lib/rrrspec/redis_models.rb, line 566
def to_json(options=nil)
  to_h.to_json(options)
end