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