# File lib/rhc/rest/client.rb, line 8 def initialize(end_point, username, password, debug=false) # use mydebug for legacy reasons @mydebug = @mydebug || debug logger.debug "Connecting to #{end_point}" if @mydebug credentials = nil userpass = "#{username}:#{password}" # :nocov: version dependent code if RUBY_VERSION.to_f == 1.8 credentials = Base64.encode64(userpass).delete("\n") else credentials = Base64.strict_encode64(userpass) end # :nocov: @@headers["Authorization"] = "Basic #{credentials}" @@headers["User-Agent"] = RHC::Helpers.user_agent rescue nil #first get the API RestClient.proxy = ENV['http_proxy'] request = new_request(:url => end_point, :method => :get, :headers => @@headers) begin response = request.execute result = RHC::Json.decode(response) @links = request(request) rescue => e raise ResourceAccessException.new("Resource could not be accessed:#{e.message}") end end
Add Domain
# File lib/rhc/rest/client.rb, line 37 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 = new_request(:url => url, :method => method, :headers => @@headers, :payload => payload) return request(request) end
# File lib/rhc/rest/client.rb, line 113 def add_key(name, key, content) logger.debug "Adding key #{key} for #{user.login}" if @mydebug user.add_key name, key, content end
Get all Cartridge
# File lib/rhc/rest/client.rb, line 64 def cartridges logger.debug "Getting all cartridges" if @mydebug url = @links['LIST_CARTRIDGES']['href'] method = @links['LIST_CARTRIDGES']['method'] request = new_request(:url => url, :method => method, :headers => @@headers) return request(request) end
# File lib/rhc/rest/client.rb, line 118 def delete_key(name) logger.debug "Deleting key '#{name}'" if @mydebug key = find_key(name) key.destroy end
Get all Domain
# File lib/rhc/rest/client.rb, line 47 def domains logger.debug "Getting all domains" if @mydebug url = @links['LIST_DOMAINS']['href'] method = @links['LIST_DOMAINS']['method'] request = new_request(:url => url, :method => method, :headers => @@headers) return request(request) end
Find Cartridge by name or regex
# File lib/rhc/rest/client.rb, line 73 def find_cartridges(name) logger.debug "Finding cartridge #{name}" if @mydebug regex = nil if name.is_a?(Hash) name = name[:name] if name[:name] regex = name[:regex] if name[:regex] end filtered = Array.new cartridges.each do |cart| if regex filtered.push(cart) if cart.name.match(regex) else filtered.push(cart) if cart.name == name end end return filtered end
Find Domain by namesapce
# File lib/rhc/rest/client.rb, line 56 def find_domain(id) logger.debug "Finding domain #{id}" if @mydebug domains.each { |domain| return domain if domain.id == id } raise RHC::DomainNotFoundException.new("Domain #{id} does not exist") end
find Key by name
# File lib/rhc/rest/client.rb, line 101 def find_key(name) logger.debug "Finding key #{name}" if @mydebug user.keys.each { |key| return key if key.name == name } raise RHC::KeyNotFoundException.new("Key #{name} does not exist") end
# File lib/rhc/rest/client.rb, line 124 def logout #TODO logout logger.debug "Logout/Close client" if @mydebug end
# File lib/rhc/rest/client.rb, line 108 def sshkeys logger.debug "Finding all keys for #{user.login}" if @mydebug user.keys end
Get User info
# File lib/rhc/rest/client.rb, line 93 def user url = @links['GET_USER']['href'] method = @links['GET_USER']['method'] request = new_request(:url => url, :method => method, :headers => @@headers) return request(request) end