Class: ForemanGutterball::GutterballService
- Inherits:
-
Katello::HttpResource
- Object
- Katello::HttpResource
- ForemanGutterball::GutterballService
- Defined in:
- app/services/foreman_gutterball/gutterball_service.rb
Class Method Summary collapse
Instance Method Summary collapse
- #hash_to_query(query_parameters) ⇒ Object
-
#initialize ⇒ GutterballService
constructor
A new instance of GutterballService.
- #report(report_key, query_params) ⇒ Object
- #report_details(report_key) ⇒ Object
Constructor Details
#initialize ⇒ GutterballService
Returns a new instance of GutterballService.
3 4 5 6 7 8 9 10 11 12 13 |
# File 'app/services/foreman_gutterball/gutterball_service.rb', line 3 def initialize cfg = SETTINGS.with_indifferent_access url = cfg['foreman_gutterball']['url'] @uri = URI.parse(url) self.prefix = @uri.path self.site = "#{@uri.scheme}://#{@uri.host}:#{@uri.port}" self.class.site = site self.consumer_secret = cfg[:oauth_consumer_secret] self.consumer_key = cfg[:oauth_consumer_key] self.ca_cert_file = cfg[:ca_cert_file] end |
Class Method Details
.default_headers ⇒ Object
15 16 17 18 19 |
# File 'app/services/foreman_gutterball/gutterball_service.rb', line 15 def self.default_headers { 'accept' => 'application/json', 'accept-language' => I18n.locale, 'content-type' => 'application/json' } end |
.logger ⇒ Object
21 22 23 |
# File 'app/services/foreman_gutterball/gutterball_service.rb', line 21 def self.logger ::Logging.logger['gutterball_service'] end |
Instance Method Details
#hash_to_query(query_parameters) ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'app/services/foreman_gutterball/gutterball_service.rb', line 30 def hash_to_query(query_parameters) query_parameters.reduce('?') do |result, (current_key, current_value) | result << '&' unless result == '?' if current_value.is_a?(Array) result << current_value.map { |value| "#{current_key}=#{self.class.url_encode(value)}" }.join('&') else result << "#{current_key}=#{self.class.url_encode(current_value)}" end end end |
#report(report_key, query_params) ⇒ Object
41 42 43 44 45 46 47 |
# File 'app/services/foreman_gutterball/gutterball_service.rb', line 41 def report(report_key, query_params) format_query(query_params) path = self.class.join_path(prefix, 'reports', report_key, 'run') raw = get_with_params(path, default_headers, hash_to_query(query_params)) resp = JSON.parse(raw) send("format_#{report_key}_response", resp) end |
#report_details(report_key) ⇒ Object
25 26 27 28 |
# File 'app/services/foreman_gutterball/gutterball_service.rb', line 25 def report_details(report_key) path = self.class.join_path(prefix, 'reports', report_key) JSON.parse self.class.get(path, default_headers) end |