Class: RightScaleAPIHelper::Helper
- Inherits:
-
Object
- Object
- RightScaleAPIHelper::Helper
- Defined in:
- lib/RightScaleAPIHelper.rb
Instance Method Summary collapse
- #api_request(submitted_query) ⇒ Object
- #delete(query) ⇒ Object
-
#get(query, values = {}) ⇒ Object
Do a GET request against RightScale API.
-
#initialize(account, username, password, format = 'js', version = '1.0', verify_ssl = true) ⇒ Helper
constructor
Return an object that can then later be used to make calls against the RightScale API without authenticating again.
-
#is_full_path?(queryString) ⇒ Boolean
Function just to check if the path that is being passed is a full url or just the extension.
- #post(query, values) ⇒ Object
- #put(query, values) ⇒ Object
Constructor Details
#initialize(account, username, password, format = 'js', version = '1.0', verify_ssl = true) ⇒ Helper
Return an object that can then later be used to make calls against the RightScale API without authenticating again. Inputs:
format = xml or js
version = 1.0 # 1.5 to be supported soon
verify_ssl = true|false # For windows machines to prevent SSL error from being thrown.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/RightScaleAPIHelper.rb', line 35 def initialize(account, username, password, format = 'js', version = '1.0', verify_ssl = true) # Set Default Variables rs_url = "https://my.rightscale.com" api_url = '/api/acct/' @api_call = "#{api_url}#{account}" @full_api_call = "#{rs_url}#{@api_call}" @format=format @formatting = "?format=#{format}" @conn = Net::HTTP.new('my.rightscale.com', 443) @conn.use_ssl=true unless verify_ssl @conn.verify_mode = OpenSSL::SSL::VERIFY_NONE end if version != '1.0' raise("Only version 1.0 is supported") end req = Net::HTTP::Get.new("#{@full_api_call}/login?api_version=#{version}") req.basic_auth( username, password ) resp = @conn.request(req) if resp.code.to_i != 204 puts resp.code raise("Failed to authenticate user.\n Http response code was #{resp.code}.") end = resp.response['set-cookie'] #puts "The response code was #{resp.code}" @headers = { "Cookie" => , "X-API-VERSION" => "1.0", #"api_version" => "1.0", } end |
Instance Method Details
#api_request(submitted_query) ⇒ Object
109 110 111 |
# File 'lib/RightScaleAPIHelper.rb', line 109 def api_request(submitted_query) is_full_path?(submitted_query) ? submitted_query : "#{@full_api_call}#{submitted_query}" end |
#delete(query) ⇒ Object
96 97 98 99 100 |
# File 'lib/RightScaleAPIHelper.rb', line 96 def delete(query) request_value = api_request(query) req = Net::HTTP::Delete.new(request_value, @headers) resp = @conn.request(req) end |
#get(query, values = {}) ⇒ Object
Do a GET request against RightScale API
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/RightScaleAPIHelper.rb', line 70 def get(query, values = {}) begin #puts "#{@api_call}#{query}#{@formatting}" request_value = api_request(query) req = Net::HTTP::Get.new("#{request_value}#{@formatting}", @headers) req.set_form_data(values) resp = @conn.request(req) rescue raise("Get query failed.\n Query string is #{request_value}#{@formatting}") end return resp end |
#is_full_path?(queryString) ⇒ Boolean
Function just to check if the path that is being passed is a full url or just the extension.
114 115 116 |
# File 'lib/RightScaleAPIHelper.rb', line 114 def is_full_path?(queryString) !!(queryString =~ /^http/i) end |
#post(query, values) ⇒ Object
86 87 88 89 90 91 92 93 94 |
# File 'lib/RightScaleAPIHelper.rb', line 86 def post(query, values) request_value = api_request(query) req = Net::HTTP::Post.new(request_value, @headers) req.set_form_data(values) resp = @conn.request(req) return resp end |
#put(query, values) ⇒ Object
102 103 104 105 106 107 |
# File 'lib/RightScaleAPIHelper.rb', line 102 def put(query, values) request_value = api_request(query) req = Net::HTTP::Put.new(request_value, @headers) req.set_form_data(values) resp = @conn.request(req) end |