class RHC::Rest::Application
Public Instance Methods
<=>(other)
click to toggle source
# File lib/rhc/rest/application.rb, line 346 def <=>(other) c = name.downcase <=> other.name.downcase return c unless c == 0 domain_id <=> other.domain_id end
add_alias(app_alias)
click to toggle source
# File lib/rhc/rest/application.rb, line 260 def add_alias(app_alias) debug "Running add_alias for #{name}" rest_method "ADD_ALIAS", :event => "add-alias", :alias => app_alias end
add_cartridge(cart, options={})
click to toggle source
# File lib/rhc/rest/application.rb, line 44 def add_cartridge(cart, options={}) debug "Adding cartridge #{name}" clear_attribute :cartridges cart = if cart.is_a? String {:name => cart} elsif cart.respond_to? :[] cart else c = cart.url ? {:url => cart.url} : {:name => cart.name} if cart.respond_to?(:environment_variables) && cart.environment_variables.present? c[:environment_variables] = cart.environment_variables end if cart.respond_to?(:gear_size) && cart.gear_size.present? c[:gear_size] = cart.gear_size end cart = c end if cart.respond_to?(:[]) and cart[:url] and !has_param?('ADD_CARTRIDGE', 'url') raise RHC::Rest::DownloadingCartridgesNotSupported, "The server does not support downloading cartridges." end rest_method( "ADD_CARTRIDGE", cart, options ) end
aliases()
click to toggle source
# File lib/rhc/rest/application.rb, line 274 def aliases debug "Getting all aliases for application #{name}" @aliases ||= begin aliases = attributes['aliases'] if aliases.nil? or not aliases.is_a?(Array) supports?('LIST_ALIASES') ? rest_method("LIST_ALIASES") : [] else aliases.map do |a| Alias.new(a.is_a?(String) ? {'id' => a} : a, client) end end end end
cartridges()
click to toggle source
# File lib/rhc/rest/application.rb, line 74 def cartridges @cartridges ||= unless (carts = attributes['cartridges']).nil? carts.map{|x| Cartridge.new(x, client) } else debug "Getting all cartridges for application #{name}" rest_method "LIST_CARTRIDGES" end end
configure(options={})
click to toggle source
# File lib/rhc/rest/application.rb, line 251 def configure(options={}) debug "Running update for #{name} with options #{options.inspect}" if supports? "UPDATE" rest_method "UPDATE", options else raise RHC::DeploymentsNotSupportedException end end
deployment_activations()
click to toggle source
# File lib/rhc/rest/application.rb, line 215 def deployment_activations items = [] # building an array of activations with their deployments deployments.each do |deployment| deployment.activations.each do |activation| items << {:activation => activation, :deployment => deployment} end end items.sort! {|a,b| a[:activation].created_at <=> b[:activation].created_at } first_activation = {} items.each do |item| deployment = item[:deployment] activation = item[:activation] # set the currently active (last activation by date) item[:active] = item == items.last # mark rollbacks (activations whose deployment had previous activations) if rollback_to = first_activation[deployment.id] item[:rollback] = true item[:rollback_to] = rollback_to # mark rolled back (all in between a rollback and its original deployment) items.each {|i| i[:rolled_back] = true if i[:activation].created_at > rollback_to && i[:activation].created_at < activation.created_at } else first_activation[deployment.id] = activation.created_at end end items end
deployments()
click to toggle source
# File lib/rhc/rest/application.rb, line 209 def deployments debug "Listing deployments for application #{name}" raise RHC::DeploymentsNotSupportedException if !supports? "LIST_DEPLOYMENTS" rest_method("LIST_DEPLOYMENTS").sort end
destroy()
click to toggle source
# File lib/rhc/rest/application.rb, line 143 def destroy debug "Deleting application #{name}" rest_method "DELETE" end
Also aliased as: delete
domain()
click to toggle source
# File lib/rhc/rest/application.rb, line 33 def domain domain_id end
environment_variables()
click to toggle source
# File lib/rhc/rest/application.rb, line 159 def environment_variables debug "Getting all environment variables for application #{name}" if supports? "LIST_ENVIRONMENT_VARIABLES" rest_method "LIST_ENVIRONMENT_VARIABLES" else raise RHC::EnvironmentVariablesNotSupportedException.new end end
find_alias(name, options={})
click to toggle source
# File lib/rhc/rest/application.rb, line 288 def find_alias(name, options={}) debug "Finding alias #{name} in app #{@name}" if name.is_a?(Hash) options = name name = options[:name] end aliases.each { |a| return a if a.is_a?(String) || a.id == name.downcase } raise RHC::AliasNotFoundException.new("Alias #{name} can't be found in application #{@name}.") end
find_cartridge(sought, options={})
click to toggle source
Find Cartridge by name
# File lib/rhc/rest/application.rb, line 300 def find_cartridge(sought, options={}) debug "Finding cartridge #{sought} in app #{name}" type = options[:type] cartridges.each { |cart| return cart if cart.name == sought and (type.nil? or cart.type == type) } suggested_msg = "" valid_cartridges = cartridges.select {|c| type.nil? or c.type == type} unless valid_cartridges.empty? suggested_msg = "\n\nValid cartridges:" valid_cartridges.each { |cart| suggested_msg += "\n#{cart.name}" } end raise RHC::CartridgeNotFoundException.new("Cartridge #{sought} can't be found in application #{name}.#{suggested_msg}") end
find_cartridges(name, options={})
click to toggle source
Find Cartridges by name or regex
# File lib/rhc/rest/application.rb, line 317 def find_cartridges(name, options={}) if name.is_a?(Hash) options = name name = options[:name] end type = options[:type] regex = options[:regex] debug "Finding cartridge #{name || regex} in app #{@name}" filtered = Array.new cartridges.each do |cart| if regex filtered.push(cart) if cart.name.match(/(?i:#{regex})/) and (type.nil? or cart.type == type) else filtered.push(cart) if cart.name.downcase == name.downcase and (type.nil? or cart.type == type) end end filtered end
find_environment_variable(env_var_name)
click to toggle source
# File lib/rhc/rest/application.rb, line 168 def find_environment_variable(env_var_name) find_environment_variables(env_var_name).first end
find_environment_variables(env_var_names=nil)
click to toggle source
# File lib/rhc/rest/application.rb, line 172 def find_environment_variables(env_var_names=nil) return environment_variables if env_var_names.nil? env_var_names = [env_var_names].flatten debug "Finding environment variable(s) #{env_var_names.inspect} in app #{@name}" env_vars = environment_variables.select { |item| env_var_names.include? item.name } raise RHC::EnvironmentVariableNotFoundException.new("Environment variable(s) #{env_var_names.join(', ')} can't be found in application #{name}.") if env_vars.empty? env_vars end
gear_groups()
click to toggle source
# File lib/rhc/rest/application.rb, line 88 def gear_groups debug "Getting all gear groups for application #{name}" rest_method "GET_GEAR_GROUPS" end
gear_info()
click to toggle source
# File lib/rhc/rest/application.rb, line 84 def gear_info { :gear_count => gear_count, :gear_profile => gear_profile } unless gear_count.nil? end
gear_ssh_url(gear_id)
click to toggle source
# File lib/rhc/rest/application.rb, line 97 def gear_ssh_url(gear_id) gear = gears.find{ |g| g['id'] == gear_id } raise ArgumentError, "Gear #{gear_id} not found" if gear.nil? gear['ssh_url'] or raise NoPerGearOperations end
gears()
click to toggle source
# File lib/rhc/rest/application.rb, line 93 def gears gear_groups.map{ |group| group.gears }.flatten end
host()
click to toggle source
# File lib/rhc/rest/application.rb, line 338 def host @host ||= URI.parse(app_url).host rescue nil end
id()
click to toggle source
# File lib/rhc/rest/application.rb, line 21 def id attributes['id'] || uuid end
region()
click to toggle source
# File lib/rhc/rest/application.rb, line 104 def region gears.first['region'] rescue nil end
reload()
click to toggle source
# File lib/rhc/rest/application.rb, line 149 def reload debug "Reload application #{name}" rest_method "RELOAD", :event => "reload" end
remove_alias(app_alias)
click to toggle source
# File lib/rhc/rest/application.rb, line 265 def remove_alias(app_alias) debug "Running remove_alias for #{name}" if (client.api_version_negotiated >= 1.4) find_alias(app_alias).destroy else rest_method "REMOVE_ALIAS", :event => "remove-alias", :alias => app_alias end end
restart()
click to toggle source
# File lib/rhc/rest/application.rb, line 138 def restart debug "Restarting application #{name}" rest_method "RESTART", :event => "restart" end
scalable?()
click to toggle source
Query helper to say consistent with cartridge
# File lib/rhc/rest/application.rb, line 17 def scalable? scalable end
scalable_carts()
click to toggle source
# File lib/rhc/rest/application.rb, line 37 def scalable_carts return [] unless scalable? carts = cartridges.select(&:scalable?) scales_with = carts.map(&:scales_with) carts.delete_if{|x| scales_with.include?(x.name)} end
scale_down()
click to toggle source
# File lib/rhc/rest/application.rb, line 117 def scale_down rest_method 'SCALE_DOWN', :event => "scale-down" end
scale_up()
click to toggle source
# File lib/rhc/rest/application.rb, line 113 def scale_up rest_method 'SCALE_UP', :event => "scale-up" end
set_environment_variables(env_vars=[])
click to toggle source
@param [Array<RHC::Rest::EnvironmentVariable>] Array of RHC::Rest::EnvironmentVariable to be set
# File lib/rhc/rest/application.rb, line 182 def set_environment_variables(env_vars=[]) debug "Adding environment variable(s) #{env_vars.inspect} for #{name}" if supports? "SET_UNSET_ENVIRONMENT_VARIABLES" rest_method "SET_UNSET_ENVIRONMENT_VARIABLES", :environment_variables => env_vars.map{|item| item.to_hash} else raise RHC::EnvironmentVariablesNotSupportedException.new end end
ssh_string()
click to toggle source
# File lib/rhc/rest/application.rb, line 342 def ssh_string RHC::Helpers.ssh_string(ssh_url) end
start()
click to toggle source
# File lib/rhc/rest/application.rb, line 121 def start debug "Starting application #{name}" rest_method 'START', :event => "start" end
stop(force=false)
click to toggle source
# File lib/rhc/rest/application.rb, line 126 def stop(force=false) debug "Stopping application #{name} force-#{force}" if force payload = {:event=> "force-stop"} else payload = {:event=> "stop"} end rest_method "STOP", payload end
supports_add_cartridge_with_env_vars?()
click to toggle source
# File lib/rhc/rest/application.rb, line 201 def supports_add_cartridge_with_env_vars? has_param?('ADD_CARTRIDGE', 'environment_variables') end
supports_add_cartridge_with_gear_size?()
click to toggle source
# File lib/rhc/rest/application.rb, line 205 def supports_add_cartridge_with_gear_size? has_param?('ADD_CARTRIDGE', 'gear_size') end
threaddump()
click to toggle source
# File lib/rhc/rest/application.rb, line 154 def threaddump debug "Running thread dump for #{name}" rest_method "THREAD_DUMP", :event => "thread-dump" end
tidy()
click to toggle source
# File lib/rhc/rest/application.rb, line 108 def tidy debug "Starting application #{name}" rest_method 'TIDY', :event => "tidy" end
unset_environment_variables(env_vars=[])
click to toggle source
@param [Array<String>] Array of env var names like ['FOO', 'BAR']
# File lib/rhc/rest/application.rb, line 192 def unset_environment_variables(env_vars=[]) debug "Removing environment variable(s) #{env_vars.inspect} for #{name}" if supports? "SET_UNSET_ENVIRONMENT_VARIABLES" rest_method "SET_UNSET_ENVIRONMENT_VARIABLES", :environment_variables => env_vars.map{|item| {:name => item}} else raise RHC::EnvironmentVariablesNotSupportedException.new end end
uuid()
click to toggle source
# File lib/rhc/rest/application.rb, line 25 def uuid if (client.api_version_negotiated >= 1.6) attributes['id'] else attributes['uuid'] end end