These are methods that belong to the API object but are callable from the client for convenience.
# File lib/rhc/rest/client.rb, line 17 def add_domain(id, payload={}) debug "Adding domain #{id} with options #{payload.inspect}" @domains = nil payload.delete_if{ |k,v| k.nil? or v.nil? } api.rest_method "ADD_DOMAIN", {:id => id}.merge(payload) end
# File lib/rhc/rest/client.rb, line 204 def add_key(name, key, content) debug "Adding key #{key} for #{user.login}" user.add_key name, key, content end
# File lib/rhc/rest/client.rb, line 38 def applications(options={}) debug "Getting applications" if link = api.link_href(:LIST_APPLICATIONS) api.rest_method :LIST_APPLICATIONS, options else self.domains.map{ |d| d.applications(options) }.flatten end end
# File lib/rhc/rest/client.rb, line 57 def cartridges debug "Getting all cartridges" @cartridges ||= api.rest_method("LIST_CARTRIDGES", nil, :lazy_auth => true) end
# File lib/rhc/rest/client.rb, line 209 def delete_key(name) debug "Deleting key '#{name}'" key = find_key(name) key.destroy end
# File lib/rhc/rest/client.rb, line 24 def domains debug "Getting all domains" @domains ||= api.rest_method "LIST_DOMAINS" end
# File lib/rhc/rest/client.rb, line 109 def find_application(domain, application, options={}) precheck_domain_id(domain) precheck_application_id(application) request(:url => link_show_application_by_domain_name(domain, application), :method => "GET", :payload => options) end
# File lib/rhc/rest/client.rb, line 121 def find_application_aliases(domain, application, options={}) precheck_domain_id(domain) precheck_application_id(application) request(:url => link_show_application_by_domain_name(domain, application, "aliases"), :method => "GET", :payload => options) end
# File lib/rhc/rest/client.rb, line 127 def find_application_by_id(id, options={}) precheck_application_id(id) if api.supports? :show_application request(:url => link_show_application_by_id(id), :method => "GET", :payload => options) else applications.find{ |a| a.id == id } end or raise ApplicationNotFoundException.new("Application with id #{id} not found") end
# File lib/rhc/rest/client.rb, line 136 def find_application_by_id_gear_groups(id, options={}) precheck_application_id(id) if api.supports? :show_application request(:url => link_show_application_by_id(id, 'gear_groups'), :method => "GET", :payload => options) else applications.find{ |a| return a.gear_groups if a.id == id } end or raise ApplicationNotFoundException.new("Application with id #{id} not found") end
# File lib/rhc/rest/client.rb, line 115 def find_application_gear_groups(domain, application, options={}) precheck_domain_id(domain) precheck_application_id(application) request(:url => link_show_application_by_domain_name(domain, application, "gear_groups"), :method => "GET", :payload => options) end
Find Cartridge by name or regex
# File lib/rhc/rest/client.rb, line 174 def find_cartridges(name) debug "Finding cartridge #{name}" if name.is_a?(Hash) regex = name[:regex] type = name[:type] name = name[:name] end filtered = Array.new cartridges.each do |cart| if regex filtered.push(cart) if cart.name.match(regex) and (type.nil? or cart.type == type) else filtered.push(cart) if (name.nil? or cart.name == name) and (type.nil? or cart.type == type) end end return filtered end
Find Domain by namespace
# File lib/rhc/rest/client.rb, line 100 def find_domain(id) debug "Finding domain #{id}" if link = api.link_href(:SHOW_DOMAIN, ':name' => id) request(:url => link, :method => "GET") else domains.find{ |d| d.name.downcase == id.downcase } end or raise DomainNotFoundException.new("Domain #{id} not found") end
find Key by name
# File lib/rhc/rest/client.rb, line 194 def find_key(name) debug "Finding key #{name}" user.find_key(name) or raise RHC::KeyNotFoundException.new("Key #{name} does not exist") end
# File lib/rhc/rest/client.rb, line 156 def link_show_application_by_domain_name(domain, application, *args) [ api.links['LIST_DOMAINS']['href'], domain, "applications", application, ].concat(args).map{ |s| URI.escape(s) }.join("/") end
# File lib/rhc/rest/client.rb, line 165 def link_show_application_by_id(id, *args) api.link_href(:SHOW_APPLICATION, {':id' => id}, *args) end
# File lib/rhc/rest/client.rb, line 169 def link_show_domain_by_name(domain, *args) api.link_href(:SHOW_DOMAIN, ':id' => domain) end
Returns nil if creating sessions is not supported, raises on error, otherwise returns an Authorization object.
# File lib/rhc/rest/client.rb, line 228 def new_session(options={}) if supports_sessions? api.rest_method('ADD_AUTHORIZATION', { :scope => 'session', :note => "RHC/#{RHC::VERSION::STRING} (from #{Socket.gethostname rescue 'unknown'} on #{RUBY_PLATFORM})", :reuse => true }, options) end end
# File lib/rhc/rest/client.rb, line 47 def owned_applications(options={}) debug "Getting owned applications" if link = api.link_href(:LIST_APPLICATIONS_BY_OWNER) @owned_applications ||= api.rest_method 'LIST_APPLICATIONS_BY_OWNER', :owner => '@self' else owned_domains_names = owned_domains.map{|d| d.name} @owned_applications ||= applications(options).select{|app| owned_domains_names.include?(app.domain)} end end
# File lib/rhc/rest/client.rb, line 29 def owned_domains debug "Getting owned domains" if link = api.link_href(:LIST_DOMAINS_BY_OWNER) @owned_domains ||= api.rest_method 'LIST_DOMAINS_BY_OWNER', :owner => '@self' else domains end end
# File lib/rhc/rest/client.rb, line 76 def owned_teams debug "Getting owned teams" if link = api.link_href(:LIST_TEAMS_BY_OWNER) @owned_teams ||= api.rest_method "LIST_TEAMS_BY_OWNER", :owner => '@self' else raise RHC::TeamsNotSupportedException end end
# File lib/rhc/rest/client.rb, line 151 def precheck_application_id(application) raise ApplicationNotFoundException.new("Application not specified") if application.blank? raise ApplicationNotFoundException.new("Application #{application} not found") if ['.','..'].include?(application) end
Catch domain ids which we can’t make API calls for
# File lib/rhc/rest/client.rb, line 146 def precheck_domain_id(domain) raise DomainNotFoundException.new("Domain not specified") if domain.blank? raise DomainNotFoundException.new("Domain #{domain} not found") if ['.','..'].include?(domain) end
# File lib/rhc/rest/client.rb, line 263 def reset (instance_variables - [ :@end_point, :@debug, :@preferred_api_versions, :@auth, :@options, :@headers, :@last_options, :@httpclient, :@self_signed, :@current_api_version, :@api ]).each{ |sym| instance_variable_set(sym, nil) } self end
# File lib/rhc/rest/client.rb, line 94 def search_owned_teams(search) debug "Searching owned teams" owned_teams.select{|team| team.name.downcase =~ /#{Regexp.escape(search)}/} end
# File lib/rhc/rest/client.rb, line 85 def search_teams(search, global=false) debug "Searching teams" if link = api.link_href(:SEARCH_TEAMS) api.rest_method "SEARCH_TEAMS", :search => search, :global => global else raise RHC::TeamsNotSupportedException end end
# File lib/rhc/rest/client.rb, line 199 def sshkeys debug "Finding all keys for #{user.login}" user.keys end
# File lib/rhc/rest/client.rb, line 215 def supports_sessions? api.supports? 'ADD_AUTHORIZATION' end
Generated with the Darkfish Rdoc Generator 2.