class RHC::Rest::Cartridge

Constants

HIDDEN_TAGS

Public Class Methods

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

Public Instance Methods

<=>(other) click to toggle source
# File lib/rhc/rest/cartridge.rb, line 133
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 41
def additional_gear_storage
  attribute(:additional_gear_storage).to_i rescue 0
end
collocated_with() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 29
def collocated_with
  Array(attribute(:collocated_with))
end
connection_info() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 128
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 14
def custom?
  url.present?
end
delete()
Alias for: destroy
destroy() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 111
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 45
def display_name
  attribute(:display_name) || name || url_basename
end
gear_storage() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 37
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 22
def only_in_existing?
  type == 'embedded'
end
only_in_new?() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 18
def only_in_new?
  type == 'standalone'
end
property(type, key) click to toggle source
# File lib/rhc/rest/cartridge.rb, line 80
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 106
def reload
  debug "Reloading cartridge #{name}"
  rest_method "RESTART", :event => "reload"
end
restart() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 101
def restart
  debug "Restarting cartridge #{name}"
  rest_method "RESTART", :event => "restart"
end
scalable?() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 10
def scalable?
  supported_scales_to != supported_scales_from
end
scaling() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 71
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 117
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 123
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 26
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 52
def short_name
  name || url
end
start() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 91
def start
  debug "Starting cartridge #{name}"
  rest_method "START", :event => "start"
end
status() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 85
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 96
def stop
  debug "Stopping cartridge #{name}"
  rest_method "STOP", :event => "stop"
end
tags() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 33
def tags
  Array(attribute(:tags))
end
url_basename() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 139
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 61
def usage_rate
  rate = attribute(:usage_rate_usd)

  if attribute(:usage_rates)
    rate ||= attribute(:usage_rates).inject(0) { |total, rate| total + rate['usd'].to_f }
  end

  rate.to_f rescue 0.0
end
usage_rate?() click to toggle source
# File lib/rhc/rest/cartridge.rb, line 56
def usage_rate?
  rate = usage_rate
  rate && rate > 0.0
end