Class: Kindly::DB
- Inherits:
-
Object
- Object
- Kindly::DB
- Defined in:
- lib/kindly/db.rb
Constant Summary collapse
- DEFAULTS =
{ :table_names => { :data => 'job-data', :pending => 'job-pending', :running => 'job-running', :completed => 'job-completed', :failed => 'job-failed' } }
Instance Method Summary collapse
- #fetch_job(job_name, job_id) ⇒ Object
-
#initialize(options = {}) ⇒ DB
constructor
A new instance of DB.
- #insert_job(job_name, input) ⇒ Object
- #insert_job_data(data) ⇒ Object
- #update_job_status(job, job_status) ⇒ Object
- #user ⇒ Object
Constructor Details
Instance Method Details
#fetch_job(job_name, job_id) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/kindly/db.rb', line 53 def fetch_job(job_name, job_id) job = Registry.find(job_name) fields = fetch_job_fields(job_id) add_fields_to_job(job, fields) if job.fields.has_key?('InputDataId') input = fetch_job_data(job.fields['InputDataId']) job.input = input end job end |
#insert_job(job_name, input) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/kindly/db.rb', line 26 def insert_job(job_name, input) item = { 'JobId' => SecureRandom.uuid, 'JobName' => job_name, 'RequestedAt' => Time.now.to_s, 'RequestedBy' => user.user_name } unless input.empty? data = insert_job_data(input) item['InputDataId'] = data['JobDataId'] end @db.put_item({ table_name: 'job-pending', item: item }) item end |
#insert_job_data(data) ⇒ Object
43 44 45 46 47 48 49 50 51 |
# File 'lib/kindly/db.rb', line 43 def insert_job_data(data) item = { 'JobDataId' => SecureRandom.uuid, 'Data' => data, 'CreatedAt' => Time.now.to_s } @db.put_item({ table_name: 'job-data', item: item }) item end |
#update_job_status(job, job_status) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/kindly/db.rb', line 65 def update_job_status(job, job_status) case job_status when :running delete_job_status(job, :pending) when :completed, :failed delete_job_status(job, :running) else raise "#{new_status} is invalid for job #{job.fields['JobId']}." end insert_job_status(job, job_status) end |
#user ⇒ Object
22 23 24 |
# File 'lib/kindly/db.rb', line 22 def user @user ||= Aws::IAM::CurrentUser.new(region: 'us-west-2') end |