class RHC::Rest::Cartridge

Constants

HIDDEN_TAGS

Public Class Methods

for_url(url) click to toggle source
# File lib/rhc/rest/cartridge.rb, line 166
def self.for_url(url)
  new 'url' => url
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/rhc/rest/cartridge.rb, line 150
def <=>(other)
  return -1 if other.type == 'standalone' && type != 'standalone'
  return 1  if type == 'standalone' && other.type != 'standalone'
  name <=> other.name
end
additional_gear_storage() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 54
def additional_gear_storage
  attribute(:additional_gear_storage).to_i rescue 0
end
automatic_updates?() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 27
def automatic_updates?
  v = attribute(:automatic_updates)
  if v.nil?
    v = !(tags.include?('no_updates') || custom?)
  end
  v
end
collocated_with() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 42
def collocated_with
  Array(attribute(:collocated_with))
end
connection_info() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 145
def connection_info
  info = property(:cart_data, :connection_url) || property(:cart_data, :job_url) || property(:cart_data, :monitoring_url)
  info ? (info["value"] || '').rstrip : nil
end
custom?() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 15
def custom?
  url.present?
end
delete()
Alias for: destroy
destroy() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 128
def destroy
  debug "Deleting cartridge #{name}"
  rest_method "DELETE"
end
Also aliased as: delete
display_name() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 58
def display_name
  attribute(:display_name) || name || url_basename
end
external?() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 35
def external?
  tags.include?('external')
end
gear_storage() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 50
def gear_storage
  (base_gear_storage + additional_gear_storage) * 1024 * 1024 * 1024
end
only_in_existing?() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 23
def only_in_existing?
  type == 'embedded'
end
only_in_new?() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 19
def only_in_new?
  type == 'standalone'
end
property(type, key) click to toggle source
# File lib/rhc/rest/cartridge.rb, line 97
def property(type, key)
  key, type = key.to_s, type.to_s
  properties.select{ |p| p['type'] == type }.find{ |p| p['name'] == key }
end
reload() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 123
def reload
  debug "Reloading cartridge #{name}"
  rest_method "RESTART", :event => "reload"
end
restart() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 118
def restart
  debug "Restarting cartridge #{name}"
  rest_method "RESTART", :event => "restart"
end
scalable?() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 11
def scalable?
  supported_scales_to != supported_scales_from
end
scaling() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 88
def scaling
  {
    :current_scale => current_scale,
    :scales_from => scales_from,
    :scales_to => scales_to,
    :gear_profile => gear_profile,
  } if scalable?
end
set_scales(values) click to toggle source
# File lib/rhc/rest/cartridge.rb, line 134
def set_scales(values)
  values.delete_if{|k,v| v.nil? }
  debug "Setting scales = %s" % values.map{|k,v| "#{k}: #{v}"}.join(" ")
  rest_method "UPDATE", values
end
set_storage(values) click to toggle source
# File lib/rhc/rest/cartridge.rb, line 140
def set_storage(values)
  debug "Setting additional storage: #{values[:additional_gear_storage]}GB"
  rest_method "UPDATE", values
end
shares_gears?() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 39
def shares_gears?
  Array(collocated_with).present?
end
short_name() click to toggle source

Use this value when the user should interact with this cart via CLI arguments

# File lib/rhc/rest/cartridge.rb, line 65
def short_name
  name || url
end
start() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 108
def start
  debug "Starting cartridge #{name}"
  rest_method "START", :event => "start"
end
status() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 102
def status
  debug "Getting cartridge #{name}'s status"
  result = rest_method "GET", :include => "status_messages"
  result.status_messages
end
stop() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 113
def stop
  debug "Stopping cartridge #{name}"
  rest_method "STOP", :event => "stop"
end
tags() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 46
def tags
  Array(attribute(:tags))
end
url_basename() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 156
def url_basename
  uri = URI.parse(url)
  name = uri.fragment
  name = Rack::Utils.parse_nested_query(uri.query)['name'] if name.blank? && uri.query
  name = File.basename(uri.path) if name.blank? && uri.path.present? && uri.path != '/'
  name.presence || url
rescue
  url
end
usage_rate?() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 69
def usage_rate?
  rates = usage_rates
  !(rates.nil? || rates.empty?)
end
usage_rates() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 74
def usage_rates
  rate = attribute(:usage_rate_usd).to_f rescue 0.0
  if rate > 0
    {rate => []}
  elsif attribute(:usage_rates).present?
    attribute(:usage_rates).inject({}) do |plans_by_rate, rate|
      if (usd = rate['usd'].to_f rescue 0.0) > 0
        (plans_by_rate[usd] ||= []) << rate['plan_id']
      end
      plans_by_rate
    end
  end
end