Class: Octopusci::JobStore
- Inherits:
-
Object
- Object
- Octopusci::JobStore
- Defined in:
- lib/octopusci/job_store.rb
Class Method Summary collapse
- .get(job_id) ⇒ Object
- .list(start_idx, num_jobs) ⇒ Object
- .list_job_ids(start_idx, num_jobs) ⇒ Object
- .list_repo_branch(repo_name, branch_name, start_idx, num_jobs) ⇒ Object
- .list_repo_branch_job_ids(repo_name, branch_name, start_idx, num_jobs) ⇒ Object
- .prepend(job) ⇒ Object
- .redis ⇒ Object
- .repo_branch_size(repo_name, branch_name) ⇒ Object
- .set(job_id, job) ⇒ Object
- .size ⇒ Object
Class Method Details
.get(job_id) ⇒ Object
18 19 20 21 22 23 24 |
# 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) ⇒ Object
56 57 58 59 |
# 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) ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# 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) ⇒ Object
61 62 63 64 |
# 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) ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# 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) ⇒ Object
6 7 8 9 10 11 12 |
# 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 ⇒ Object
66 67 68 |
# File 'lib/octopusci/job_store.rb', line 66 def self.redis Resque.redis end |
.repo_branch_size(repo_name, branch_name) ⇒ Object
30 31 32 |
# 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) ⇒ Object
14 15 16 |
# 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 ⇒ Object
26 27 28 |
# File 'lib/octopusci/job_store.rb', line 26 def self.size redis.llen("octopusci:jobs") end |