Class: Rhc::Rest::Client
- Inherits:
-
Object
- Object
- Rhc::Rest::Client
- Includes:
- Rhc::Rest
- Defined in:
- lib/rhc-rest/client.rb
Constant Summary
Constants included from Rhc::Rest
Instance Method Summary collapse
-
#add_domain(id) ⇒ Object
Add Domain.
-
#cartridges ⇒ Object
Get all Cartridge.
-
#domains ⇒ Object
Get all Domain.
-
#find_application(name) ⇒ Object
Find Application by name.
-
#find_cartridge(name) ⇒ Object
Find Cartridge by name.
-
#find_domain(id) ⇒ Object
Find Domain by namesapce.
-
#find_key(name) ⇒ Object
find Key by name.
-
#initialize(end_point, username, password) ⇒ Client
constructor
A new instance of Client.
- #logout ⇒ Object (also: #close)
-
#user ⇒ Object
Get User info.
Methods included from Rhc::Rest
#logger, #parse_response, #process_error_response, #send
Constructor Details
#initialize(end_point, username, password) ⇒ Client
Returns a new instance of Client.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/rhc-rest/client.rb', line 7 def initialize(end_point, username, password) logger.debug "Connecting to #{end_point}" if @mydebug credentials = Base64.encode64("#{username}:#{password}") @@headers["Authorization"] = "Basic #{credentials}" #first get the API RestClient.proxy = ENV['http_proxy'] request = RestClient::Request.new(:url => end_point, :method => :get, :headers => @@headers) begin response = request.execute result = JSON.parse(response) @links = send(request) rescue RestClient::ExceptionWithResponse => e logger.error "Failed to get API #{e.response}" rescue Exception => e raise ResourceAccessException.new("Resource could not be accessed:#{e.}") end end |
Instance Method Details
#add_domain(id) ⇒ Object
Add Domain
26 27 28 29 30 31 32 33 |
# File 'lib/rhc-rest/client.rb', line 26 def add_domain(id) logger.debug "Adding domain #{id}" if @mydebug url = @links['ADD_DOMAIN']['href'] method = @links['ADD_DOMAIN']['method'] payload = {:id => id} request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload) return send(request) end |
#cartridges ⇒ Object
Get all Cartridge
73 74 75 76 77 78 79 |
# File 'lib/rhc-rest/client.rb', line 73 def cartridges logger.debug "Getting all cartridges" if @mydebug url = @links['LIST_CARTRIDGES']['href'] method = @links['LIST_CARTRIDGES']['method'] request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers) return send(request) end |
#domains ⇒ Object
Get all Domain
36 37 38 39 40 41 42 |
# File 'lib/rhc-rest/client.rb', line 36 def domains logger.debug "Getting all domains" if @mydebug url = @links['LIST_DOMAINS']['href'] method = @links['LIST_DOMAINS']['method'] request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers) return send(request) end |
#find_application(name) ⇒ Object
Find Application by name
58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/rhc-rest/client.rb', line 58 def find_application(name) logger.debug "Finding application #{name}" if @mydebug filtered = Array.new domains.each do |domain| #TODO do a regex caomparison domain.applications.each do |app| if app.name == name filtered.push(app) end end end return filtered end |
#find_cartridge(name) ⇒ Object
Find Cartridge by name
82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/rhc-rest/client.rb', line 82 def find_cartridge(name) logger.debug "Finding cartridge #{name}" if @mydebug filtered = Array.new cartridges.each do |cart| #TODO do a regex caomparison if cart.name == name filtered.push(cart) end end return filtered end |
#find_domain(id) ⇒ Object
Find Domain by namesapce
45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/rhc-rest/client.rb', line 45 def find_domain(id) logger.debug "Finding domain #{id}" if @mydebug filtered = Array.new domains.each do |domain| #TODO do a regex caomparison if domain.id == id filtered.push(domain) end end return filtered end |
#find_key(name) ⇒ Object
find Key by name
103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/rhc-rest/client.rb', line 103 def find_key(name) logger.debug "Finding key #{name}" if @mydebug filtered = Array.new user.keys.each do |key| #TODO do a regex caomparison if key.name == name filtered.push(key) end end return filtered end |
#logout ⇒ Object Also known as: close
115 116 117 118 |
# File 'lib/rhc-rest/client.rb', line 115 def logout #TODO logout logger.debug "Logout/Close client" if @mydebug end |
#user ⇒ Object
Get User info
95 96 97 98 99 100 |
# File 'lib/rhc-rest/client.rb', line 95 def user url = @links['GET_USER']['href'] method = @links['GET_USER']['method'] request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers) return send(request) end |