# File lib/fog/joyent/analytics.rb, line 146 def initialize(options = {}) @mutex = Mutex.new @connection_options = options[:connection_options] || {} @persistent = options[:persistent] || false @joyent_url = options[:joyent_url] || 'https://us-sw-1.api.joyentcloud.com' @joyent_version = options[:joyent_version] || '~7' @joyent_username = options[:joyent_username] unless @joyent_username raise ArgumentError, "options[:joyent_username] required" end if options[:joyent_keyname] @joyent_keyname = options[:joyent_keyname] @joyent_keyphrase = options[:joyent_keyphrase] @key_manager = Net::SSH::Authentication::KeyManager.new(nil, { :keys_only => true, :passphrase => @joyent_keyphrase }) @header_method = method(:header_for_signature_auth) if options[:joyent_keyfile] if File.exist?(options[:joyent_keyfile]) @joyent_keyfile = options[:joyent_keyfile] @key_manager.add(@joyent_keyfile) else raise ArgumentError, "options[:joyent_keyfile] provided does not exist." end elsif options[:joyent_keydata] if options[:joyent_keydata].to_s.empty? raise ArgumentError, 'options[:joyent_keydata] must not be blank' else @joyent_keydata = options[:joyent_keydata] @key_manager.add_key_data(@joyent_keydata) end end elsif options[:joyent_password] @joyent_password = options[:joyent_password] @header_method = method(:header_for_basic_auth) else raise ArgumentError, "Must provide either a joyent_password or joyent_keyname and joyent_keyfile pair" end @connection = Fog::XML::Connection.new( @joyent_url, @persistent, @connection_options ) end
# File lib/fog/joyent/requests/analytics/create_instrumentation.rb, line 5 def create_instrumentation(values = {}) request( :path => "#{@joyent_username}/analytics/instrumentations", :method => "POST", :body => values, :expects => [200,201] ) end
# File lib/fog/joyent/requests/analytics/delete_instrumentation.rb, line 5 def delete_instrumentation(id) request( :path => "#{@joyent_username}/analytics/instrumentations/#{id}", :method => "DELETE", :expects => 204 ) end
# File lib/fog/joyent/requests/analytics/describe_analytics.rb, line 5 def describe_analytics(force = false) @describe_analytics = nil if force @describe_analytics ||= request( :path => "#{@joyent_username}/analytics", :method => "GET", :expects => 200, :idempotent => true ) end
# File lib/fog/joyent/requests/analytics/get_instrumentation.rb, line 5 def get_instrumentation(id) request( :path => "#{@joyent_username}/analytics/instrumentations/#{id}", :method => "GET", :expects => 200, :idempotent => true ) end
# File lib/fog/joyent/requests/analytics/get_instrumentation_value.rb, line 5 def get_instrumentation_value(url, requested_start_time, ndatapoints, duration) request( :path => url, :method => 'GET', :expects => 200, :idempotent => true, :query => { :ndatapoints => ndatapoints, :start_time => requested_start_time.to_i, :duration => duration } ) end
# File lib/fog/joyent/requests/analytics/list_instrumentations.rb, line 5 def list_instrumentations request( :path => "#{@joyent_username}/analytics/instrumentations", :method => "GET", :expects => 200, :idempotent => true ) end
# File lib/fog/joyent/analytics.rb, line 197 def request(opts = {}) opts[:headers] = { "X-Api-Version" => @joyent_version, "Content-Type" => "application/json", "Accept" => "application/json" }.merge(opts[:headers] || {}).merge(@header_method.call) if opts[:body] opts[:body] = Fog::JSON.encode(opts[:body]) end response = @connection.request(opts) if response.headers["Content-Type"] == "application/json" response.body = json_decode(response.body) end response rescue Excon::Errors::HTTPStatusError => e if e.response.headers["Content-Type"] == "application/json" e.response.body = json_decode(e.response.body) end raise_if_error!(e.request, e.response) end
Generated with the Darkfish Rdoc Generator 2.