class Octopusci::JobStore

Public Class Methods

get(job_id) click to toggle source
# File lib/octopusci/job_store.rb, line 18
def self.get(job_id)
  job = redis.get("octopusci:jobs:#{job_id}")
  if job
    return YAML.load(job)
  end
  return nil
end
list(start_idx, num_jobs) click to toggle source
# File lib/octopusci/job_store.rb, line 56
def self.list(start_idx, num_jobs)
  job_ids = list_job_ids(start_idx, num_jobs)
  job_ids.map { |id| self.get(id) }
end
list_job_ids(start_idx, num_jobs) click to toggle source
# File lib/octopusci/job_store.rb, line 34
def self.list_job_ids(start_idx, num_jobs)
  len = size()
  end_idx = len - 1

  range_idx = start_idx + num_jobs
  if (end_idx - start_idx < num_jobs)
    range_idx = end_idx
  end
  redis.lrange("octopusci:jobs", 0, range_idx)
end
list_repo_branch(repo_name, branch_name, start_idx, num_jobs) click to toggle source
# File lib/octopusci/job_store.rb, line 61
def self.list_repo_branch(repo_name, branch_name, start_idx, num_jobs)
  job_ids = list_repo_branch_job_ids(repo_name, branch_name, start_idx, num_jobs)
  job_ids.map { |id| self.get(id) }
end
list_repo_branch_job_ids(repo_name, branch_name, start_idx, num_jobs) click to toggle source
# File lib/octopusci/job_store.rb, line 45
def self.list_repo_branch_job_ids(repo_name, branch_name, start_idx, num_jobs)
  len = repo_branch_size(repo_name, branch_name)
  end_idx = len - 1

  range_idx = start_idx + num_jobs
  if (end_idx - start_idx < num_jobs)
    range_idx = end_idx
  end
  redis.lrange("octopusci:#{repo_name}:#{branch_name}:jobs", 0, range_idx)
end
prepend(job) click to toggle source
# File lib/octopusci/job_store.rb, line 6
def self.prepend(job)
  job_id = redis.incr('octopusci:job_count')
  self.set(job_id, job.merge({ 'id' => job_id }))
  redis.lpush("octopusci:jobs", job_id)
  redis.lpush("octopusci:#{job['repo_name']}:#{job['ref'].split('/').last}:jobs", job_id)
  return job_id
end
redis() click to toggle source
# File lib/octopusci/job_store.rb, line 66
def self.redis
  Resque.redis
end
repo_branch_size(repo_name, branch_name) click to toggle source
# File lib/octopusci/job_store.rb, line 30
def self.repo_branch_size(repo_name, branch_name)
  redis.llen("octopusci:#{repo_name}:#{branch_name}:jobs")
end
set(job_id, job) click to toggle source
# File lib/octopusci/job_store.rb, line 14
def self.set(job_id, job)
  redis.set("octopusci:jobs:#{job_id}", YAML.dump(job))
end
size() click to toggle source
# File lib/octopusci/job_store.rb, line 26
def self.size
  redis.llen("octopusci:jobs")
end