Class: Aviator::Service
- Defined in:
- lib/puppet/feature/aviator/core/service.rb
Defined Under Namespace
Classes: AccessDetailsNotDefinedError, MissingServiceEndpointError, ProviderNotDefinedError, ServiceNameNotDefinedError, SessionDataNotProvidedError, UnknownRequestError
Instance Attribute Summary collapse
-
#default_session_data ⇒ Object
Returns the value of attribute default_session_data.
-
#provider ⇒ Object
readonly
Returns the value of attribute provider.
-
#service ⇒ Object
readonly
Returns the value of attribute service.
Instance Method Summary collapse
-
#initialize(opts = {}) ⇒ Service
constructor
A new instance of Service.
- #request(request_name, options = {}, ¶ms) ⇒ Object
- #request_classes ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Service
Returns a new instance of Service.
67 68 69 70 71 72 73 74 75 76 |
# File 'lib/puppet/feature/aviator/core/service.rb', line 67 def initialize(opts={}) @provider = opts[:provider] || (raise ProviderNotDefinedError.new) @service = opts[:service] || (raise ServiceNameNotDefinedError.new) @log_file = opts[:log_file] @default_options = opts[:default_options] || {} @default_session_data = opts[:default_session_data] load_requests end |
Instance Attribute Details
#default_session_data ⇒ Object
Returns the value of attribute default_session_data.
61 62 63 |
# File 'lib/puppet/feature/aviator/core/service.rb', line 61 def default_session_data @default_session_data end |
#provider ⇒ Object (readonly)
Returns the value of attribute provider.
63 64 65 |
# File 'lib/puppet/feature/aviator/core/service.rb', line 63 def provider @provider end |
#service ⇒ Object (readonly)
Returns the value of attribute service.
63 64 65 |
# File 'lib/puppet/feature/aviator/core/service.rb', line 63 def service @service end |
Instance Method Details
#request(request_name, options = {}, ¶ms) ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/puppet/feature/aviator/core/service.rb', line 79 def request(request_name, ={}, ¶ms) if [:api_version].nil? && @default_options[:api_version] [:api_version] = @default_options[:api_version] end session_data = [:session_data] || default_session_data raise SessionDataNotProvidedError.new(@service, request_name) unless session_data [:base_url].each do |k| session_data[k] = [k] if [k] end request_class = provider_module.find_request(service, request_name, session_data, ) raise UnknownRequestError.new(request_name, ) unless request_class request = request_class.new(session_data, ¶ms) response = http_connection.send(request.http_method) do |r| r.url request.url r.headers.merge!(request.headers) if request.headers? r.query = request.querystring if request.querystring? r.body = JSON.generate(request.body) if request.body? end Aviator::Response.send(:new, response, request) end |
#request_classes ⇒ Object
109 110 111 |
# File 'lib/puppet/feature/aviator/core/service.rb', line 109 def request_classes @request_classes end |