Class: Aviator::Service
- Defined in:
- lib/puppet/feature/aviator/core/service.rb
Overview
Manages a service
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
No longer recommended for public use.
- #request_classes ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Service
Returns a new instance of Service.
69 70 71 72 73 74 75 76 77 78 |
# File 'lib/puppet/feature/aviator/core/service.rb', line 69 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.
63 64 65 |
# File 'lib/puppet/feature/aviator/core/service.rb', line 63 def default_session_data @default_session_data end |
#provider ⇒ Object (readonly)
Returns the value of attribute provider.
65 66 67 |
# File 'lib/puppet/feature/aviator/core/service.rb', line 65 def provider @provider end |
#service ⇒ Object (readonly)
Returns the value of attribute service.
65 66 67 |
# File 'lib/puppet/feature/aviator/core/service.rb', line 65 def service @service end |
Instance Method Details
#request(request_name, options = {}, ¶ms) ⇒ Object
No longer recommended for public use. Use Aviator::Session#request instead
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
# File 'lib/puppet/feature/aviator/core/service.rb', line 83 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 # Always use :params over ¶ms if provided if [:params] params = lambda do |params| [:params].each do |key, value| begin params[key] = value rescue NameError => e raise NameError.new("Unknown param name '#{key}'") end end end end 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
126 127 128 |
# File 'lib/puppet/feature/aviator/core/service.rb', line 126 def request_classes @request_classes end |