Class: ProxyAPI::Openbolt
- Inherits:
-
Resource
- Object
- Resource
- ProxyAPI::Openbolt
- Defined in:
- lib/proxy_api/openbolt.rb
Instance Method Summary collapse
- #delete_job_artifacts(job_id:) ⇒ Object
- #fetch_tasks ⇒ Object
-
#initialize(args) ⇒ Openbolt
constructor
A new instance of Openbolt.
- #job_result(job_id:) ⇒ Object
- #job_status(job_id:) ⇒ Object
- #launch_task(name:, targets:, parameters: {}, options: {}) ⇒ Object
- #openbolt_options ⇒ Object
- #parse_response(response, operation) ⇒ Object
- #reload_tasks ⇒ Object
- #task_names ⇒ Object
- #tasks ⇒ Object
Constructor Details
#initialize(args) ⇒ Openbolt
Returns a new instance of Openbolt.
7 8 9 10 |
# File 'lib/proxy_api/openbolt.rb', line 7 def initialize(args) @url = args[:url] super end |
Instance Method Details
#delete_job_artifacts(job_id:) ⇒ Object
50 51 52 |
# File 'lib/proxy_api/openbolt.rb', line 50 def delete_job_artifacts(job_id:) parse_response(delete("/openbolt/job/#{job_id}/artifacts"), 'delete_job_artifacts') end |
#fetch_tasks ⇒ Object
12 13 14 |
# File 'lib/proxy_api/openbolt.rb', line 12 def fetch_tasks @tasks = parse_response(get('/openbolt/tasks'), 'fetch_tasks') end |
#job_result(job_id:) ⇒ Object
46 47 48 |
# File 'lib/proxy_api/openbolt.rb', line 46 def job_result(job_id:) parse_response(get("/openbolt/job/#{job_id}/result"), 'job_result') end |
#job_status(job_id:) ⇒ Object
42 43 44 |
# File 'lib/proxy_api/openbolt.rb', line 42 def job_status(job_id:) parse_response(get("/openbolt/job/#{job_id}/status"), 'job_status') end |
#launch_task(name:, targets:, parameters: {}, options: {}) ⇒ Object
32 33 34 35 36 37 38 39 40 |
# File 'lib/proxy_api/openbolt.rb', line 32 def launch_task(name:, targets:, parameters: {}, options: {}) response = post({ name: name, targets: targets, parameters: parameters, options: , }.to_json, '/openbolt/launch/task') parse_response(response, 'launch_task') end |
#openbolt_options ⇒ Object
28 29 30 |
# File 'lib/proxy_api/openbolt.rb', line 28 def @openbolt_options ||= parse_response(get('/openbolt/tasks/options'), 'openbolt_options') end |
#parse_response(response, operation) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/proxy_api/openbolt.rb', line 54 def parse_response(response, operation) raise ProxyException.new(@url, nil, "No response from Smart Proxy during #{operation}") unless response body = response.body raise ProxyException.new(@url, nil, "Empty response body from Smart Proxy during #{operation}") if body.nil? JSON.parse(body) rescue JSON::ParserError => e raise ProxyException.new( @url, nil, "Invalid JSON from Smart Proxy during #{operation}: #{e.}. " \ "Response body (first 500 chars): #{body.to_s[0..500]}" ) end |
#reload_tasks ⇒ Object
20 21 22 |
# File 'lib/proxy_api/openbolt.rb', line 20 def reload_tasks @tasks = parse_response(get('/openbolt/tasks/reload'), 'reload_tasks') end |
#task_names ⇒ Object
24 25 26 |
# File 'lib/proxy_api/openbolt.rb', line 24 def task_names tasks.keys end |
#tasks ⇒ Object
16 17 18 |
# File 'lib/proxy_api/openbolt.rb', line 16 def tasks @tasks ||= fetch_tasks end |