lib/RightScaleAPIHelper.rb in RightScaleAPIHelper-0.4.3 vs lib/RightScaleAPIHelper.rb in RightScaleAPIHelper-0.4.4

- old
+ new

@@ -1,29 +1,45 @@ module RightScaleAPIHelper class Helper - # The aim of this class is to help access the RightScale API. - # The goal is to include this in programs so that you can then use the api - # without the need for all of the heavy lifting. + # Helper for connecting and using the RightScale API + # + # Example: + # >> rscon = RightScaleAPIHelper::Helper.new(99999, username, password) + # >> resp = rscon.get("/servers") + # >> puts resp.code + # => 200 + # >> puts resp.body + # => output from body + # + # >>servers = JSON.parse(resp.body) + # + # Arguments: + # + # RightScaleAPIHelper::Helper.new(RightScaleAcctNum, RSusername, RSpasswd, format = 'js'|'xml', version = '1.0') + # + # This currently only works with version 1.0 of the api. This is because it is all we currently # use. Will probably need to make it smarter at some point, but this is just for # some internal use as of now. require 'net/http' require 'net/https' # Initialize the connection with account information. # 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 + # Inputs: + # format = xml or js + # ersion = 1.0 # 1.5 to be supported soon def initialize(account, username, password, format = 'js', version = '1.0') # 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 #@conn.verify_mode = OpenSSL::SSL::VERIFY_NONE if version != '1.0' @@ -45,14 +61,20 @@ "X-API-VERSION" => "1.0", #"api_version" => "1.0", } end - def get(query) + # Do a GET request against RightScale API + def get(query, values = {}) begin #puts "#{@api_call}#{query}#{@formatting}" - resp = @conn.get("#{@api_call}#{query}#{@formatting}", @headers) + + req = Net::HTTP::Get.new("#{@full_api_call}#{query}", @headers) + req.set_form_data(values) + + resp = @conn.request(req) + rescue raise("Get query failed.\nError: #") end return resp end @@ -74,7 +96,17 @@ def put(query, values) req = Net::HTTP::Put.new("#{@full_api_call}#{query}", @headers) req.set_form_data(values) resp = @conn.request(req) end + +# def self.parseInput(queryString) +# if queryString =~ m/\?/ +# +# end +# +# if queryString =~ m/^http::/ +# if +# end +# end end end